현재 더 큰 온톨로지를 작성/수정하고 있습니다. 내가 제한 사항을 정의하는 문제가 있었다로서 나는 매우 짧은 예제를 빌드 : 나는 클래스와 클래스와 IslandCountry로 EuropeanCountry 있습니다 Protege의 추론자가 제한/카디널리티로 작동하지 않습니다.
<owl:Class rdf:about="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#EuropeanCountry">
<rdfs:subClassOf rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#Country"/>
</owl:Class>
<!-- http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#IslandCountry -->
<owl:Class rdf:about="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#IslandCountry">
<rdfs:subClassOf rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#Country"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#borders"/>
<owl:maxQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:maxQualifiedCardinality>
<owl:onClass rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#EuropeanCountry"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
당신은 내가 Protege는에 "maxQualifiedCardinality"제한을 설정할 볼 수 있듯이. 나는 어떤 사람들과를 만들 경우 (C1, C2, 독일은 EuropeanCountry는 섬 IslandCountry입니다입니다)과 경계의 속성을 관련 :
<owl:NamedIndividual rdf:about="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#Island">
<rdf:type rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#IslandCountry"/>
<borders rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#C1"/>
<borders rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#C2"/>
<borders rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#Germany"/>
</owl:NamedIndividual>
나는 3을 설정할 수 없습니다 것을 소라 추론에 의해 슬로우 오류가 섬에 이웃. 이제 라인을 바꾼다면
<owl:maxQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxQualifiedCardinality>
(카디널리티 1) 예제 에서처럼 이웃을 세 개 설정하면 아무런 오류가 발생하지 않습니다. 아무도 이것을 설명하고 바라건대 한 클래스가 x 클래스를 가져야한다는 제한을 작성할 수 있습니까? (이 경우,이 섬에는 2 개의 이웃이 있어야하고 세 번째는 추론자가 오류를 던져야합니다) ? 여러분의 도움과 친절 감사에 대한
감사합니다, 편집
tanktoo : 내가 지금 AllDifferent 모든 개인을 추가 한 : 그것은 지금 위의 제한과 협력
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AllDifferent"/>
<owl:distinctMembers rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#C1"/>
<rdf:Description rdf:about="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#C2"/>
<rdf:Description rdf:about="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#Germany"/>
</owl:distinctMembers>
</rdf:Description>
및 reasoner는 maxCardinality가 1 일 때 3 국경 국가를 설정할 수 없다고 알려줍니다. 이제 제한을 다음으로 변경했습니다 :
개 이웃이 있기 때문에 추론이 errro을 감지이 경우<owl:NamedIndividual rdf:about="http://www.semanticweb.org/tanktoo
/ontologies/2016/10/untitled-ontology-81#Island">
<rdf:type rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#IslandCountry"/>
<borders rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#C1"/>
<borders rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#C2"/>
<borders rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#Germany"/>
</owl:NamedIndividual>
:
<owl:Class rdf:about="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#IslandCountry">
<rdfs:subClassOf rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#Country"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#borders"/>
<owl:minQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minQualifiedCardinality>
<owl:onClass rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#EuropeanCountry"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#borders"/>
<owl:maxQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">2</owl:maxQualifiedCardinality>
<owl:onClass rdf:resource="http://www.semanticweb.org/tanktoo/ontologies/2016/10/untitled-ontology-81#EuropeanCountry"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
나는 지금 미만 1 개 또는 2 개 이상의 이웃을 설정하면 추론이 오류를 감지 것으로 기대한다. 나는 이제 모든 이웃을 삭제하면 섬 경계 0 개국의 추론자가 저에게 오류를주지 않습니다. 누군가 왜 나를 설명 할 수 있을까요? 이 도구의 말씀 인 경우
덕분에 당신의 도움 :)
전체 예외를 확인하는 것이 좋습니다. 나는 HermiT가 당신이 제공 한 온톨로지에 어떤 에러도 던질 수 있다고 생각하지 않습니다. – AKSW
maxQualifiedCardinality를 0으로 설정하면 허미트가 작동하지 않는다는 오류 메시지가 아니라는 메시지가 표시됩니다. – tanktoo