lexicon-pl.dic 21.5 KB
@PHRASE_NAMES
  lex infp np prepnp adjp ip cp ncp advp padvp
  adja prepadjp comprepnp compar measure num aglt aux-fut
  aux-past aux-imp qub interj hyphen int
  rparen rparen2 rquot rquot2 rquot3 inclusion
  day-interval day-lex day-month-interval date-interval
  month-lex year-lex month-interval year-interval roman roman-interval
  hour-minute-interval hour-interval obj-id match-result
  url email day-month day year date hour hour-minute
  się nie by s <root> <conll_root> or or2 <colon> <speaker> <speaker-end> <squery>

@WEIGHTS
symbol_weight=1
measure_weight=0.5

@LEXICON

# symbole występujące w tekście - daty itp. i słowa określające ich typy
lemma=dzień,pos=subst,number=sg,case=gen: day-lex/(date+day+day-month): symbol_weight;
lemma=dzień,pos=subst,number=sg:          np*number*case*gender*person/(date+day+day-month): symbol_weight;
lemma=dzień,pos=subst,number=pl:          np*number*case*gender*person/(date-interval+day-interval+day-month-interval): symbol_weight;
#pos=date:                date{schema}: symbol_weight;
pos=date:                date/(1+year-lex): symbol_weight;
pos=date-interval:       date-interval: symbol_weight;
pos=day:                 day/month-lex: symbol_weight;
pos=day-interval:        day-interval/month-lex: symbol_weight;
#pos=day-month:           day-month{schema}: symbol_weight;
pos=day-month:           day-month/(1+year-lex): symbol_weight;
pos=day-month-interval:  day-month-interval: symbol_weight;

lemma=rok,pos=subst,number=sg,case=gen:   year-lex|(1+adjp*number*case*gender);
lemma=styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|litopad|grudzień,pos=subst,number=sg,case=gen:
  month-lex/(1+year+np*T*gen*T*T): symbol_weight;
lemma=styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|litopad|grudzień,pos=subst,number=sg:
  np*number*case*gender*person/year: symbol_weight;
pos=month-interval:      month-interval: symbol_weight;

lemma=rok,pos=subst,number=sg: np*number*case*gender*person|year: symbol_weight;
lemma=rok,pos=subst,number=pl: np*number*case*gender*person/year-interval: symbol_weight;
pos=year:                 year: symbol_weight;
pos=year-interval:        year-interval: symbol_weight;

lemma=wiek,pos=subst,number=sg: np*number*case*gender*person|roman: symbol_weight;
lemma=wiek,pos=subst,number=pl: np*number*case*gender*person/roman-interval: symbol_weight;
pos=roman:                roman: symbol_weight;
pos=roman-interval:       roman-interval: symbol_weight;

lemma=godzina,pos=subst,number=sg: np*number*case*gender*person/(hour+hour-minute): symbol_weight;
lemma=godzina,pos=subst,number=pl: np*number*case*gender*person/(hour-interval+hour-minute-interval): symbol_weight;
#pos=hour-minute:          hour-minute{schema}: symbol_weight;
#pos=hour:                 hour{schema}: symbol_weight;
pos=hour-minute:          hour-minute: symbol_weight;
pos=hour:                 hour: symbol_weight;
pos=hour-minute-interval: hour-minute-interval: symbol_weight;
pos=hour-interval:        hour-interval: symbol_weight;

lemma=rysunek,pos=subst,number=sg: np*number*case*gender*person/obj-id: symbol_weight; # objids
pos=obj-id:               obj-id: symbol_weight;

pos=match-result:         match-result: symbol_weight;
pos=url:                  url: symbol_weight;
pos=email:                email: symbol_weight;

pos=symbol:               np*number*case*gender*person{\(1+qub),/(1+inclusion)};

# FIXME: uslalić kiedy schema jest pusta i wyciąć ją w takich przypadkach
# frazy rzeczownikowe
pos=subst|depr,nsyn!=pronoun,nsem!=measure:
  np*number*case*gender*person{\(1+num*number*case*gender*person*congr*nsem)}{schema}{\(1+qub),/(1+inclusion)};
