22.4. Kiterjesztett nyelvtanok

A 22.2. alfejezetben láttuk, hogy az ℰ0 egyszerű nyelvtana előállítja az angol nyelv „I smell a stench” és sok más mondatát. Sajnos azonban sok nem megengedett mondatot is előállít, mint például a „Me smell a stench”. Ezen probléma elkerülése érdekében a nyelvtanunknak tudnia kellene, hogy a „me” nem érvényes NP akkor, amikor a mondat alanya. A nyelvészek azt mondják, hogy az „I” névmás alanyesetű, míg a „me” tárgyesetű.[228] Ha figyelembe vesszük az eseteket, akkor rájövünk, hogy az ℰ0 nem környezetfüggetlen: nem igaz az, hogy minden NP minden mással egyenértékű, függetlenül a környezetétől. A probléma megoldására bevezethetünk olyan új kategóriákat, mint az NPS és NPO a tárgyas és alanyi főnévi kifejezésekre. Ezenkívül ketté kellene bontanunk a Pronoun kategóriát a PronounS-re (amelyik tartalmazza az „I”-t) és PronounO-ra (amelyik tartalmazza a „me”-t). A 22.11. ábra felső része megmutatja az esetegyeztetés teljes BNF nyelvtanát; az így kapott nyelvet ℰ1-nek nevezzük. Vegyük észre, hogy az összes NP szabályt meg kell kettőznünk, egyszer az NPS, másszor az NPO esetre.

22.11. ábra - Felül: Az ℰ1 egy BNF nyelvtana, amely kezeli az alanyi és a tárgyas esetet a főnévi kifejezésekben, és ezért annyira nem is generál túl. Az ℰ1 nyelvtanával megegyező részeket elhagytuk. Lent: Az ℰ1 egy definit klóz nyelvtana (DCG).
Felül: Az ℰ1 egy BNF nyelvtana, amely kezeli az alanyi és a tárgyas esetet a főnévi kifejezésekben, és ezért annyira nem is generál túl. Az ℰ1 nyelvtanával megegyező részeket elhagytuk. Lent: Az ℰ1 egy definit klóz nyelvtana (DCG).

Sajnos az ℰ1 még mindig túlgenerál. Az angol és sok más nyelv megköveteli az alany és a mondat fő igéjének egyeztetését (agreement). Például ha „I” az alany, akkor az „I smell” nyelvtanilag helyes, míg az „I smells” nem. Ha „it” az alany, akkor fordítva igaz. Az angolban az egyeztetésből származó különbségek minimálisak: a legtöbb igének egy alakja van egyes szám harmadik személyű alanyokra (he, she vagy it), és egy másik alakja az egyes és többes szám és a személyek minden más kombinációjára. Egy kivétel van: az „I am / you are / he is” három formával rendelkezik. Ha kombináljuk ezt a három különbségtételt az NPS és NPO különbségtétellel, akkor NP hat alakját kapjuk. Ahogy további különbözőségeket fedezünk fel, végül egy exponenciális sokaságot kapunk.

Az alternatív megközelítés a nyelvtan létező szabályainak kiterjesztése (augmenting) új szabályok bevezetése helyett. Először megmutatjuk egy példán keresztül, hogy hogyan szeretnénk, hogy a kiterjesztett szabályok kinézzenek (a 22.11. ábra alsó fele), azután formálisan megadjuk, hogyan kell ilyen szabályokat értelmezni. A kiterjesztett szabályok nem záró kategóriák esetében megengedik paraméterek alkalmazását. A 22.11. ábra megmutatja, hogyan írhatjuk le az ℰ1 nyelvtant kiterjesztett szabályokkal. Az NP és Pronoun kategóriák rendelkeznek egy olyan paraméterrel, amely leírja az esetüket. (A főnevek nem rendelkeznek esettel az angolban, bár sok más nyelvben igen.) Az S-re vonatkozó szabályban az NP-nek alanyi esetűnek kell lennie, míg a VP és PP szabályokban tárgyasnak. Az NP szabály egy változót fogad paraméterként, az eset-et. A szándék az, hogy az NP tetszőleges esetű lehet, de ha átírjuk Pronoun-ra, akkor ugyanolyan esetűnek kell lennie. Egy változó ilyen használata – elkerülve a döntést, amikor a különbségtétel nem fontos – visszatartja a szabályhalmaz méretének a tulajdonságok számával arányosan exponenciális növekedését.

