OBJECTTEST is a piece of machinery that is built by a prepositional map. It then proceeds to become active and use maps itself in carrying out decision-making.
Its connections:
A logical control - usually unconditionally true
A connection to the ObjectGroup
A logical connection to a MEMBERGROUP operator
A connection of relevant type to a test operator
A connection to the head of a map (not a PREPOSITION1 operator directly). The connection needs to be direct, so the head should be a direct child of MapDirectConnection if a variable.
An example is given:
Statements like
The earlier of the dates.....
use an ObjectGroup to hold the dates, and require decisionmaking machinery to be set up for evaluation, either immediately or at a later time. The ObjectGroup may also have a fluctuating set of members, so the example should embody these difficulties.
He will buy the cheapest house available on the date of his twenty-first birthday
The houses available are a shifting set, and then we need to find the cheapest. Lets assume we are delivered the ObjectGroup containing the available houses, and now must find the cheapest in it.
OBJECTTEST is given access to maps (the same sort of map as is used for preposition-building) for getting from the object to its price, and a test (in this case, a MIN operator). We cycle through the objects, using the map to find the price (the numeric variable, modified by any conversion of units), actualising objects where necessary. We connect the price (we don't know it is the price, it is what the map gave us) of each object (whether known to a singular value or not) to the MIN operator. Some objects in the ObjectGroup may not exist (having been turned off by the action of other parts of the structure) these are ignored.
The OBJECTTEST receives the output from the MIN operator, and then checks which objects are consistent with its output. Lets say we have the situation
- ObjectA
- Price 200,000
- ObjectB
- Price NYK we had to actualise it
- ObjectC
- Price 180,000<->240,000
- ObjectD
- Price 270,000
- ObjectE
- Withdrawn from market does not exist as member
The output of the MIN was 180,000<->200,000
We can rule out Objects D and E, but must still consider Objects A, B, C
In diagrammatic form, the objects arrive in the ObjectGroup. We connect these objects to the output object through a MEMBERGROUP operator, as
Each of the objects in the OBJECTGROUP is tried in the map, which returns the desired related node. These nodes are connected to the test operator, here a MIN. When the test is activated, we check for which related nodes are consistent with the output, and hence get the set of objects in the objectgroup that pass the test. There may be none, one or several. We connect these to the output object through the MEMBERGROUP.
The output object acquires the properties of the object(s) it is connected to (if no objects matched, then it does not exist, handled by the MEMBERGROUP connection to OBJECTTEST). If the objects in the ObjectGroup change, we undo it all and start again.
A map containing OBJECTTEST.
A map that OBJECTTEST uses
See
PREPOSITION1