How to infer individual with more than 2 property in owl

How to infer individual with more than 2 property in owl



I have an ontology with Person and Animal_Lover classes. People are Animal_Lover if they have more than 2 pet. How can I do this in my ontology?


<?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>



I want Smith to be inferred and become Animal_Lover.
But This code does not work in owl( or GraphDB).
What is the problem?



Thanks for your help.





OWL -> Open World Assumption and no Unique Names Assumption
– AKSW
Sep 6 '18 at 10:23




1 Answer
1



There are three problems:


hasOnwer


hasPet





Thank you for your answer
– HoJin Seo
Sep 6 '18 at 15:08





OP’s follow-up: stackoverflow.com/questions/52207828/…
– unor
Sep 7 '18 at 12:17




Thanks for contributing an answer to Stack Overflow!



But avoid



To learn more, see our tips on writing great answers.



Some of your past answers have not been well-received, and you're in danger of being blocked from answering.



Please pay close attention to the following guidance:



But avoid



To learn more, see our tips on writing great answers.



Required, but never shown



Required, but never shown




By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.