From W3C Wiki
Jump to: navigation, search

OWL is a logic-based language, however unlike logic it does not have variables. This is a fundamental expressive limitation of OWL. On this page, we discuss some common patterns that require variables, and the best approximations in OWL (usually OWL DL).

It is common to want to express, for example, an overlap pattern, which in FOL (first order logic) would be expressed as:

(FORALL (x,y) overlaps-R(x,y) <=> (EXISTS (z) R(x,z) AND R(y,z)))

That is, two things overlap with respect to relation R if they are each related by R to at least one shared thing. It is also fairly common to add a further proper overlap, requiring that x and y be distinct:

(FORALL (x,y) properOverlaps-R(x,y) <=> (EXISTS (z) R(x,z) AND R(y,z)) AND x!=y)

The problem here for OWL is to express the fact that two seperate individuals are related to the same individual (the z in the axioms above).