Done Work

see also: WorkBook for a list of open jobs

Eintragen zusätzlicher Namen

  • Supervisor: KilianAFoth
  • Priority: High
  • Difficulty: Low
  • Status: done

Durch die Erweiterung unserer Gold-Annotationen auf die vorletzten Tausend sind viele neue Namen notwendig geworden. Hier ist die Liste der derzeit nicht im Lexikon stehenden Namen.

Bundle the container library

  • Supervisor:
  • Priority:
  • Difficulty:
  • Status: done

Unsere selbstgeschriebenen C-Container-Strukturen wurden vor einiger Zeit zu einer selbständigen Bibliothek BLAH ausgelagert. Aber niemand außer CDG hat sie je benutzt, es ist umständlicher, an zwei Modulen zu arbeiten als einem (die Bibliothek muß erst auf alle Systeme installiert werden, die sie brauchen könnten, bevor man neue Funktionen tatsächlich benutzen kann). Deshalb sollte der Code wieder ins Modul CDG überführt werden.

  • Es gibt immer noch das Verzeichnis cdg/libcontainer , also sollte man die Quellen dort ins Projekt einfügen.
  • Die Quellen zu CDG können immer noch <blah.h> benutzen, aber nicht aus /usr, sondern aus libcontainer (oder wir könnten den albernen Namen ganz abschaffen).
  • Die Dokumentation durch Doxygen zu Hashes, Listem etc. sollte natürlich genauso wie vorher funktionieren, und zwar unter dem Target docs im Makefile von CDG.
  • Die Konfiguration von CDG vereinfacht sich, weil nicht mehr nach libblah gesucht werden muß. Die betreffenden Teile in acinclude.m4 fallen weg. Stattdessen muß libcontainer wieder zu -I und -L hinzugefügt werden.

Erkennung von LAUTEN PASSAGEN

  • Supervisor: KilianAFoth
  • Priority:
  • Difficulty:
  • Status: done
Derzeit werden GROSSGESCHRIEBENE Wörter nicht erkannt, wenn sie nicht genauso im Lexikon stehen. Es gibt eine Extraregel für Worte am Satzanfang, die mit Großbuchstaben beginnen: Wenn ein Satz mit `Und' beginnt und `Und' nicht im Lexikon ist, wird auch `und' nachgeschlagen.

Derselbe Trick sollte nun auch angewandt werden, wenn UND auftaucht, und zwar unabhängig von der Stellung im Satz. Beispielsweise stehen oft ganze Überschriften oder Sätze ganz in Großbuchstaben: `KARL AURINGER, FRANKFURT' Solche Sätze wollen wir analysieren können, ohne daß `FRANKFURT' im Lexikon stehen muß.

Es sollte also folgende weitere Regel implementiert werden:

Wenn ein Wort ganz aus Großbuchstaben besteht (FRANKFURT) und nicht im Lexikon zu finden ist, sollte auch die kapitalisierte Form (Frankfurt) und die kleingeschriebene Form (frankfurt) nachgeschlagen werden. Das Nachschlagen von zusammengesetzten Formen und das Nachladen von Formen aus der Datenbank sollen transparent mit diesem neuen Feature zusammenarbeiten, d.h. `GROSS-FRANKFURT' sollte erlaubt sein, selbst wenn nur `Frankfurt' bekannt ist, indem zuerst das Zusammensetzungs-Regel und dann die Kapitalisierungregel angewandt wird. Möglicherweise ist dafür noch eine weitere Funktion notwendig, die zwischen die beiden bestehenden inputLexiconGetExactly() und inputLexiconGet() eingeschoben wird.

Erkennung von unmarkierten Komposita

  • Supervisor: KilianAFoth
  • Priority:
  • Difficulty:
  • Status: done