pos=subst,case=gen,nsyn!=pronoun,nsem!=measure:
  QUANT[number=T,case=all_cases,gender=T,person=T]
  np*sg*case*n2*person{\num*number*case*gender*person*rec*nsem}{schema}{\(1+qub),/(1+inclusion)}; # UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika
pos=subst,case=gen,nsyn!=pronoun,nsem!=measure:
  QUANT[unumber=all_numbers,ucase=gen,ugender=all_genders, uperson=all_persons,case=gen]
  np*unumber*ucase*ugender*uperson{\measure*unumber*ucase*ugender*uperson}{schema}{\(1+qub),/(1+inclusion)};
pos=subst,case=gen,nsyn!=pronoun,nsem!=measure:
  QUANT[unumber=all_numbers,ucase=dat,ugender=all_genders, uperson=all_persons,case=dat]
  np*unumber*ucase*ugender*uperson{\measure*unumber*ucase*ugender*uperson}{schema}{\(1+qub),/(1+inclusion)};
pos=subst,case=gen,nsyn!=pronoun,nsem!=measure:
  QUANT[unumber=all_numbers,ucase=acc,ugender=all_genders, uperson=all_persons,case=acc]
  np*unumber*ucase*ugender*uperson{\measure*unumber*ucase*ugender*uperson}{schema}{\(1+qub),/(1+inclusion)};
pos=subst,case=gen,nsyn!=pronoun,nsem!=measure:
  QUANT[unumber=all_numbers,ucase=inst,ugender=all_genders, uperson=all_persons,case=inst]
  np*unumber*ucase*ugender*uperson{\measure*unumber*ucase*ugender*uperson}{schema}{\(1+qub),/(1+inclusion)};
pos=subst,case=gen,nsyn!=pronoun,nsem!=measure:
  QUANT[unumber=all_numbers,ucase=loc,ugender=all_genders, uperson=all_persons,case=loc]
  np*unumber*ucase*ugender*uperson{\measure*unumber*ucase*ugender*uperson}{schema}{\(1+qub),/(1+inclusion)};
pos=subst|depr,nsyn=pronoun,nsem!=measure:
  np*number*case*gender*person{\(1+num*number*case*gender*person*congr*nsem)}{\(1+qub),/(1+inclusion)};
pos=subst,case=gen,nsyn=pronoun,nsem!=measure:
  QUANT[number=T,case=all_cases,gender=T,person=T]
  np*sg*case*n2*person{\num*number*case*gender*person*rec*nsem}{\(1+qub),/(1+inclusion)}; # UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika
pos=subst,case=gen,nsyn=pronoun,nsem!=measure:
  QUANT[unumber=all_numbers,ucase=all_cases,ugender=all_genders, uperson=all_persons,number=T,case=all_cases,gender=T,person=ter]
  np*unumber*ucase*ugender*uperson{\measure*unumber*ucase*ugender*uperson}{\(1+qub),/(1+inclusion)};
pos=ppron12:
  np*number*case*gender*person{\(1+qub),/(1+inclusion)};
pos=ppron3,praep=npraep|praep-npraep:
  np*number*case*gender*person{\(1+qub),/(1+inclusion)};
pos=siebie:
  np*number*case*gender*person{\(1+qub),/(1+inclusion)};
lemma=jakiś|ten|taki,pos=apron:
  QUANT[number=T,case=T,gender=T,person=ter]
  np*number*case*gender*person{\(1+qub),/(1+inclusion)};

# liczebniki
# FIXME: liczba po rzeczowniku  # FIXME: zbadać jak liczebniki współdziałąją z jako COMPAR
# dwie reguły są potrzebne po to, żeby w ENIAMsemValence.match_value nie pojawiał się variant
pos=num|intnum|realnum|intnum-interval|realnum-interval,nsem=count:
  num*number*case*gender*person*acm*nsem{\(1+qub),/(1+inclusion)}; # FIXME: jak usunięcie Phrase ProNG wpływa na pokrycie?
