Chapter 2

Words


2.1    Introduction

This chapter presents all of the types of words we will aim to distinguish. This is achieved by saying that a word belongs to a particular word class. Also some words, notably verbs, take a grammatical code that is additional to their word class information.

    As seen in the queries of section 1.7, we capture the parse consequences for a word by having it as an item in a word list together with its word class and any grammatical code. The work of this chapter is to establish the initial parse outcome of encountering a class(code)/word pairing in a word list.


2.2    Noun words

We start off with the noun rules of (2.1) for establishing the contribution of the common noun words and proper noun words of Table 2.1.

Table 2.1: Tags for common noun words and proper noun words

NSplural common noun (e.g., children, revelations, times, wishes)
Ncommon noun not subclassified as NS, that is, either singular (e.g., child, revelation, time, wish), or neutral for number (e.g., committee, fish, information)
NPRSplural proper noun (e.g., Clintons, Koreas)
NPRproper noun not subclassified as NPRS, that is either singular (e.g., Clinton, Tokyo), or neutral for number (e.g., Andes, IBM)
(2.1)
noun([node('NS',[node(Word,[])])|L],L) --> [w('NS',Word)].
noun([node('N',[node(Word,[])])|L],L) --> [w('N',Word)].
noun([node('NPRS',[node(Word,[])])|L],L) --> [w('NPRS',Word)].
noun([node('NPR',[node(Word,[])])|L],L) --> [w('NPR',Word)].

Prolog query (2.2) asks whether a word list with w('NS','boys') has content for a successful parse of noun structure.

(2.2)
| ?-  tphrase_set_string([w('NS','boys')]), parse(noun).

(NS boys)

yes

    When we connect the noun rules of (2.1) to rules for parsing the internal content of noun phrases in section 3.2, we will find that they contribute nouns which can have a role within the wider noun phrase that makes them either:

    There are also the words of Table 2.2 that are noun phrase head words that cannot have premodifiers. The noun_head rules of (2.3) distinguish this kind of word at the rule level.

Table 2.2: Tags for noun phrase head words that cannot have premodifiers

Q;_nphd_indefinite pronoun with quantification, which can be a compound (e.g., everybody, nothing), or a word which often occurs with the preposition of (e.g., much, many, a_lot)
D;_nphd_indefinite pronoun not subclassified as Q (e.g., someone, anything, another), and demonstrative pronoun (e.g., this, that, these, those)
(2.3)
noun_head([node('Q;_nphd_',[node(Word,[])])|L],L) --> [w('Q;_nphd_',Word)].
noun_head([node('D;_nphd_',[node(Word,[])])|L],L) --> [w('D;_nphd_',Word)].

    Additionally, there are the words of Table 2.3 that essentially contribute a full noun phrase by themselves, that is, they provide a noun phrase head word that cannot itself have modifiers. To distinguish these words, there are the noun_head_full rules of (2.4).

Table 2.3: Tags for noun phrase head words that cannot have modifiers

PNXreflexive pronoun (e.g., myself, yourself, itself, ourselves), or reciprocal pronoun (e.g., each_other)
PROpersonal pronoun (e.g., I, you, them, ours)
PRO;_ppge_nominal possessive personal pronoun (e.g., mine, yours)
WPROwh-pronoun (what, who, whom)
RPROrelative pronoun (which, who, whom, that)
(2.4)
noun_head_full(general,[node('PNX',[node(Word,[])])|L],L) --> [w('PNX',Word)].
noun_head_full(general,[node('PRO',[node(Word,[])])|L],L) --> [w('PRO',Word)].
noun_head_full(non_interrogative,[node('PRO',[node(Word,[])])|L],L) --> [w('PRO',Word)].
noun_head_full(general,[node('NP-GENV',[node('PRO;_ppge_',[node(Word,[])])])|L],L) --> [w('PRO;_ppge_',Word)].
noun_head_full(non_interrogative,[node('NP-GENV',[node('PRO;_ppge_',[node(Word,[])])])|L],L) --> [w('PRO;_ppge_',Word)].
noun_head_full(general,[node('WPRO',[node(Word,[])])|L],L) --> [w('WPRO',Word)].
noun_head_full(interrogative,[node('WPRO',[node(Word,[])])|L],L) --> [w('WPRO',Word)].
noun_head_full(relative,[node('RPRO',[node(Word,[])])|L],L) --> [w('RPRO',Word)].

    Note how rules 4 and 5 of (2.4) return annotation for a genitive case marked noun phrase (NP-GENV) that is projected by PRO;_ppge_ and that will go on to be the only element of a containing noun phrase, as seen with NP-SBJ in the parse result of (2.5).

