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. Let’s 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. Let’s say we have the situation

Price 200,000
Price NYK – we had to actualise it
Price 180,000<->240,000
Price 270,000
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

objecttest1.jpg (173409 bytes)

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.

objecttest2.jpg (145427 bytes)

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.

objecttestmap.jpg (70819 bytes)

A map that OBJECTTEST uses

attdaynumber.jpg (80853 bytes)