One of the major areas in which CFS PAPPI differs from the older 2.x PAPPI series is in the implementation of constituents. In the CFS implementation, we have constituents of the form:
[c(C,Fs,Pn,Pd,I),...] |
That is, all constituents are encoded by non-empty lists. The first element of the list is used to name its category and also to store its associated features. Any sub-constituents will occupy positions starting from the second element of the list.
The first element of the list is a tuple c/5
where:
Item | Description | ||||||||||||||||||||||||||||||||||||||||||||||
C |
is the category label, typically an atom. | ||||||||||||||||||||||||||||||||||||||||||||||
Fs |
is the (non-positional) feature
list. By default, these features are shared with all projections of
the category. Other (positional) features are stored in
Pn/Pd and require special handling and interpretation
(see below).
|
||||||||||||||||||||||||||||||||||||||||||||||
Pn |
is the bitset encoding information
about the internal structure of the constituent. Note that these
features are known (and can be and are instantiated) as soon as
the constituent is constructed (by normal methods). The purpose of
this bitset is to enable efficient navigation within the
constituent. The features are as follows:
|
||||||||||||||||||||||||||||||||||||||||||||||
Pd |
is the bitset encoding information
about how the constituent attaches to higher constituents. Note that
this information is not available at constituent construction time,
and must be filled in when the constituent is attached to its
parent. The features are as follows:
(See feature organization for details on how access to these features is provided. See positional features for examples on how these features are used in PAPPI primitives.) |
||||||||||||||||||||||||||||||||||||||||||||||
I |
is a unique, reserved variable.
I should be used for comparison purposes only and
should never be instantiated. |
Note that no upward "pointers" are provided in the definition - that
is, it is not possible to reference the parent of a constituent.
In fact, only sub-constituents can be accessed. However,
the Pd
bitset allows us to find out how a given
constituent is attached to its parent - positional information
that would be otherwise unavailable without ancestor access.
References: Feature Organization / Positional Featuress