apertium-fin-eng

Finnish–English dictionary for rule-based machine translation


Project maintained by apertium Hosted on GitHub Pages – Theme by mattgraham

Apertium-fin-eng: Finnish–English machine translation rules

This is a visualisation of some rules in apertium transfer.

Categories (parts of chunks)

These are the categories Apertium is using in order to chunk, re-order and transfer lexemes.

Category Items
neg-verb
  • ei<vaux.neg.*>
  • ei<vblex.neg.*>
conneg
  • <vblex.*.*.conneg>
  • <vblex.*.*.conneg.*>
cop-conneg
  • olla<*.*.*.conneg>
  • olla<*.*.*.conneg.*>
conneg_nottable
  • voida<*.*.*.conneg>
  • voida<*.*.*.conneg.*>
adneg
  • koskaan<adv>
adv
  • <adv>
  • <part>
quant
  • jokainen<prn.*>
  • tämä<prn.*>
cnjcoo
  • <cnjcoo>
  • <cnjcoo.*>
cnjsub
  • <cnjsub>
  • <cnjsub.*>
  • <cnjadv>
  • <cnjadv.*>
necessive
  • täytyä<vaux.*>
gen-subj
  • <*.*.gen>
  • <*.*.*.*.*.gen>
adv-misc
  • <adv.*>
pron-misc
  • <prn.*>
pron-pers
  • <prn.pers.*>
habitive
  • <n.*.ade>
  • <vblex.v→a.pos.*.ade>
possessional
  • olla<vblex.actv.*.p3.sg>
sint-pers
  • <vblex.*.*.p1.*>
  • <vblex.*.*.p2.*>
infma-ade
  • <vblex.actv.infma.ade>
infma-ine
  • <vblex.actv.infma.ine>
just-inf
  • <vblex.actv.infa.sg>
  • <vblex.actv.infa.lat>
  • <vblex.actv.infma.ill>
vbneg
  • <vblex.neg.*.*.*>
post
  • <pr>
  • <post>
num
  • <num.*>
adj
  • <adj>
  • <adj.*>
verb-mood
  • <vblex.*.cond.*>
  • <vblex.*.imp.*>
  • <vblex.*.pot.*>
  • <vaux.*.cond.*>
  • <vaux.*.imp.*>
  • <vaux.*.pot.*>
cm
  • <cm>
nom-cmp
  • <n.*.*.cmp>
nom
  • <n.*>
  • <n.*.*>
  • <n.*.*.*>
  • <np.*>
  • <np.*.*>
  • <np.*.*.*>
nominal
  • <n.*>
  • <np.*>
  • <prn.*>
sent
  • <sent>
  • <sent.*>
clbpunct
  • <guio>
  • <guio.*>
  • <cm>
  • <cm.*>
verb
  • <vblex.*>
  • <vaux.*>
verb-pprs
  • <vblex.*.pprs.*>
verb-pp
  • <vblex.*.pp.*>
verb-past
  • <vblex.*.past.*>
verb-pres-impers
  • <vblex.*.pres.impers>
  • <vblex.*.pri.impers>
verb-pres
  • <vblex.*.pres.*>
  • <vblex.*.pri.*>
vbolla
  • olla<vaux.*>

Attributes

These are the morphological analysis value (tag) sets that can be processed in the transfer.

Attribute set name Tags
a_voice
  • <actv>
  • <pasv>
a_verb
  • <vblex>
  • <vaux>
  • <vbser>
  • <vbmod>
a_vb
  • <vblex>
  • <vaux>
  • <vbmod>
  • <vbser>
a_person
  • <p1>
  • <p2>
  • <p3>
moodtense
  • <past>
  • <pres>
  • <pri>
  • <cond>
  • <imp>
  • <pot>
a_num
  • <num>
  • <num.card>
  • <num.ord>
a_cnj
  • <cnjcoo>
  • <cnjsub>
  • <cnjadv>
  • <adv>
a_adv
  • <adv>
  • <part>
  • <adv.itg>
