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

Reply via email to