Roles

We support the following types of complements: determiner (det), subject (subject), nominative (nominative, e.g. ``er ist ein Mann''), object (object), dative (dative), zu particle (zu, e.g. ``zu lesen''), separable verb prefix (vpref, e.g. ``ein'' in ``ich kaufe ein''), infinitive verb phrase with zu (vp_zu, e.g. ``ich verspreche zu lesen''), past participle (vp_past, e.g. ``ich habe gelesen''), infinitive verb phrase without zu (vp_inf, e.g. ``ich will lesen'').

<Entry exports>= << >>
ComplementRoles

<Entry domain products>= << >>
ComplementRoles = [det subject nominative object dative
                   zu vpref vp_zu vp_past vp_inf]

We also support the following types of modifiers: adjective (adj), adverb (adv), prepositional noun phrase (pp_np, e.g. ``mit dem Buch'').

<Entry exports>= << >>
ModifierRoles AllRoles

<Entry domain products>= << >>
ModifierRoles = [adj adv pp_np]
AllRoles      = {Append ComplementRoles ModifierRoles}

We can now express the domain of all roles, as well as compute the sets of complement roles and of modifier roles:

<Entry exports>= << >>
Roles Complements Modifiers

<Entry domain products>= << >>
Roles       = {New Encode.domainProduct init([AllRoles])}
Complements = {Roles encode(ComplementRoles $)}
Modifiers   = {Roles encode(ModifierRoles $)}


Denys Duchier
Version 1.2.0 (20010221)