Daten-Beschreibungen (D.R.D.)

(data relation descriptions)

der sinn von Daten-Beschreibungen, D.R.D.s

Einer der Hauptvorteile von TeXmacs ist die Verwendung von Baumstrukturen als allgemeines Datenformat des Editors. Wie bei XML hat dies den Vorteil, dass diese Strukturen übersichtlich und leicht verständlich sind, sodass es einfach ist, Dokumente mit den eingebauten Werkzeugen zu ändern und anzupassen. Wenn jedoch der Editor für einen ganz bestimmten, besonderen Zweck eingesetzt werden soll, dann muss in aller Regel das Datenformat auf eine bestimmte Teilmenge der möglichen Bäume beschränkt werden.

In XML benutzt man Data Type Definitions (D.T.D.s), um eine spezielle Teilmenge des allgemeinen XML-Formats für einen bestimmten Zweck zu definieren: für Web-Dokumente „XHTML“, für Mathematik „MathML“, für 2-dimensionale Graphik „SVG“ usw.. Außerdem erlaubt XML, solche D.T.D.s in einem gewissen Umfang miteinander zu kombinieren. Schließlich enthalten D.T.D.s. normalerweise ein Referenz-Handbuch.

In TeXmacs sind wir mit der Einführung von D.R.D.s noch einen Schritt weiter gegangen. Neben der Entscheidung, ob ein gegebenes Dokument syntaktisch korrekt ist, können wir damit auch formal bestimmte Eigenschaften des Dokuments beschreiben. Beispielsweise können Textfragmente erreichbar (accessible) sein oder eben nicht. So ist typischerweise der Zähler in einem Bruch erreichbar und kann daher jederzeit im Editor geändert werden, während beispielsweise die URL eines Hyperlinks nicht erreichbar ist und daher erst nach Aufhebung des Schutzes veränderbar wird. Ganz ähnlich implizieren bestimmte Konstrukte wie z.B. itemize Blockinhalte, während andere wie z.B. sqrt Zeileninhalt impliziert. Schließlich verhalten sich bestimmte verwandte Konstrukte wie chapter, section, subsection, usw. bei bestimmten Operationen wie z.B. Konversionen gleichartig.

Eine Daten-Beschreibung (D.R.D.) besteht aus einer „Data Type Definition“ und zusätzlichen logischen Eigenschaften von Marken, Konstrukten und Textfragmenten. Diese logischen Eigenschaften werden in sogenannten Horn clauses definiert, die auch in anderen Programmiersprachen wie z.B. Prolog Verwendung finden. Es sollte damit relativ leicht sein, die Eigenschaften von Marken, Konstrukten und Textfragmenten zu bestimmen, so dass bestimmte Datenbanktechniken zur effektiven Implementierung genutzt werden können. Momentan haben wir damit gerade erst begonnen und benutzen zur Zeit noch eine Menge C++ Code im Widerspruch zu dem, was wir oben beschrieben haben. Daher können wir eine bessere formale Beschreibung von D.R.D.s jetzt noch nicht liefern.

Einer der wichtigsten Vorteile von D.R.D.s ist, dass anders als in objektorientierten Sprachen keine festen hierarchischen Strukturen vorgegeben werden müssen. Das ist deshalb so nützlich, weil Eigenschaften wie Veränderbarkeit (accessability), Blockinhalt, Zeileninhalt von einander unabhängig sind. Es ist in der Tat so, dass D.T.D.s meist zur Beschreibung passiver Dokumente ausreichend sind, dass aber, wenn es darum geht, Dokumente interaktiv zu editieren, eine feinere Beschreibung von Eigenschaften günstiger ist.

Derzeitige Eigenschaften und Anwendungen von D.R.D.s

Derzeit enthält die D.R.D. eines Dokuments die folgenden Informationen:

In nächster Zukunft sollen die folgenden Eigenschaften eingeführt werden:

Diese Informationen werden neben anderen für folgende Aktionen verwandt:

Erzeugung der Daten-Beschreibung (D.R.D.) eines Dokuments

TeXmacs erzeugt für jedes Dokument eine eigene Daten-Beschreibung, D.R.D.. Diese wird in zwei Stufen erzeugt. Zunächst versucht TeXmacs heuristisch die Eigenschaften von Konstrukten, die der Benutzer definiert hat, und die Konstrukte von assoziierten Stildefinitionen auszuwerten. Ist zum Beispiel folgendes Makro

<assign|hi|<macro|name|Hello name!>>

vorhanden, dann erkennt TeXmacs automatisch, dass hi ein Makro mit einem Argument ist, und nimmt an, dass die zulässige Argumentanzahl 1 ist. Beachten Sie, dass die heuristische Erzeugung der Daten-Beschreibung interaktiv ist. Wenn Sie ein Makro in Ihrem Dokument erzeugen, werden seine Eigenschaften automatisch in die Daten-Beschreibung aufgenommen, sofern Sie TeXmacs dafür etwas Zeit lassen (ca. 1 s).

Manchmal sind die heuristisch definierten Eigenschaften nicht zutreffend. Für diesen Fall besitzt TeXmacs das Konstrukt drd-props, mit der eine manuelle Korrektur dieser Eigenschaften durchgeführt werden kann.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".