a_supernominal
  • <n>
  • <vblex.subs>
  • <np>
  • <np.al>
  • <np.cog>
  • <np.top>
  • <np.ant>
  • <np.ant.f>
  • <np.ant.m>
  • <prn>
  • <prn.subj.p2.mf>
  • <prn.subj.p1.mf>
  • <prn.obj.p1.mf>
  • <prn.obj.p2.mf>
  • <prn.subj.p3.m>
  • <prn.subj.p3.mf>
  • <prn.obj.p3.m>
  • <prn.obj.p3.mf>
a_nom
  • <n>
  • <prn>
  • <prn.subj.p3.m>
  • <prn.obj.p3.m>
  • <vblex.subs>
  • <np>
  • <np.al>
  • <np.cog>
  • <np.top>
  • <np.ant>
  • <np.ant.f>
  • <np.ant.m>
a_adj
  • <adj>
  • <adj.sint>
a_prn
  • <prn.pers>
a_prnpers
  • <subj>
  • <obj>
a_nbr
  • <sg>
  • <sp>
  • <pl>
a_pers
  • <p1>
  • <p2>
  • <p3>
a_gen
  • <m>
  • <nt>
  • <f>
a_cas
  • <abl>
  • <acc>
  • <ade>
  • <ela>
  • <gen>
  • <all>
  • <ill>
  • <ine>
  • <ins>
  • <nom>
  • <abe>
  • <com>
  • <ess>
  • <par>
a_poss
  • <px1sg>
  • <px2sg>
  • <px3sg>
  • <px1pl>
  • <px2pl>
  • <px3pl>
  • <px3sp>
a_post
  • <post>
  • <pr>
synfunc
  • <CLB>
  • <@\+FAUXV>
  • <@\+FMAINV>
  • <@-FADVL>
  • <@-FAUXV>
  • <@-FMAINV>
  • <@-FOBJ→>
  • <@-FSUBJ→>
  • <@-F←OBJ>
  • <@ADVL>
  • <@ADVL←>
  • <@ADVL→>
  • <@COMP-CS←>
  • <@HAB>
  • <@CNP>
  • <@CVP>
  • <@HNOUN>
  • <@INTERJ>
  • <@NEC-S>
  • <@NF-S>
  • <@Num←>
  • <@N←>
  • <@OBJ>
  • <@OBJ>
  • <@OBJ→>
  • <@OPRED>
  • <@OPRED→>
  • <@PC>
  • <@PCLE>
  • <@Pron←>
  • <@P←>
  • <@P→>
  • <@SPRED>
  • <@SPRED←OBJ>
  • <@SPRED→>
  • <@SUBJ>
  • <@SUBJ>
  • <@SUBJ→>
  • <@←ADVL>
  • <@←OBJ>
  • <@←OPRED>
  • <@←P>
  • <@←SPRED>
  • <@←SUBJ>
  • <@→A>
  • <@→ADVL>
  • <@→N>
  • <@→Num>
  • <@→P>
  • <@→Pron>

Macros

Macros are helper functions in apertium transfer files.

proc-synlabel1

Parametres: 1
  1. let tl[1]['synfunc'] ≔ ""

person-handler1

Parametres: 1
    1. if
      1. tl[1]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_nbr'] ≟ <sg>
      3. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  1. let tl[1]['a_voice'] ≔ ""

mood-handler1

Parametres: 1
  1. let tl[1]['synfunc'] ≔ ""
    1. if
      1. sl[1]['moodtense'] ≟ <pri>
      2. sl[1]['moodtense'] ≟ <cond>
      3. sl[1]['moodtense'] ≟ <imp>
      4. sl[1]['moodtense'] ≟ <pot>
    2. then:
      1. let $screeve ≔ <pres>
    3. elseif
      1. sl[1]['moodtense'] ≟ <past>
    4. then:
      1. let $screeve ≔ <past>
    5. else:
      1. let $screeve ≔ <inf>

case-handler1