pos=num|intnum|realnum|intnum-interval|realnum-interval,nsem=mass:
  num*number*case*gender*person*acm*nsem{\(1+qub),/(1+inclusion)}; # FIXME: jak usunięcie Phrase ProNG wpływa na pokrycie?

# pojemniki
pos=subst,nsem=measure:
  measure*number*case*gender*person{\(1+num*number*case*gender*person*congr*count)}{schema}{\(1+qub),/(1+inclusion)}: measure_weight;
pos=subst,case=gen,nsem=measure:
  QUANT[number=T,case=all_cases,gender=T,person=ter]
  measure*sg*case*n2*person{\num*number*case*gender*person*rec*count}{schema}{\(1+qub),/(1+inclusion)}: measure_weight; # UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika

# frazy przyimkowe
#lemma!=temu,pos=prep:           prepnp*lemma*case{\(1+advp*T),/np*T*case*T*T}{\(1+qub),/(1+inclusion)};
#lemma!=temu,pos=prep:           prepadjp*lemma*case{\(1+advp*T),/adjp*T*case*T}{\(1+qub),/(1+inclusion)};
pos=prep:           prepnp*lemma*case{\(1+advp*T),/np*T*case*T*T}{\(1+qub),/(1+inclusion)};
pos=prep:           prepadjp*lemma*case{\(1+advp*T),/adjp*T*case*T}{\(1+qub),/(1+inclusion)};
lemma=po,pos=prep:  QUANT[case=postp] prepadjp*lemma*case{\(1+advp*T),/(adjp*sg*dat*m1+adjp*T*postp*T)}{\(1+qub),/(1+inclusion)}; # po polsku, po kreciemu
lemma=z,pos=prep:   QUANT[case=postp] prepadjp*lemma*case{\(1+advp*T),/adjp*sg*nom*f}{\(1+qub),/(1+inclusion)}; # z bliska
lemma=na,pos=prep:  QUANT[case=postp] prepadjp*lemma*case{\(1+advp*T),/advp*T}{\(1+qub),/(1+inclusion)}; # na lewo
lemma=temu,pos=prep: prepnp*lemma*case\np*T*case*T*T; # chwilę temu

