2017-10-10 7 views
-1

私はPersonクラスとCityクラスのオントロジーを持っています。人々は都市に旅行し、この旅行はtraveledToオブジェクトプロパティで表されます。 WorldTravelerクラスを追加したいと思います。彼らが2つ以上の都市に旅行した場合、人々は世界の旅行者です。私のオントロジーでこれをどうやって行えますか?プロパティを数えてOWLに知識を推論する

@prefix : <http://www.semanticweb.org/chris/ontologies/2017/9/untitled-ontology-64#> . 
@prefix owl: <http://www.w3.org/2002/07/owl#> . 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 
@prefix xml: <http://www.w3.org/XML/1998/namespace> . 
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . 
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 
@base <http://www.semanticweb.org/chris/ontologies/2017/9/untitled-ontology-64> . 

<http://www.semanticweb.org/chris/ontologies/2017/9/untitled-ontology-64> rdf:type owl:Ontology . 

:traveledTo rdf:type owl:ObjectProperty ; 
      rdfs:domain :Person ; 
      rdfs:range :City . 

:City rdf:type owl:Class . 

:Person rdf:type owl:Class . 

:Bob rdf:type owl:NamedIndividual , 
       :Person ; 
    :traveledTo :London , 
       :Ottawa , 
       :Paris . 

:Brussels rdf:type owl:NamedIndividual , 
        :City . 

:London rdf:type owl:NamedIndividual , 
       :City . 

:Ottawa rdf:type owl:NamedIndividual , 
       :City . 

:Paris rdf:type owl:NamedIndividual , 
       :City . 

:Ralph rdf:type owl:NamedIndividual , 
       :Person ; 
     :traveledTo :Rome . 

:Rome rdf:type owl:NamedIndividual , 
       :City . 

:Washington rdf:type owl:NamedIndividual , 
        :City . 

私は、次のクラスを追加しようとしたが、動作していないようでした:

:WorldTraveler rdf:type owl:Class ; 
       owl:equivalentClass [ owl:intersectionOf (:Person 
                  [ rdf:type owl:Restriction ; 
                  owl:onProperty :traveledTo ; 
                  owl:minQualifiedCardinality "2"^^xsd:nonNegativeInteger ; 
                  owl:onClass :City 
                  ] 
                 ) ; 
            rdf:type owl:Class 
            ] . 

私は私の推論があるため、オープンのラルフがWorldTravelerではないことを推測することができないかもしれないと信じています世界の仮定。しかし、彼は3つの都市に旅行したので、BobはWorldTravelerであると推測できるはずです。

ありがとうございました。

クリス

答えて

0

オープンワールド仮定(OWA)に加えて、ユニークな名前の仮定(UNA)が存在します。 OWLは前者(OWA)を作成し、後者(UNA)は作成しません。

明示的にそれぞれの個人を異なるものにする必要があります。タートル構文で

、それは次のようになります。

[ rdf:type owl:AllDifferent ; 
    owl:distinctMembers (:Brussels :London :Ottawa :Paris :Rome :Washington) 
] . 
+0

感謝を。私はUNAを知らなかった。それは私のためにそれを解決しました。 – Chris

関連する問題