Pehmelt kontekstisidusad grammatikad ja keeled

[B. H. Partee, A. ter Meulen, R. E. Wall. Mathematical Methods in Linguistics. Kluwer, 1990, 533-551]
Vt. ka Grammar Formalisms, peatükk raamatus Survey of the State of the Art in Human Language Technology.

Loomulikud keeled kuuluvad Chomsky hierarhias kontekstivabade (KV) ja kontekstisidusate (KS) vahele, nad on pigem KV kui KS. Loomulike keelte süntaksist on enamus käsitletav KVG-ga ja aspektid, mis põhjustavad keele kuulumist KS-sse, on isoleeritud ja harvad.

Need asjaolud innustasid tegelema nn. pehmelt KS keeltega (mildly context sensitive, Aravind Joshi).
 
 

Reegel NP -> Art Adj N kannab
- domineerimisinfot: NP osad on Art, Adj, N
- eelnevusinfot: Art eelneb Adj-le, Adj eelneb N-le

Reeglid jaotatakse 2 klassi: D ja P

Näide. G=(T',N',D,P,S), kus eelterminaalide hulk T' = {Adj, N, V, Adv}; mitteterminaalide hulk N' = {S, VP, NP}; domineerimisreeglite hulk D = {S -> NP, VP; NP -> Adj, N; NP -> N; VP ->V, Adv; VP -> V}; eelnevusreeglite hulk P = {Adj < N, V < Adv}; lähtesümbol S; leksikon {väike:Adj, tubli:Adj, Mari:N, Jüri:N, laulab:V, kirjutab:V, hästi:Adv}.
Genereerib/analüüsib nt lauseid väike Mari kirjutab hästi ja kirjutab Mari (mitte aga *Mari väike hästi kirjutab)
Sobib vaba sõnajärjega keelte puhul.

IG (indexed grammar) erineb KVG-st selle poolest, et mitteterminaalsed sümbolid võivad omada indeksite järjendit, kuhu indeksid on valitud etteantud lõplikust hulgast, ja produktsioonid lubavad lisada ja eemaldada neid indekseid tuletusprotsessis (D. Hopcroft, J. Ullman 1979). Indekseid saab lisada (ja eemaldada) järjendi vasakus otsas, järjendi pikkus on piiramata. Seega käitub indeksite järjend nagu magasin. Näiteks kui rakendatakse reeglit A-> aBcdC, siis juhul, kui A omab indeksite järjendit, kopeeritakse see igale paremal pool asuvale mitteterminaalsele sümbolile. Terminaalsed sümbolid ei oma kunagi indekseid.

Näide. Indekseeritud grammatika G=(T,N,I,P,S), kus T={a,b,c}, N={S,T,A,B,C}, I={i,j} - indeksite hulk, P={S -> T[j], T-> T[i], T -> ABC, A[i] -> aA, B[i] -> bB, C[i] -> cC, A[j] -> , B[j] -> , C[j] -> t; },
genereerib keele {anbncn | n³ 0}.
Indeksite roll: loendada, et a, b ja c esinemisi oleks võrdne arv.

Oletatakse, et loomulikud keeled on genereeritavad indekseeritud grammatikatega.
 
 

A. Joshi jt. 1975 - kui KVG piiratud laiendus. Neil on nõrk genereerimisvõime, vahepealne IG ja KVG vahel.

Erinevalt siiani vaadeldud grammatikatest ei genereeri puuühendamisgrammatika lauseid sümbolistringide ümberkirjutamise teel, vaid alustab lõpliku hulga lähtepuudega, mida saab laiendada, sisestades vastava(te)sse positsiooni(desse) ühe nn. abipuu lõplikust hulgast.

G=(I,A), kus I - lähtepuude lõplik hulk ja A - abipuude lõplik hulk. Lähtepuudeks on puud, mille juureks on lähtesümbol ja kõik lehed on terminaalsed. Abipuude lehed on samuti terminaalsed, välja arvatud üks mitteterminaal, mis ühtib juurega. G poolt genereeritud puude hulk saadakse suvalisest lähtepuust, paigutades sellesse (võib-olla 0 korda) puid hulgast A. Keel L(G) - terminaalstringide hulk G poolt genereeritud puudes.

Iga KVG jaoks on rangelt ekvivalentne puuühendamisgrammatika (mis genereerib täpselt samad stringid samade puustruktuuridega). On aga puuühendamisgrammatikaid, mille jaoks ei leidu rangelt ekvivalentset KVG-d.

Puuühendamisgrammatikatega genereeritavad keeled on nõrgalt ekvivalentsed piiratud klassi indekseeritud keeltega (mis genereeritakse selliste IG-te poolt, kus reeglitel on piirang indeksjärjendite pärimise ja nendega manipuleerimise suhtes: reegli paremal poolel võib olla ainult üks mitteterminaalne alluv). See piirang teeb nad vähe huvitavaks loomulike keelte korral, kuna sidesõnade konstruktsioonid nõuavad mitme alluvaga indeksijärjendite pärimist.
 
 

