Showing the property named has has multiple domains: Person and Cat Owner
ObjectUnionOf
A key thing to note here is:
ObjectPropertyDomain(:has ObjectUnionOf(:CatOwner :Person))
ObjectPropertyRange(:has ObjectUnionOf(:Cat :Pet))
This shows that a property which has multiple domains is exported as a union of all the domains and ranges.
Ontology(<http://example.com/ontology/Unnamed> Annotation(rdfs:label "Example"^^xsd:string) Declaration(Class(:Cat)) Declaration(Class(:CatOwner)) Declaration(Class(:Person)) Declaration(Class(:Pet)) Declaration(ObjectProperty(:has)) ############################ # Object Properties ############################ # Object Property: :has (:has) ObjectPropertyDomain(:has ObjectUnionOf(:CatOwner :Person)) ObjectPropertyRange(:has ObjectUnionOf(:Cat :Pet)) ############################ # Classes ############################ # Class: :Cat (:Cat) SubClassOf(:Cat :Pet) # Class: :CatOwner (Cat Owner) AnnotationAssertion(rdfs:label :CatOwner "Cat Owner"^^xsd:string) SubClassOf(:CatOwner :Person) )