"apple"이 "fruit"또는 "apple"의 인스턴스가 "fruit"의 하위 클래스인지 여부에 따라 솔루션이 달라집니다. 사과의 경우가 많기 때문에 "사과"가 수업이라고 말하는 것이 더 합리적입니다. 그러나 Ignazio가 "사과"가 인스턴스이고, 그의 대답이 받아 들여지는 해결책을 제시 한 이래로, 나는 "사과"가 인스턴스라고 가정하면서 시작할 것입니다. 그럼 당신은 당신이 원하는 것을 얻을 수 있습니다 모든 것이 :Fruit
하고 :apple
가 :bob
에 의해 필요 사랑하지 그 것을 말하고
: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
] .
이을 (:bob
을 가정하고 사과를 좋아하지 않는 사람의 식별자입니다 참고. 것을이 정확히 영업 이익은 원하는 것을 모델링하지 않습니다 IGNAZIO의 솔루션, 다른
이제 사과의 클래스가있는 경우, 그 해결책은 다음과 같습니다.
당신은 [roli을
: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
] .
찾을 수 있습니다 fication] (http://stackoverflow.com/questions/16989042/owl-2-rolification) 도움이됩니다. –