2012-03-05 6 views
2

私は感染または病気に感染していない者に対処するためのオントロジーを構築したい:グラフィカルOWLでプロパティのドメインを定義する方法は?

<?xml version="1.0"?> 
</rdf:RDF> 
    <owl:Class rdf:about="&person;Disease"/> 

    <owl:Class rdf:about="&person;HealthyPerson"> 
     <rdfs:subClassOf rdf:resource="&person;Person"/> 
     <owl:disjointWith rdf:resource="&person;SickPerson"/> 
    </owl:Class> 

    <owl:Class rdf:about="&person;Person"/> 

    <owl:Class rdf:about="&person;SickPerson"> 
     <rdfs:subClassOf rdf:resource="&person;Person"/> 
    </owl:Class> 
</rdf:RDF> 

class hierarchy as tree

にはどうすれば財産has_disease(人、病)を定義することができますのようなタイプの個人がの個体がによってhas_diseaseとなるように、SickPersonと推測されるだろうか?

答えて

5

これはいかがですか?

<owl:ObjectProperty rdf:ID="hasDisease"> 
    <rdfs:domain rdf:resource="#SickPerson"/> 
    <rdfs:range rdf:resource="#Disease"/> 
</owl:ObjectProperty> 
+0

と推定されます私はProtege 4でRaceProを推論として使用しました。 –

+0

これは人ではないもののための 'hasDisease'の使用を禁じています。猫、犬、樹木には病気があります。 –

+0

@AntoineZimmermannあなたは絶対に正しいですが、OP質問でPersonだけが言及されました。 – Lukasz

0

これには実在的な制限を使用できます。以下の例では、個々のjoeは、私がテストしましたが、この推論が正しくinferedすることはできないようです。SickPerson

<owl:ObjectProperty rdf:about="has_disease"/> 
<owl:Class rdf:about="Disease"/> 
<owl:Class rdf:about="Person"/> 
<owl:Class rdf:about="SickPerson"> 
    <owl:equivalentClass> 
     <owl:Restriction> 
      <owl:onProperty rdf:resource="has_disease"/> 
      <owl:someValuesFrom rdf:resource="Disease"/> 
     </owl:Restriction> 
    </owl:equivalentClass> 
    <rdfs:subClassOf rdf:resource="Person"/> 
</owl:Class> 

<owl:NamedIndividual rdf:about="flu"> 
    <rdf:type rdf:resource="Disease"/> 
</owl:NamedIndividual> 
<owl:NamedIndividual rdf:about="joe"> 
    <rdf:type rdf:resource="Person"/> 
    <has_disease rdf:resource="flu"/> 
</owl:NamedIndividual> 
関連する問題