User/Roles Pattern in OWL

December 10th, 2009 § 0

The standard User-Role or User-Group pattern is typically implemented as three tables; User, Group, and an associative table User_Group. OWL (Ontology Web Language) is particularly suited to modeling this pattern, and, with a little help from an inferencing engine, can make some obvious yet valuable inferences for us.  In many organizations it’s easier to model roles as a set of interrelated nodes such that membership in one conveys membership in a broader group.  In this diagram Mark  is declared as having a “marketing” role, however, he’s also an employee, and the graph makes that clear.  If we were using the standard RDBMS approach mentioned above we’d have to enumerate each group and assert his membership to each one in the associative table.

users and roles

users and roles


» Read the rest of this entry «

looking back at the semantic technologies conference 2009

June 18th, 2009 Comments Off

I enjoyed this (my third) conference experience most of all.  Over the course of three years I’ve come to know more folks in the community and that makes a big difference.  Another big win this year was bringing alo ng a colleague to help deliver the talk.  One small but significant treat is visiting a talk and getting more out of than you expected.  Paul Gearon and James Leigh gave a talk called “merging RDF stores” which was really a summary of layout methodologies for triple stores.  They covered the common techniques and pointed to the trade offs and advantages of each, depeding on the characteristics of your dataset.  Paul gave me an interesting explanation of how he solves the minimum spanning tree problem, which is a very useful query to make which cannot be handled with basic SPARQL. » Read the rest of this entry «

First semantic web meetup in Dallas

May 21st, 2009 § 1

The first semantic web meetup was held May 20th, at the co-working office of http://www.companydallas.com/.  As I expected it was a motley crew.  The “semantic web” space consists of RDF/OWL interests, natural language processing, and mathmatical techniques such as LSA (latent semantic analyses)…it’s really a diverse set of interests and I sometimes wonder what joins them all together.  I gave a talk on geosparql, a tool build on google’s new app engine for java. My favorite talk was from 80legs.com.  They have a new cloud compute model that targets when crawling.  Somebody asked “what does that have to do with the semantic web?”.  I was thinking to myself…everything!  The semantic web requires that one be able to scrape here and there, or at least I see it that way.  Swingly was also introduced, an index of questions and answers found on the internet…again, very interesting.  PureDiscovery came out to set us straight and remind us that ontology creating will never work, why do we keep trying?

Easy Jena startup with Eclipse and Maven

April 10th, 2009 § 6

Recently on the Jena news group there was a question regarding classpath and how frustrating it can be to properly configure that aspect of a new project. I began to answer the question and realized I haven’t touched a classpath for years simply because the tools I use make that unnecessary. Eclipse is free and has very good maven integration. At the same time, the Jena team is providing jena as a Maven asset indexed on the main maven repo. The consequences are that you can have eclipse create a new project for you, and add your library dependencies for you by simply declaring that your project “uses” jena.  Here is a quick screentoaster demo to get you going…

Record your screencast online
Reblog this post [with Zemanta]

Processing SIOC feeds with Jenabean

February 26th, 2009 § 1

This is a simple example of using jenabean’s “Thing” class to process SIOC data. The full example is available here.
SIOC is an OWL ontology for integrating and exchanging online community information.  It’s one of the few but growing public ontologies that have some adoption where you can find examples in the wild.  Jenabean makes it very easy to extract information using the SIOC vocabulary.   Assuming your Jena project is setup, all that’s required is for you to download the jenabean jar file to get started.  The latest snapshot build (0.9) contains a ready made interface for working with SIOC feeds or data.  First create a simple class with a static main… » Read the rest of this entry «

Article on Java and OWL/RDF

February 2nd, 2009 § 0

My latest article published today at the semantic universe.  It covers some of the tools java developers can use to program the semantic web, including my own little project, jenabean, as well as other notables like Elmo for Aduna’s openrdf tool.  I’ve enjoyed my association with the semantic technology conference.  It’s an interesting grouping of all things “semantic” and provides a good place to get your bearings on all the different sub-groupings that makeup semantic technologies.

Reblog this post [with Zemanta]

Schism in the Semantic Web community

February 2nd, 2009 § 0

Back in January an interesting discussion started on the semantic web interest group regarding a possible schism between OWL focused tools and RDF focused tools.   What isn’t mentioned, but is obvious in reading the new OWL2 specs is that RDF isn’t nearly as prominant as it was in OWL1.  Specifically, the first OWL specification was written with all it’s examples in RDF/XML.  OWL2 introduces 3 new representation formats, machester, owl2xml, and owl functional.  That’s in addition to the existing represenation formats (n3, turtle, RDF/XML), and there is a tremendous amount of complexity and details in just understanding the set pre- owl2.  (if you don’t believe me see  this blog post on the details)

» Read the rest of this entry «

Using ARQ and regexp to refine data ranges

January 24th, 2008 Comments Off

ARQ is able to update RDF graphs, and I’m just beginning to realize how powerful that can be.  I’ve been playing with geonames and found that the ontology defined population as:

(Geonames.org has a fantastic set of data and public api’s by the way, if anything points the way to a semantic web it’s them.)

I was using their ontology to experiment with binding and it shows one of the problems in trying to do this, vague data ranges (and cardinalities, but that’s another discussion).  We know about the property, and its domain, but no range.  As humans we can infer the type by looking at the data, but just going off the RDF as given, we know nothing about the range.  Assuming this is frequent with public data sources, we’d need to find ways to clean things up a bit in an automated way. » Read the rest of this entry «

Jena Ruby bindings: accessing Jena’s feature rich RDF api from Ruby

January 5th, 2008 § 1

While working on jenabean I began to wonder if dynamic languages had features that would make editing ontology instance data easier.  The traditional method for bindind a schemas to objects normally involves creating some kind of binding descriptor file in XML.  The tedium of that process is well known and so painfull that it may not even continue to be a viable pattern.  What I discovered is that it’s rather easy to manipulate RDF files from Ruby (JRuby to be exact) using Jena.  The technique I decided upon was to dynamically create classes that map to RDF types in the ontology.  This is a type of “metaprogramming” that is familiar to rails developers, and to be fair, I spent a few hours reading ActiveRecord code to glean some ideas on how this type of binding works.  So let’s get started.  Here’s what you’ll need to follow along in a hands on manner: » Read the rest of this entry «

I do not think it means what you think it means

August 29th, 2007 Comments Off

I’ve recently been working with Jena and Pellet. At the outset I was enthusiastic about all the interesting implications a reasoner had for my ontology. Being familiar with the “classify ontology” buttons in Protege, as well as the “inferred types” tabs, I had in mind that Pellet would be able to take instance information and classify my instances. I imagined interesting tid bits about anonymous Instances coming in, and conclusions coming out in the form of pellet asserting class membership when Instances meet sufficient conditions. For example, an Instance with a name, a job, and a wife is probably a….that’s right…a man! I’ve since been somewhat disappointed. » Read the rest of this entry «

Where Am I?

You are currently browsing the semanticweb category at The Web Semantic.