Die Lösung für Ihr Problem hängt davon ab, ob "Apfel" eine Instanz von "Frucht" oder "Apfel" eine Unterklasse von "Frucht" ist. Es wäre sinnvoller zu sagen, dass "Apfel" eine Klasse ist, weil es viele Beispiele für Äpfel gibt. Aber da Ignazio eine Lösung präsentierte, bei der "Apfel" eine Instanz ist, und dass seine Antwort akzeptiert wurde, werde ich mit der Annahme beginnen, dass "Apfel" eine Instanz ist. Dann können Sie erreichen, was Sie wollen mit:
:Fruit a owl:Class .
:apple a :Fruit .
:Person a owl:Class .
:bob a :Person .
:loves a owl:ObjectProperty .
[ a owl:Class;
owl:intersectionOf (
:Fruit
[ a owl:Class; owl:complementOf [a owl:Class; owl:oneOf (:apple)] ]
)
] rdfs:subClassOf [
a owl:Restriction;
owl:onProperty [ owl:inverseOf :loves ];
owl:hasValue :bob
] .
Dies sagt, dass alles, was ein :Fruit
ist und nicht :apple
notwendig durch :bob
geliebt wird (:bob
Annahme, daß die Kennung der Person, die keine Äpfel mag Hinweis. dass dies unterscheidet sich von Ignazio-Lösung, die nicht genau modellieren, was der OP will
Nun, wenn es eine Klasse von Äpfeln ist, dann wäre die Lösung.
:Fruit a owl:Class .
:Apple rdfs:subClassOf :Fruit .
:Person a owl:Class .
:bob a :Person .
:loves a owl:ObjectProperty .
[ a owl:Class;
owl:intersectionOf (
:Fruit
[ a owl:Class; owl:complementOf :Apple ]
)
] rdfs:subClassOf [
a owl:Restriction;
owl:onProperty [ owl:inverseOf :loves ];
owl:hasValue :bob
] .
Sie können feststellen, [roli fication] (http://stackoverflow.com/questions/16989042/owl-2-rolification) hilfreich. –