Equivalent Classes

Last revised 10/29/2021. Contact us.

The concept of equivalent classes is important in semantic modeling. Two classes are equivalent if they have the same members.

One way equivalent classes is useful is to specify that two classes declared in two different namespaces are really the same class. In SADL, this can be expressed using "is the same as".

USPresident is the same as USCommanderInChief.

Another use of equivalent classes that helps us to build a robust ontology is in the equivalence of a class and a property restriction. (A property restriction defines a class which is all individuals which have the specified values of the property.)

Parent is the same as (child has at least 1 value).

This statement allows a reasoner to infer than any individual that has at least one value of the child property belongs to the Parent class. 

A third instance in which SADL statements create triples in the OWL model with the owl:equivalentClass predicate is in necessary and sufficient conditions statements. Note that necessary conditions are property restrictions that allow a model builder to specify properties that an individual which is a member of a class must have. However, it is possible to express a stronger axiom stating that a set of conditions is not only necessary for an individual to be a member of a class, but they are sufficient conditions, meaning that if the conditions are met the individual can be inferred to be a member of the class. These statements do not use "is the same as" but rather use "if and only if" or just "only if" as a shortened form.

A Person is a Parent if and only if child has at least 1 value.

This statement creates a Parent class which is a subclass of Person and has the owl:equivalentClass the class of all individuals that have at least one value for the child property. A reasoner would be able to infer that any individual with at least one value of the child property is both a Parent (equivalent class) and a Person (Parent is a subclass of Person).

Necessary Conditions in Propositional Logic and in OWL

A necessary condition is written in propositional logic like this.

p → q (read p implies q)

Example: [X is a member of class Man] implies [X has property gender with value Male]

In OWL: a has value restriction on the gender property for the Man class--value of gender of a Man is Male

<http://sadl.org/Genealogy.sadl#Man>
     a owl:Class ;
     rdfs:subClassOf [ a owl:Restriction ;
                                  owl:hasValue <http://sadl.org/Genealogy.sadl#Male> ;
                                  owl:onProperty <http://sadl.org/Genealogy.sadl#gender>
                              ] .

In SADL: gender of Man always has value Male.

Necessary and Sufficient Conditions in Propositional Logic and in OWL

Consider the example above:

A Person is a Parent if and only if child has at least 1 value.

A necessary and sufficient condition is written in propositional logic like this.

p ↔q (read p if and only if q)

This example: [X is a member of class Parent] if and only if [X is a Person with at least one value of child property]

In OWL: a minimum cardinality restriction on the child property with equivalence to the Parent class

<http://sadl.org/Genealogy.sadl#Parent>
     a owl:Class ;
     owl:equivalentClass [ a owl:Class ;
                           owl:intersectionOf ( <http://sadl.org/Genealogy.sadl#Person>
                                                [ a owl:Restriction ;
                                                  owl:minCardinality "1"^^xsd:int ;
                                                  owl:onProperty <http://sadl.org/Genealogy.sadl#child>
                                                ]
                                              )
                         ] .