# przimkowe określenia czasu
lemma=z,pos=prep,case=gen:      prepnp*lemma*case{\(1+advp*T),/(day-month+day+year+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=do,pos=prep,case=gen:     prepnp*lemma*case{\(1+advp*T),/(day-month+day+year+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=na,pos=prep,case=acc:     prepnp*lemma*case{\(1+advp*T),/(day-month+day+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=o,pos=prep,case=loc:      prepnp*lemma*case{\(1+advp*T),/(hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=od,pos=prep,case=gen:     prepnp*lemma*case{\(1+advp*T),/(day-month+day+year+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=około,pos=prep,case=gen:  prepnp*lemma*case{\(1+advp*T),/(day-month+day+year+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=po,pos=prep,case=loc:     prepnp*lemma*case{\(1+advp*T),/(day-month+day+year+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=przed,pos=prep,case=inst: prepnp*lemma*case{\(1+advp*T),/(day-month+day+year+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};
lemma=w,pos=prep,case=loc:      prepnp*lemma*case{\(1+advp*T),/(day-month+day+year+date+hour+hour-minute)}{\(1+qub),/(1+inclusion)};

# komparatywy
# FIXME: trzeba poprawić comparnp i comparpp w walencji
pos=compar: QUANT[case=nom&gen&dat&acc&inst] compar*lemma*case{\(1+advp*T),/(np*T*case*T*T+adjp*T*case*T)}{\(1+qub),/(1+inclusion)};
pos=compar: QUANT[case=postp] compar*lemma*case{\(1+advp*T),/(prepnp*T*T+prepadjp*T*T)}{\(1+qub),/(1+inclusion)};

# frazy przymiotnikowe
# FIXME: let grad = match grads with [grad] -> grad | _ -> failwith "make_adjp: grad" in
pos=adj|adjc|adjp:              adjp*number*case*gender{schema}{\(1+qub),/(1+inclusion)}{\(1+adja)};
lemma=jakiś|ten|taki,pos=apron: adjp*number*case*gender{\(1+qub),/(1+inclusion)};
pos=ordnum|roman-ordnum:        adjp*number*case*gender{\(1+qub),/(1+inclusion)}{\(1+adja)};

pos=adja|intnum|realnum|intnum-interval|realnum-interval|roman|roman-interval: adja/hyphen;

# przysłówki
# FIXME let grad = match grads with [grad] -> grad | _ -> failwith "make_advp: grad" in
pos=adv: advp*mode{schema}{\(1+qub),/(1+inclusion)}{\(1+adja)};

# relatory
# FIXME: dwa znaczenia jak: pytanie o cechę lub spójnik
lemma=jak,pos=adv: #CHECK
  QUANT[amode=0,ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/advp*amode)}{/(advp*amode\advp*mode)};
lemma=skąd|dokąd|gdzie|którędy|kiedy|jak,pos=adv:
  QUANT[ctype=int&rel] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/advp*mode)};
lemma=odkąd|dlaczego|czemu,pos=adv:
  QUANT[ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/advp*mode)};
lemma=gdy,pos=adv:
  QUANT[ctype=sub] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/advp*mode)};

# czasowniki
pos=ger:  np*number*case*gender*person{schema}{\(1+qub),/(1+inclusion)};

pos=pact: adjp*number*case*gender{schema}{\(1+qub),/(1+inclusion)};
pos=ppas: adjp*number*case*gender{schema}{\(1+qub),/(1+inclusion)};

pos=fin|bedzie,negation=aff,mood=indicative:  ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)};
pos=fin|bedzie,negation=neg,mood=indicative:  ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)}{\nie};
pos=fin|bedzie,negation=aff,mood=imperative:         ip*number*gender*person{/(1+int),schema,|aux-imp}{\(1+qub),/(1+inclusion)};
pos=fin|bedzie,negation=neg,mood=imperative:         ip*number*gender*person{/(1+int),schema,|aux-imp}{\(1+qub),/(1+inclusion)}{\nie};
pos=impt|imps,negation=aff:                   ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)};
pos=impt|imps,negation=neg:                   ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)}{\nie};

pos=pred,negation=aff,tense=pres: ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)};
pos=pred,negation=neg,tense=pres: ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)}{\nie};
pos=pred,negation=aff,tense=fut:  ip*number*gender*person{/(1+int),schema,|aux-fut*number*gender*person}{\(1+qub),/(1+inclusion)};
pos=pred,negation=neg,tense=fut:  ip*number*gender*person{/(1+int),schema,|aux-fut*number*gender*person}{\(1+qub),/(1+inclusion)}{\nie};
pos=pred,negation=aff,tense=past: ip*number*gender*person{/(1+int),schema,|aux-past*number*gender*person}{\(1+qub),/(1+inclusion)};
pos=pred,negation=neg,tense=past: ip*number*gender*person{/(1+int),schema,|aux-past*number*gender*person}{\(1+qub),/(1+inclusion)}{\nie};

pos=praet,person=ter,negation=aff,mood=indicative,tense=past:   ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)};
pos=praet,person=ter,negation=neg,mood=indicative,tense=past:   ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)}{\nie};
pos=praet,person!=ter,negation=aff,mood=indicative,tense=past:  ip*number*gender*person{/(1+int),schema,|aglt*number*person}{\(1+qub),/(1+inclusion)};
pos=praet,person!=ter,negation=neg,mood=indicative,tense=past:  ip*number*gender*person{/(1+int),schema,|aglt*number*person}{\(1+qub),/(1+inclusion)}{\nie};

