<?xml version="1.0"?>
<rdf:RDF
    xmlns:rss="http://purl.org/rss/1.0/"
    xmlns:swrl="http://www.w3.org/2003/11/swrl#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:swrlImport="http://www.daml.org/rules/proposal/swrl.owl#"
    xmlns="http://a.com/ontology#"
    xmlns:swrlb="http://www.w3.org/2003/11/swrlb#"
    xmlns:swrlbImport="http://www.daml.org/rules/proposal/swrlb.owl#"
    xmlns:jms="http://jena.hpl.hp.com/2003/08/jms#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"
    xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:base="http://a.com/ontology">
  <owl:Ontology rdf:about="">
    <owl:imports rdf:resource="http://www.daml.org/rules/proposal/swrlb.owl"/>
    <owl:imports rdf:resource="http://www.daml.org/rules/proposal/swrl.owl"/>
  </owl:Ontology>
  <owl:Class rdf:ID="Gender">
    <owl:equivalentClass>
      <owl:Class>
        <owl:oneOf rdf:parseType="Collection">
          <Gender rdf:ID="Female"/>
          <Gender rdf:ID="Male"/>
        </owl:oneOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:ID="Woman">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:hasValue rdf:resource="#Female"/>
            <owl:onProperty>
              <owl:FunctionalProperty rdf:ID="hasSex"/>
            </owl:onProperty>
          </owl:Restriction>
          <owl:Class rdf:ID="Person"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:ID="Aunt">
    <owl:disjointWith>
      <owl:Class rdf:ID="Uncle"/>
    </owl:disjointWith>
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Relative"/>
    </rdfs:subClassOf>
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Woman"/>
          <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
              <owl:Restriction>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:ID="hasNephew"/>
                </owl:onProperty>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
              </owl:Restriction>
              <owl:Restriction>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:ID="hasNiece"/>
                </owl:onProperty>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
              </owl:Restriction>
            </owl:unionOf>
          </owl:Class>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Person">
    <owl:equivalentClass>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:ID="Man"/>
          <owl:Class rdf:about="#Woman"/>
        </owl:unionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:ID="Father">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:ID="Parent"/>
          <owl:Class rdf:about="#Man"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Relative">
    <rdfs:subClassOf rdf:resource="#Person"/>
    <owl:equivalentClass>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:ID="Child"/>
          <owl:Class rdf:about="#Parent"/>
          <owl:Class rdf:about="#Aunt"/>
          <owl:Class rdf:ID="Nephew"/>
          <owl:Class rdf:ID="Niece"/>
          <owl:Class rdf:about="#Uncle"/>
          <owl:Class rdf:ID="Sibling"/>
        </owl:unionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:ID="Son">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Man"/>
          <owl:Class rdf:about="#Child"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <owl:disjointWith>
      <owl:Class rdf:ID="Daugther"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:ID="Mother">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Parent"/>
          <owl:Class rdf:about="#Woman"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Sibling">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:ID="hasSibling"/>
            </owl:onProperty>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
            >1</owl:minCardinality>
          </owl:Restriction>
          <owl:Restriction>
           <owl:allValuesFrom>
            <owl:Class rdf:about="#Sibling"/>
           </owl:allValuesFrom>
           <owl:onProperty>
            <owl:ObjectProperty rdf:about="#hasSibling"/>
           </owl:onProperty>
          </owl:Restriction>          
          <owl:Class rdf:about="#Person"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Uncle">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Man"/>
          <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
              <owl:Restriction>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:about="#hasNephew"/>
                </owl:onProperty>
              </owl:Restriction>
              <owl:Restriction>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:about="#hasNiece"/>
                </owl:onProperty>
              </owl:Restriction>
            </owl:unionOf>
          </owl:Class>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:subClassOf rdf:resource="#Relative"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:hasValue rdf:resource="#Male"/>
        <owl:onProperty>
          <owl:FunctionalProperty rdf:about="#hasSex"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="#Aunt"/>
  </owl:Class>
  <owl:Class rdf:ID="Sister">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Sibling"/>
          <owl:Class rdf:about="#Woman"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <owl:disjointWith>
      <owl:Class rdf:ID="Brother"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:about="#Child">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:ID="hasParent"/>
            </owl:onProperty>
            <owl:someValuesFrom rdf:resource="#Person"/>
          </owl:Restriction>
          <owl:Class rdf:about="#Person"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Man">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:hasValue rdf:resource="#Male"/>
            <owl:onProperty>
              <owl:FunctionalProperty rdf:about="#hasSex"/>
            </owl:onProperty>
          </owl:Restriction>
          <owl:Class rdf:about="#Person"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Daugther">
    <owl:disjointWith rdf:resource="#Son"/>
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Child"/>
          <owl:Class rdf:about="#Woman"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Nephew">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:FunctionalProperty rdf:about="#hasSex"/>
        </owl:onProperty>
        <owl:hasValue rdf:resource="#Male"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
              <owl:Restriction>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:ID="hasUncle"/>
                </owl:onProperty>
              </owl:Restriction>
              <owl:Restriction>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:ID="hasAunt"/>
                </owl:onProperty>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
              </owl:Restriction>
            </owl:unionOf>
          </owl:Class>
          <owl:Class rdf:about="#Man"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <owl:disjointWith>
      <owl:Class rdf:about="#Niece"/>
    </owl:disjointWith>
    <rdfs:subClassOf rdf:resource="#Relative"/>
  </owl:Class>
  <owl:Class rdf:about="#Niece">
    <owl:disjointWith rdf:resource="#Nephew"/>
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
              <owl:Restriction>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:about="#hasUncle"/>
                </owl:onProperty>
              </owl:Restriction>
              <owl:Restriction>
                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
                >1</owl:minCardinality>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:about="#hasAunt"/>
                </owl:onProperty>
              </owl:Restriction>
            </owl:unionOf>
          </owl:Class>
          <owl:Class rdf:about="#Woman"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:FunctionalProperty rdf:about="#hasSex"/>
        </owl:onProperty>
        <owl:hasValue rdf:resource="#Female"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Relative"/>
  </owl:Class>
  <owl:Class rdf:about="#Brother">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Sibling"/>
          <owl:Class rdf:about="#Man"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <owl:disjointWith rdf:resource="#Sister"/>
  </owl:Class>
  <owl:Class rdf:about="#Parent">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:someValuesFrom rdf:resource="#Person"/>
            <owl:onProperty>
              <owl:ObjectProperty rdf:ID="hasChild"/>
            </owl:onProperty>
          </owl:Restriction>
          <owl:Class rdf:about="#Person"/>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:ObjectProperty rdf:ID="hasConsort">
    <rdfs:domain rdf:resource="#Person"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/>
    <rdfs:range rdf:resource="#Person"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasNephew">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Man"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasNiece">
    <rdfs:range rdf:resource="#Woman"/>
    <rdfs:domain rdf:resource="#Person"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasMother">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:subPropertyOf>
      <owl:ObjectProperty rdf:about="#hasParent"/>
    </rdfs:subPropertyOf>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
    <rdfs:range rdf:resource="#Woman"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasUncle">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Man"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasSibling">
    <rdfs:domain rdf:resource="#Person"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/>
    <rdfs:range rdf:resource="#Person"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasDescendent">
    <rdfs:domain rdf:resource="#Person"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
    <rdfs:range rdf:resource="#Person"/>
  </owl:ObjectProperty>  
  <owl:ObjectProperty rdf:ID="hasBrother">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:subPropertyOf rdf:resource="#hasSibling"/>
    <rdfs:range rdf:resource="#Man"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasSon">
    <rdfs:subPropertyOf>
      <owl:ObjectProperty rdf:about="#hasChild"/>
    </rdfs:subPropertyOf>
    <rdfs:range rdf:resource="#Man"/>
    <rdfs:domain rdf:resource="#Person"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasDaughter">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:subPropertyOf>
      <owl:ObjectProperty rdf:about="#hasChild"/>
    </rdfs:subPropertyOf>
    <rdfs:range rdf:resource="#Woman"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasAunt">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Woman"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasSister">
    <rdfs:subPropertyOf rdf:resource="#hasSibling"/>
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Woman"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasChild">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Person"/>
    <owl:inverseOf>
      <owl:ObjectProperty rdf:about="#hasParent"/>
    </owl:inverseOf>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasParent">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Person"/>
    <owl:inverseOf rdf:resource="#hasChild"/>
  </owl:ObjectProperty>
  <owl:FunctionalProperty rdf:ID="hasFather">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:subPropertyOf rdf:resource="#hasParent"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
    <rdfs:range rdf:resource="#Man"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:about="#hasSex">
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#Gender"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:ID="name">
    <rdfs:domain rdf:resource="#Person"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
  </owl:FunctionalProperty>
  <Woman rdf:ID="F04">
    <hasSex rdf:resource="#Female"/>
    <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Marilyn</name>
  </Woman>
  <swrl:Variable rdf:ID="z"/>
  <swrl:Variable rdf:ID="y"/>
  <Woman rdf:ID="F08">
    <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Emily</name>
    <hasSex rdf:resource="#Female"/>
  </Woman>
  <Woman rdf:ID="F05">
    <hasParent>
      <Man rdf:ID="M02">
        <hasSex rdf:resource="#Male"/>
        <hasConsort rdf:resource="#F04"/>
        <hasParent>
          <Man rdf:ID="M01">
            <hasChild rdf:resource="#M02"/>
            <hasChild>
              <Woman rdf:ID="F03">
                <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
                >Elizabeth</name>
                <hasSex rdf:resource="#Female"/>
                <hasParent rdf:resource="#M01"/>
              </Woman>
            </hasChild>
            <hasConsort>
              <Woman rdf:ID="F01">
                <hasSex rdf:resource="#Female"/>
                <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
                >Mary</name>
              </Woman>
            </hasConsort>
            <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
            >Bill</name>
            <hasChild>
              <Woman rdf:ID="F02">
                <hasSex rdf:resource="#Female"/>
                <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
                >Catherine</name>
                <hasParent rdf:resource="#M01"/>
              </Woman>
            </hasChild>
            <hasSex rdf:resource="#Male"/>
          </Man>
        </hasParent>
        <hasChild rdf:resource="#F05"/>
        <hasChild>
          <Man rdf:ID="M03">
            <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
            >George</name>
            <hasSex rdf:resource="#Male"/>
            <hasConsort rdf:resource="#F08"/>
            <hasParent rdf:resource="#M02"/>
            <hasChild>
              <Woman rdf:ID="F09">
                <hasParent rdf:resource="#M03"/>
                <hasSex rdf:resource="#Female"/>
                <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
                >Surrey</name>
              </Woman>
            </hasChild>
          </Man>
        </hasChild>
        <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
        >Adam</name>
        <hasChild>
          <Man rdf:ID="M05">
            <hasParent rdf:resource="#M02"/>
            <hasSex rdf:resource="#Male"/>
            <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
            >Michael</name>
          </Man>
        </hasChild>
      </Man>
    </hasParent>
    <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Anna</name>
    <hasSex rdf:resource="#Female"/>
  </Woman>
  <swrl:Imp rdf:ID="Def-hasSon">
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasChild"/>
            <swrl:argument1>
              <swrl:Variable rdf:ID="x"/>
            </swrl:argument1>
            <swrl:argument2 rdf:resource="#y"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
            <rdf:first>
              <swrl:ClassAtom>
                <swrl:classPredicate rdf:resource="#Man"/>
                <swrl:argument1 rdf:resource="#y"/>
              </swrl:ClassAtom>
            </rdf:first>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:propertyPredicate rdf:resource="#hasSon"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasParent">
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:argument2 rdf:resource="#z"/>
            <swrl:propertyPredicate rdf:resource="#hasParent"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
            <rdf:first>
              <swrl:IndividualPropertyAtom>
                <swrl:argument1 rdf:resource="#x"/>
                <swrl:argument2 rdf:resource="#y"/>
                <swrl:propertyPredicate rdf:resource="#hasParent"/>
              </swrl:IndividualPropertyAtom>
            </rdf:first>
          </swrl:AtomList>
        </rdf:rest>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#z"/>
            <swrl:propertyPredicate rdf:resource="#hasConsort"/>
            <swrl:argument1 rdf:resource="#y"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasAunt">
    <swrl:body>
      <swrl:AtomList>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:first>
              <swrl:IndividualPropertyAtom>
                <swrl:propertyPredicate rdf:resource="#hasSister"/>
                <swrl:argument1 rdf:resource="#y"/>
                <swrl:argument2 rdf:resource="#z"/>
              </swrl:IndividualPropertyAtom>
            </rdf:first>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
          </swrl:AtomList>
        </rdf:rest>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasParent"/>
            <swrl:argument2 rdf:resource="#y"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:body>
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#z"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasAunt"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasUncle">
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasParent"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:first>
              <swrl:IndividualPropertyAtom>
                <swrl:argument1 rdf:resource="#y"/>
                <swrl:argument2 rdf:resource="#z"/>
                <swrl:propertyPredicate rdf:resource="#hasBrother"/>
              </swrl:IndividualPropertyAtom>
            </rdf:first>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#z"/>
            <swrl:propertyPredicate rdf:resource="#hasUncle"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasDaughter">
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasChild"/>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:first>
              <swrl:ClassAtom>
                <swrl:classPredicate rdf:resource="#Woman"/>
                <swrl:argument1 rdf:resource="#y"/>
              </swrl:ClassAtom>
            </rdf:first>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasDaughter"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
  </swrl:Imp>
  <Woman rdf:ID="F06">
    <hasParent>
      <Man rdf:ID="M04">
        <hasChild>
          <Man rdf:ID="M06">
            <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
            >Tom</name>
            <hasParent rdf:resource="#M04"/>
            <hasChild>
              <Man rdf:ID="M09">
                <hasSex rdf:resource="#Male"/>
                <hasParent rdf:resource="#M06"/>
                <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
                >Ronald</name>
              </Man>
            </hasChild>
            <hasConsort>
              <Woman rdf:ID="F10">
                <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
                >Whitney</name>
                <hasSex rdf:resource="#Female"/>
              </Woman>
            </hasConsort>
            <hasSex rdf:resource="#Male"/>
          </Man>
        </hasChild>
        <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
        >Phillipe</name>
        <hasSex rdf:resource="#Male"/>
        <hasParent>
          <Man rdf:ID="M07">
            <hasConsort>
              <Woman rdf:ID="F07">
                <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
                >Audrey</name>
                <hasSex rdf:resource="#Female"/>
              </Woman>
            </hasConsort>
            <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
            >Johon</name>
            <hasChild rdf:resource="#M04"/>
            <hasSex rdf:resource="#Male"/>
          </Man>
        </hasParent>
        <hasChild rdf:resource="#F06"/>
        <hasConsort rdf:resource="#F03"/>
      </Man>
    </hasParent>
    <hasSex rdf:resource="#Female"/>
    <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Eva</name>
  </Woman>
  <swrl:IndividualPropertyAtom>
    <swrl:propertyPredicate rdf:resource="#hasSister"/>
    <swrl:argument2 rdf:resource="#z"/>
    <swrl:argument1 rdf:resource="#y"/>
  </swrl:IndividualPropertyAtom>
  <Man rdf:ID="M08">
    <hasSex rdf:resource="#Male"/>
    <hasChild>
      <Man rdf:ID="M10">
        <hasParent rdf:resource="#M08"/>
        <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
        >Jack</name>
        <hasSex rdf:resource="#Male"/>
      </Man>
    </hasChild>
    <hasConsort rdf:resource="#F06"/>
    <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Jimmy</name>
  </Man>
  <swrl:Imp rdf:ID="Def-hasMother">
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasMother"/>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasParent"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:first>
              <swrl:ClassAtom>
                <swrl:classPredicate rdf:resource="#Woman"/>
                <swrl:argument1 rdf:resource="#y"/>
              </swrl:ClassAtom>
            </rdf:first>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasBrother">
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasBrother"/>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:propertyPredicate rdf:resource="#hasSibling"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
            <rdf:first>
              <swrl:ClassAtom>
                <swrl:argument1 rdf:resource="#y"/>
                <swrl:classPredicate rdf:resource="#Man"/>
              </swrl:ClassAtom>
            </rdf:first>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasNiece">
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#z"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasNiece"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
            <rdf:first>
              <swrl:IndividualPropertyAtom>
                <swrl:propertyPredicate rdf:resource="#hasDaughter"/>
                <swrl:argument2 rdf:resource="#z"/>
                <swrl:argument1 rdf:resource="#y"/>
              </swrl:IndividualPropertyAtom>
            </rdf:first>
          </swrl:AtomList>
        </rdf:rest>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasSibling"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:argument2 rdf:resource="#y"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasSister">
    <swrl:head>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasSister"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasSibling"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
            <rdf:first>
              <swrl:ClassAtom>
                <swrl:argument1 rdf:resource="#y"/>
                <swrl:classPredicate rdf:resource="#Woman"/>
              </swrl:ClassAtom>
            </rdf:first>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasSibling">
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#z"/>
            <swrl:propertyPredicate rdf:resource="#hasSibling"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument1 rdf:resource="#y"/>
            <swrl:argument2 rdf:resource="#x"/>
            <swrl:propertyPredicate rdf:resource="#hasChild"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:rest>
              <swrl:AtomList>
                <rdf:first>
                  <swrl:DifferentIndividualsAtom>
                    <swrl:argument1 rdf:resource="#x"/>
                    <swrl:argument2 rdf:resource="#z"/>
                  </swrl:DifferentIndividualsAtom>
                </rdf:first>
                <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
              </swrl:AtomList>
            </rdf:rest>
            <rdf:first>
              <swrl:IndividualPropertyAtom>
                <swrl:argument1 rdf:resource="#y"/>
                <swrl:propertyPredicate rdf:resource="#hasChild"/>
                <swrl:argument2 rdf:resource="#z"/>
              </swrl:IndividualPropertyAtom>
            </rdf:first>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasNephew">
    <swrl:body>
      <swrl:AtomList>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:first>
              <swrl:IndividualPropertyAtom>
                <swrl:argument1 rdf:resource="#y"/>
                <swrl:argument2 rdf:resource="#z"/>
                <swrl:propertyPredicate rdf:resource="#hasSon"/>
              </swrl:IndividualPropertyAtom>
            </rdf:first>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
          </swrl:AtomList>
        </rdf:rest>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasSibling"/>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:body>
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasNephew"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:argument2 rdf:resource="#z"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
  </swrl:Imp>
  <swrl:Imp rdf:ID="Def-hasFather">
    <swrl:head>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:propertyPredicate rdf:resource="#hasFather"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:propertyPredicate rdf:resource="#hasParent"/>
            <swrl:argument1 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
            <rdf:first>
              <swrl:ClassAtom>
                <swrl:classPredicate rdf:resource="#Man"/>
                <swrl:argument1 rdf:resource="#y"/>
              </swrl:ClassAtom>
            </rdf:first>
          </swrl:AtomList>
        </rdf:rest>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>
  
  <swrl:Imp rdf:ID="Def-hasDescendent-base">
    <swrl:head>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:argument2 rdf:resource="#y"/>
            <swrl:propertyPredicate rdf:resource="#hasDescendent"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
      </swrl:AtomList>
    </swrl:head>
    <swrl:body>
      <swrl:AtomList>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:argument1 rdf:resource="#y"/>
            <swrl:propertyPredicate rdf:resource="#hasParent"/>
            <swrl:argument2 rdf:resource="#x"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
      </swrl:AtomList>
    </swrl:body>
  </swrl:Imp>  

  <swrl:Imp rdf:ID="Def-hasDescendent-iter">
    <swrl:body>
      <swrl:AtomList>
        <rdf:rest>
          <swrl:AtomList>
            <rdf:first>
              <swrl:IndividualPropertyAtom>
                <swrl:argument1 rdf:resource="#x"/>
                <swrl:argument2 rdf:resource="#z"/>
                <swrl:propertyPredicate rdf:resource="#hasDescendent"/>
              </swrl:IndividualPropertyAtom>
            </rdf:first>
            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
          </swrl:AtomList>
        </rdf:rest>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasParent"/>
            <swrl:argument1 rdf:resource="#x"/>
            <swrl:argument2 rdf:resource="#y"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:body>
    <swrl:head>
      <swrl:AtomList>
        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
        <rdf:first>
          <swrl:IndividualPropertyAtom>
            <swrl:propertyPredicate rdf:resource="#hasDescendent"/>
            <swrl:argument1 rdf:resource="#y"/>
            <swrl:argument2 rdf:resource="#z"/>
          </swrl:IndividualPropertyAtom>
        </rdf:first>
      </swrl:AtomList>
    </swrl:head>
  </swrl:Imp>
    
</rdf:RDF>

<!-- Referring to http://protege.stanford.edu/plugins/owl/owl-library/family.swrl.owl -->