A kiterjesztés ezen formalizmusát definit klóz nyelvtannak (definite clause grammar) vagy DCG-nek hívjuk, mivel minden nyelvtani szabály értelmezhető a Horn-logikában szereplő definit klózként.[229] Elsőként azt mutatjuk meg, hogy egy normális, kiterjesztés nélküli szabály hogyan értelmezhető definit klózként. Minden kategóriajelet karaktersorozatra vonatkozó predikátumnak tekintünk, így az NP(s) igaz, ha az s karaktersorozat egy NP-t formál. Az

S NP VP

CFG-szabály a következő definit klóz rövidítése:

NP(s1) ∧ VP(s2) ⇒ S(s1 + s2)

Fontos

Itt s1 + s2 két karaktersorozat összefűzését jelenti, így ez a szabály azt mondja, hogy ha van egy s1 füzér, ami egy NP és egy s2 füzér, ami egy VP, akkor az összekapcsolásukkal keletkező füzér egy S, ami pontosan megegyezik azzal, ahogy a CFG-szabályt korábban értelmeztük. Fontos észrevennünk, hogy a DCG-k lehetővé teszik számunkra, hogy az elemzésről mint logikai következtetésről beszéljünk. Ez lehetővé teszi, hogy nyelvek és karaktersorozatok felett sok különböző módon következtessünk. Például ez azt jelenti, hogy egy lentről felfelé elemzést előrefelé következtetéssel, egy fentről lefelé elemzést pedig hátrafelé következtetéssel végezhetünk el. Azt is látni fogjuk, hogy ez azt is jelenti, hogy ugyanazt a nyelvtant elemzésre és generálásra is használhatjuk.

A DCG-megközelítés igazi haszna az, hogy kiterjeszthetjük a kategóriaszimbólumokat a karakterfüzéreken kívül további argumentumokkal. Például a

NP(eset) Pronoun(eset)

szabály a következő definit klóz rövidítése:

Pronoun(eset, s1) ⇒ NP(eset, s1)

Eszerint ha az s1 füzér az eset változó által meghatározott esetű Pronoun, akkor s1 egy ugyanolyan esetű NP is. Általánosságban egy kategóriaszimbólumot tetszőleges számú argumentummal kiterjeszthetünk, és az argumentumok egyben paraméterek, amelyek a szokásos Horn-klóz következtetés egyesítésének tárgyai.

Van ára is ennek a kényelemnek: a nyelvtan íróját ellátjuk a tételbizonyítók teljes erejével, így feladjuk a szintaktikai elemzők által garantált O(n3)-at; a kiterjesztésekkel kiegészített elemzés lehet NP-teljes, vagy akár eldönthetetlen, a kiterjesztésektől függően.

Néhány további trükk szükséges ahhoz, hogy a DCG működjön; például szükségünk van egy módszerre, hogy záró szimbólumokat adhassunk meg, és kényelmes egy olyan módszert is alkalmaznunk, amely nem engedi az automatikus karaktersorozat-argumentum hozzáadását. Mindent összerakva, a definit klóz nyelvtant a következőképpen definiálhatjuk:

  • Az XY Z … jelölés fordítása Y(s1) ∧ Z(s2) ∧ … ⇒ X(s1 + s2 +)

  • Az X Y | Z | … jelölés fordítása Y(s) ∨ Z(s) ∨ … ⇒ X(s)

  • Mindkét megelőző szabályban bármelyik Y nem záró szimbólum egy vagy több argumentummal kiterjeszthető. Bármely argumentum lehet változó, konstans vagy argumentumok függvénye. A fordításban ezen argumentumok megelőzik a karakterfüzér argumentumot (például az NP(eset) fordítása NP(eset, s1)).

  • A {P(…)} jelölés szerepelhet egy szabály jobb oldalán, és változás nélkül átalakul P(…)-vé. Ez lehetővé teszi a nyelvtan írója számára, hogy egy P(…)-re vonatkozó tesztet anélkül elhelyezzen, hogy ahhoz automatikusan hozzáadódjon a karakterfüzér-argumentum.

  • Az Xword jelölés fordítása X([word]).