pos=winien,person=ter,negation=aff,mood=indicative,tense=pres:   ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)};
pos=winien,person=ter,negation=neg,mood=indicative,tense=pres:   ip*number*gender*person{/(1+int),schema}{\(1+qub),/(1+inclusion)}{\nie};
pos=winien,person!=ter,negation=aff,mood=indicative,tense=pres:  ip*number*gender*person{/(1+int),schema,|aglt*number*person}{\(1+qub),/(1+inclusion)};
pos=winien,person!=ter,negation=neg,mood=indicative,tense=pres:  ip*number*gender*person{/(1+int),schema,|aglt*number*person}{\(1+qub),/(1+inclusion)}{\nie};

pos=praet|winien,person=ter,negation=aff,mood=conditional,tense!=fut:  ip*number*gender*person{/(1+int),schema,|by}{\(1+qub),/(1+inclusion)};
pos=praet|winien,person=ter,negation=neg,mood=conditional,tense!=fut:  ip*number*gender*person{/(1+int),schema,|by}{\(1+qub),/(1+inclusion)}{\nie};
pos=praet|winien,person!=ter,negation=aff,mood=conditional,tense!=fut: ip*number*gender*person{/(1+int),schema,|aglt*number*person,|by}{\(1+qub),/(1+inclusion)};
pos=praet|winien,person!=ter,negation=neg,mood=conditional,tense!=fut: ip*number*gender*person{/(1+int),schema,|aglt*number*person,|by}{\(1+qub),/(1+inclusion)}{\nie};

pos=praet|winien,negation=aff,tense=fut:  ip*number*gender*person{/(1+int),schema,|aux-fut*number*gender*person}{\(1+qub),/(1+inclusion)};

pos=winien,person=ter,negation=aff,tense=past:  ip*number*gender*person{/(1+int),schema,|aux-past*number*gender*person}{\(1+qub),/(1+inclusion)};
pos=winien,person=ter,negation=neg,tense=past:  ip*number*gender*person{/(1+int),schema,|aux-past*number*gender*person}{\(1+qub),/(1+inclusion)}{\nie};
pos=winien,person!=ter,negation=aff,tense=past: ip*number*gender*person{/(1+int),schema,|aglt*number*person,|aux-past*number*gender*person}{\(1+qub),/(1+inclusion)};
pos=winien,person!=ter,negation=neg,tense=past: ip*number*gender*person{/(1+int),schema,|aglt*number*person,|aux-past*number*gender*person}{\(1+qub),/(1+inclusion)}{\nie};

pos=bedzie,negation=aff,mood=indicative:           aux-fut*number*gender*person;
lemma=być,pos=praet,negation=aff,mood=indicative,tense=past:  aux-past*number*gender*person;
pos=aglt:             aglt*number*person;

pos=inf,negation=aff:   infp*aspect{schema}{\(1+qub),/(1+inclusion)};
pos=inf,negation=neg:   infp*aspect{schema}{\(1+qub),/(1+inclusion)}{\nie};
pos=pcon,negation=aff:  padvp{schema}{\(1+qub),/(1+inclusion)};
pos=pcon,negation=neg:  padvp{schema}{\(1+qub),/(1+inclusion)}{\nie};
pos=pant,negation=aff:  padvp{schema}{\(1+qub),/(1+inclusion)};
pos=pant,negation=neg:  padvp{schema}{\(1+qub),/(1+inclusion)}{\nie};

pos=comp:               QUANT[ctype=sub] cp*ctype*lemma/ip*T*T*T;
pos=conj:               QUANT[ctype=coord] cp*ctype*lemma/ip*T*T*T;
lemma=i|lub|czy|bądź,pos=conj:
  QUANT[number=all_numbers,gender=all_genders,person=all_persons]
  (ip*number*gender*person/ip*T*T*T)\ip*T*T*T;
