Next: Writing new outputs, Previous: OL syntax, Up: Outputs
The output record is the result of preparing the solution for the individual output functors. A solution is a list of node records. The output record is defined as follows:
o(usedDIDAs: DIDAs graphUsedDIDAs: DIDAs nodes: SLs nodeILs: ILs nodeOLs: OLs nodeOLAbbrs: OLAbbrs index2Pos: I2I printProc: PrintProc edges: EdgesRec)
The value of the usedDIDAs
feature is a list of dimension
identifiers (DIDAs
) which are the used dimensions.
The value of the usedGraphDIDAs
feature is a list of dimension
identifiers (DIDAs
) which are the used graph dimensions.
A graph dimension is a dimension on which the either
principle.graph
or principle.graph1
is used. This is
useful to distinguish graph dimensions (which can e.g. be visualized
using output.dag
) from special dimensions like lex
(purpose: assign a word form to a lexical entry) and multi
(purpose: use multi-dimensional principles) which need not be
visualized like this.
The value of the nodes
feature is the Solver Language (SL)
version of the solution: a list of node records.
The value of the nodeILs
feature is the Intermediate Language
(IL) version of the solution.
The value of the nodeOLs
feature is the Output Language (OL)
version of the solution.
The value of the nodeOLAbbrs
feature is the abbreviated Output
Language (OL) version of the solution (here: top values are
abbreviated with top
and bottom values with bot
, and
features denoting top
are left out from records and valencies).
The value of the index2Pos
feature1 is a function from node
indices (I
) to the corresponding node positions (I
).
The value of the printProc
feature is a function from anything
to nothing (X -> U
), used for printing.
indices (I
) to the corresponding node positions (I
).
The value of the edges
feature2 is the edges record
EdgesRec
:
o(edges: DIDAEdgesRec ledges: DIDALEdgesRec lusedges: DIDALUSEdgesRec dedges: DIDADEdgesRec ldedges: DIDALDEdgesRec lusdedges: DIDALUSDEdgesRec)
The values of the features of the edges record are defined as follows:
DIDAEdgesRec
: Maps dimension identifier
DIDA
to the set of determined edges (Edges
) on
DIDA
. An edge is an Oz record edge(I1 I2)
representing an
edge from the node with index I1
to the node with index
I2
. The edge label of the edge need not be determined.
DIDALEdgesRec
: Maps dimension identifier DIDA
to the set of determined labeled edges (LEdges
) on DIDA
.
A labeled edge is an Oz record edge(I1 I2 LA)
representing an
edge from the node with index I1
to the node with index I2
labeled LA
. The edge label of the edge must be determined.
DIDALUSEdgesRec
: Maps dimension identifier
DIDA
to the set of determined edges (LUSEdges
) on
DIDA
. Here, the edge label of the edge must still be undetermined.
DIDADEdgesRec
: Maps dimension identifier
DIDA
to the set of unlabeled dominance edges
(DEdges
) on DIDA
. An unlabeled dominance edge is an Oz
record dom(I1 I2)
representing a unlabeled dominance edge from
the node with index I1
to the node with index I2
.
An unlabeled dominance edge holds between nodes v and
v' if:
DIDALDEdgesRec
: Maps dimension identifier
DIDA
to the set of labeled dominance edges
(LDEdges
) on DIDA
. A labeled dominance edge is an Oz
record dom(I1 I2 LA)
representing a labeled dominance edge from
the node with index I1
to the node with index I2
labeled
LA
. A labeled dominance edge exists between I1
and I2
if:
DIDALUSDEdgesRec
: Maps dimension identifier
DIDA
to the set of unlabeled dominance edges
(LUSDEdges
) on DIDA
. Here, the edge label of the
dominance edge must still be undetermined.