Parametres: 1
  1. let tl[1]['synfunc'] ≔ ""
    1. if
      1. tl[1]['a_prn'] ≟ <prn.pers>
      2. sl[1]['a_cas'] ≟ <ine>
      3. sl[1]['a_cas'] ≟ <ela>
      4. sl[1]['a_cas'] ≟ <ill>
      5. sl[1]['a_cas'] ≟ <par>
      6. sl[1]['a_cas'] ≟ <ade>
      7. sl[1]['a_cas'] ≟ <abl>
      8. sl[1]['a_cas'] ≟ <all>
      9. sl[1]['a_cas'] ≟ <abe>
      10. sl[1]['a_cas'] ≟ <ins>
      11. sl[1]['a_cas'] ≟ <com>
      12. sl[1]['a_cas'] ≟ <ess>
    2. then:
      1. let tl[1]['a_cas'] ≔ <acc>
      2. let $sntype ≔ <SN>
    3. elseif
      1. sl[1]['a_cas'] ≟ <nom>
      2. sl[1]['a_cas'] ≟ <ine>
      3. sl[1]['a_cas'] ≟ <ela>
      4. sl[1]['a_cas'] ≟ <ill>
      5. sl[1]['a_cas'] ≟ <par>
      6. sl[1]['a_cas'] ≟ <ade>
      7. sl[1]['a_cas'] ≟ <abl>
      8. sl[1]['a_cas'] ≟ <all>
      9. sl[1]['a_cas'] ≟ <abe>
      10. sl[1]['a_cas'] ≟ <ins>
      11. sl[1]['a_cas'] ≟ <com>
      12. sl[1]['a_cas'] ≟ <ess>
    4. then:
      1. let tl[1]['a_cas'] ≔ ""
      2. let $sntype ≔ <SN>
    5. elseif
      1. tl[1]['a_cas'] ≟ <gen>
      2. tl[1]['a_prn'] ≟ <prn.pers>
    6. then:
      1. let tl[1]['a_cas'] ≔ ""
      2. let $sntype ≔ <SN.GEN>
    1. if
      1. sl[1]['a_cas'] ≟ <nom>
    2. then:
      1. let tl[1]['a_prnpers'] ≔ <subj>
    3. else:
      1. let tl[1]['a_prnpers'] ≔ <obj>

Rules

The actual rules concerning stuff.

quantifier nominal: quantifer of nominals

Matching pattern:

  1. quant
  2. nominal

Action:

  1. case-handler1( $1 )
  2. proc-synlabel1( $1 )
  3. case-handler1( $2 )
  4. Output:
    1. [
      1. tl[1]['whole']
      2. b0
      3. "of" <pr>
      4. b1
      5. tl[2]['whole']
      ]pron <SN> sl[1]['a_cas']

REGLA: adv-misc

Matching pattern:

  1. adv-misc

Action:

  1. case-handler1( $1 )
  2. proc-synlabel1( $1 )
  3. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_adv']
      ]adv <SN> sl[1]['a_cas']

REGLA: pron-pers

Matching pattern:

  1. pron-pers

Action:

  1. case-handler1( $1 )
  2. proc-synlabel1( $1 )
  3. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_prn'] tl[1]['a_prnpers'] tl[1]['a_pers'] tl[1]['a_nbr']
      ]pron <SN.pers> sl[1]['a_pers'] sl[1]['a_prnpers'] sl[1]['a_nbr'] sl[1]['a_cas']

REGLA: pron-misc

Matching pattern:

  1. pron-misc

Action:

  1. case-handler1( $1 )
  2. proc-synlabel1( $1 )
  3. Output:
    1. [
      1. tl[1]['whole']
      ]pron <SN> sl[1]['a_cas']

REGLA: NOM

Matching pattern:

  1. nom

Action:

  1. case-handler1( $1 )
  2. proc-synlabel1( $1 )
  3. Output:
    1. [
      1. tl[1]['lemh'] tl[1]['a_nom'] tl[1]['a_nbr'] tl[1]['a_cas'] tl[1]['lemq']
      ]n $sntype sl[1]['a_cas'] sl[1]['a_poss']

REGLA: adj

Matching pattern:

  1. adj

Action:

  1. proc-synlabel1( $1 )
  2. Output:
    1. [
      1. tl[1]['lemh'] tl[1]['a_adj'] tl[1]['lemq']
      ]j <SA>