lemma=,|i|lub|czy|bądź,pos=conj: (advp*mod/prepnp*T*T)\prepnp*T*T;
lemma=,|i|lub|czy|bądź,pos=conj: QUANT[mode=0] (advp*mode/advp*mode)\prepnp*T*T;
lemma=,|i|lub|czy|bądź,pos=conj: QUANT[mode=0] (advp*mode/prepnp*T*T)\advp*mode;
lemma=,|i|lub|czy|bądź,pos=conj: (advp*mod/advp*T)\advp*T; #FIXME: przydałaby się wersja zachowująca mode
lemma=,|i|lub|czy|bądź,pos=conj:
  QUANT[plemma=0,case=all_cases]
  (prepnp*plemma*case/prepnp*plemma*case)\prepnp*plemma*case;
lemma=,|i|lub|czy|bądź,pos=conj:
  QUANT[number=all_numbers,case=all_cases,gender=all_genders,person=all_persons]
  (np*number*case*gender*person/np*T*case*T*T)\np*T*case*T*T;
lemma=,|i|lub|czy|bądź,pos=conj:
  QUANT[number=all_numbers,case=all_cases,gender=all_genders]
  (adjp*number*case*gender/adjp*number*case*gender)\adjp*number*case*gender;

lemma=co|kto,pos=subst:
  QUANT[ctype=int&rel] RAISED[ctype]
  cp*ctype*lemma/(ip*T*T*T/np*number*case*gender*person);
lemma=co|kto,pos=subst:
  QUANT[plemma=0,ctype=int&rel] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/prepnp*plemma*case)}{\(prepnp*plemma*case/np*number*case*gender*person)};
#lemma=co|kto,pos=subst:
#  QUANT[plemma=0,ctype=int&rel] RAISED[ctype]
#  cp*ctype*lemma{/(ip*T*T*T/comprepnp*plemma)}{\(comprepnp*plemma/np*number*case*gender*person)};
lemma=to,pos=subst:
  QUANT[ctype=0,plemma=0]
  ncp*number*case*gender*person*ctype*plemma{\(1+qub),/(1+inclusion)}{/cp*ctype*plemma};
pos=ppron3,praep=praep:
  QUANT[plemma=0]
  prepnp*plemma*case\(prepnp*plemma*case/np*number*case*gender*person); #inclusion
lemma=ile,pos=num,acm=congr:
  QUANT[ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/np*number*case*gender*person)}{/(np*number*case*gender*person\num*number*case*gender*person*congr*nsem)};
lemma=ile,pos=num,acm=congr:
  QUANT[plemma=0,ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/prepnp*plemma*case)}{\(prepnp*plemma*case/np*number*case*gender*person)}{/(np*number*case*gender*person\num*number*case*gender*person*congr*nsem)};
lemma=ile,pos=num,acm=rec:
  QUANT[ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/np*sg*case*n2*person)}{/(np*sg*case*n2*person\num*number*case*gender*person*rec*nsem)};
lemma=ile,pos=num,acm=rec:
  QUANT[plemma=0,ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/prepnp*plemma*case)}{\(prepnp*plemma*case/np*sg*case*n2*person)}{/(np*sg*case*n2*person\num*number*case*gender*person*rec*nsem)};
#lemma=ile,pos=num:  # FIXME: iloma ma bezpośredni podrzędnik rzeczownikowy, a ile nie # FIXME: mwe "o ile, na ile"
#  QUANT[ctype=int&rel]
#  cp*ctype*lemma/ip*T*T*T; # FIXME: zaślepka, bo podrzędnik ile nie musi z nim sąciadować  # FIXME: trzeba dodać przypadki, bezpośredniego podrzędnika rzeczownikowego i przyimka nad "ile"
lemma=czyj|jaki|który,pos=apron:
  QUANT[nperson=0,ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/np*number*case*gender*nperson)}{/(np*number*case*gender*nperson\adjp*number*case*gender)};
lemma=czyj|jaki|który,pos=apron:
  QUANT[nperson=0,plemma=0,ctype=int] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/prepnp*plemma*case)}{\(prepnp*plemma*case/np*number*case*gender*nperson)}{/(np*number*case*gender*nperson\adjp*number*case*gender)};