Az alany–ige egyeztetése szintén kezelhető kiterjesztéssel, de ezt a 22.2. feladatra halasztjuk. Helyette egy nehezebb problémával foglalkozunk: az igék alkategóriákba osztásával.

22.4.1. Igék alkategóriákba osztása

Az ℰ1 nyelv fejlettebb az ℰ0-hoz képest, de még ez is túlgenerál. Az egyik probléma abban a módban rejlik, ahogy az igei kifejezéseket összefűzi. El akarjuk fogadni a „give me the gold” és a „go to 1,2” jellegű igés kifejezéseket. Ezek mindegyike létezik az ℰ1-ben, de sajnos éppígy létezik a „go me the gold” és a „give to 1,2” is. Az ℰ2 nyelv megszünteti ezeket a VP-ket úgy, hogy egyértelműen megadja, melyik igét melyik kifejezés követheti. Ezt az igék alkategória (subcategorization) listájának hívjuk. Az elképzelés az, hogy a Verb kategóriát alkategóriákra bontjuk – egy a tárggyal nem rendelkezők igék számára, egy az egyetlen tárggyal rendelkezőkre és így tovább.

Az ötlet megvalósításához minden egyes igéhez rendelünk egy alkategória-listát (subcategorization list), amely a kiegészítőit (complements) tartalmazza. A kiegészítő olyan kötelező kifejezés, amely az igei kifejezésen belül követi az igét. Azaz a „give the gold to me”-ben az NP a „the gold” és a „to me” PP a „give” kiegészítője.[230] Ezt leírhatjuk így:

Verb([NP, PP]) → give | hand | …

Lehetséges, hogy egy igéhez több, különböző alkategóriára bontás létezik, csakúgy, mint ahogy egy szó számára is lehetséges, hogy több, különböző kategóriába tartozzon. Valójában a „give” rendelkezik az [NP, NP] alkategória-listával is, mint a „Give me the gold” mondatban. Ezt ugyanúgy kezelhetjük, mint minden más többértelműséget. A 22.12. ábra ad pár példát igékre és alkategória-listáikra (angolul röviden subcat).

22.12. ábra - Példák igékre az alkategória-listáikkal együtt
Példák igékre az alkategória-listáikkal együtt

Három dolgot teszünk az igei alkategóriák nyelvtanba illesztéséhez. Az első lépés a VP kategória kiterjesztése egy alkategória-argumentummal, VP(subcat), amely felsorolja azokat a komponenseket, amikkel teljes VP formálható. Például a „give” teljes VP-vé tehető [NP, PP] hozzáadásával, „give the gold” teljessé tehető [PP] hozzáadásával, és a „give the gold to me” már teljes; alkategória-listája üres, []. Ez a következő szabályokat adja VP-re:

VP(subcat)

Verb(subcat)

 

|

VP(subcat + [NP]) NP(Objective)

 

|

VP(subcat + [Adjective]) Adjective

 

|

VP(subcat + [PP]) PP

Az utolsó sor így olvasható: „Adott subcat alkategória-listával rendelkező VP formálható egy beágyazott VP-ből, amit egy PP követ, akkor, ha a beágyazott VP rendelkezik egy olyan alkategória-listával, ami a subcat lista elemeivel kezdődik és PP-vel folytatódik.” Például egy VP([])-t egy VP([PP]) és az azt követő PP alkot. Az első sor szerint egy VP, amely subcat alkategória-listával rendelkezik, formálható egy ugyanolyan alkategória-listával rendelkező Verb segítségével. Például a VP([NP]) létrehozható egy Verb([NP]) által. Egy példa ilyen igére a „grab”, tehát a „grab the gold” egy VP([]).

