# NoVariablesIn

From W3C Wiki

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).