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.