여기에 설명 된대로 클래스가있는 최소 온톨로지가 있습니다. 즉, LivingPlace 클래스에는 City 및 RuralArea라는 두 개의 직접적인 하위 클래스가 있습니다. 이 유형의 RuralArea의 하나 개인 ruralArea1는, 그리고 온톨로지 (거짓? X 등) SWRL 규칙
RuralArea (? x)를 → hasHospital
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://example.org/places#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:swrl="http://www.w3.org/2003/11/swrl#"
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://example.org/places"/>
<owl:Class rdf:about="http://example.org/places#LivingPlace"/>
<owl:Class rdf:about="http://example.org/places#City">
<rdfs:subClassOf rdf:resource="http://example.org/places#LivingPlace"/>
</owl:Class>
<owl:Class rdf:about="http://example.org/places#RuralArea">
<rdfs:subClassOf rdf:resource="http://example.org/places#LivingPlace"/>
</owl:Class>
<owl:DatatypeProperty rdf:about="http://example.org/places#hasHospital">
<rdfs:domain rdf:resource="http://example.org/places#LivingPlace"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
</owl:DatatypeProperty>
<swrl:Imp>
<swrl:body>
<swrl:AtomList>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
<rdf:first>
<swrl:ClassAtom>
<swrl:classPredicate rdf:resource="http://example.org/places#RuralArea"/>
<swrl:argument1>
<swrl:Variable rdf:about="urn:swrl#x"/>
</swrl:argument1>
</swrl:ClassAtom>
</rdf:first>
</swrl:AtomList>
</swrl:body>
<swrl:head>
<swrl:AtomList>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
<rdf:first>
<swrl:DatavaluedPropertyAtom>
<swrl:argument2 rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>false</swrl:argument2>
<swrl:propertyPredicate rdf:resource="http://example.org/places#hasHospital"/>
<swrl:argument1 rdf:resource="urn:swrl#x"/>
</swrl:DatavaluedPropertyAtom>
</rdf:first>
</swrl:AtomList>
</swrl:head>
</swrl:Imp>
<owl:NamedIndividual rdf:about="http://example.org/places#ruralArea1">
<rdf:type rdf:resource="http://example.org/places#RuralArea"/>
</owl:NamedIndividual>
</rdf:RDF>
I을 포함 상기 피보호자 4.x의 추론이 온톨로지를로드하여 추론으로 펠렛을 사용하고, 또한 (this message on the Protégé OWL mailing list에서 논의 된 바와 같이) 데이터 타입 속성에 대한 추론이 UI에 displyed되도록 그
ruralArea1 hasHospital false
012,351 다음 스크린 샷과 같이
이 표시됩니다.
펠렛이 추론을 그릴 수 있다는 것을 볼 수있는 또 다른 방법은 SPARQL을 사용하여 요청하는 것입니다. 예를 들어, query.sparql
prefix : <http://example.org/places#>
select ?s ?o where {
?s :hasHospital ?o
}
에 저장된 SPARQL 쿼리와 pellet
명령 행 도구를 사용하여, 우리는 이러한 결과를 얻을 :
실제로에 SWRL을 필요로하지 않습니다 그것은 지적 가치가
$ pellet query -q query.sparql ./places.owl
Query Results (1 answers):
s | o
============================================================
ruralArea1 | false^^http://www.w3.org/2001/XMLSchema#boolean
이 특별한 추론을해라. 당신은 단순히 말할 수
RuralArea subClassOf (거짓 hasHospital 값)
과 같은 결과를 얻을 수 있습니다. Protégé에서 다음 스크린 샷처럼 보입니다. 이것은 SWRL을 지원하지 않는 OWL 추론자를 사용하는 경우에도 동일한 결과를 제공한다는 장점이 있습니다.
환경 설정에서 데이터 유형 어설 션을 활성화하는 것이 주요 개념이었습니다. 감사 – alex