Hi Joshua,
On 07/10/11 20:13, Joshua TAYLOR wrote:
Hello all,
I'm trying to programmatically construct the axiom
C SubClassOf ( inverse(P) some D)
I'd hoped to do something like:
ObjectProperty = inverseP.createObjectProperty();
inverseP.addInverseOf( m.getObjectProperty( NS + "P" ) );
m.createClass( NS + "C" )
.addSubClass( m.createSomeValuesFromRestriction( null, inverseP,
m.getOntClass( NS + "D" ) ) );
but this doesn't work, since there's no version of
createObjectProperty that doesn't require any arguments, and the
String argument to createObjectProperty is required to be non-null.
At the same time, the axiom construction seems to be simple enough, so
I figure someone must know how to get an ObjectProperty for something
like inverse(P) without having given it a name. What's the trick?
I think this is one of thoese cases where the DL worldview and the RDF
worldview collide. RDF is an edge-labelled directed graph: there are no
edges without labels. In other words, there are no triples with
anonymous predicates, so no way of creating a Property object (or
ObjectProperty, etc) without a URI.
You'll have to generate skolem constants for the names of the inverse(P)
properties.
Ian
--
____________________________________________________________
Ian Dickinson Epimorphics Ltd, Bristol, UK
mailto:[email protected] http://www.epimorphics.com
cell: +44-7786-850536 landline: +44-1275-399069
------------------------------------------------------------
Epimorphics Ltd. is a limited company registered in England
(no. 7016688). Registered address: Court Lodge, 105 High St,
Portishead, Bristol BS20 6PT, UK