Ontology(<http://example.com/ontology/Transitive>
Declaration(Class(:BiologicalMother))
Declaration(Class(:Mary))
Declaration(ObjectProperty(:hasBiologicalGrandmother))
Declaration(ObjectProperty(:hasBiologicalMother))
############################
# Object Properties
############################
# Object Property: :hasBiologicalGrandmother (has biological grandmother)
AnnotationAssertion(rdfs:label :hasBiologicalGrandmother "has biological grandmother"^^xsd:string)
TransitiveObjectProperty(:hasBiologicalGrandmother)
ObjectPropertyDomain(:hasBiologicalGrandmother :Mary)
ObjectPropertyRange(:hasBiologicalGrandmother :BiologicalMother)
# Object Property: :hasBiologicalMother (has biological mother)
AnnotationAssertion(rdfs:label :hasBiologicalMother "has biological mother"^^xsd:string)
FunctionalObjectProperty(:hasBiologicalMother)
ObjectPropertyDomain(:hasBiologicalMother ObjectUnionOf(:BiologicalMother :Mary))
ObjectPropertyRange(:hasBiologicalMother :BiologicalMother)
############################
# Classes
############################
# Class: :BiologicalMother (Biological Mother)
AnnotationAssertion(rdfs:label :BiologicalMother "Biological Mother"^^xsd:string)
SubClassOf(:BiologicalMother ObjectExactCardinality(1 :hasBiologicalMother))
# Class: :Mary (:Mary)
SubClassOf(:Mary ObjectExactCardinality(1 :hasBiologicalGrandmother))
SubClassOf(:Mary ObjectExactCardinality(1 :hasBiologicalMother))
)