next up previous

9.7.1 Instance-set Definition

An instance-set is an ordered collection of instances. Each instance-set member is an instance of a set of classes, called class restrictions, defined by the user. The class restrictions can be different for each instance-set member. The query functions use instance-set templates to generate instance-sets. An instance-set template is a set of instance-set member variables and their associated class restrictions. Instance-set member variables reference the corresponding members in each instance-set which matches a template. Variables may be used to specify the classes for the instance-set template, but if the constant names of the classes are specified, the classes must already be defined. Module specifiers may be included with the class names; the classes need not be in scope of the current module.

Syntax

<instance-set-template>
      ::= (<instance-set-member-template>+)
<instance-set-member-template>
      ::= (<instance-set-member-variable> <class-restrictions>)
<instance-set-member-variable> ::= <single-field-variable>
<class-restrictions>           ::= <class-name-expression>+

Example

One instance-set template might be the ordered pairs of boys or men and girls or women.

((?man-or-boy BOY MAN) (?woman-or-girl GIRL WOMAN))

This instance-set template could have been written equivalently:

((?man-or-boy MALE) (?woman-or-girl FEMALE))

Instance-set member variables (e.g. ?man-or-boy) are bound to instance-names.


next up previous