next up previous contents index
Next: Tracing Inference Up: Quantifiers Previous: The Numerical Quantifier

The Uniqueness Principle for Variables

Currently, the Uniqueness Principle, that every entity represented in the network is represented by a unique node, is not enforced by SNePS for variables. Therefore, it is advised that the Uniqueness Principle for variables be followed by the SNePSUL user as a matter of style. This should be done as follows. Every restriction R used in a restricted quantifier should have a series of variables, tex2html_wrap_inline4561 Every rule that uses R once should use tex2html_wrap_inline4565 as its variable. A rule that uses the restriction R more than once should use tex2html_wrap_inline4565 in the first use of R, tex2html_wrap_inline4573 in the second use of R, etc. This can be done by using the $ macro to create each variable node the first time the restriction occurs, and the * macro on all subsequent occasions, including subsequent rules. For example, the two rules ``Every dog is a pet'' and ``Every dog hates every cat'' might be entered as follows, assuming that the restrictions Dog(x) and Cat(y) have not previously been used in the network:
 

(assert forall $dog1

ant (build member *dog1 class dog)

cq (build member *dog1 class pet))

(assert forall (*dog1 $cat1)

&ant ((build member *dog1 class dog)

(build member *cat1 class cat))

cq (build agent *dog1 act hates object *cat1))



John Francis Santore
Fri May 14 11:18:57 EDT 1999