I am using OWL Api 4.0 in eclipse 3.4 with a simple ontology in Protege 4. I have two classes "Ward" and "Gaurdian". Individuals of these classes are related by object property isWardOf. How can i retrieve the individuals of class Ward that are related to same individual of Class Gaurdian. consider the following figure:-
I want to retrieve the Fact that Peter and Allice are related or siblings as they both are connected to Jack. Any rough clue as to how to achieve this using OWL API 4.0.
My complete owl file is affixed:-
<?xml version="1.0"?>
<!DOCTYPE Ontology [
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY xml "http://www.w3.org/XML/1998/namespace" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>
<Ontology xmlns="http://www.w3.org/2002/07/owl#"
xml:base="http://www.semanticweb.org/antonio/ontologies/2014/11/untitled-ontology-46"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
ontologyIRI="http://www.semanticweb.org/antonio/ontologies/2014/11/untitled-ontology-
46">
<Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
<Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/>
<Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/>
<Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/>
<Declaration>
<Class IRI="#Gaurdian"/>
</Declaration>
<Declaration>
<Class IRI="#Ward"/>
</Declaration>
<Declaration>
<ObjectProperty IRI="#isWardOf"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Allice"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Amber"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Jack"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Paul"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Peter"/>
</Declaration>
<ClassAssertion>
<Class IRI="#Ward"/>
<NamedIndividual IRI="#Allice"/>
</ClassAssertion>
<ClassAssertion>
<Class IRI="#Gaurdian"/>
<NamedIndividual IRI="#Amber"/>
</ClassAssertion>
<ClassAssertion>
<Class IRI="#Gaurdian"/>
<NamedIndividual IRI="#Jack"/>
</ClassAssertion>
<ClassAssertion>
<Class IRI="#Ward"/>
<NamedIndividual IRI="#Paul"/>
</ClassAssertion>
<ClassAssertion>
<Class IRI="#Ward"/>
<NamedIndividual IRI="#Peter"/>
</ClassAssertion>
<ObjectPropertyAssertion>
<ObjectProperty IRI="#isWardOf"/>
<NamedIndividual IRI="#Allice"/>
<NamedIndividual IRI="#Jack"/>
</ObjectPropertyAssertion>
<ObjectPropertyAssertion>
<ObjectProperty IRI="#isWardOf"/>
<NamedIndividual IRI="#Amber"/>
<NamedIndividual IRI="#Jack"/>
</ObjectPropertyAssertion>
<ObjectPropertyAssertion>
<ObjectProperty IRI="#isWardOf"/>
<NamedIndividual IRI="#Paul"/>
<NamedIndividual IRI="#Amber"/>
</ObjectPropertyAssertion>
<ObjectPropertyDomain>
<ObjectProperty IRI="#isWardOf"/>
<Class IRI="#Ward"/>
</ObjectPropertyDomain>
<ObjectPropertyRange>
<ObjectProperty IRI="#isWardOf"/>
<Class IRI="#Gaurdian"/>
</ObjectPropertyRange>
</Ontology> >