[Index] [Back] [Forward]


2.5 Merkmalsstrukturen


Grundsätzlich muß man zwischen den Merkmalsstrukturen unterscheiden, die ein konkretes linguistisches Objekt repräsentieren und den Merkmalsstrukturbeschreibungen (MSBs), die in den Grammatikregeln verwendet werden. Merkmalsstrukturen enthalten Attribut-Werte-Paare für die verschiedensten linguistischen Merkmale. MSBs dagegen verwenden Constraints, die die Menge der beschriebenen Merkmalsstrukturen einschränken sollen.

Arten von Constraints

In CAT2 können zur Zeit sechs verschiedene Arten von Constraints in MSBs verwendet werden.

Positive Constraints < attr > = < val >

Positive Constraints entsprechen einfachen Attribut-Werte-Paaren in Merkmalsstrukturen. Sie weisen bei der Unifikation den Merkmalen einer Merkmalsstruktur konkrete Werte zu.

Existentielle Constraints < attr > == < val >

Ein existentielles Constraint unterscheidet sich von einem positiven Constraint nur dadurch, daß es für die Unifizierbarkeit fordert, daß das betreffende Merkmal zum Zeitpunkt der Unifikation schon in der Merkmalsstruktur vorhanden ist.

Negative Constraints < attr > ~= < val >

Negative Constraints besitzen einen eigenen Operator. Damit kann die Negation nicht direkt innerhalb disjunktiver Werte auftreten. Doppelte Negation, d.h. Negation innerhalb eines negativen komplexen Constraints ist nicht erlaubt.

Disjunktive Constraints < attr > = ( < val1 > ; ... ; < valn > )

Ein disjunktives Constraint kann beliebig viele, auch komplexe Werte umfassen.

Implikative Constraints < attr > = < cond > >> < cons >

Implikative Constraints sind nur für komplexe Merkmale sinnvoll. Bedingung und Konsequenz können also einfache oder disjunktiv verknüpfte MSBs sein.

Verkettende Constraints < attr > = ( < seg1 > + ... + < segn > )

Verkettende Constraints dienen einzig und allein der Zerlegung und Zusammensetzung von Zeichenketten. Damit sind die Werte < segi > auf Zeichenketten und Variablen beschränkt, bzw. auf Disjunktionen solcher Werte.

Feste Attribut- und Wertenamen

In MSBs können beliebige Namen für Attribute und Werte gewählt werden. Nur bei einigen wenigen Attributen und Werten legt der CAT2-Formalismus ihre Semantik fest und diese sollten auch nicht in einer anderen Bedeutung verwendet werden.

lex

Das Attribut lex muß in jeder atomaren B-Regel vorkommen, d.h. in jedem Lexikoneintrag, und repräsentiert das Lexem. Normalerweise ist der Wert dieses Merkmals der Stamm oder die Wurzel des jeweiligen Wortes.
punct = {lex=end, string='.',cat=punct,mode=decl}.[]

string

Das Attribut string dient als externer Schlüssel für den Zugriff auf das Lexikon. Beim Einlesen der Token der Quellsprache wird die Zeichenkette, die zu einem Wort gehört jeweils im Attribut string abgelegt. Mittels dieses Attributs wird dann der passende Lexikoneintrag gesucht.
Der Rat verabschiedete den Beschluss.

[{string=der},
 {string='Rat'},
 {string=verabschiedete},
 {string=den},
 {string='Beschluss'}
 {string='.'}
]

word#

Jedem Wort wird eine Nummer zugewiesen, die seiner Stellung im Satz entspricht. Diese Nummer wird im Attribut 'word#' gespeichert.
Der Rat verabschiedete den Beschluss.

[{string=der,'word#'=1},
 {string='Rat','word#'=2},
 {string=verabschiedete,'word#'=3},
 {string=den,'word#'=4},
 {string='Beschluss','word#'=5}
 {string='.','word#'=6}
]

@num

Der Wert '@num' wird dem Attribut lex automatisch zugewiesen, wenn ein Wort der Eingabe als Zahl erkannt wurde.
99 Luftballons

[{string=99, 'word#'=1, lex='@num'},
 {string='Luftballons', 'word#'=2}
]

@unknown

Der Wert '@unknown' wird dem Attribut lex automatisch zugewiesen, wenn ein Wort der Eingabe nicht erkannt werden konnte. Dies geschieht zum Beispiel bei Schreibfehlern, Eigennamen oder noch nicht im Lexikon erfaßten Wörtern.

$index

Der Wert '$index' kann jedem Attribut zugewiesen werden. Während der Unifikation mit einer Merkmalsstruktur wird damit eine Funktion aufgerufen, die einen internen Zähler hochsetzt und die entstandene Zahl anstelle von '$index' als Wert des Merkmals einsetzt.


[Index] [Back] [Forward]