REGLA: adj cm adj nom

Matching pattern:

  1. adj
  2. cm
  3. adj
  4. nom

Action:

  1. case-handler1( $4 )
  2. proc-synlabel1( $4 )
  3. Output:
    1. [
      1. tl[1]['lemh'] tl[1]['a_adj'] tl[1]['lemq']
      2. b1
      3. tl[2]['whole']
      4. b2
      5. tl[3]['lemh'] tl[3]['a_adj'] tl[3]['lemq']
      6. b3
      7. tl[4]['lemh'] tl[4]['a_nom'] tl[4]['a_nbr'] tl[4]['a_cas'] tl[4]['lemq']
      ]j_j_n $sntype sl[4]['a_cas']

REGLA: nom-cmp nom

Matching pattern:

  1. nom-cmp
  2. nom

Action:

  1. case-handler1( $2 )
  2. proc-synlabel1( $2 )
  3. Output:
    1. [
      1. tl[1]['lemh'] tl[1]['a_nom'] tl[1]['a_nbr'] tl[1]['lemq']
      2. b1
      3. tl[2]['lemh'] tl[2]['a_nom'] tl[2]['a_nbr'] tl[2]['lemq']
      ]n_n $sntype sl[2]['a_cas']

REGLA: adj nom

Matching pattern:

  1. adj
  2. nom

Action:

  1. case-handler1( $2 )
  2. proc-synlabel1( $2 )
  3. Output:
    1. [
      1. tl[1]['lemh'] tl[1]['a_adj'] tl[1]['lemq']
      2. b1
      3. tl[2]['lemh'] tl[2]['a_nom'] tl[2]['a_nbr'] tl[2]['a_cas'] tl[2]['lemq']
      ]j_n $sntype sl[2]['a_cas']

REGLA: neg-verb nega conneg

Matching pattern:

  1. neg-verb
  2. adneg
  3. conneg

Action:

  1. mood-handler1( $1 )
  2. proc-synlabel1( $2 )
    1. if
      1. tl[2]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_nbr'] ≟ <sg>
      3. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  3. Output:
    1. [
      1. tl[2]['whole']
      2. b1
      3. tl[3]['lem'] tl[3]['a_vb'] $screeve tl[1]['a_person'] tl[1]['a_nbr']
      ]notted <SV> sl[1]['moodtense']

REGLA: verb-pprs

Matching pattern:

  1. verb-pprs

Action:

  1. let tl[1]['a_voice'] ≔ ""
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] <ger>
      ]ger <SN>

REGLA: verb-pp

Matching pattern:

  1. verb-pp

Action:

  1. let tl[1]['a_voice'] ≔ ""
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] <pp>
      ]ger <SN>

REGLA: infma-ade

Matching pattern:

  1. infma-ade

Action:

  1. let tl[1]['a_voice'] ≔ ""
  2. Output:
    1. [
      1. "by" <pr>
      2. b
      3. tl[1]['lem'] tl[1]['a_vb'] <ger>
      ]ger <SN>

REGLA: infma-ine

Matching pattern:

  1. infma-ine

Action:

  1. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] <ger>
      ]ger <SN>

REGLA: just inf

Matching pattern:

  1. just-inf

Action:

  1. Output:
    1. [
      1. "to" <pr>
      2. b
      3. tl[1]['lem'] <vblex.inf>
      ]to-do <SV>

REGLA: neg-verb conneg just-inf

Matching pattern:

  1. neg-verb
  2. conneg_nottable
  3. just-inf

Action:

  1. proc-synlabel1( $3 )
  2. mood-handler1( $2 )
    1. if
      1. tl[2]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_nbr'] ≟ <sg>
      3. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  3. Output:
    1. [
      1. tl[2]['lem'] tl[2]['a_vb'] $screeve tl[1]['a_person'] tl[1]['a_nbr']
      2. b1
      3. "not" <adv>
      4. b2
      5. tl[3]['whole']
      ]notted <SV> sl[2]['moodtense']

REGLA: neg-verb cop-conneg

