sparta's use of OWL

Nice imho use of OWL to improve an RDF API. It's node-centric,
ie. programatic objects bind to nodes in some specific RDF graph 
data. I had something like this in Ruby once; it's a nice way to
expose RDF in scripting environments where property names 
can be fabricated at runtime (eg. python, perl, ruby, ...).

Spotted via planetrdf.com

http://planetrdf.com/
-> http://www.mnot.net/blog/2005/03/17/sparta
-> http://www.mnot.net/sw/sparta/

[[
Sparta is a simple API for RDF that binds RDF nodes to Python objects
and RDF arcs to attributes of those Python objects. As such, it can be
considered a “data binding” from RDF to Python.

...

Accessing and Manipulating Data

Once you have a node, you can access and change its properties by name,
using the prefix mapping as explained above. For example,

print foo.rdf_type

will print the 'rdf_type' property of the 'foo' node.

There are two ways to access a property's values, depending on what
Sparta knows about it through the schema store. If it is an
owl:FunctionalProperty, or if the subject is subclassed to restrict that
property with either a owl:maxCardinality or a owl:cardinality of "1",
the property can be accessed as a normal, singular value; that is, it
can be accessed as explained above, assigned with the '=' operator,
deleted with 'del', and so forth.

Otherwise, the property's value is assumed to have a cardinality greater
than one, and implements a subset of the sets.Set interface. For
example, you can add to the set with the add method, like this;

foo.children.add("bob")

test for membership with the in operator, and so forth. See the
PropertySet class for the exact methods implemented.
]]

Received on Friday, 18 March 2005 18:48:02 UTC