lemma=jaki|który,pos=apron:
  QUANT[ctype=rel,person=ter] RAISED[ctype]
  cp*ctype*lemma/(ip*T*T*T/np*number*case*gender*person);
lemma=jaki|który,pos=apron:
  QUANT[plemma=0,ctype=rel,person=ter] RAISED[ctype]
  cp*ctype*lemma{/(ip*T*T*T/prepnp*plemma*case)}{\(prepnp*plemma*case/np*number*case*gender*person)};

lemma=się,pos=part:        lex*się*qub; # FIXME: dodać make_np
lemma=nie,pos=part:        nie;
lemma=by,pos=part:         by;
lemma=niech,pos=part:      aux-imp;
lemma=niechaj,pos=part:    aux-imp;
lemma=niechże,pos=part:    aux-imp;
lemma=niechajże,pos=part:  aux-imp;
lemma=czy,pos=part:        QUANT[ctype=int] cp*ctype*lemma/ip*T*T*T;
lemma=gdyby,pos=part:      QUANT[ctype=rel] cp*ctype*lemma/ip*T*T*T;
pos=qub:                  qub;
pos=interj:               interj;
lemma=-,pos=interp:       hyphen;
lemma=?,pos=interp:       int;
lemma=„,pos=interp:       QUANT[number=0,case=0,gender=0,person=0] (np*number*case*gender*person/rquot)/np*number*case*gender*person; #SetAttr("QUOT",Val "+",Var "x"
lemma=«,pos=interp:       QUANT[number=0,case=0,gender=0,person=0] (np*number*case*gender*person/rquot2)/np*number*case*gender*person; #SetAttr("QUOT",Val "+",Var "x"
lemma=»,pos=interp:       QUANT[number=0,case=0,gender=0,person=0] (np*number*case*gender*person/rquot3)/np*number*case*gender*person; #SetAttr("QUOT",Val "+",Var "x"
lemma=”,pos=interp:       rquot;
lemma=»,pos=interp:       rquot2;
lemma=«,pos=interp:       rquot3;
lemma=(,pos=interp:       (inclusion/rparen)/(np*T*T*T*T+ip*T*T*T+adjp*T*T*T+prepnp*T*T); #SetAttr("INCLUSION",Val "+",
lemma=[,pos=interp:       (inclusion/rparen2)/(np*T*T*T*T+ip*T*T*T+adjp*T*T*T+prepnp*T*T); #SetAttr("INCLUSION",Val "+",
lemma=),pos=interp:       rparen;
lemma=],pos=interp:       rparen2;
pos=unk:                  np*number*case*gender*person;
pos=xxx:                  np*number*case*gender*person;

lemma=<conll_root>,pos=interp:    <conll_root>/(ip*T*T*T+cp*int*T+np*sg*voc*T*T+interj);

pos=sinterj:                      BRACKET interj;

lemma=</sentence>,pos=interp:     BRACKET s\?(ip*T*T*T+cp*int*T+np*sg*voc*T*T+interj);
lemma=<sentence>,pos=interp:      BRACKET <root>/s;

lemma=:,pos=interp:               BRACKET or;
lemma=:s,pos=interp:              BRACKET <colon>\<speaker>;
lemma=:s,pos=interp:              BRACKET (<colon>\<speaker>)/<squery>; #FIXME <squery> nie jest nigdzie generowane
lemma=<or-sentence>,pos=interp:   BRACKET <root>/s;
lemma=<or-sentence>,pos=interp:   BRACKET ((<root>/<speaker-end>)/(ip*T*T*T/or))/or2 SEM[λxλyλz.NODE(yx,z)];
lemma=</or-sentence>,pos=interp:  BRACKET or2\?(ip*T*T*T+cp*int*T+np*sg*voc*T*T+interj);
lemma=<sentence>,pos=interp:      BRACKET ((<root>/<speaker-end>)/or)/np*T*nom*T*T;
lemma=</sentence>,pos=interp:     BRACKET <speaker-end>;