How do I deduce all of a person's descendants?

Viewed 72

Here is my example.owl:

@prefix : <#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://ex.org> .

<http://ex.org> rdf:type owl:Ontology .
:hasChild rdf:type owl:ObjectProperty ;
          rdfs:subPropertyOf :hasDescendant .
:hasDaughter rdf:type owl:ObjectProperty ;
             rdfs:subPropertyOf :hasChild ;
             owl:propertyDisjointWith :hasSon .
:hasDescendant rdf:type owl:ObjectProperty .
:hasSon rdf:type owl:ObjectProperty ;
            rdfs:subPropertyOf :hasChild .
:Person rdf:type owl:Class .

:Bob rdf:type owl:NamedIndividual , :Person ;
              :hasDaughter :Mary ;
              :hasSon :John .
:LittleBoy rdf:type owl:NamedIndividual , :Person .
:LittleGirl rdf:type owl:NamedIndividual ,  :Person .
:John rdf:type owl:NamedIndividual ,  :Person ;
      :hasSon :LittleBoy .
:Mary rdf:type owl:NamedIndividual , :Person ;
      :hasDaughter :LittleGirl .

I want to get all of a Bob's descendants or Bob's child by a Sparql query, How do I write this SPARQL statement? Thanks for help.

0 Answers
Related