[linux-l] Labanotation-Projekt (was: Grammar Design)

Volker Grabsch vog at notjusthosting.com
Do Sep 22 14:49:34 CEST 2005


Hallo Oliver!

Das ist wohl noch ein Missverständnis zu klären. Zuerst hatte ich
geglaubt, du brauchst für Labanotation eine Scriptsprache. Mit
allen Features, die eine Programmiersprache bietet, inkl. Aufrufen
von externen Filtern oder Berechnen von 100 Nachkommastellen von PI.
Aus dieser Sicht heraus wäre nämlich Python eine gute Wahl gewesen.
Und natürlich kannst du dann die Labanotation-Sachen nicht mehr als
Dokumente betrachten, sondern musst sie wie Programme behandeln, mit
allen Risiken, die das Starten von fremden Programmen nunmal beinhaltet.

Aber wie ich mitbekommen habe, willst du gar nicht in dieser Laban-
Sprache programmieren. Wahrscheinlich brauchst du überhaupt keine
Scripting-fähigkeiten, und falls doch, könnte das Einbetten von JavaScript
etc. interessant sein, da gibt es sicher auch schon Engines, die dir
das dann ausführen können. Aber wiegesagt, das brauchst du nicht,
wenn ich dich richtig verstanden habe.

Was du willst, ist bloß eine Dokumentensprache, vielleicht mit
kleinen Template-Fähigkeiten. Das nanntest du Variablen-Zuweisung
bzw. Funktionen, was in Bezug auf Textsatz nichts weiter sind als
Makros mit Parametern ... einige nennen sowas auch Templates.

Würde es nur um die Darstellung gehen, hätte ich dir sofort TeX oder
Lout empfohlen, da hast du genau die Makro-Fähigkeiten, die du brauchst.
Viel "Programmieren" hättest du in TeX nicht müssen, IMHO.
Aber du willst das nachher noch analysieren können, und das wird haarig.

Deshalb brauchst du auf jeden Fall ein extra Format, das jeder parsen
kann und das lange Zeit möglichst einfach und stabil bleibt. Hier nimmt
dir XML sehr, sehr viel ab, deshalb habe ich "LabanXML" empfohlen.

Hieraus kannst du dann z.B. LaTeX-Code erzeugen, es braucht nur
einfacher Code zu sein, denn alles, was ständig mit generiert werden
müsste, könntest du in einem Paket auslagern. Außer den Symbolen, die
du irgendwie anders als Font erzeugen solltest, sehe ich nichts, was
du nicht sofort in LaTeX machen könntest. Rotation und Spieleung von
Symbolen, vertikale Anordnung, .... das ist alles noch Textsatz.

Den Font generierst du vielleicht tatsächlich am besten mit PostScript,
aber das Drumherum, was die Darstellung angeht, das sind alles Textsatz-
Probleme, oder übersehe ich da was? Da kannst du LaTeX nehmen, oder
vielleicht auch SVG, musste sehen, was dir mehr Arbeit abnimmt. Diese
Operationen aber auch noch in PostScript (EPS) zu machen, ist IMHO nur
eine Notlösung.

Schau dir SVG an, und dann kannst du immer noch entscheiden, wie du
den Weg LabanXML -> SVG oder LaTeX machen willst. Von beiden Formaten
kommst du mit Standardwerkzeugen schnell nach EPS und auch nach PNG,
also kein weiteres Problem.

Eine editorfreundliche Sprache, die für Anfänger geeignet sein soll,
hat mir der ganzen Sache bisher nichts zu tun. Wenn dieses Textformat
unbedingt selbstgestrickt sein soll, sollte es eine Teilmenge von einer
Textsatz-Sprache oder einer Wiki-Sprache sein ... idealerweise eine
Teilmenge von TeX. Aber S-Expressions oder ähnliche Sprachen sollten
schon komplett ausreichen, sind übersichtlich und erfüllen deinen Zweck
voll und ganz.


Du siehst, ich schlage eine starke Aufgabenteilung vor, um zu
verhindern, dass du zu viele Probleme in Verbindung bringst, die gar
nichts miteinander zu tun haben. Zum Beispiel sollten deine Sprache
und auch LabanXML keinen Text oder Überschriften haben, sondern
lediglich diese Tabellen (wie auch immer man sie nennt), die mit Laban-
Symbolen gefüllt sind, generieren. Diese Dinger, als EPS, SVG oder PNG,
kann man dann in sein größeres Dokument einfügen, egal ob es eine
HTML-Seite, ein Word-Dokument oder ein LaTeX-Code ist.

Nur eine interessante Querverbindung wäre noch denkbar und vielleicht
cool: Wenn die editorfreundliche Sprache nicht eine Teilmenge von
TeX wäre, und auch wirklich funktionieren würde, wenn man sie
in sein LaTeX-Dokument kopiert und ein entsprechendes Package
einbindet. Dann würde das nicht mehr so aussehen:

	Sprache1 -> LabanXML -> LaTeX -> EPS

sondern so:

	Sprache1 <-> LabanXML
         /  \
         LaTeX -> EPS

Letzteres würde nämlich noch ein paar extra "goodies" für diejenigen
ermöglichen, die ohnehin schon LaTeX nutzen. Aber ersteres ist auch
schon gut genug. Pfeile von LabanXML zu Analyse-Tools und
WYSIWYG-Editoren habe ich der Übersichtlichkeit halber weggelassen.


Viele Grüße,

	Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l