GenI-0.24.2: A natural language generator (specifically, an FB-LTAG surface realiser)

Safe HaskellNone

NLP.GenI.TreeSchema

Contents

Description

This module provides basic datatypes specific to Tree Adjoining Grammar tree schemata.

Synopsis

Documentation

data Ttree a Source

Constructors

TT 

Fields

params :: [GeniVal]
 
pfamily :: Text
 
pidname :: Text
 
pinterface :: Flist GeniVal
 
ptype :: Ptype
 
psemantics :: Maybe Sem
 
ptrace :: [Text]
 
tree :: Tree a
 

root :: Tree a -> aSource

rootUpd :: Tree a -> a -> Tree aSource

setLexeme :: [Text] -> Tree (GNode a) -> Tree (GNode a)Source

Given a lexical item l and a tree node n (actually a subtree with no children), return the same node with the lexical item as its unique child. The idea is that it converts terminal lexeme nodes into preterminal nodes where the actual terminal is the given lexical item

setAnchor :: FullList Text -> Tree (GNode a) -> Tree (GNode a)Source

Given a lexical item s and a Tree GNode t, returns the tree t' where l has been assigned to the anchor node in t'

lexemeAttributes :: [Text]Source

Attributes recognised as lexemes, in order of preference

data AdjunctionConstraint Source

Essentially boolean representation of adjunction constraint

Constructors

MaybeAdj 
ExplicitNoAdj

hard-coded null-adjunction constraint

InferredNoAdj

inferred by GenI to be adjunction free (ie. during realisation)

addInferredAdjConstraint :: GNode gv -> GNode gvSource

Add an inferred adjunction constraint marker unless we already see an explicit one

data GNode gv Source

A single node of a TAG tree.

Constructors

GN 

Fields

gnname :: NodeName
 
gup :: Flist gv

top feature structure

gdown :: Flist gv

bottom feature structure

ganchor :: Bool

False for na nodes

glexeme :: [Text]

[] for na nodes

gtype :: GType
 
gaconstr :: AdjunctionConstraint
 
gorigin :: Text

for TAG, this would be the elementary tree that this node originally came from

Instances

Typeable1 GNode 
Loadable Macros 
Eq gv => Eq (GNode gv) 
Data gv => Data (GNode gv) 
Binary gv => Binary (GNode gv) 
NFData gv => NFData (GNode gv)

A single node of a TAG tree.

Pretty (GNode GeniVal)

The default show for GNode tries to be very compact; it only shows the value for cat attribute and any flags which are marked on that node.

This is one the places where the pretty representation of a GenI object is different from its GenI-format one

GeniShow gv => GeniShow (GNode gv) 
DescendGeniVal v => DescendGeniVal (GNode v) 
Collectable gv => Collectable (GNode gv) 

type NodeName = TextSource

gCategory :: Flist GeniVal -> Maybe GeniValSource

Return the value of the cat attribute, if available

showLexeme :: [Text] -> TextSource

Fancy disjunction

data SchemaVal Source

A schema value is a disjunction of GenI values. It allows us to express “fancy” disjunctions in tree schemata, ie. disjunctions over variables and not just atoms (?X;?Y).

Our rule is that that when a tree schema is instantiated, any fancy disjunctions must be “crushed” into a single GeniVal lest it be rejected (see crushOne)

Note that this is still not recursive; we don't have disjunction over schema values, nor can schema values refer to schema values. It just allows us to express the idea that in tree schemata, you can have either variable ?X or ?Y.