Unotal verglichen mit S-Ausdrücken
Attribute
Bei S-Ausdrücken gibt es keine standardisierte Schreibweise für Attribute. Zwar kann man mit S-Ausdrücken Attribute darstellen, aber, wie dies geschieht, wird nicht einheitlich gehandhabt.
Es folgen verschiedene Schreibweisen für eine Liste mit der Zuordnung "name=value" und der Zuordnung "name1=value1", die so alle verschiedenen Quellen entnommen wurden.
- Verschiedene Schreibweisen einer Zuordnung mit S-Ausdrücken
(Beispiel (Name "Wert") (Name1 "Wert1"))
(Beispiel (Name -> "Wert") (Name1 -> "Wert1"))
(Beispiel ((Name "Wert") (Name1 "Wert1")))
(Beispiel '((Name "Wert")(Name1 "Wert1")))
(Beispiel Name: "Wert" Name1: "Wert1" )
(Beispiel 'Name "Wert" 'Name1 "Wert1")
In Unotal schriebe man:
- Schreibweise einer Zuordnung in Unotal
< &Beispiel Name=Wert Name1=Wert1 >
Spezifikation
Die zuvor beschriebene Uneinheitlichkeit der Attributschreibweise ist eine Konsequenz des Fehlens einer allgemein anerkannten Spezifikation für S-Ausdrücke. Es gibt nur verschiedene Varianten. Anders gesagt, wenn man von „S-Ausdrücken“ spricht, ist nicht klar, welche formale Sprache damit genau gemeint ist, solange dies nicht ausdrücklich angegeben wird.
Unotal hat allerdings auch noch keine Spezifikation.
Typen
Das erste Element eines S-Ausdrucks wird gelegentlich als dessen „Etikett“ bezeichnet. In Unotal hat der erste Eintrag in einem Raume hingegen keine besondere Bedeutung oder Rolle.
In Unotal wird der Typ eines Raums ausdrücklich mit einem kaufmännischen Und-Zeichen "&" gekennzeichnet. Räume können einen Typ haben, der folgende hat den Typ "href":
- Unotal -Raum mit dem Typ "href"
< &href a=[http://yahoo.com] Yahoo >
Es ist aber auch möglich, daß ein Raum zwei Typen hat:
- Unotal -Raum mit dem Typ "emph" und dem Typ "bold"
< &emph &bold [Wichtig!] >
Es ist nicht klar, wie eine Liste mit zwei Etiketten mit S-Ausdrücken geschrieben wird. Vielleicht ist folgendes eine gute Näherung, die den Autor aber zwingt, eine Verschachtelung zu notieren, die nicht unbedingt beabsichtigt ist.
- S-Ausdruck, der einem Text zwei Etikette zuordnet
( emph ( bold "Wichtig!" ))
Ein Raum kann auch gar keinen Typ haben:
- Typlose Räume in Unotal
< &bookmarks &UnoDB
< [Der Katalog Yahoo] [http://www.yahoo.de] >
< [Die Suchmaschine Google] [http://www.google.de] >>
Hier ist die Bedeutung der Einträge ("Spalten") in den beiden Innenräumen (die in den beiden letzten Zeilen stehen) bereits durch den Außentyp "&bookmarks" gegeben. Sie sind selber typlos.
Mit S-Ausdrücken ließe sich etwas Vergleichbares ebenfalls notieren. Falls die verwendete Spezifikation festlegt, daß das erste Element immer ein „Etikett“ sein soll, so kann dort ja "NIL" angegeben werden. Falls die verwendete Spezifikation keine Aussage darüber macht, was als Etikett einer Liste gilt, so kann dieses Detail der Schreibweise irgendwie von der Anwendung festgelegt werden, ist dann aber weniger einheitlich in verschiedenen Anwendungen geregelt.
Anführungszeichen
In Unotal -Kettenliteralen können auch Anführungszeichen durch Anführungszeichen dargestellt werden, während in S-Ausdrücken Zeichenpaare verwendet werden müssen.
- Kettenliteral in Unotal
< &Lektion [In C ist "a[0]" ein Ausdruck.] >
- Kettenliteral in einem S-Ausdruck
( Lektion "In C ist \"a[0]\" ein Ausdruck." )
Auch gepaarte eckige Klammern werden in Unotal -Kettenliteralen durch sich selbst dargestellt. Nur einzelne eckige Klammern und der inverse Schrägstrich müssen umschrieben werden.
Symbole
In Unotal gibt es keine Symbole, nur Kettenliterale. (Auf Unotal aufbauende Notationen können allerdings bestimmte Ketten als „Symbole“ interpretieren.)
In dem Raumliteral "< alpha & beta gamma=delta >" sind also der Text "alpha", der Text "beta", der Text "gamma" und der Text "delta" zunächst alles Kettenliterale. Daher kann dieser Raum auch als durch das Raumliteral "< [alpha] & [beta] [gamma] = [delta] >" geschrieben werden.
Die Kette "[beta]" wird dann wegen des kaufmännischen Und-Zeichens "&" als ein Typ des Raums interpretiert und die Kette "[gamma]" wegen des ihr folgenden Gleichheitszeichens "=" als Name eines Namen-Wert-Paares. Daher können solche Namen auch alle druckbaren Zeichen des Unicode enthalten und nicht nur spezielle „Namenszeichen“.
Zeichensatz
Für Unotal ist der Zeichensatz Unicode ausdrücklich festgelegt, und alle Werkzeuge müssen die Darstellung UTF-8 unterstützen.
Gepunktete Paare
In Unotal gibt es keine gepunkteten Paare.
Mengen
Für Unotal ist eine—bisher noch nicht implementierte—Mengenschreibweise mit (den auch in der Mathematik für Mengen verwendeten) geschweiften Klammern vorgesehen.
- Mengenwertige Eigenschaft in Unotal
< name = [Peter Müller] Staatsangehörigkeit = { DE US } >
Dies hätte die gleiche Bedeutung wie die Zuordnung der beiden Elemente zum selben Namen.
- Zuordnung zweier Elemente an einen Namen
< name = [Peter Müller]
Staatsangehörigkeit = DE
Staatsangehörigkeit = US >
Unotal definiert eine Standardsemantik für Eigenschaften:
- Raum mit einer Eigenschaft in Unotal
< gamma = delta >
Die Standardsemantik besagt, daß der angegebene Raum einen Deskriptanden beschreibt und die Relation mit dem Namen "gamma" zwischen dem Deskriptanden und dem Text "delta" oder dem Objekt "delta" besteht.
- Interpretation einer Eigenschaft in Unotal
gamma >
Deskriptand --------------------- delta
Da ein Deskriptand aber in derselben Relation zu mehreren Entitäten stehen kann, sind in Unotal mehrere Eigenschaften mit demselben Namen innerhalb eines Raumes gestattet, wie das obige Beispiel anhand der Staatsangehörigkeit illustrierte.
Wegen analoger Überlegungen kann ein Raum auch mehrere Typen haben. So kann ein Artikel eines Warenhauses gleichzeitig ein Tonträger sein.
- Ein Raum mit mehreren Typen
< &Artikel Artikelnummer=[93728] Preis=< 12 &EUR >
&Tonträger Interpret=[Jethro Tull] Spieldauer=< 2520 &seconds >>
Die Einheiten zeigen auch noch einmal einen Typ, der am Ende des Raumes steht.
Einige Varianten von S-Ausdrücken erlauben tatsächlich die Notation von Mengen durch eine Notation wie beispielsweise "(* set alpha beta gamma )".
Terminologie
Bei S-Ausdrücken spricht man von einer „Liste“, die „Elementen“ (Listen oder Atome) und manchmal Plätze (“slots ”) enthält.
- Eine Liste mit zwei Elementen: Einem Atom und einem Platze "beta"
( alpha beta: gamma )
In Unotal spricht man von einem „Raum“, der „Einträge“, nämlich Räume, Ketten und „Zuordnungen“, enhält.
- Ein Raum mit zwei Einträgen: Einer Kette und einer Zuordnung
( alpha beta=gamma )
Die Bezeichnung „Element“ wird in Unotal nur für die Elemente einer Menge verwendet.
Glaubwürdigkeit
Als „Glaubwürdigkeit“ wird hier beschrieben, wie sehr die Befürworter einer Notation diese auch selber verwenden.
Es zeigt sich, daß Dokumentation für LISP, Scheme oder S-Ausdrücke selten selber mit S-Ausdrücken notiert wird, sondern beispielsweise oft mit LaTeX. Dies ist dann nicht selbstverständlich, wenn gleichzeitig auf die Eignung von S-Ausdrücken als Sprache zur Textauszeichnung, etwas als Alternative zu XML, hingewiesen wird.
Die Spezifikation von Unotal wird vermutlich mit Microsoft ® Word 2000 geschrieben werden. Die Textauszeichnungssprache Portark basiert auf Unotal , ist aber noch nicht implementiert.