CONSISTENT Operator
CONSISTENT compares the objects in two sets, and only includes objects in the resulting
set which are consistent between the two sets. CONSISTENT acts as an operator between
factors, as
Aset CONSISTENT Bset
and returns a set.
Consistency can be based on:
- Numeric values
- Numeric variables which have the same parent, or no parent, and whose values are
consistent with each other - the value 3 is consistent with the range 1..10, the range
2..5 is consistent with the range 3..4
- Parentage
- Object variables, one of which is the parent of the other
- Indirection
- Object variables, one of which points to the other
- Consistent Attributes
- Object variables which share a common parent, are not disjoint members (their membership
of the same class precludes them being consistent, like lions and tigers), and have no
inconsistent attributes
- Same Relation
- If both objects head relations, they are checked for being invocations of the same
relation, and the parameters are consistent. If only one object heads a relation, the
parentage of the other object is checked to see whether it includes the relation the other
object is invoked from. That is, Delay1 - heading a RELATION operator - will be found to
be consistent with the word "delayed", as delayed is an alternative way of
specifying ToDelay.
The direction of consistency is immaterial, and a variable in one set may be consistent
with many in the other set. The result is that the output set will be a mixture of members
of both of the input sets.
To enforce a direction, use an AND after selection, as
(Aset CONSISTENT Bset) AND Aset
finds the members of Aset that are consistent with the members of Bset.