The Earlier Date

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.

NOTE: We are assuming the ObjectGroup contains a small number of objects, say zero to twenty (it may turn out there are no houses available on that date). If it contains thousands of objects, it wouldn’t generate an ObjectGroup in a document, but be handled in some other way (a reference to a database, say).

We are given a map (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.

We obtain an output from the MIN operator, and then check which objects are consistent with its output. Let’s 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

objecttest1.jpg (190626 bytes)

When the test is activated, we get

objecttest2.jpg (160666 bytes)

and 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 its connection to OBJECTTEST). If the objects in the ObjectGroup change, we undo it all and start again.

See

MEMBERGROUP

Object Groups