11.2.  Flag-Diacritics

11.2.1.  Unifikation

Flag-Diacritics (diakritische Merkmale) 

Definition 11.2.1. Flag-Diacritics sind Mehrzeichen-Symbole, welche zur Laufzeit an den mit ihnen beschrifteten Kantenübergängen Instantiierungen und Zuweisung von atomaren Werten an eine Variable auslösen. Ansonsten funktionieren sie aber wie ein ϵ-Übergang .

Unifikationstest an einem Kantenübergang

"@U.FEATURE .VALUE @"
Falls das Merkmal FEATURE uninstantiiert ist, unifiziere es mit dem Wert VALUE und erlaube den Kantenübergang. Falls das Merkmal FEATURE instantiiert ist, erlaube den Kantenübergang nur, wenn es den Wert VALUE hat.

pict

Abbildung 11.2: EA mit Unifikationstest-Übergang

Einfaches Beispiel ▸▸▸ 

Beispiel 11.2.2 (Flag-Diacritic für Unifikationstest).


read regex [
  [ a "@U.merkmal.a@" | b "@U.merkmal.b@" ]
  c
  [ "@U.merkmal.a@" a | "@U.merkmal.b@" b ]
];

Fragen

Linguistisches Beispiel in lexc ▸▸▸ 


Multichar_Symbols @U.ART.PRESENT@ @U.ART.ABSENT@ uN aN iN

LEXICON Root
    Article ;

LEXICON Article  ! "al" ist optionaler definiter Artikel,
al @U.ART.PRESENT@ Stems ;  ! dessen Präsenz Indefinit-Endungen verbietet
                   Stems ;  ! Kein definiter Artikel

LEXICON Stems
kitaab Case ;              ! Beispieleintrag "Buch"

LEXICON Case
u #;                        ! Definiter Nominativ
a #;                       ! Definiter Akkusativ
i #;                        ! Definiter Genitiv
@U.ART.ABSENT@ IndefCase ;  ! Falls definiter Artikel fehlt,
                             ! ist Suffix für Indefinit-Endung möglich
LEXICON IndefCase
uN # ;                  ! Indefiniter Nominativ
aN # ;                  ! Indefiniter Akkusativ
iN # ;                  ! Indefiniter Genitiv

11.2.2.  Weitere Operatoren

Weitere Tests und Operatoren 

Technik: Forward-Looking Requirements mit @P, @C und @D

Aktiviere Forderung für die Präsenz eines nachfolgenden Elements.
Lösche Forderung, wenn sie erfüllt ist. Ein Schlusstest verbietet alle Pfade, bei denen die Forderung noch besteht.


LEXICON Foo
foo@P.RequireBar.ON@ CC1;
...  ! Forderung aktiviert
LEXICON Bar
bar@C.RequireBar@ CC2;
...  ! Forderung erfüllt
LEXICON CEnd
@D.RequireBar@ # ;
! Blockiere Pfade mit aktiver Forderung

Vorteil von Flag-Diacritics 

11.2.3.  Elimination diakritischer Merkmale

Manuelle Eliminierung von diakritischen Merkmalen ▸▸▸ 
Diakritische Merkmal definieren Restriktionen über einer Sprache:


reg Restr ~ [           ! Es darf nicht sein, dass
[$ "@U.ART.PRESENT@"]   ! ein ABSENT nach einem PRESENT steht.
  ~ $ ["@P.ART.ABSENT@" ! Solange nicht ABSENT dazwischen positiv gesetzt
       | "@C.ART@"      !  oder das Merkmal ART neutralisiert ist.
      ]
[$ "@U.ART.ABSENT@" ]
];

Vorgehen zur Eliminierung

Die Restriktion muss auf den Transduktor komponiert werden. Danach lassen sich alle diakritischen Merkmale mit Bezug auf ART durch ϵ ersetzen.