Проблема, с которой я сталкиваюсь, заключается в том, что рассудители (например, Pellet) не делят людей на классы, в определениях которых используется ограничение свойства данных.
Я создал минимальный пример онтологии OWL (на основе известного примера пиццы) в протеже 5, чтобы проиллюстрировать эту проблему.
Существует три класса: MarghartiaPizza, LowCaloriePizza, HighCaloriePizza.Существует свойство данных hasCalorificContentValue.Существуют два человека класса MarghartiaPizza, ExampleMarghartiaPizza и QuattroFormaggio, с 263 и 723 значениями соответственно в качестве их hasCalorificContentValue.
Классы HighCaloriePizza и LowCaloriePizza определены как классы с> = 400, соответственно <400, значениеConualifical есть у класса. </p>
Вопрос в том, почему умозаключающий не делает вывод, что эти два человека относятся к классам HighCaloriePizza и LowCaloriePizza на основании их значений?
Что-то не так с синтаксисом выражений моего классав High / LowCaloriePizza или hasCalorificContentValue?
Вы должны быть в состоянии скопировать / вставить код в файл, открыть его с помощью Protege 5 и попробовать запустить средство анализа Pellet.
<?xml version="1.0"?>
<Ontology xmlns="http://www.w3.org/2002/07/owl#"
xml:base="http://www.pizza.com/ontologies/pizza.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#"
ontologyIRI="http://www.pizza.com/ontologies/pizza.owl"
versionIRI="http://www.pizza.com/ontologies/pizza.owl/v1.0">
<Prefix name="" IRI="http://www.pizza.com/ontologies/pizza.owl"/>
<Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/>
<Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
<Prefix name="xml" IRI="http://www.w3.org/XML/1998/namespace"/>
<Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/>
<Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/>
<Declaration>
<Class IRI="#HighCaloriePizza"/>
</Declaration>
<Declaration>
<Class IRI="#LowCaloriePizza"/>
</Declaration>
<Declaration>
<Class IRI="#MargheritaPizza"/>
</Declaration>
<Declaration>
<DataProperty IRI="#hasCalorificContentValue"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#ExampleMargherita"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#QuattroFormaggio"/>
</Declaration>
<EquivalentClasses>
<Class IRI="#HighCaloriePizza"/>
<DataSomeValuesFrom>
<DataProperty IRI="#hasCalorificContentValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:integer"/>
<FacetRestriction facet="http://www.w3.org/2001/XMLSchema#minInclusive">
<Literal datatypeIRI="http://www.w3.org/2001/XMLSchema#integer">400</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#LowCaloriePizza"/>
<DataSomeValuesFrom>
<DataProperty IRI="#hasCalorificContentValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:integer"/>
<FacetRestriction facet="http://www.w3.org/2001/XMLSchema#maxExclusive">
<Literal datatypeIRI="http://www.w3.org/2001/XMLSchema#integer">400</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</EquivalentClasses>
<ClassAssertion>
<Class IRI="#MargheritaPizza"/>
<NamedIndividual IRI="#ExampleMargherita"/>
</ClassAssertion>
<ClassAssertion>
<Class IRI="#MargheritaPizza"/>
<NamedIndividual IRI="#QuattroFormaggio"/>
</ClassAssertion>
<DataPropertyAssertion>
<DataProperty IRI="#hasCalorificContentValue"/>
<NamedIndividual IRI="#ExampleMargherita"/>
<Literal datatypeIRI="http://www.w3.org/2001/XMLSchema#integer">263</Literal>
</DataPropertyAssertion>
<DataPropertyAssertion>
<DataProperty IRI="#hasCalorificContentValue"/>
<NamedIndividual IRI="#QuattroFormaggio"/>
<Literal datatypeIRI="http://www.w3.org/2001/XMLSchema#integer">723</Literal>
</DataPropertyAssertion>
<FunctionalDataProperty>
<DataProperty IRI="#hasCalorificContentValue"/>
</FunctionalDataProperty>
</Ontology>
Вот скриншот приложения Protege с запущенным Pellet.Как видите, выбрана HighCaloriePizza, но QuattroFormaggio отсутствует в «экземплярах».