zum Inhalt springen

Syndred

A Syntax-Driven Editor for Lexical Resources

Projektverantwortliche:

Leitung: Prof. Dr. Jürgen Rolshoven

Mitarbeiter: Francisco Mondaca, Philip Schildkamp, Andreas Vogt

Sprachliche Informationsverarbeitung
Institut für Linguistik
Universität zu Köln

Webseite:

Das Projekt auf Github: Syndred

Theoretischer Rahmen

Der syntaxkontrollierte Editor ist ein flexibles Werkzeug für unterschiedliche, dynamische und kollaborative Projekte, die in der Sprachlichen Informationsverarbeitung verfolgt werden. Die inhärente Struktur textueller Daten im Sinne domänenspezifischer, formaler Sprachen wird durch Produktionssysteme bzw. Grammatiken in EBNF (Extended Backus-Naur form) modelliert. Diese grammatikalischen Regeln wiederum steuern einen Parser, der hierarchische Strukturen für textuelle Daten in Gestalt von Strukturbäumen erzeugt und dabei als Seiteneffekt die formale Korrektheit der Texteingabe überprüft.

Technisches Konzept

Eine netzwerkbasierte, dezentrale Architektur, genauer eine Web-Applikation mit clientseitigem Editor und serverseitigem Parser sind ideal für kollaboratives Arbeiten an textuellen Daten. Diese Systemarchitektur hat nicht nur den Vorteil der Plattformunabhängigkeit, weiter wird auch die Rechenleistung und die Persistierung anfallender Daten an zentraler Stelle von leistungsfähiger Hardware übernommen.

Zielsetzung

Ziel ist die Implementierung eines Editors im Split-View Design, welches einerseits das Erstellen und Bearbeiten der EBNF-Grammatiken und andererseits syntaxkontrolliertes Editieren von textuellen Daten nebeneinander zulässt. Damit soll die Möglichkeit geboten werden Grammatiken aus bestehenden Textdaten abzuleiten oder Arbeiten an textuellem Material von bestehenden Grammatiken anleiten und Prüfen zu lassen, wobei sowohl die Grammatik wie auch die Textdaten in direktem, visuellen Bezug zueinander stehen.

Technische Umsetzung

Auf Seite der Clients wird das auf React basierende Editor-Framework DraftJS eingesetzt, welches mittels im JSON-Format abgewickelter Kommunikation an eine serverseitige Java-Applikation auf basis des Spring-Frameworks gekoppelt ist. Es handelt sich hierbei um eine lose Kopplung, da es ohne Weiteres möglich ist, die clientseitige Schnittstelle als native Software zu implementieren oder ein alternatives Web-Frontend anzubinden.