(2.5)
| ?- tphrase_set_string([w('PRO;_ppge_','Theirs'), w('BEP',';~La','is'), w('ADJ','large'), w('PUNC','.')]), parse(sentence).

(IP-MAT (NP-SBJ (NP-GENV (PRO;_ppge_ Theirs)))
        (BEP;~La is)
        (ADJP-PRD2 (ADJ large))
        (PUNC .))

yes

    We should also note how the noun_head_full rules of (2.4) fall into four different types that depend on the value of the first parameter:


Question:

What do the results of (2.6)–(2.21) tell us about where words with the different word classes of Table 2.3 can be used?

(2.6)
| ?- tphrase_set_string([w('PNX','itself')]), parse(noun_head_full(general)).

(PNX itself)

yes
(2.7)
| ?- tphrase_set_string([w('PNX','itself')]), parse(noun_head_full(non_interrogative)).

no
(2.8)
| ?- tphrase_set_string([w('PNX','itself')]), parse(noun_head_full(interrogative)).

no
(2.9)
| ?- tphrase_set_string([w('PNX','itself')]), parse(noun_head_full(relative)).

no
(2.10)
| ?- tphrase_set_string([w('PRO','it')]), parse(noun_head_full(general)).

(PRO it)

yes
(2.11)
| ?- tphrase_set_string([w('PRO','it')]), parse(noun_head_full(non_interrogative)).

(PRO it)

yes
(2.12)
| ?- tphrase_set_string([w('PRO','it')]), parse(noun_head_full(interrogative)).

no
(2.13)
| ?- tphrase_set_string([w('PRO','it')]), parse(noun_head_full(relative)).

no
(2.14)
| ?- tphrase_set_string([w('WPRO','who')]), parse(noun_head_full(general)).

(WPRO who)

yes
(2.15)
| ?- tphrase_set_string([w('WPRO','who')]), parse(noun_head_full(non_interrogative)).

no
(2.16)
| ?- tphrase_set_string([w('WPRO','who')]), parse(noun_head_full(interrogative)).

(WPRO who)

yes
(2.17)
| ?- tphrase_set_string([w('WPRO','who')]), parse(noun_head_full(relative)).

no
(2.18)
| ?- tphrase_set_string([w('RPRO','who')]), parse(noun_head_full(general)).

no
(2.19)
| ?- tphrase_set_string([w('RPRO','who')]), parse(noun_head_full(non_interrogative)).

no
(2.20)
| ?- tphrase_set_string([w('RPRO','who')]), parse(noun_head_full(interrogative)).

no

(2.21)
| ?- tphrase_set_string([w('RPRO','who')]), parse(noun_head_full(relative)).

(RPRO who)

yes

2.3    Determiner words

The det rules of (2.22) establish the contribution of the determiners of Table 2.4. These words can only serve as noun head premodifiers. Outside of coordination, there can be at most one occurrence of such a word per noun phrase instance.

Table 2.4: Tags for determiner words

Qquantifier (e.g., every, no)
Ddeterminer, which includes articles (e.g., a, the) and demonstratives (e.g., this, that)
WDwh-determiner (e.g., which, what, whichever)
RDrelative determiner of a relative clause (e.g., what, whatever)
(2.22)
det(general,[node('Q',[node(Word,[])])|L],L) --> [w('Q',Word)].
det(non_interrogative,[node('Q',[node(Word,[])])|L],L) --> [w('Q',Word)].
det(general,[node('D',[node(Word,[])])|L],L) --> [w('D',Word)].
det(non_interrogative,[node('D',[node(Word,[])])|L],L) --> [w('D',Word)].
det(general,[node('WD',[node(Word,[])])|L],L) --> [w('WD',Word)].
det(interrogative,[node('WD',[node(Word,[])])|L],L) --> [w('WD',Word)].
det(relative,[node('RD',[node(Word,[])])|L],L) --> [w('RD',Word)].

    Like the words detected by the noun_head_full rules of (2.4), words detected by the det rules of (2.22) fall into four different types that depend on the value of the first parameter:


2.4    Genitive markers

A genitive noun phrase which itself acts as the premodifier of an external noun phrase head is signalled by the presence of either a genitive marker or genitive pronoun word from Table 2.5. Phrase structure integration is achieved with genm of (2.23) and pronoun_genm of (2.24).

Table 2.5: Tags for genitive markers

GENMgenitive marker (<apos>s or <apos>)
PRO;_genm_possessive pronoun, pre-nominal (my, your, our)
WPRO;_genm_genitive wh-pronoun (whose)
RPRO;_genm_genitive relative pronoun (whose)
(2.23)
genm([node('GENM',[node(Word,[])])|L],L) --> [w('GENM',Word)].
(2.24)
pronoun_genm(general,[node('PRO;_genm_',[node(Word,[])])|L],L) --> [w('PRO;_genm_',Word)].
pronoun_genm(non_interrogative,[node('PRO;_genm_',[node(Word,[])])|L],L) --> [w('PRO;_genm_',Word)].
pronoun_genm(general,[node('WPRO;_genm_',[node(Word,[])])|L],L) --> [w('WPRO;_genm_',Word)].
pronoun_genm(interrogative,[node('WPRO;_genm_',[node(Word,[])])|L],L) --> [w('WPRO;_genm_',Word)].
pronoun_genm(relative,[node('RPRO;_genm_',[node(Word,[])])|L],L) --> [w('RPRO;_genm_',Word)].

    Words detected by the pronoun_genm rules of (2.24) fall four three different types that depend on the value of the first parameter:


2.5    Subject indicating words

Except when the type parameter of a finite clause is set to imperative_clause, there is always the requirement that a subject should be introduced with the clause. The subject of a non-imperative finite clause is captured in a parse with the rules of (2.25), provided the clause is not a main clause interrogative whose subject contains an interrogative word.

(2.25)
subject(there_subject,[node('EX',[node(Word,[])])|L],L) -->
  [w('EX',Word)].
subject(cleft_subject,[node('NP-SBJ',[node('PRO;_cleft_',[node(Word,[])])])|L],L) -->
  [w('PRO;_cleft_',Word)].
subject(expletive_subject,[node('NP-SBJ',[node('PRO;_expletive_',[node(Word,[])])])|L],L) -->
  [w('PRO;_expletive_',Word)].
subject(provisional_subject,[node('NP-SBJ',[node('PRO;_provisional_',[node(Word,[])])])|L],L) -->
  [w('PRO;_provisional_',Word)].
subject(filled_subject,L,L0) -->
  noun_phrase('-SBJ',non_interrogative,L,L0).
subject(derived_subject,L,L0) -->
  noun_phrase('-SBJ',non_interrogative,L,L0).

    The first four rules of (2.25) allow for the subject to be a formal word from Table 2.6 that will set the value of the SbjType parameter of the clause to:

Table 2.6: Tags for subject indicating words

