Das Web 2.0 hat einen großen Teil seines Erfolges zweifelsohne dem XML-Grundgedanken zu verdanken. Problematisch dabei ist, dass XML zwar eine relativ “reine” Struktur besitzt, aber dennoch auf das Encoding, in dem es geschrieben wurde, angewiesen ist. Dies kann den Datenaustausch erheblich erschweren. Der Austausch von XML-Datensätzen in verschiedenen Encodings setzt die Kenntnis des jeweils anderen Encodings voraus, und eine Konversion vor der Verarbeitung.
Eine theoretische Lösung für dieses Problem wäre es, sich auf ein bestehendes Encoding zu einigen, und nur dieses zu verwenden. In der Praxis ist dies nicht möglich, aus zwei Gründen. Erstens würde eine Koordination verschiedener Unternehmen und Forschungseinrichtungen voraussetzen, und möglicherweise eine zentrale Stelle, die Selbige koordiniert, und das wäre dann ja Kommunismus. Nein, linke Gleichmacherei nützt niemandem – nicht in der Politik, noch in der Entwicklung moderner Webtechnologien. Zweitens sind die momentanen Encoding-Standards nicht flexibel genug, und nicht hinreichend erweiterbar, es ist z.B. denkbar, dass durch zusätzliche neu entdeckte Hochkulturen, neue politische Gruppierungen mit neuen Erkennungssymbolen, und einige neue Species aus StarTrek, die alle berücksichtigt werden müssen, die Anzahl der momentan verfügbaren Zeichencodes nicht mehr ausreicht.
Nein, es muss ein Umdenken stattfinden. Die bisherige Entwicklung zeigt eindeutig die Tendenz weg von der “Sequence of Octets” – also der Sequenz der Bytes (mit jeweils Acht Bit) – hin zu höheren Strukturen. Die Bytefolgen werden immer mehr nur ein Mittel zur Übertragung von S-Ausdrücken. Man sollte sich also – gerade im Hinblich auf die größer werdenden Bandbreiten – endlich davon verabschieden, dies mit Schriftzeichen anders zu machen, und stattdessen endlich auch hierfür etwas Ähnliches benutzen, und da XML bereits sehr weit entwickelt ist, bietet sich hier wohl XML an.
Diese Überlegungen führen mich zur Idee von UOX – Unicode over XML. Ein erweiterbarer XML-Substandard zur Übertragung von Zeichenketten. Er profitiert von allen Vorteilen, die XML mit sich bringt, z.B. Transformationen mittels XSLT und DOM-Unterstützenden Sprachen, Erweiterbarkeit, z.B. für die Einbettung externer Objekte, etc.
Eine DTD zu verfassen, ist wohl noch verfrüht, insbesondere, da DTDs ohnehin bald veraltet sein werden, und wohl durch XML Schema oder RelaxNG verdrängt werden. Hier seien also nur ein paar Grundzüge erklärt.
Die Base-Node ist ein <charsequence>-Tag. Darin befinden sich <char>-Tags. Diese wiederum enthalten einen <type>-Tag und einen <data>-Tag.
<type> gibt dabei an, auf welche Weise ein Zeichen angegeben wird, beispiele wären Codes wie
<char> <type> <Binary external=”Unicode” /> </type> <data> 01001010 <data> </char>
Oder
<char> <type> <Verbose language=”German” /> </type> <data> Der Umlaut A </data> </char>
Freilich bleibt hier das Problem bestehen, dass UOX selbst wiederum auf einem Encoding fußen muss. Dieses Problem kann man lösen, indem man UOX selbst in UOX encoded – man kommt zu UOXOUOX, Unicode over XML over Unicode over XML. Obiges Beispiel könnte dann zum Beispiel ungefähr so aussehen:
<char> <type> <verbose language=”English” /> </type> <data> less than </data> </char> <char> <type> <direct /> </type> <data> c </data> </char><char> <type> <direct /> </type> <data> h </data> </char> <char> <type> <direct /> </type> <data> a </data> </char> <char> <type> <direct /> </type> <data> r </data> </char> <char> <type> <verbose language=”English” /> </type> <data> greater than </data> </char> <char> <type> <verbose language=”English” /> </type> <data> less than </data> </char> <char> <type> <direct /> </type> <data> t </data> </char> <char> <type> <direct /> </type> <data> y </data> </char> <char> <type> <direct /> </type> <data> p </data> </char> <char> <type> <direct /> </type> <data> e </data> </char> <char> <type> <verbose language=”English” /> </type> <data> greater than </data> </char> <char> <type> <verbose language=”English” /> </type> <data> less than </data> </char> <char> <type> <direct /> </type> <data> v </data> </char><char> <type> <direct /> </type> <data> e </data> </char><char> <type> <direct /> </type> <data> r </data> </char><char> <type> <direct /> </type> <data> b </data> </char><char> <type> <direct /> </type> <data> o </data> </char><char> <type> <direct /> </type> <data> s </data> </char><char> <type> <direct /> </type> <data> e </data> </char> <char> <type> <verbose language=”German” /> </type> <data> Leerzeichen </data> </char> <char> <type> <direct /> </type> <data> l </data> </char><char> <type> <direct /> </type> <data> a </data> </char><char> <type> <direct /> </type> <data> n </data> </char><char> <type> <direct /> </type> <data> g </data> </char><char> <type> <direct /> </type> <data> u </data> </char><char> <type> <direct /> </type> <data> a </data> </char><char> <type> <direct /> </type> <data> g </data> </char><char> <type> <direct /> </type> <data> e </data> </char> <char> <type> <verbose language=”English” /> </type> <data> equals </data> </char> <char> <type> <verbose language=”German” /> </type> <data> Gänsefüßchen </data> </char> <char> <type> <direct /> </type> <data> G </data> </char><char> <type> <direct /> </type> <data> e </data> </char><char> <type> <direct /> </type> <data> r </data> </char><char> <type> <direct /> </type> <data> m </data> </char><char> <type> <direct /> </type> <data> a </data> </char><char> <type> <direct /> </type> <data> n </data> </char> <char> <type> <verbose language=”German” /> </type> <data> Gänsefüßchen </data> </char> <char> <type> <verbose language=”English” /> </type> <data> slash </data> </char> <char> <type> <verbose language=”English” /> </type> <data> greater than </data> </char> <char> <type> <verbose language=”English” /> </type> <data> greater than </data> </char><char> <type> <verbose language=”English” /> </type> <data> less than </data> </char> <char> <type> <direct /> </type> <data> t </data> </char> <char> <type> <verbose language=”German” /> </type> <data> Schrägstrich </data> </char> <char> <type> <direct /> </type> <data> y </data> </char> <char> <type> <direct /> </type> <data> p </data> </char> <char> <type> <direct /> </type> <data> e </data> </char> <char> <type> <verbose language=”English” /> </type> <data> greater than </data> </char>#@+*Segmentation Fault
Zweifelsohne ein weiterer wichtiger Schritt, um uns die Zukunft des Internets näher zu bringen.
Verfasst von dasuxullebt 


