![]() |
Ergebnisse des WorkshopsAnnotationsstandard für TUSNELDA23.-25. November 1999 |
Veranstalter: Laura Kallmeyer, Andreas Wagner
Teilnehmer: Michael Betsch, Bernhard Brehmer, Hervé Dejean,
Sam Featherston, Gabriela Fulir,
Stefanie Herrmann, Sandra Kübler,
Lothar Lemnitzer, Jürgen Mellinger, Detmar Meurers,
Frank Henrik Müller,
Reimar Müller, Slavica Stevanovic, Tylman Ule
Der Workshop "Annotationsstandard für TUSNELDA" wurde veranstaltet mit dem Ziel, einen gemeinsamen Annotationsstandard für die im SFB 441 gesammelten und aufbereiteten Korpora zu entwickeln. Diese Korpora sollen in die Korpussammlung TUSNELDA (Tübinger Sammlung nutzbarer empirischer linguistischer Datenstrukturen) integriert werden.
Ein Standard für TUSNELDA ist notwendig, damit zum einen die Vergleichbarkeit der Teilkorpora im SFB gegeben ist. Zum anderen soll durch die Standardisierung die Wiederverwendbarkeit der Korpora unter Benutzung einheitlicher Tools gewährleistet werden. Gleichzeitig soll der Standard so flexibel gestaltet werden, dass die unterschiedlichen Bedürfnisse der einzelnen Projekte im SFB 441 berücksichtigt sind.
Bei der Erarbeitung des Standards für TUSNELDA wurde ausgegangen von dem von EAGLES (Expert Advisory Group on Language Engineering Standards) entwickelten Corpus Encoding Standard (CES). Ziel des Workshops war, zu überlegen, wieweit dieser Standard für den SFB modifiziert bzw. erweitert werden muss.
<!ELEMENT tusneldaCorpus - - (tusneldaHeader, (tusneldaDoc+ | tusneldaCorpus+)) > <!ATTLIST tusneldaCorpus %a.global; type CDATA #IMPLIED version CDATA #REQUIRED TEIform CDATA 'teiCorpus.2' >Aus organisatorischen Gründen soll TUSNELDA in Teilkorpora untergliedert werden, die jeweils die Korpora umfassen, die von dem selben Projekt aufgebaut bzw. annotiert werden. Eventuell kann zu einem späteren Zeitpunkt eine weitere Gliederungsebene eingeführt werden, die Teilkorpora einer Sprachfamilie zusammenfasst. Für das Attribut type, das Teilkorpora nach Sprache, Genre etc. typisiert, sollen evtl. zu einem späteren Zeitpunkt Empfehlungen für bestimmmte Werte vereinbart werden. Ob das Attribut TEIform auch in TUSNELDA sinnvoll ist, muss noch entschieden werden. Zunächst wird es beibehalten.
Neben dem beliebig ausführlichen Text in einer frei wählbaren Sprache ist eine englische Kurzfassung wünschenswert.
<!ELEMENT tusneldaHeader - - (fileDesc, encodingDesc?, profileDesc, revisionDesc?) > <!ATTLIST tusneldaHeader %a.header; type CDATA text creator CDATA #IMPLIED date.created CDATA #REQUIRED date.updated CDATA #REQUIRED version CDATA #REQUIRED TEIform CDATA 'teiHeader' >
<!ELEMENT titleStmt - - (h.title, restpStmt) >Elemente von <titleStmt>:
<!ELEMENT respStmt - - ((respType, respName)+) >Empfohlene Inhalte von <respType> sind Project, Annotation, Correction.
<respType>Project</respType> <respName>C1 (Marga Reis)</respName> <respType>Annotation (POS-Tagging)</respType> <respName>Student A</respName> <respType>Correction</respType> <respName>Student B</respName>
<!ELEMENT fileDesc - - (titleStmt, editionStmt, extent?, publicationStmt, sourceDesc+) >
<!ELEMENT editionStmt - o (EMPTY) >Die CES Empfehlungen können hier übernommen werden.
<!ELEMENT extent - - (wordCount, tokenCount, characterCount?, byteCount, extNote*) > <!ATTLIST extent %a.header; >
<!ELEMENT tokenCount - - (#PCDATA) > <!ATTLIST tokenCount %a.header; >
<!ELEMENT characterCount - - (#PCDATA) > <!ATTLIST characterCount %a.header; >Die Inhalte der einzelnen Elemente sollen wie folgt aussehen:
<!ELEMENT publicationStmt - - (distributor, pubAddress, telephone*, fax*, eAddress*, idno*, availability+, pubDate ) >
Das Element <biblStruct> soll gegenüber der CES DTD modifiziert werden:
<!ELEMENT analytic - - (h.author | respStmt | h.title | creationDate)* > <!ATTLIST analytic %a.header; > <!ELEMENT monogr - - (h.title+, (h.author | respStmt)*, (edition, respStmt?)*, imprint+, idno*, (biblNote | biblScope)*, creationDate) > <!ATTLIST monogr %a.header; > <!ELEMENT creationDate - - (#PCDATA) > <!ATTLIST creationDate %a.header; earliest CDATA #REQUIRED latest CDATA #REQUIRED >
Der Inhalt von <samplingDesc> soll im Header eines Korpus Auskunft über die Auswahl der Texte geben. Im Header eines Textes dagegen gibt er Auskunft über die Auswahl der Textausschnitte.
Unterelemente von <editorialDecl>:
<!ATTLIST correction %a.header; %a.declarable; status (high | medium | low | unknown) unknown method (silent | tags) tags >
<!ELEMENT segmentation - - ((tag, segmMethod)*, segmNote?) > <!ATTLIST segmentation %a.header; %a.declarable; >
<!ELEMENT tag - - (#PCDATA) > <!ATTLIST tag %a.header; >
<!ELEMENT segmMethod - - (#PCDATA) > <!ATTLIST segmMethod %a.header; >
<!ELEMENT segmNote - - (#PCDATA) > <!ATTLIST segmNote %a.header; ><segmMethod> sollte auch Angaben über die jeweils verwendeten Skripte machen. Es wurde außerdem vereinbart, wenn möglich die Skripte zusammen mit TUSNELDA bzw. mit den einzelnen Teilkorpora von TUSNELDA zu distribuieren.
<!ATTLIST normalization %a.header; %a.declarable; source CDATA #IMPLIED method (silent | tags) tags >
Als ein für TUSNELDA angestrebter Level of conformance wurde zunächst nur vereinbart, dass für jede Publikationseinheit
Im Header von TUSNELDA soll unter <tagsDecl> für jedes Tag, das in TUSNELDA verwendet wird, ein <tagUsage>-Element vorhanden sein, in dessen Content die Semantik dieses Tags spezifiziert wird. Damit soll gerährleistst werden, dass die einzelnen Tags in TUSNELDA eine einheitliche Semantik haben.
Sowohl in den Headern der einzelnen Texte als auch in den Headern von Teilkorpora sollen die jeweiligen Häufigkeiten der verwendeten Tags mit Hilfe des occurs-Attributs von <tagUsage> codiert sein.
Eine Taxonomie zur Klassifikation der Texte in TUSNELDA wird zu einem späteren Zeitpunkt festgelegt werden.
Da TUSNELDA ein multilinguales Korpus ist, ist die Angabe der verwendeten Sprache(n) in allen Headern unverzichtbar. Deshalb soll das Element <profileDesc> sowie in diesem das Element <langUsage> obligatorisch sein. Das Element <creation> wird nicht benötigt; seine intendierte Verwendung ist unklar. Deshalb wird es gestrichen.
<!ELEMENT tusneldaHeader - - (fileDesc, encodingDesc?, profileDesc, revisionDesc?) > <!ATTLIST tusneldaHeader %a.header; type CDATA text creator CDATA #IMPLIED date.created CDATA #REQUIRED date.updated CDATA #REQUIRED version CDATA #REQUIRED TEIform CDATA 'teiHeader' > <!ELEMENT profileDesc - - (langUsage, wsdUsage?, textClass?, translations?, annotations?) > <!ATTLIST profileDesc %a.header; >
<!ELEMENT language - - (#PCDATA) > <!ATTLIST language id ID #IMPLIED wsd CDATA #IMPLIED n CDATA #IMPLIED type CDATA #IMPLIED ethnologue CDATA #IMPLIED iso639 CDATA #REQUIRED >
Unterelemente von <classDecl>:
<!ELEMENT quote - - ((%par.seq;) | (%phrase.seq;)) >
Ein Beispiel, bei dem das Element <label> für die einzelnen Items gebraucht wird:
<list> <label>Erstens</label> <item>sollte die DTD den Bedürfnissen von Korpuslinguisten, speziell im Rahmen von TUSNELDA, entsprechen, </item> <label>zweitens</label> <item>sollte die DTD problemlos in XML konvertierbar sei, und </item> <label>drittens</label> <item>sollte sie sich so weit wie möglich an bestehenden Standards orientieren. </item> </list>Bei diesem Beispiel ist das <label> auch ein Teil des eigentlichen Textes und sollte daher nicht verloren gehen.
<!ELEMENT figure - - (head?, p*, keywords?, figDesc?, text?) >Beim Annotieren eines Bildes ist die Beschreibung <figDesc> sehr wichtig, da beim Arbeiten mit dem annotierten Text nicht immer die Möglichkeit besteht, das zugehörige Bild zu betrachten.
Ob eine alternative DTD nötig ist und wie sie aussehen könnte, ist zunächst noch offen. Die Diskussion soll im Diskussionsforum Annotationsstandard weitergeführt werden.
Als Lösung des Problems wurde vorgeschlagen, <stage> zu %m.phrase hinzuzufügen.
<!ENTITY % m.phrase - - '%m.token; corr | distinct | foreign | gap | hi | list | mentioned | ptr | q | ref | reg | s | title | stage' >Damit könnte <stage> innerhalb von Paragraphen auftreten, die wiederum innerhalb von <sp> auftreten können.
Dies hat allerdings den Nachteil, dass <stage> auch ausserhalb von <sp> auftreten kann. Im Workshop wurde das Problem nicht weiter diskutiert, aber die Lösung ist noch nicht befriedigend.
Eine Alternative wäre, eine neues Element <spokenPar> für Paragraphen innerhalb von gesprochenem Text zu definieren, das zusätzlich zu den in <p> zugelassenen Elementen auch Elemente <stage> enthalten kann. Da darüber hinaus die Bezeichnung <sp> für ein Element, das Paragraphen enthalten kann, etwas unglücklich ist, könnte man sich eine Umbenennung z.B. in <spokenText> vorstellen. Die neuen Elemente würden dann folgendermaßen aussehen:
<!ELEMENT spokenText - - (speaker*, spokenPar+) >
<!ELEMENT spokenPar - - (%phrase.seq; | stage)* >Dieser Vorschlag muss allerdings noch diskutiert werden. Er würde natürlich bedeuten, dass <stage> doch kein Element von %m.phrase wäre.
Es wurde angemerkt, dass innerhalb von Sätzen auch wieder (zitierte) Sätze auftreten können. Die Information, ob ein Satz innerhalb eines anderen Satzes auftritt, könnte für die Verarbeitung des Korpus wertvoll sein. Daher wurde <s> um ein Attribut nested erweitert mit möglichen Werten yes, no und Default no. Dieses Attribut kann automatisch erzeugt werden. Auch bei <q> könnte, je nach Korpus und Verarbeitungswünschen ein entsprechendes Attribut sinnvoll sein. Da dies aber (im Gegensatz zu dem Attribut nested bei <s>) vermutlich nur für einige Korpora relevant ist, ist das Attribut nested in <q> nicht obligatorisch.
Die erweitereten Attributlisten von <s> und <q> sehen demnach wie folgt aus:
<!ATTLIST s %a.text; next IDREF #IMPLIED prev IDREF #IMPLIED type CDATA #IMPLIED broken (yes | no) no nested (yes | no) no >
<!ATTLIST q %a.text; next IDREF #IMPLIED prev IDREF #IMPLIED type CDATA #IMPLIED direct (y | n | unspecified) unspecified who CDATA #IMPLIED broken (yes | no) no nested (yes | no) #IMPLIED >
Das Attribut nested bekommt den Wert yes, wenn ein Satz einen eingebetteten Satz enthält. Beispiel:
<s nested="yes"> <q id=q1 broken="yes" next=q2> <s id=s1 broken="yes" next=s2 nested="no">Draußen</s> </q>, sprach er, <q id=q2 broken="yes" prev=q1> <s id=s2 broken="yes" prev=s1 nested="no">ist es kalt.</s> </q> </s>
Das Attribut cert soll angeben, wie sicher man sich ist, dass der jeweilige editorische Eingriff sinnvoll ist. Um die Werte von cert einigermaßen miteinander vergleichen zu können, sollen hier überhaupt nur drei Werte zugelassen werden: sure, probable und presumable (sicher, wahrscheinlich, vermutlich).
Damit ergeben sich folgende modifizierte Attributlisten für <reg> und <corr>:
<!ATTLIST reg %a.text; orig CDATA #REQUIRED resp CDATA #IMPLIED cert (sure | probable | presumable) #IMPLIED >
<!ATTLIST corr %a.text; sic CDATA #REQUIRED resp CDATA #IMPLIED cert (sure | probable | presumable) #IMPLIED >Auch an allen anderen Stellen in der DTD werden die Werte für cert entsprechend geändert (z.B. beim Element <gap>).
<hi rend="bo">Eine <hi rend="it">teilweise</hi> kursive Überschrift</hi>Daher wird Rekursion für <hi> zugelassen:
<!ELEMENT hi - - (%phrase.seq;) >
Aus gleichen Gründen sollen auch für die Elemente <foreign>, <distinct>, <mentioned> und <title> Rekursionen erlaubt sein.
<!ATTLIST measure %a.text; type CDATA #IMPLIED value CDATA #IMPLIED >
Die CES Empfehlungen zu Titeln und Rollen sollten übernommen werden, allerdings vielleicht in einer etwas schwächeren Formulierung. In Sprachen, in denen Titel als Teil des Namen betrachtet werden und mit diesem zu einem Wort verbunden werden, möchte (und kann) man wahrscheinlich keine Trennung in Name und Titel vornehmen.
Die Behandlung von Possessiva und derivierten Formen ist noch problematischer. Für das Englische sind die CES Empfehlungen vermutlich sinnvoll. Aber in anderen Sprachen, z.B. im Deutschen, lässt sich die Possessivendung nicht so ohne weiteres vom Namen trennen, und es gibt auch von Namen abgeleitete Adjektive.
In Fällen von Possessiva, die (im Gegensatz zum Englischen) ein Wort bilden, sollte keine Zerlegung gemacht werden, sondern das ganze als ein Name annotiert werden:
<name>Tübingens</name> malerische AltstadtIm Gegensatz dazu sollten 's und ' als eigene Token und damit nicht als Teil des Namens getaggt werden.
<name>Hans</name>' neue TheorieVon Namen abgeleitete Adjektive sollten auch als Namen getaggt werden. Der in den CES Guidelines auftretende entsprechende Absatz über Adjektivformen wird daher nicht übernommen.
die malerische <name>Tübinger</name> AltstadtJe nach Sprache muss beim Kodieren von Namen unterschiedlich vorgegangen werden. Der Inhalt des Tags <name> sollte zumindest immer alles umfassen, was zum Namen dazugehört. Ein einheitliches Vorgehen für ganz TUSNELDA ist wahrscheinlich nicht möglich. Aber innerhalb einer Publikationseinheit sollten Namen einheitlich annotiert sein, und die gewählte Vorgehensweise beim Tagging von Namen sollte im jeweiligen Header erklärt sein.
Bei Abkürzungen wird der Punkt als Teil der Abkürzung getaggt, auch am Satzende, wo er gleichzeitig das Ende des Satzes markiert.
Mit Ausnahme von Abkürzungen sollen Satzzeichen nicht in Tags auf Phrasenebene aufgenommen werden.
Er besucht das malerische <name>Tübingen</name>.
Trennungszeichen sollten entfernt werden, wobei das Original als Attributwert mit angegeben werden muss.
die malerische <reg orig="Alt-stadt">Altstadt</reg>Im Text auftretende Anführungszeichen sollten weggelassen werden, sofern das durch die Anführungszeichen Hervorgehobene getaggt ist (als Zitat <q> z.B.). Welche Art von Anführungszeichen ursprünglich im Text stand, kann im rend Attribut des jeweiligen Tags festgehalten werden.