Representing n-Ary Relationships with Binary Predicates

Last revised 4/22/2021. Contact us.

Many relationships of interest to modelers are not binary in nature. As an example, consider a marriage event. While one can represent the relationship between two spouses as a binary relationship, there are other relationships of interest, such as when, where, etc. To capture as a single event such information using a graph language like OWL, whose predicates are restricted to arity two, one resorts to what are sometimes called mediating classes. In the model below, Marriage is just such a mediating class.

Person is a class.
{
Man, Woman} are types of Person.

Marriage is a class
   described
by husband with values of type Man,
   described
by wife with values of type Woman,
   described
by ^date with values of type date,
   described
by location with values of type string.

GeorgeWashington is a Man.
MarthaDandridge
is a Woman.

A Marriage with husband GeorgeWashington,
   with
wife MarthaDandridge,
   with
^date "5 January 1759",
   with
location "White House plantation".

Of course representing information using such mediating concepts can make retrieving information by querying more difficult. To find out who is the wife of GeorgeWashington on would need to compose a query with graph patterns going from the Man to the Marriage to the Woman via the husband and the the wife relationships. However, it is relatively easy to infer simpler relationships using rules. Here is a rule to infer spouse relationships.

spouse describes Person with values of type Person.

Rule SpouseFromMarriage:
   if
m is a Marriage and m has husband h and m has wife w
   then
h has spouse w and w has spouse h.