2014-09-30 5 views
0

예를 들어 과일과 비타민 클래스가있는 온톨로지가 있습니다. Fruit 클래스는 하위 클래스로 Orange와 Banana 만 있고 Vitamin 클래스는 하위 클래스로 VitaminC 및 VitaminB 만 있습니다. 이 하위 클래스는 모두 서로 분리되어 있습니다.올빼미에서 해당 클래스의 하위 클래스의 제한을 기반으로 클래스에서 제한을 추측하는 방법은 무엇입니까?

또한 Fruit as domain 및 Vitamin as range 클래스와 함께 Provide라는 개체 속성이 있습니다.

그런 다음 "오렌지는 일부 비타민 C를 제공합니다"및 "바나나는 일부 비타민 B를 제공합니다"라는 제한을 정의했습니다.

이 상황에서 "과일은 비타민을 제공합니다"라는 추론을 할 수있는 방법이 있습니까?

나는 owlapi를 사용하여 이것을하고 있지만 Protege도 사용하고 있기 때문에 그 중 하나를 사용하면 대답이 좋을 것입니다.

충분한 정보가 아니라면 알려 주시기 바랍니다. 감사!

+0

OWL에는 여러 가지 종류의 제한 사항이 있습니다. "Orange Provide VitaminC"라고 말하는 것만으로는 충분하지 않습니다. "Orange subClassOf (VitaminC 만 제공)"또는 "Orange subClassOf (일부 VitaminC 제공)"또는 다른 것을 작성 했습니까? 오렌지와 바나나가 과일의 철저한 하위 클래스인지 여부도 알려주지 않았습니다. 예를 들어, x가 과일이지만 오렌지 또는 바나나가 아닌 경우, 우리는 그것이 비타민을 제공하는지 여부를 알 수 없습니다. 그렇다면 모든 과일이 비타민을 공급한다고 추측 할 수는 없습니다. –

+0

죄송합니다. 답장하는 데 너무 오래 걸렸습니다! 그리고 나는 미안하다, 나는 "Orange 제공 ** 약간의 ** 비타민 C"를 의미했다. 나는 실수조차 알지 못했다. 나는 그것을 편집 할 것이다. 또한,이 예제에서는 Orange와 Banana라는 두 가지 과일 만 있다고 가정합니다. 클래스의 제한 사항을 기반으로 클래스에 대한 무언가를 유추하는 방법이 있는지 배우고 싶기 때문에 간단한 예제입니다. 너의 질문에 답을했는지 모르겠다. – Lucas

+0

오렌지와 바나나가 과일의 철저한 파티션인지 여부는 아직 알려주지 않았습니다. 'Fruit -> Orange, 'Banana' 계층 구조 만 있으면 모든 과일이 주황색이나 바나나임을 보장하지 않습니다. 오렌지 또는 바나나가 아닌 과일이있을 수 있다면 비타민을 공급하지 못하는 과일이있을 수 있습니다. 모든 과일은 주황색이나 바나나라고하는 공리를 추가해야합니다. –

답변

-1
<?xml version="1.0"?> 


<!DOCTYPE rdf:RDF [ 
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" > 
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > 
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > 
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > 
]> 


<rdf:RDF xmlns="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#" 
    xml:base="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5" 
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
    xmlns:owl="http://www.w3.org/2002/07/owl#" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
    <owl:Ontology rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5"/> 



    <!-- 
    /////////////////////////////////////////////////////////////////////////////////////// 
    // 
    // Object Properties 
    // 
    /////////////////////////////////////////////////////////////////////////////////////// 
    --> 




    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provide --> 

    <owl:ObjectProperty rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provide"/> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideB --> 

    <owl:ObjectProperty rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideB"> 
     <rdfs:subPropertyOf rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provide"/> 
     <owl:propertyDisjointWith rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideC"/> 
     <rdfs:domain> 
      <owl:Restriction> 
       <owl:onProperty rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideB"/> 
       <owl:allValuesFrom rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Banana"/> 
      </owl:Restriction> 
     </rdfs:domain> 
     <rdfs:range> 
      <owl:Restriction> 
       <owl:onProperty rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideB"/> 
       <owl:allValuesFrom rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#B"/> 
      </owl:Restriction> 
     </rdfs:range> 
    </owl:ObjectProperty> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideC --> 

    <owl:ObjectProperty rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideC"> 
     <rdfs:subPropertyOf rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provide"/> 
     <rdfs:domain> 
      <owl:Restriction> 
       <owl:onProperty rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideC"/> 
       <owl:allValuesFrom rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Orange"/> 
      </owl:Restriction> 
     </rdfs:domain> 
     <rdfs:range> 
      <owl:Restriction> 
       <owl:onProperty rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#provideC"/> 
       <owl:allValuesFrom rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#C"/> 
      </owl:Restriction> 
     </rdfs:range> 
    </owl:ObjectProperty> 



    <!-- 
    /////////////////////////////////////////////////////////////////////////////////////// 
    // 
    // Classes 
    // 
    /////////////////////////////////////////////////////////////////////////////////////// 
    --> 




    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#A --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#A"> 
     <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Vitamin"/> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#B --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#B"> 
     <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Vitamin"/> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Banana --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Banana"> 
     <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Fruit"/> 
     <owl:disjointWith rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Orange"/> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#C --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#C"> 
     <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Vitamin"/> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Fruit --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Fruit"> 
     <owl:equivalentClass> 
      <owl:Class> 
       <owl:unionOf rdf:parseType="Collection"> 
        <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Banana"/> 
        <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Orange"/> 
       </owl:unionOf> 
      </owl:Class> 
     </owl:equivalentClass> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Orange --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Orange"> 
     <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Fruit"/> 
    </owl:Class> 



    <!-- http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Vitamin --> 

    <owl:Class rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#Vitamin"> 
     <owl:equivalentClass> 
      <owl:Class> 
       <owl:unionOf rdf:parseType="Collection"> 
        <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#A"/> 
        <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#B"/> 
        <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#C"/> 
       </owl:unionOf> 
      </owl:Class> 
     </owl:equivalentClass> 
    </owl:Class> 



    <!-- 
    /////////////////////////////////////////////////////////////////////////////////////// 
    // 
    // General axioms 
    // 
    /////////////////////////////////////////////////////////////////////////////////////// 
    --> 

    <rdf:Description> 
     <rdf:type rdf:resource="&owl;AllDisjointClasses"/> 
     <owl:members rdf:parseType="Collection"> 
      <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#A"/> 
      <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#B"/> 
      <rdf:Description rdf:about="http://www.semanticweb.org/i.gurjanov/ontologies/2014/8/untitled-ontology-5#C"/> 
     </owl:members> 
    </rdf:Description> 
</rdf:RDF> 



<!-- Generated by the OWL API (version 3.5.0) http://owlapi.sourceforge.net --> 
+0

하지만 Provide의 두 하위 속성을 만들었습니다. Provide 속성 만 사용하여 작동하는 방법이 없습니까? – Lucas

+5

답변을 게시하고 코드를 게시하십시오. – magnudae