2017-02-08 11 views
0

owl:Class Personowl:Class Fruit이 있다고 가정 해 보겠습니다. 그 외에 우리는 owl:ObjectProperty loves (도메인 : 사람, 범위 : 과일) 있습니다. 두 클래스의 인스턴스가 여러 개 있습니다.OWL : 개인과 일정 범위의 개인 간의 관계를 미리 정의 할 수 있습니까?

OWL에서 클래스 Person의 한 특정 인스턴스가 사과와 다른 과일 인스턴스 (예 : 과일)의 모든 사랑 관계를 수동으로 정의하지 않고도 과일을 제외한 모든 과일을 좋아한다는 것을 표현할 수 있습니까? 사과 제외)?

보다 추상적 인 수준 : 인스턴스와 인스턴스 범위 (클래스 수준 또는 인스턴스 자체 중 하나) 사이의 관계를 정의 할 수 있습니까?

+1

찾을 수 있습니다 fication] (http://stackoverflow.com/questions/16989042/owl-2-rolification) 도움이됩니다. –

답변

1

"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 
] . 
+0

내 원래의 의도는 사과를 과일의 경우로 보는 것이 었습니다. 그러나 그것이 그것이 클래스라고 가정하는 것이 합리적이라는 것을 알 수 있습니다. 두 가지 방법을 설명해 주셔서 감사합니다! – phil155

+0

나는 Protégé에서 제안한 것을하기 위해 고심하고 있습니다. (사과가 Fruit의 인스턴스라고 가정합니다.) 유형을 추가했습니다. "과일에만, 과일에는 (사과가 아닙니다)"을 추가했습니다. 과일의 사례가 여러 개 있지만 모두 뚜렷한 개인이지만 추론자는 단 하나의 사랑 관계를 추론하지 않습니다. 유형조차 : "과일 만 사랑한다"는 어떤 추론도 나오지 않습니다. 내가 누락 된 것에 대한 아이디어는? 귀하의 도움은 높이 평가됩니다! :) – phil155

+1

제자 5를 사용하는 경우 '과일'클래스를 선택하십시오. "Description"영역에는 "General class axioms"가 있어야합니다. 동그라미 표시된 +를 클릭하고 새로 열어 진 상자에 다음 텍스트를 추가하십시오 :'과일 ((사과)가 아님) SubClassOf 값을 바꿉니다. ' 그런 다음 OK를 누릅니다. –

2

설명하는 내용에 OneOf 제한이 사용됩니다. 한 클래스에서 하나의 인스턴스를 제외하려면 (질문의 첫 부분에 대해) 과일 클래스와 OneOf (Apple)의 부정을 교차시켜 사과 속성을 사용하여 러브 속성에 대한 범위 어썰트를 입력하는 것으로 선언 할 수 있습니다 .