EXexistential there, i.e., there of the there is ... or there are ... construction co-occurring with an existential subject (NP-ESBJ)
PRO;_cleft_cleft it occuring as part of a cleft construction (so it was you that got them together)
PRO;_expletive_expletive it e.g., occuring in a weather construction (it's raining)
PRO;_provisional_provisional it occuring with extraposition (it bothered her that she probably would never know)

    The subject is more typically a contentful noun phrase, where this noun phrase will correspond to the ‘do-er’, ‘be-er’ or ‘have-er’ of the verb. Such a typical noun phrase subject is identified with rule 5 of (2.25), which will also set the SbjType parameter of the clause to the value of:

    Also, in the case of a tough-construction (see section 6.5), a contentful noun phrase can lead to the SbjType parameter of the clause being set to the value of:


2.6    Adverb words

Table 2.7 sets out the range of support for different kinds of adverbs. Parse integration is achieved with the adv rules of (2.26).

Table 2.7: Tags for adverb words

ADVgeneral adverb (e.g., often, well, really).
ADVRcomparative adverb (e.g., more, less, farther)
ADVSsuperlative adverb (e.g., most, least, farthest)
RPadverbial particle (e.g., up, off, out)
ADV;_cat_catenative adverb (about in I was about to say; enough in People feel confident enough to do it)
WADVwh-adverb (e.g., how, when, where, why)
RADVrelative adverb of a relative clause (e.g., how, when, where, whereby)
(2.26)
adv(general,[node('ADV',[node(Word,[])])|L],L) --> [w('ADV',Word)].
adv(general,[node('ADVR',[node(Word,[])])|L],L) --> [w('ADVR',Word)].
adv(general,[node('ADVS',[node(Word,[])])|L],L) --> [w('ADVS',Word)].
adv(general,[node('RP',[node(Word,[])])|L],L) --> [w('RP',Word)].
adv(catenative,[node('ADV;_cat_',[node(Word,[])])|L],L) --> [w('ADV;_cat_',Word)].
adv(interrogative,[node('WADV',[node(Word,[])])|L],L) --> [w('WADV',Word)].
adv(relative,[node('RADV',[node(Word,[])])|L],L) --> [w('RADV',Word)].

The adv rules of (2.26) fall into four different types that depend on the value of the first parameter:


2.7    Adjective words

Table 2.8 sets out the range of support for different kinds of adjectives. Parse integration is achieved with the adj rules of (2.27).

Table 2.8: Tags for adjective words

ADJgeneral adjective (e.g., old, good, male)
ADJRcomparative adjective (e.g., older, better)
ADJSsuperlative adjective (e.g., oldest, best)
ADJ;_cat_catenative adjective (able in be able to, willing in be willing to)
(2.27)
adj(general,[node('ADJ',[node(Word,[])])|L],L) --> [w('ADJ',Word)].
adj(general,[node('ADJR',[node(Word,[])])|L],L) --> [w('ADJR',Word)].
adj(general,[node('ADJS',[node(Word,[])])|L],L) --> [w('ADJS',Word)].
adj(catenative,[node('ADJ;_cat_',[node(Word,[])])|L],L) --> [w('ADJ;_cat_',Word)].

The adj rules of (2.27) fall into two different types that depend on the value of the first parameter:


2.8    Verb words

This section covers how verb words are integrated into a parse. The verb rule of (2.28) matches verb words from the word list, collecting information for three parameters: Tag, Code, and Word.

(2.28)
verb(Infl,Code,[node(TagCode,[node(Word,[])])|L],L) -->
  [w(Tag,Code,Word)],
  {
    verb_tag(Infl,TagList),
    member(Tag,TagList),
    sub_atom(Tag,0,1,_,C),
    verb_code(C,Infl,Code),
    atom_concat(Tag,Code,TagCode)
  }.

The collected information is checked for consistency:

Once matched and licensed, the verb word information is added to the parse tree information accumulated with L.

    The remainder of this section distinguishes (section 2.8.1) different verb classes with tags that vary to mark form and inflection information, and distinguishes (section 2.8.2) the grammatical codes that are compatible with the different combinations of verb forms and inflection information. Complement selection for grammatical codes is the topic of chapter 4.


2.8.1    Verb classes

The aim of this section is to distinguish with tags different classes of verb words. Distinctions will be made on the basis of form divided further to distinguish inflection.

    Table 2.9 gives tags for the different forms of lexical verbs.

Table 2.9: Tags for lexical verb words

VBPpresent tense form of lexical verbs (e.g., reaches, supports, writes, sinks, puts, reach, support, write, sink, put)
VBDpast tense form of lexical verbs (e.g., reached, supported, wrote, sank, put)
VBinfinitive form of lexical verbs (e.g., reach, support, write, sink, put)
VAGpresent participle ({ing}) form of lexical verbs (used in the progressive construction) (e.g., reaching, supporting, writing, sinking, putting)
VVNpast participle ({ed}/{en}) form of lexical verbs (used in the perfect construction and the passive construction) (e.g., reached, supported, written, sunk, put)

Table 2.10 gives tags for the different forms of DO.

Table 2.10: Tags for DO

DOPpresent tense forms of the verb DO: do, does, <apos>s
DODpast tense form of the verb DO: did
DOinfinitive form of the verb DO: do
DAGpresent participle form of the verb DO: doing
DONpast participle form of the verb DO: done

Table 2.11 gives tags for the different forms of HAVE.

Table 2.11: Tags for HAVE

HVPpresent tense forms of the verb HAVE: have, <apos>ve, has, <apos>s
HVDpast tense form of the verb HAVE: had, <apos>d
HVinfinitive form of the verb HAVE: have
HAGpresent participle form of the verb HAVE: having
HVNpast participle form of the verb HAVE: had

Table 2.12 gives tags for the different forms of BE.

Table 2.12: Tags for BE

BEPpresent tense forms of the verb BE: i.e. is, am, are, <apos>m, <apos>re, and <apos>s
BEDpast tense forms of the verb BE: was and were
BEinfinitive form of the verb BE: be
BAGpresent participle form of the verb BE: being
BENpast participle form of the verb BE: been

    We can access the verb tag information of tables 2.92.12 on the basis of inflection information with verb_tag of (2.29).

(2.29)
verb_tag(finite_inflection,['VBP','VBD','DOP','DOD','HVP','HVD','BEP','BED']).
verb_tag(imperative_inflection,['VB','DO','HV','BE']).
verb_tag(infinitive_inflection,['VB','DO','HV','BE']).
verb_tag(do_supported_infinitive_inflection,['VB','DO','HV']).
verb_tag(present_participle,['VAG','DAG','HAG','BAG']).
verb_tag(past_participle,['VVN','DON','HVN','BEN']).

The verb_tag rules of (2.29) are called by verb of (2.28) above to ensure a tag compatible with the inflection of the Infl parameter when seeking to match a verb word from the word list.


2.8.2    Verb codes

This section outlines verb codes as tag label extensions. The codes allow for a distinction of verbs to reflect the selection criteria each verb has for its complements, detailed in chapter 4.

    To form a handle on the complement information for main verbs, we adopt the verb code system from the fourth edition of the Oxford Advanced Learner's Dictionary (OALD4; Cowie 1989). In this dictionary, the verb codes are associated with word sense definitions. The system is a mnemonic based reworking of the earlier system of Hornby (1975). A code from the system has:

For example, the La code marks clause structure (L) with a linking verb + a subject predicative constituent that is an adjective phrase (a). As an example with the dot character, the Cn.a code marks a complex-transitive verb in clause structure (C) with the complex-transitive verb + a direct object constituent that is a noun phrase (n) + an object predicative constituent that is an adjective phrase (a).

Table 2.13: Capital letters L, I, T, C, and D

L Linking verb is associated with a subject predicative (-PRD2), an element which provides information about the subject of the clause.
I Intransitive verb is NOT associated with a subject predicative or an object, although it may be associated with an adverbial, an element which tells us about time, place, manner, etc of the action of the verb.
T Transitive verb Mono-transitive verb is associated with a direct object (-OB1), an element which often refers to the person or thing affected by the action of the verb.
C Complex-transitive verb is associated with both a direct object (-OB1) and an object predicative (-PRD), an element which provides more information about the direct object. Note: in the code, a dot divides information about the realisation of the direct object from information about the realisation of the object predicative.
D Ditransitive verb is associated with both a direct object (-OB1) and an indirect object (-OB2), an element which refers to a person who receives something or benefits from an action. Note: in the code, a dot divides information about the realisation of the direct object from information about the realisation of the indirect object.

Table 2.14: Lower case letters a, n, p, pr, n/pr, n/a, t, f, w, g, i and r

aadjective phrase
nnoun phrase
padverb particle
prpreposition phrase
n/prnoun phrase/preposition phrase
n/aas + noun phrase/adjective phrase
tnon-finite clause (to-infinitive) (IP-INF with to tagged TO and verb tagged VB)
fthat-clause (CP-THT)
wfinite or non-finite clause with wh element (CP-QUE)
gparticipial clause ({ing} form) (IP-PPL with verb tagged VAG)
inon-finite clause (bare infinitive) (IP-INF with verb tagged VB but no TO tagged word)
rutterance

    Also, we source three codes directly from Hornby (1975):

    In addition to Cowie (1989) and Hornby (1975) codes, further verb codes distinguish:

    The different verb forms (lexical, DO, HAVE, or BE) allow for different verb codes. verb_code of (2.30) determines compatible verb codes, taking a capital letter as the value for its first parameter to identify the verb form: V for lexical verbs, D for DO verbs, H for HAVE verbs, or B for BE verbs. A verb_code call will then return through the Code parameter a code picked from the corresponding list for compatible codes.

(2.30)
verb_code('V',_,Code) :-
  member(Code,[
     ';~La',';~Ln',
     ';~I',';~Ip',';~Ipr',';~In/pr',';~It',
     ';~Tn',';~Tn.p',';~Tn.pr',';~Tf',';~Tw',';~Tr',';~Tt',';~Tnt',';~Tni',';~Tg',';~Tng',';~Tsg',
     ';~Dn.n',';~Dn.f',';~Dn.w',';~Dn.r',';~Dn.t',';~Dn.*',
     ';~Dpr.n',';~Dpr.f',';~Dpr.r',
     ';~Cn.a',';~Cn.n',';~Cn.n/a',';~Cn.pr',';~Cn.t',';~Cn.i',';~Cn.g',
     ';~V_as_though/as_if/like',
     ';~VP24A',';~VP24C'
    ]).
verb_code('V',Infl,Code) :-
  member(Infl,[finite_inflection,infinitive_inflection,do_supported_infinitive_inflection]),
  member(Code,[';~cat_Vt',';~cat_Vi',';~cat_Vg',';~cat_Vg_passive_',
               ';~cat_Ve_passive_',';~ex_V',';~ex_Vpr',';~ex_cat_Vt']).
verb_code('V',Infl,Code) :-
  member(Infl,[imperative_inflection,present_participle,past_participle]),
  member(Code,[';~cat_Vt',';~cat_Vi',';~cat_Vg',';~cat_Vg_passive_',';~cat_Ve_passive_']).
verb_code('D',_,Code) :-
  member(Code,[';~Tn']).
verb_code('H',_,Code) :-
  member(Code,[';~Tn',';~VP24B',';~VP24C']).
verb_code('H',Infl,Code) :-
  member(Infl,[finite_inflection,infinitive_inflection]),
  member(Code,[';~cat_Vi',';~cat_Vt',';~cat_Ve']).
verb_code('H',Infl,Code) :-
  member(Infl,[imperative_inflection,present_participle,past_participle]),
  member(Code,[';~cat_Vi',';~cat_Vt']).
verb_code('B',_,Code) :-
  member(Code,[
     ';~La',';~Ln',
     ';~I',
     ';~cat_Vt',';~cat_Vt_passive_',';~cat_Ve_passive_',
     ';~equ_Vf',';~equ_Vw',';~equ_Vt',';~equ_Vg'
    ]).
verb_code('B',Infl,Code) :-
  member(Infl,[finite_inflection,infinitive_inflection,past_participle]),
  member(Code,[
     ';~cat_Vg',
     ';~ex_V',';~ex_Vp',';~ex_Vpr',
     ';~ex_cat_Vt',';~ex_cat_Vt_passive_',';~ex_cat_Vg',';~ex_cat_Ve_passive_',
     ';~cleft_Vn'
    ]).

Note how returned codes sometimes depend on inflection information from the Infl parameter.


Question:

What does the Prolog query of (2.31) achieve?

(2.31)
| ?- tphrase_set_string([Word]), parse(verb(Infl,Tag,Code)), fail.

2.9    Modal verbs

Modal verbs have the tags and verb codes of Table 2.15.

Table 2.15: Modal verbs with tags and verb codes

Present tensePast tense
w('MD',';~cat_Vi','shall')w('MD',';~cat_Vi','should')
w('MD',';~cat_Vi','will')w('MD',';~cat_Vi','would')
w('MD',';~cat_Vi','can')w('MD',';~cat_Vi','could')
w('MD',';~cat_Vi','may')w('MD',';~cat_Vi','might')
w('MD',';~cat_Vi','must')
w('MD',';~cat_Vt','ought')
w('MD',';~cat_Vi','need')
w('MD',';~cat_Vi','dare')
w('MD',';~cat_Vt','used')

The modal rules of (2.32) support the integration of the modal words of Table 2.15.

(2.32)
modal(';~cat_Vi',[node('MD;~cat_Vi',[node(Word,[])])|L],L) --> [w('MD',';~cat_Vi',Word)].
modal(';~cat_Vt',[node('MD;~cat_Vt',[node(Word,[])])|L],L) --> [w('MD',';~cat_Vt',Word)].

2.10    Other clause level words

Besides verbs, other clause level components are words with the tags of Table 2.16.

Table 2.16: Tags for other clause level words

NEGnegative particle not
NEG;_clitic_negative clitic particle n<apos>t
TOInfinitive marker to
CONJ;_cl_discourse coordination (e.g., And, But)
INTJinterjection (e.g., aah, eh, ummmmm)
REACTreaction signal (e.g., good_grief, really, yes, wow)
FRMformulaic expression (e.g., good_afternoon, you_see, thank_you)

The optional_clitic_negation, neg and to rules of (2.33) and the adverbial rules of (2.34) support the integration of the words of Table 2.16.

(2.33)
optional_clitic_negation([node('NEG;_clitic_',[node(Word,[])])|L],L) -->
  [w('NEG;_clitic_',Word)].
optional_clitic_negation(L,L) -->
  [].
neg([node('NEG',[node(Word,[])])|L],L) --> [w('NEG',Word)].
to([node('TO',[node(Word,[])])|L],L) --> [w('TO',Word)].
(2.34)
adverbial([node('CONJ;_cl_',[node(Word,[])])|L],L) --> [w('CONJ;_cl_',Word)].
adverbial([node('INTJ',[node(Word,[])])|L],L) --> [w('INTJ',Word)].
adverbial([node('REACT',[node(Word,[])])|L],L) --> [w('REACT',Word)].
adverbial([node('FRM',[node(Word,[])])|L],L) --> [w('FRM',Word)].
adverbial(L,L0) -->
  adverb_phrase('-NIM',general,L,L0).
adverbial(L,L0) -->
  preposition_phrase('-NIM',general,L,L0).
adverbial(L,L0) -->
  scon_clause(L,L0).

    adverbial calls pick up:


2.11    Connective words

So far we have considered words that serve as components of either phrases or clauses. There is a further class of words with the tags of Table 2.17 that serve as the means to connect phrases and clauses.

Table 2.17: Tags for connective words

CONJCoordinating conjunction (and, or, but)
CThe complementizer that
WQMarker of indirect question (whether or if)
P-CONNSubordinating conjunction (e.g., although, when, in_order)
P-ROLERole preposition (e.g., in, of, under)

The conj, comp, comp_wq, conn, and role rules of (2.35) support the integration of the different connective words of Table 2.17.

(2.35)
conj(node('CONJ',[node(Word,[])])) --> [w('CONJ',Word)].
comp([node('C',[node(Word,[])])|L],L) --> [w('C',Word)].
comp_wq([node('WQ',[node(Word,[])])|L],L) --> [w('WQ',Word)].
conn([node('P-CONN',[node(Word,[])])|L],L) --> [w('P-CONN',Word)].
role([node('P-ROLE',[node(Word,[])])|L],L) --> [w('P-ROLE',Word)].

2.12    Punctuation

Punctuation points are treated as words for the purposes of word tagging with the tags of Table 2.18.

Table 2.18: Tag for punctuation

PUNCpunctuation: general separating mark (? . ! ,)
PULQpunctuation: left quotation mark (<ldquo> <lsquo>)
PURQpunctuation: right quotation mark (<rdquo> <rsquo>)

This makes punctuation part of a sentence in its own right. With the creation of constituent structure, punctuation is placed as high as possible. For example, a full stop that ends a sentence is treated as the last constituent of the highest clause layer.

    The punc rules of (2.36) give support for the integration of punctuation, with an initial parameter to distinguish types:

(2.36)
punc(final,[node('PUNC',[node('.',[])])|L],L) --> [w('PUNC','.')].
punc(final,[node('PUNC',[node('!',[])])|L],L) --> [w('PUNC','!')].
punc(final_question,[node('PUNC',[node('?',[])])|L],L) --> [w('PUNC','?')].
punc(non_final,[node('PUNC',[node(',',[])])|L],L) --> [w('PUNC',',')].
punc(left_quotation_mark,[node('PULQ',[node('',[])])|L],L) --> [w('PULQ','')].
punc(left_quotation_mark,[node('PULQ',[node('',[])])|L],L) --> [w('PULQ','')].
punc(right_quotation_mark,[node('PURQ',[node('',[])])|L],L) --> [w('PURQ','')].
punc(right_quotation_mark,[node('PURQ',[node('',[])])|L],L) --> [w('PURQ','')].

    Optional punctuation is achieved with (2.37).

(2.37)
optional_punc(Type,L,L0) -->
  punc(Type,L,L0).
optional_punc(_,L,L) -->
  [].