Matching pattern:

  1. neg-verb
  2. cop-conneg

Action:

  1. mood-handler1( $2 )
    1. if
      1. tl[2]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_nbr'] ≟ <sg>
      3. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  2. Output:
    1. [
      1. tl[2]['lem'] tl[2]['a_vb'] $screeve tl[1]['a_person'] tl[1]['a_nbr']
      2. b1
      3. "not" <adv>
      ]neg-cop <SV.COP> $moodtense

REGLA: neg-verb nega conneg

Matching pattern:

  1. neg-verb
  2. adneg
  3. conneg_nottable

Action:

  1. mood-handler1( $3 )
    1. if
      1. tl[2]['a_verb'] ≟ <vaux.actv>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  2. Output:
    1. [
      1. tl[3]['lem'] tl[3]['a_vb'] $screeve tl[3]['a_person'] tl[1]['a_nbr']
      2. b1
      3. "not" <adv>
      ]notted <SV> $screeve

REGLA: neg-verb conneg

Matching pattern:

  1. neg-verb
  2. conneg_nottable

Action:

  1. mood-handler1( $2 )
    1. if
      1. tl[2]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_nbr'] ≟ <sg>
      3. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  2. Output:
    1. [
      1. tl[2]['lem'] tl[2]['a_vb'] $screeve tl[1]['a_person'] tl[1]['a_nbr']
      2. b1
      3. "not" <adv>
      ]notted <SV> $screeve

REGLA: neg conneg

Matching pattern:

  1. vbneg
  2. conneg

Action:

  1. Output:
    1. [
      1. "do" <vblex.pres> tl[1]['a_pers'] tl[1]['a_nbr']
      2. b1
      3. "not" <adv>
      4. b1
      5. tl[2]['lem'] tl[2]['a_verb'] <inf>
      ]negation <SN>

REGLA: stray neg

Matching pattern:

  1. vbneg

Action:

  1. Output:
    1. [
      1. "not" <adv>
      ]neg <SV.NEG> sl[1]['moodtense']

REGLA: vbolla

Matching pattern:

  1. vbolla

Action:

  1. mood-handler1( $1 )
    1. if
      1. sl[1]['moodtense'] ≟ <pres>
      2. sl[1]['a_nbr'] ≟ <pl>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
    3. elseif
      1. sl[1]['moodtense'] ≟ <past>
      2. sl[1]['a_nbr'] ≟ <sg>
    4. then:
      1. let tl[1]['a_nbr'] ≔ "sg"
      2. let tl[1]['a_person'] ≔ "p3"
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] $screeve tl[1]['a_person'] tl[1]['a_nbr']
      ]cop <SV.COP> $screeve

REGLA: verb-past

Matching pattern:

  1. verb-past

Action:

  1. mood-handler1( $1 )
  2. let tl[1]['a_nbr'] ≔ ""
  3. let tl[1]['a_person'] ≔ ""
  4. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] $screeve
      ]v <SV> sl[1]['a_person'] sl[1]['a_nbr'] $screeve

REGLA: verb-pres-impers

Matching pattern:

  1. verb-pres-impers

Action:

  1. mood-handler1( $1 )
    1. if
      1. tl[1]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_nbr'] ≟ <sg>
      3. tl[1]['a_person'] ≟ <p1>
      4. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  2. let tl[1]['a_voice'] ≔ ""
  3. Output:
    1. [
      1. "be" <vbser> $screeve <p3.sg>
      2. b
      3. tl[1]['lem'] tl[1]['a_vb'] <pp>
      ]v <SV> sl[1]['a_person'] sl[1]['a_nbr']

REGLA: verb-pres

Matching pattern:

  1. verb-pres

Action:

  1. mood-handler1( $1 )
    1. if
      1. tl[1]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_verb'] ≟ <vbmod.actv>
      3. tl[1]['a_nbr'] ≟ <sg>
      4. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  2. let tl[1]['a_voice'] ≔ ""
  3. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] $screeve tl[1]['a_person'] tl[1]['a_nbr']
      ]v <SV> sl[1]['a_person'] sl[1]['a_nbr']

REGLA: moody verb