A második lépés az S-re vonatkozó szabály megváltoztatása úgy, hogy szükségessé tegyen egy igei kifejezést, melynek összes kiegészítése megvan, és így [] alkategória-listája van. Ez azt jelenti, hogy az „I grab the gold” érvényes mondat, de a „You give” nem az. Az új szabály,

S NP(Subjective) VP([])

a következőképpen olvasható: „Egy mondatot összeállíthatunk egy alanyi esetben álló NP-ből és az azt követő, üres alkategória-listájú VP-ből.” A 22.13. ábra bemutat egy elemzési fát, amelyik ezt a nyelvtant használja.

22.13. ábra - A „You give me the gold (Ideadod nekem az aranyat)” elemzési fája, amely bemutatja az ige és az igei kifejezés alkategóriáit
A „You give me the gold (Ideadod nekem az aranyat)” elemzési fája, amely bemutatja az ige és az igei kifejezés alkategóriáit

A harmadik lépésben gondolunk arra, hogy a kiegészítések mellett az igei (és egyéb) kifejezések segédszavakat (adjuncts) is kaphatnak, melyek nem egy igéhez kötődő kifejezések, hanem mindenféle igei kifejezésben feltűnhetnek. Az időt és helyet jelképező kifejezések segédszavak, mivel szinte minden cselekvés vagy esemény rendelkezhet időponttal és helyszínnel. Például a „now” határozószó az „I smell a wumpus now” mondatban és az „on Tuesday” PP a „give me the gold on Tuesday”-ban segédszavak. Íme, két szabály a segédszavak megengedéséhez:

VP(subcat)

VP(subcat) PP

 

|

VP(subcat) Adverb

22.4.2. Kiterjesztett nyelvtanok generálóképessége

Minden kiterjesztett szabály egy szabályséma (rule schema), mely a szabályok egy olyan halmazát jelenti, amit a kiterjesztett alkotórészek értékeinek minden lehetséges kombinációjával állítunk elő. A kiterjesztett nyelvtanok generálóképessége a kombinációk számától függ. Ha véges számú van, akkor a kiterjesztett nyelvtan ekvivalens egy környezetfüggetlen nyelvtannal: a szabályséma felcserélhető egyedi környezetfüggetlen szabályokkal. Azonban ha végtelen számú van, akkor a kiterjesztett nyelvtanok nem környezetfüggetlen nyelveket is leírhatnak. Például az anbncn környezetfüggő nyelv leírható a következő kiterjesztett nyelvtannal:

S(n) → A(n) B(n) C(n)

A(1) → a

A(n + 1) → a A(n)

B(1) → b

B(n + 1) → b B(n)

C(1) → c

C(n + 1) → c C(n)



[228] Az angolban az alanyesetre a „subjective case” mellett alkalmanként a „nominative case” kifejezést is használják. Hasonlóképpen a tárgyesetre az „objective case” mellett az „accusative case” is használatos esetenként. Sok nyelvnek van részes esete is az indirekt tárgy pozícióban álló szavakra.

[229] Idézze fel, hogy a definit klóz, amit ha implikációs formában írunk, pontosan egy atomot tartalmaz a következmény részében, és nulla vagy több atom konjunkcióját a feltétel részében. Két példa az AB ∧ ⇒ C, illetve önmagában a C.

[230] Ez a kiegészítő (complement) egyik definíciója, de vannak más terminológiát használó szerzők is. Egyesek szerint az ige alanya is egy kiegészítő. Mások szerint csak az elöljárói kifejezés kiegészítő, és a főnévi kifejezést egy érvelésnek (argument) kell hívni.