Кажется, в Protege5 есть ошибка. образец онтологии определяется следующим образом:
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#"
xml:base="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Data properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#has_something_1 -->
<owl:DatatypeProperty rdf:about="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#has_something_1">
<owl:propertyDisjointWith rdf:resource="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#has_something_2"/>
</owl:DatatypeProperty>
<!-- http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#has_something_2 -->
<owl:DatatypeProperty rdf:about="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#has_something_2"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#classA -->
<owl:Class rdf:about="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#classA">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#has_something_1"/>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
</owl:equivalentClass>
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#has_something_2"/>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Individuals
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!-- http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#ind_1 -->
<owl:NamedIndividual rdf:about="http://www.semanticweb.org/user/ontologies/2020/0/untitled-ontology-144#ind_1">
<has_something_1 rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10</has_something_1>
</owl:NamedIndividual>
</rdf:RDF>
<!-- Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi -->
как вы видите на рисунке ниже, classA
определяется как две отдельные аксиомы has_something_1 min 1
и has_something_1 min 1
. а ind_1
имеет только одну аксиому :has_something_1 10
.
В этом случае пеллет пеллет выводит ind_1
как экземпляр classA
, что неверно.
но, как показано на рисунке ниже, если бы определение classA
было (has_something_1 min 1 ) and (has_something_2 min 1)
, гранула не выводила бы ind_1
как classA
индивидуума (это правда).
Я уже публиковал эту проблему на github
A EquivalentTo (p1 min 1)
, что означаетA SubclassOf (p1 min 1)
и(p1 min 1) SubclassOf A
. Ваш человек принадлежит(p1 min 1)
, следовательно, он также принадлежитA
. существует огромная разница между наличием i) двух аксиомA EquivalentTo B1
,A EquivalentTo B2
и ii)A EquivalentTo (B1 and B2)
. Из i) вы получаетеB1 SubclassOf A
иB2 SubclassOf A
, а ii) приводит к(B1 and B2) SubclassOf A
. Оба не семантически эквивалентны, вам нужно создать свой собственный пример из реальной жизни, чтобы понять это. - person UninformedUser   schedule 13.01.2020