2016-07-14 4 views
0

OWL을 조사 중이지만 여전히 다음을 이해할 수 없습니다. 우리는 가정 수업이 있다고 가정 해 봅시다. BadFamily 및 GoodFamily 하위 클래스가 있습니다 (하위 클래스가 아닌 개인이 될 수도 있음). 현실 세계에서 가족 개념은 여러 개체 (예 : 아버지, 어머니, 아들, 딸)의 존재를 암시합니다. 가족 중 일부는 서로를 사랑하거나 서로를 증오 할 수 있습니다 ("사랑"과 "증오"는 내가 이해하는 한 관계 임). 따라서 BadFamily에서 몇몇 사람들은 서로를 싫어합니다. GoodFamily에서 여러 사람들이 서로를 사랑합니다. 그렇다면 어떻게하면 OWL (Protege 예제 또는 기본 방향 조언이 좋을까요?)에서 어떻게 표현할 수 있을까요?OWL의 복잡한 개념 설명

또한 동일한 사례와 관계가 모든 경우에 사용되지만 다른 조합으로 다른 사례 설명으로 간주 될 수 있습니다.

+0

귀하의 GoodFamily''의 정의와'BadFamily'는 설명이 필요합니다. 어떤 사람들이 서로를 사랑한다면 좋을 수도 있고, 서로를 증오하는 것이 좋지 않을 수도 있지만, 두 가지 유형의 속성과 연결된 가족이있는 가족이 어떻게 분류되어야하는지, 또는 구성원간에 그러한 속성이없는 가족이 어떻게 분류 될 수 있습니까? –

+0

것은 클래스 인식 작업이 아니라는 의미입니다. 그것은 좋지 않게합시다. 패밀리 또는 배드 패밀리, 그냥 가족 1, 패밀리 2 ... 패밀리 N. 주요 질문은 - 사례 정보를 저장하는 방법입니다. – arinarodionova

+0

질문은 지금보다 분명하지 않습니다. 좋거나 나쁜 가정에 잠시 머물러 봅시다.GoodFamily 하위 클래스와 BadFamily 하위 클래스가있는 Family를 가질 수 있으며 FamilyMember 클래스가 필요할 수도 있습니다. 그런 다음 분류 조건을 정의합니다. 그런 다음 Family1, Family2, Family3 및 Person1, Person2 등의 개인이 있습니다. 개인은 가족 구성원으로 주장되거나 추론을 통해 추론 할 수 있습니다. 그런 다음 가족 구성원의 분포는 익명의 동급 또는 하위 클래스를 통해 두 하위 클래스의 정의에 따라 달라집니다. –

답변

0

구현 방법은 다음과 같습니다.

: - 가족

--GoodFamily

--BadFamilly

-FamilyMember --LovesFamilyMember

및 객체 속성에 대한

다음과 같은 분류를 만들 수 있습니다

-hasFamilyMe mber

-hasRelative

-lovesFamilyMember

-hatesFamilyMember

있는 후자는 회원 만 자신을 사랑하면 좋은 가족을 분류 제외, irreflexive 선언해야한다.

은 그럼 당신은 lovesFamilyMember some FamilyMember의 동등한로 FamilyMember을 사랑하는 사람들의 클래스, 및 GoodFamily' as equivalent of hasFamilyMember 일부 LovesFamilyMember`의 클래스를 정의 할 필요가있다.

존경받는 사랑과 싫어하는 회원이 같은 가족임을 다시 고려해야합니다. 먼저 hasRelative이 가족 구성원과 동일한 가족의 구성원을 연결하는 객체 속성 인 것으로 정의하면됩니다 ( inverse (hasFamilyMember) o hasFamilyMember). 그런 다음이 관계를 클래스 LovesFamilyMember의 멤버십을위한 또 다른 조건으로 추가해야합니다. 이제 해당 클래스의 전체 정의는 lovesFamilyMember some FamilyMember and hasRelative some FamilyMember이됩니다.

그리고이 모두 함께 개인 A, B로, 거북의 모습이, 그리고 Family1 :

################################################################# 
    # Object Properties 
    ################################################################# 

    :hasFamilyMember rdf:type owl:ObjectProperty ; 
        rdfs:domain :Family ; 
        rdfs:range :FamilyMember . 

    :hates rdf:type owl:ObjectProperty , 
        owl:IrreflexiveProperty . 

    :hatesFamilyMember rdf:type owl:ObjectProperty ; 
         rdfs:subPropertyOf :hates ; 
         rdfs:range :FamilyMember . 

    :loves rdf:type owl:ObjectProperty , 
        owl:IrreflexiveProperty . 


    :lovesFamilyMember rdf:type owl:ObjectProperty ; 
         rdfs:subPropertyOf :loves ; 
         rdfs:range :FamilyMember . 

    ################################################################# 
    # Classes 
    ################################################################# 

    :BadFamily rdf:type owl:Class ; 
       rdfs:subClassOf :Family . 

    :Family rdf:type owl:Class . 

    :FamilyMember rdf:type owl:Class . 

    :GoodFamily rdf:type owl:Class ; 
       owl:equivalentClass [ rdf:type owl:Restriction ; 
             owl:onProperty :hasFamilyMember ; 
             owl:someValuesFrom :LovesFamilyMember 
            ] ; 
       rdfs:subClassOf :Family . 

:LovesFamilyMember rdf:type owl:Class ; 
        owl:equivalentClass [ owl:intersectionOf ([ rdf:type       owl:Restriction ; 
owl:onProperty :hasRelative ; 
                   owl:someValuesFrom :FamilyMember 
                   ] 
                   [ rdf:type owl:Restriction ; 
owl:onProperty :lovesFamilyMember ; 
                   owl:someValuesFrom :FamilyMember 
                   ] 
                  ) ; 
             rdf:type owl:Class 
             ] ; 
        rdfs:subClassOf :FamilyMember . 

    ################################################################# 
    # Individuals 
    ################################################################# 

    :A rdf:type owl:NamedIndividual , 
       :FamilyMember ; 
     :lovesFamilyMember :B . 

    :B rdf:type owl:NamedIndividual , 
       :FamilyMember . 

    :Family1 rdf:type owl:NamedIndividual , 
         :Family ; 
      :hasFamilyMember :A , 
           :B . 

    :Family2 rdf:type owl:NamedIndividual , 
         :Family . 

    ################################################################# 
    # General axioms 
    ################################################################# 

    [ rdf:type owl:AllDifferent ; 
     owl:distinctMembers (:A 
          :B 
         ) 
    ] . 
+0

정말로 자세한 답장을 보내 주셔서 감사합니다. 이제 저는 네오위즈에서 지식을 표현하는 것이 훨씬 간단하다는 것을 알았습니다. 왜냐하면 개인과 수업을 가진 모든 것들이 과제를 실제로 복잡하게 만듭니다 – arinarodionova