We turn now to the properties of references when dealing with feature values that are sets.
For instance, since a feature like brothers has as value a set of descriptions, we can ask: What is the meaning of a reference like (>> wife brothers of Jane)? Intuitively, it should be understood as referring to the sisters-in-law of Jane. In Example 2.8 sisters-in-law and brothers-in-law are defined in this way for persons. Since the brothers of Jane are (the set of) Adam and Arthur, now the question is the meaning of
(>> wife of <Set of Adam Arthur>). The element-wise definition of reference over sets indicates that this reference is the set of references
(>> wife of Adam)
and
(>> wife of Arthur)
--that is to say the set of Linda and Lucy (see
Example 2.8).
This element-wise definition of reference is equivalent to the
function mapping construct in Lisp. For instance, given a list of men
l and a wife function, then the second-order function map in
Lisp can perform a map (map (function wife) l)
that returns
the list of wives of l. Notice however that Noos supports
sets--which are unordered and do not allow duplications--instead of
lists.
It is also important to notice that reference over sets produces flat sets. That is to say, the result of a reference over a set is a set containing all the results but not a set of sets of results. Lets us take an extension of Example 2.8 where Linda has brothers Clement and Charles, and Lucy has brothers David and Douglas. In this situation the query
would yield the result
which is the set of objects obeying the constraint of being brothers of the wives of the brothers of Jane. Notice, in particular, that Noos will not return as result from a reference over a set something like
[Impossibility warning ]
which is a set of sets of objects. Noos semantics deals with
sets of objects, S,but not with the powerset . Intuitively, a
Noos user can conceive of references over sets as performing the
union of the sets resulting from the element-wise references.
At the beginning of Section2.2 we saw that feature values may be sets of objects denoted by named references. In a similar manner we may have a set as feature value defined by several path references,as shown in the following example defining uncles and aunts.
Again, the uncles (or aunts) of a person is just a flat set--the union of the results of both relative path references--and not a set with two elements which are the sets resulting of each relative path reference. Intuitively, the uncles of a person are those persons that are brothers either of the father or of the mother. We can view this as constraints--uncles are those persons obeying one of the two constraints--or as the union of the sets of persons satisfying each path reference.