C. Pollard esitas 1984 KVG-te laienduse, milles iga string (fraas) sisaldab erilise sümboli, selle stringi nn. põhja (pea). Näiteks: koer, näljane koer, ei tea kust ilmunud koer meie õues või näljane, väga näljane, näljane kui hunt. Põhjaga stringi võib vaadelda kui paari, mis sisaldab 1) stringi ja 2) pea positsiooni näitava naturaalarvu (maksimaalväärtuseks on stringi pikkus). Kahte põhjaga stringi saab sidurdada (concatenation), sel juhul muutub üks pea resultaatstringi põhjaks: näljane k oer + väga näljane => väga näljane koer. Samuti eksisteerib lahutamise (wrapping) operatsioon, mille korral string lõhestatakse tema põhjas ja paigutatakse sisse teine string: näljane koer + ei tea kust ilmunud koer meie õues =&g t; ei tea kust ilmunud näljane koer meie õues. Põhjagrammatikad vajavad kahte konkatenatsioonioperatsiooni, milles vastavalt kas vasak või parem pea saab resultaadi põhjaks, ja nelja lahutamise operatsiooni (teine string sisestatakse kas esimese põhjast vasakule või paremale ja resultaadi põhjaks saab kas esimene või teine põhi).

Põhjagrammatika on nelik (N,T,S,P), kus P on produktsioonide hulk kujul A-> a või A -> f(a1...an); A on mitteterminaal, a ja ai on kas mitteterminaal või peaga string (i=1,...,n), f on kas konkatenatsiooni või lahutamise operatsioon.

Põhjagrammatikatega genereeritavad keeled sisalduvad puulaiendamisgrammatikatega genereeritavate keelte hulgas (1986). Vastupidine sisaldumine ei ole tõestatud tehniliste raskuste tõttu, mis esinevad 'põhjaga tühistringi' kasutamisel. See viis (A. Joshi) modifitseeritud põhjagrammatikate defineerimiseni, mis on genereerimisvõime poolest (tõenäoliselt, pole tõestatud) nõrgalt ekvivalentsed puulaiendamisgrammatikatega. Modifitseeritud põhjagrammatikas on stringidel põhja asemel märgitud positsioon sümbolite vahel, kust stringi saab lõhestada ja temasse teist stringi asetada. Grammatikas on 3 operatsiooni: kaks konkatenatsiooni ja üks lahutamine.
 

Alus: K. Ajdukiewicz 1935 loogiliste keelte semantilised kategooriad; 1953 soovitas J. Bar-Hillel seda kui loomulike keelte süntaktilise kirjeldamise süsteemi. Ka R. Montague töö loomulike keelte semantika alal põhineb kategoriaalsel süntaksil.

Põhiidee: leksikaalsed üksused võivad olla vastavusse seatud mitte ainult baaskategooriatele (N, V), vaid ka komplekssetele kategooriatele: S/VP - "S, kus puudub VP", VP/(NP/S) jne. Kategooriate järjendeid võib redutseerida teatavat liiki koondamisreegliga ("cancellation" rule) kujul A/B B => A. See tähendab, et kui x on kategooriast A/B ja y on kategooriast B, siis jada xy on kategooriast A. Tavaliselt lisatakse ka tagurpidi koondamisreegel ("backward cancellation" rule): B A\B => A. Näiteks Mary on kategooriast S/VP ja sleeps kategooriast VP, siis Mary sleeps on kategooriast S. Kui often on kategooriast VP/VP, siis jada Mary often sleeps saab redutseerida kategooriaks S järgmiste sammudega:

S/VP VP/VP VP => S/VP VP => S

Mary often sleeps Mary often sleeps Mary often sleeps

Formaalselt: VA - lõplik kategooriasümbolite alfabeet. Kõigi kategooriasümbolite hulk C esitatakse järgmiselt:

  1. Iga xÎ VA korral xÎ C.
  2. Kui x, y Î C, siis ka (x/y) ja (x\y) Î C.
  3. Miski muu ei kuulu hulka C.
KG on nelik G=<VT,VA,S,F>, kus VT - terminaalide hulk, VA - lõplik kategooriasümbolite alfabeet; S Î VA ja F on funktsioon, mis seab igal e terminaalsümbolile vastavusse kategooriate hulga hulgast C.
 
 

Defineerime kategooriajärjendite paaridel binaarse relatsiooni => "redutseerib ühe sammuga":

a X/Y Y b => aXb

a Y X\Y b => aXb

(a,b - kategooriate lõplikud järjendid; X,Y kategooriad hulgast C).

Relatsioon *=> (redutseerib 0 või enama sammuga)

Grammatika G genereerib stringi parajasti siis, kui eksisteerib kategooriate järjend C1...Cn nii, et F(wi) = Ci iga i=1,...,n korral ja C1...Cn*=>S.

Taandamisreeglid:
1) X/Y Y => X
2) Y X\Y => X

Näide. VT = {Mari, Jüri, armastab, seisab}, VA = {S, NP, VP, N, V}, funktsioon F:
Mari N, NP, S/VP
Jüri N, NP, S/VP
armastab V, VP, S\NP, VP/NP
seisab V, VP, S\NP

Lause analüüs: sõnadele rakendatakse funktsiooni F ja püütakse saadud kategooriate järjendit (järjendeid) taandada kategooriaks S.

Praegu uuritakse intensiivselt KG matemaatilisi omadusi.