Как сделать вывод о человеке с более чем 2 собственности в сове
У меня есть онтология с классами Person и Animal_Lover. Люди Animal_Lover, если у них более 2 питомцев. Как я могу сделать это в моей онтологии?
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.example.com/test"
xml:base="http://www.example.com/test"
xmlns:test="http://www.example.com/test#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
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.example.com/test"/>
<owl:ObjectProperty rdf:about="http://www.example.com/test#hasPet"/>
<owl:Class rdf:about="http://www.example.com/test#Animal_Lover">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.example.com/test#hasOwner"/>
<owl:minQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">2</owl:minQualifiedCardinality>
<owl:onClass rdf:resource="http://www.example.com/test#Mammal"/>
</owl:Restriction>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="http://www.example.com/test#Person"/>
</owl:Class>
<!-- http://www.example.com/test#Mammal -->
<owl:Class rdf:about="http://www.example.com/test#Mammal"/>
<!-- http://www.example.com/test#Person -->
<owl:Class rdf:about="http://www.example.com/test#Person">
<rdfs:subClassOf rdf:resource="http://www.example.com/test#Mammal"/>
</owl:Class>
<!-- http://www.example.com/test#Smith -->
<owl:NamedIndividual rdf:about="http://www.example.com/test#Smith">
<rdf:type rdf:resource="http://www.example.com/test#Person"/>
<test:hasPet rdf:resource="http://www.example.com/test#Lulu"/>
<test:hasPet rdf:resource="http://www.example.com/test#Nala"/>
<test:hasPet rdf:resource="http://www.example.com/test#Tank"/>
</owl:NamedIndividual>
</rdf:RDF>
Я хочу, чтобы Смит был выведен и стал Animal_Lover. Но этот код не работает в сове (или GraphDB). В чем проблема?
Спасибо за вашу помощь.
1 ответ
Решение
Есть три проблемы:
- Во-первых, вполне возможно, что "Нала" и "Танк" - это два псевдонима питомца Лулу. Так что, возможно, у Смита только один питомец, которого зовут Лулу и по каким-то причинам люди любят называть Нала или Танк.
- Во-вторых, вывод может произойти, только если вы используете
hasOnwer
имущество. Ты используешьhasPet
вместо. - В-третьих, вы не сказали, что Лула, Нала и Танк - млекопитающие. Если они рыбы, то вы не можете сделать вывод, что Смит - любитель животных (!)