Search code examples
owl

OWL 2 how to express equivalent class


In my ontology I have a class Parent and a class Child. I have an object property isChildOf(Child, Parent).

I'd like to express a new class, FatherWithTwoOrMoreChildren, which corresponds to the class of Parent having at least 2 Child.

Declaration(Class(p:FatherWithTwoOrMoreChildren))
SubClassOf(p:FatherWithTwoOrMoreChildren 
ObjectSomeValueFrom(ObjectPropertyAssertion(ObjectMinCardinality(2 
p:isChildOf) owl:Thing))

My doubt is if I'm expressing it correctly, or if calling ObjectPropertyAssertion I'm changing isChildOf's definition.


Solution

  • Easiest way is to define :FatherWithTwoOrMoreChildren as :

    :hasChild owl:inverseOf :isChildOf
    :FatherWithTwoOrMoreChildren owl:equivalentClass (:hasChild min 2 :Child)
    

    But maybe don't you want to create a hasChild objectproperty.