Derzeit können Zusammensetzungen nur erkannt werden, wenn sie mit Bindestrich markiert sind. Aus `Rechner' können wir also den Lexikoneintrag für `Server-Rechner' konstruieren, aber nicht den für `Großrechner'. Möglicherweise wäre es besser, wenn auch das möglich wäre. Dazu bräuchten wir eine weitere Regel, die, wenn alles andere fehlschlägt, beliebige Suffixe eines Wortes im Lexikon nachschlägt und neue Einträge konstruiert.

  • Auch diese Regel muß natürlich mit den anderen zusammenarbeiten, damit z.B. aus `Rechner' auch ein Wort wie `Master-Serverrechner' abgeleitet werden kann.
  • Wenn verschiedene solche Zusammensetzungen möglich sind, sollte die mit dem längsten Stamm gewählt werden, z.B. sollte `Serverrechner' von `Rechner' abgeleitet werden und nicht von `er'.
  • Wahrscheinlich sollte man solche Ableitungen überhaupt auf die sog. offenen Wortklassen beschränken (NN, ADJA etc.) und damit umarkierte Ableitungen von Pronomen wie `er' von vornherein aussschließen.
  • Bei einer unmarkierten Ableitung gelten wiederum andere Großschreibungsregeln; `Serverrechner' sollte von `Rechner' abgeleitet werden können, aber nicht von `rechner' (wenn es so ein Wort gäbe). Umgekehrt darf `grünrot' nur von `rot' abgeleitet werden, aber nicht von `Rot'.

Simple Demo of CDG

Xcdg: Bugfixing and reengineering der Databrowser

  • Supervisor: MichaelDaum
  • Priority:
  • Difficulty: medium
  • Status: done by DietmarDreyer

Web-Frontend Bug

Irgendeine Komponente der Parser-Demo verträgt keine langen Eingaben: der Satz

   Geheime, proprietäre Software, unzureichende Überprüfungen
   derselben im Auswahl- und Zertifizierungsprozess und deren
   Anfälligkeit für Angriffe durch die Programmierer seien an
   elektronischen Stimmerfassungs-Systemen ebenso zu kritisieren wie
   das Fehlen von Überprüfungsmöglichkeiten der korrekten
   Stimmerfassung durch den Wähler, schreiben die vier Experten.

erzeugt einen Internal Server Error. Es ist nicht etwa der Parser, der versagt -- der terminiert brav nach 100 Sekunden -- sondern das Perl-Skript `parse', weil es 2GB RAM alloziert und daran stirbt. Das ist typisch für Perl vor Version 5.8, wenn komplizierte dynamische Datenstrukturen auf illegale Weise dereferenziert werden. Durch Protokollierung muß untersucht werden, welche falschen Annahmen in diesem Skript gemacht werden.

Lexikonzugriff: Transliteration von UTF in iso-8859-1

Wenn von xcdg aus Strings an cdg-Funktionen übergeben werden, sind sie als Unicode dargestellt, und zwar in der Kodierung UTF8 (ftp://ftp.rfc-editor.org/in-notes/rfc2279.txt). Die gesamte libcdg geht aber von der normalen iso-8859-1-Kodierung aus (ASCII auf 8 bit erweitert, und zwar für westeuropäische Sprachen). Wenn also jemand im xcdg `lexicon Straße' eintippt, wird eine andere Datenstruktur an inputLexiconGet() übergeben als wenn man es in cdgp eintippt. Insbesondere würde der Aufruf in cdgp gelingen, aber in xcdg scheitern.

Das Verhalten von Tcl, immer Unicode zu benutzen, kann man nicht abstellen, daher muß libcdg darum herumarbeiten. Alle Strings, die eingetippt werden, werden deshalb von Hand transliteriert. Nun habe ich aber die Standardfunktion iconv() gefunden, die dasselbe leistet. Der umständliche `switch' in inputEncodeUmlauts() sollte also durch einen normalen Aufruf von iconv() ersetzt werden.

(Die Funktion inputEncodeUmlauts() erfüllt eigentlich eine andere, verwandte Aufgabe: sie ersetzt die Schreibvariante "s durch ß, "a durch ä etc. Die Transliteration von UTF nach ISO wurde im nachhinein dazugefügt. Möglicherweise wären zwei einzelne Funktionen überschtlicher.)

Fernsteuerung

Beim Betrachten von cdg-Output braucht man oft die Funktionalität `Können wir das bitte im Bild sehen?' oder `Zeige alle Fälle von nichtprojektiven Relativsätzen in diesem Korpus' etc. Das ist möglich, indem man xcdg mit
 
  xcdg -s showparse deutsch s2
startet, oder sogar mit
  xcdg -e 'showparse s3 s43 s53 s152 s543' deutsch
und die Erzeugung dieses Aufrufs automatisiert. So kann man z.B. in einem Emacs-Modus auf Knopfdruck bestimmte Phänomene anzeigen und korrigieren.

Der Nachteil ist, daß der Prozeß danach nicht mehr auf die Kommandozeile hört. Stellt man die Anschlußfrage `...und welche projektive Relativsätze haben wir?', so muß man entweder deren nummern von Hand eintippen oder ein neues XCDG starten. Beides ist Verschwendung. Stattdessen sollte xcdg so gestartet werden können, daß es auf weitere Befehle wartet (über Sockets, Signale oder ähnliches) und sie ausführt.

Constraint-Compiler

This module is practically out of work as it does not compile the DeutschGrammar (NegraGrammar and HeiseGrammar neither). The constraint language has been extended in variuos ways (has(), is(), lookup()), but these addons dont compile. Test-cases have to be provided for constraint grammar compilation. The efficientcy of the compiled agains the interpreted consrtraint grammar needs to be evaluted again.
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback