A relative path reference is bound to a specific description by the rules of scope and refinement. The scope of Noos is lexical, that is to say a relative reference is determined by the text in which it appears. Specifically, a relative path reference is bound to the root of the description in which it appears--the outmost define in the text. Local descriptions (or subdescriptions) are also descriptions. The formal reason is because subterms of feature terms are also feature terms. Notice, however, that the outmost description in a text, the root, is the only one that is bound to relative path references, and none of the local descriptions is bound to it. Since a local description is always a refinement of a description , relative path references that are to be bound to it are to be specified in the text that defines description --and not in the refinements of .
In Example 2.5 person is defined with two relative path references in slots father and mother. Father is defined as (>> husband mother) and mother as (>> wife father). The relative path references are bound to the description's root, person in this case. In fact the generic description person have no referent for those references, but that is not important, since the refinements of person--namely John, Mary, Nick, and Ann in Example 2.5--can reuse those relative path references. In Example 2.6, when the user performs the two first queries, the refinements of person use the relative path definitions. In the first query, the feature value of father slot in John is unknown, but being a refinement of person the father slot reuses the relative path reference (>> husband mother) this slot has in person. That relative path reference is bound to the current root John and thus establishes the binding of the feature value of father to the appropriate value regarding John--that is to say Nick.
Another way to view path references is as constraints. Any description that is refinement of person (and that does not override the father slot) will obey the constraint of having as feature value in father the husband of the mother of .
Remark also in Example 2.6 that the third query
(asking the father of Mary) returns an anonymous person designated
<Person-13>, while the fourth query is unable to find a father of
Nick and returns the
fail, a token denoting failure. A reference to an
non-existent concept in Noos determines a failure--which is not the
same as error. The role of
fail and failure in reflection will be
explained in Chapter 4.
Example 2.7 shows two other uses of relative path references. First, notice the (>>) expression in the owner of the car of Jonah. An expression (>>) is a relative path reference with a null path that denotes the root of the description text in which it appears--namely Jonah. Second, notice that a relative path reference binds to the root of the description text in which it is scoped. For instance, the prize of a car is defined as (>> prize model), and the lexical scope where it is defined has car as root. Then, the refinement of car that is the car of Jonah (let us call it car-11) has in prize a relative path (>> prize model) that binds to that car-11 and not to Jonah. That is to say, relative path references are bound relative to the root of the description where they are textually defined. Thus, the relative path references of car are always relative to the appropriate car in whatever refinement of car, and regardless of whether that car is a subdescription of another description (as car-11).
If we conceive of path references as constraints, this amounts to state that a relative path reference like (>> prize model) appearing textually in car is establishing a constraint like in any refinement of car that does not override it. When a refinement of car is a subdescription of Jonah we can conceive of the constraint as being augmented by the slot in which it appears, as follows: , where car in the prior constraint has been substituted by car(Jonah), namely Jonah's car.
Another way to look at the combination of refinement and scope is to look at the following list of equivalent absolute path references dealing with the price of Jonah's car. We are assuming that car-11 is Jonah's car and Ibiza-19 is Jonah's car model, precedes the query, precedes (a transformation to) an equivalent path reference, and precedes the query's outcome.
Summarizing, abstract concepts like persons and cars can be defined by descriptions like person, car and car-model using relative path references to specify the constraints among the features that characterize them. Descriptions can be refined and freely combined. Abstract descriptions (like car-model) can be refined to define less abstract concepts (like Ibiza) or concrete concepts (like Ibiza-19). Moreover, complex abstract concepts can be defined by combining refinements of abstract concepts and specifying their mutual relations and constraints. Finally, complex abstract concepts can be refined into descriptions of concrete concepts that will incorporate all the properties of the abstract descriptions that are not overridden.