Questions about markers

Background:

Processing of large FO documents is both cpu and memory intensive.
The volume of property information is partly responsible for the
memory requirement.  In order to minimise this demand, I want to
be able to divide the property construction into two phases with
different requirements.

1. The construction of individual branches of the FO tree.  During
this phase, as tree building proceeds down a particular branch
towards a leaf node, the ancestor nodes of that leaf are constructed
without knowledge of the requirements of descendants.  Therefore,
no optimisaton is possible of the set of properties which must be
maintained at each ancestor node.  Whether a particular specified
or inherited property is required by an individual ancestor node,
a full set of properties must be developed and maintained (at
least conceptually) until the inheritance and functional reference
requirements of the last descendant have been determined.  These sets
are constructed as control descends down the tree, making the set
available to each child and its descendants.

2. As control retreats back up the tree, having constructed the
property sets of each of its descendants, there is no further need
for any but the actual properties pertaining to each individual node.
This allows for considerable space (and subsequent performance)
optimisations, by, e.g., reducing the applicable property set to
the minimum required by the FO, and maintaining that set in an
array of predetermined length, whose elements can be accessed by
a mapping array, whose length and contents are predetermined.

This neat and compact arrangement may be disturbed by the presence
of markers. Markers do not inherit from their FO tree ancestors, but
from their ancestors determined in the Area tree.  The properties of
retrieved marker subtrees are necessarily resolved in the context
of the Area tree; the marker retrieved at a certain point is
determined by the status of the Area tree construction.  Given this
close connection with the Area tree, I wish to have clarified the
environment of expression resolution for markers, in particular as it
affects inheritance and the from-nearest-specified-value() function.

Questions:

Is this environment conceptually akin to that which would obtain
were the fo:marker subtree transposed to the position in the FO
tree occupied by the fo:retrieve-marker during phase 1 of FO tree
construction?

In this case, all properties specified and inherited are available to
"normal" inheritance and to the core functions.

Is it akin to that which would obtain were the fo:marker subtree
transposed to the same position in the FO tree following phase 2,
as described above?

In this case, only properties which were relevant to particular
FOs would be retained.  The point at which a property was specified
would be lost if it were not relevant at the point of specification.

Is it rather the environment which derives from the traits of the
Area tree at the point of attachment?

This case is similar to the one above, in that information about
properties which had no prior point of application would be lost
before the fo:marker subtree properties were resolved.

Peter
-- 
Peter B. West  pbwest@powerup.com.au  http://www.powerup.com.au/~pbwest/
"Lord, to whom shall we go?"

Received on Thursday, 6 February 2003 11:12:52 UTC