Matching pattern:

  1. verb-mood

Action:

  1. mood-handler1( $1 )
    1. if
      1. tl[1]['a_verb'] ≟ <vaux.actv>
      2. tl[1]['a_nbr'] ≟ <sg>
      3. tl[1]['a_person'] ≟ <p3>
    2. then:
      1. let tl[1]['a_nbr'] ≔ ""
      2. let tl[1]['a_person'] ≔ ""
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] $screeve tl[1]['a_person'] tl[1]['a_nbr']
      ]v <SV> sl[1]['a_person'] sl[1]['a_nbr'] $screeve

REGLA: num

Matching pattern:

  1. num

Action:

  1. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_num']
      ]num <NUM>

REGLA: num nom

Matching pattern:

  1. num
  2. nom

Action:

  1. case-handler1( $2 )
    1. if
      1. tl[1]['lem'] ≟ "one"
    2. then:
      1. let tl[2]['a_nbr'] ≔ <pl>
      2. let tl[1]['a_nbr'] ≔ <pl>
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_num'] tl[1]['a_nbr']
      2. b0
      3. b1
      4. tl[2]['lem'] tl[2]['a_nom'] tl[2]['a_nbr'] tl[2]['a_cas']
      ]num <NUM>

REGLA: habitive stuff

Matching pattern:

  1. habitive
  2. possessional

Action:

  1. proc-synlabel1( $2 )
    1. if
      1. tl[1]['a_nom'] ≟ <n>
    2. then:
      1. let tl[1]['tags'] ≔ <n> tl[1]['a_nbr']<gen>
    3. elseif
      1. tl[1]['a_verb'] ≟ <vblex>
    4. then:
      1. let tl[1]['tags'] ≔ <vblex.subs>
  2. Output:
    1. [
      1. tl[1]['lemh'] tl[1]['tags'] tl[1]['lemq']
      2. b1
      3. tl[2]['whole']
      ]verb phrase <SV>

REGLA: POST

Matching pattern:

  1. post

Action:

  1. proc-synlabel1( $1 )
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_post']
      ]post <POST> tl[1]['a_post']

REGLA: ADV

Matching pattern:

  1. adv

Action:

  1. proc-synlabel1( $1 )
  2. Output:
    1. [
      1. tl[1]['whole']
      ]adv <ADV>

REGLA: Necessrary

Matching pattern:

  1. gen-subj
  2. necessive

Action:

  1. case-handler1( $1 )
  2. Output:
    1. [
      1. tl[1]['whole']
      2. b1
      3. "must" <vbmod.pres>
      ]NECESSIVE <NP-NEC>

REGLA: gen owner

Matching pattern:

  1. gen-subj
  2. nom

Action:

  1. case-handler1( $2 )
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_supernominal'] tl[1]['a_nbr'] "+" "'s" <gen>
      2. b1
      3. tl[2]['whole']
      ]REALGEN <NP-GEN>

REGLA: cnjcoo

Matching pattern:

  1. cnjcoo

Action:

  1. proc-synlabel1( $1 )
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_cnj']
      ]cc <CC>

REGLA: cnjsub

Matching pattern:

  1. cnjsub

Action:

  1. proc-synlabel1( $1 )
  2. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_cnj']
      ]cs <CS>

negverb fallback

Matching pattern:

  1. neg-verb

Action:

  1. Output:
    1. [
      1. "no" <adv>
      ]v <SV.NEG>

verb fallback

Matching pattern:

  1. verb

Action:

  1. mood-handler1( $1 )
  2. person-handler1( $1 )
  3. Output:
    1. [
      1. tl[1]['lem'] tl[1]['a_vb'] $screeve $person
      ]v <SV> $person $screeve

clb symbols

Matching pattern:

  1. clbpunct

Action:

  1. proc-synlabel1( $1 )
  2. Output:
    1. [
      1. tl[1]['whole']
      ]sent <SENT>

generic nop rule

Matching pattern:

  1. sent

Action:

  1. proc-synlabel1( $1 )
  2. Output:
    1. [
      1. tl[1]['whole']
      ]sent <SENT>