In the used
prolog-like notation for RDF the variables are universal variables with local
scope. This means the scope is limited to one rule. If there are two rule
e.g.
son(X,Y) :>
parent(Y,X).
brand(X,Y) :>
makes(Y,X).
It is clear that
the ‘X’ and ‘Y’ of the first rule will not denote the same thing as the ‘X’
and ‘Y’ of the second rule. In order not to confuse variables all variables
with local scope are transformed into variables with global scope. This is
done by giving them a unique name. The unique name is made by prefixing the
variables with ‘_n’ where n is a unique number for each rule.