XML Prague 2013

http://xmlprague.cz/

Guten Morgen aus Prag, gerade beginnt die 8. Konferenz XML Prague, aufgrund des Erfolgs jetzt zum zweiten Mal in großen Hörsaal der wirtschaftswissenschaftlichen Fakultät. Als Single Track Conference ist es (für mich) äußerst entspannend, mich nicht zwischen verschiedenen, parallelen Vorträgen entscheiden zu müssen.

Der Tag beginnt mit der Vorstellung der Sponsoren: MarkLogic, ExistSolutions, Oxygen (Version 14.2. kommt nächste Woche).

Michael Kay: Multi-user interaction using client-side XSLT

Warum sollten wir am Server statisches XML bereitstellen und im Browser mittels XSLT 2.0 aufbereiten? Michael Kay zeigt ein technologisches cooles Beispiel der Saxon-Dokumentation. Aber all dies könnte auch von Server-side Code erledigt werden?

Warum sollten wir XSLT verwenden, wenn wir auch gleich JavaScript verwenden können?

Es gibt einen offensichtliche Vorteil immer dann, wenn die Quelldaten in XML vorliegen, aber auch dann stellt sich die Frage, inwieweit ich dem Browser XML statt XHTML anbieten möchte, inwieweit ich Teile meiner Lösung (letztlich die XSLT-Programmierung) quasi öffentlich machen möchte.

Abel Braaksma: Efficient XML processing with XSLT 3.0 and higher order functions

Wow, der kommende Standard! Und »Effizienz«, eines meiner Lieblingsworte. Und »closures«, über die ich schon gehört habe… Was bedeutet das alles in einer Welt, in der nur wenige (wenn überhaupt) XSLT-2.0-Funktionen angekommen sind?

„?“ als neuer Operator zur Inline-Definition neuer Funktionen – wer hätt gedacht, dass es so einfach sein kann, die Syntax bestehender Umgebungen mit einem Zeichen so mächtig zu erweitern?

Spannend: Abrasoft wird dieses Jahr einen distributed streaming XSLT 3.0 processor veröffentlichen. Es wird interessant sein, wie sich weitere Mitspieler im doch übersichtlichen Markt der XSLT-Prozessoren auswirken. Und was distributed in diesem Zusammenhang bedeutet.

George Bina: An XML Solution for Legal Documents

Wie verwaltet eine Software-Firma die notwendigen, unterschiedlichen End User License Agreements? Natürlich per XML. Neben einem recht einfachen Schema für die Dokumente gibt es natürlich die zwei Typen von Wiederverwendung:

  • bedingte Ausgabe (Condition, Gültigkeiten) wird für einzelne Textteile verwendet: Über Publikationsprofile wird die Sichtbarkeit der Textabschnitte gesteuert.
  • referenzieren (importieren) von vorhandenen Fragmenten: per XInclude können ganz bestimmte Elemente des Schema wiederverwendet werden

Die nötigen Ergänzungen für OxygenXML zur Bearbeitung gibt es bei GitHub.

Q: Warum wurde nicht einfach DITA verwendet? A: Es wäre sehr viel aufwändiger gewesen, DITA geeignete anzupassen als eine Lösung mit 10 Elementen zu erstellen.

Gerrit Imsieke: Conveying Layout Information with CSSa

Die Beiträge von Gerrit Imsieke in der XSL List sind immer lesenswert!

Ein Zwischenformat für die Vermittlung von n Eingabeformaten zu m Ausgabeformaten reduziert den Bedarf an Konvertern von n×m auf n+m. Dabei müssen aber bestimmte (z.B. Layout-) Informationen „gerettet“ werden. Um das in der XML-Umgebung umzusetzen, sind XML-Attribute geeignet. In dem Zwischenformat, dass le-tex verwendet, landen diese Informationen in Elemente und Attribute in einem eigenen Namespace css:.

Die Erzeugung von IDML (das XML-Format für InDesign-Dokumente) lobt er zu Recht. Alles in allem ein überzeugender Use-Case für den Einsatz der X-Technologien.

Romain Deltour: XProc at the heart of an ebook production framework

Ich dachte, es würde auch ein Projekt gezeigt, aber es war nur eine abstrakte Vorstellung der Bausteine des im Titel genannten Frameworks. Am Ende – und das ich nicht abwertend gemeint – war dieser Vortrag eine weitere Werbung für XProc zum Aufbau von XML-basierten Verarbeitungs-Prozesse.

Patrick Gundlach: Fully automatic database publishing with the speedata Publisher

Jetzt geht es um XSL-FO++, also nicht XSL-FO, sondern das Tool basiert auf LuaTEX.

Die Aufgabe maximize page usage ist komplex für automatisch erzeugte PDF-Dokumente und mit XSL-FO nur schwer oder gar nicht möglich. Für derartige und andere „dynamische“ Regeln muss der Layout-Prozessor mit dem Renderer „reden“. Im Produkt speedata Publisher wird das Input-XML auf Basis spezieller Layoutbefehle (in XML formuliert) verarbeitet. Dabei kommen interaktive Konzepte zum Einsatz, die adaptives Layout ermöglichen.

In der Frage-Session geht es scheinbar primär darum, dass die XSL-FO Working Group beim W3C mangels Interesse eingeschlafen sei…

DeltaXML Ltd: Representing Change Tracking in XML Markup

Änderungsmarkierung ist schon länger eine Herausforderung und es ist mehr als nur die Änderungsanzeige nach dem Vergleich zweier Dokumente. Auf jeden Fall gibt es derzeit keinen Standard, wie Änderungen in Dokumenten markiert werden. So ein Standard, d.h. unabhängig von einem bestimmten XML-Vokabular, böte ein Vielzahl von Möglichkeiten. http://www.w3.org/community/change/ ist die Webseite der »Change Tracking Markup Community Group«.

DeltaXML zeigt neue Konstrukte um einen Hierachiewechsel abzubilden. Wenn zum Beispiel ein Wort im Text fett dargestellt wird, ergab sich bislang immer folgende umständliche Abbildung:

In diesem Satz ist ein fettesfettes Wort.

Aber wie soll eine derartig hinterlegte Änderung dann angezeigt werden?

Alex Milowski: Local Knowledge for In Situ Services

Im Kern geht es um das „semantische Web“, in dem durch bestimmte Auszeichnungen die Inhalte beliebiger Webseiten besser auswertbar werden. Die hier empfohlene Technik dazu ist RDFa. Die Beispiele zeigen auch die Möglichkeit Bilder in einer regelbasierenden Form zu kommentieren.

Die Versuche der Organisatoren, den Vortragenden zu langsameren Sprechen zu motivieren, waren nicht besonders erfolgreich.

John Snelson: RDF for the XML Enthusiast

Und noch einmal RDF – jetzt ohne „a“. Ein Tweet:

Uche Ogbuji @uogbuji Aah! A dozen years after the self-inflicted wound of #RDF-#XML, I’m finally at a conference where everyone uses a saner syntax 🙂


10.02.1998: Birth of XML


Uche Ogbuji: Introducing MicroXML

Uche beginnt – nach einem „Happy Birthday“ für XML – mit einem Rückblick, welche Formate als Konkurrenten zu XML in Stellung gebracht wurden. Die MicroXML Community reduziert die Optionen der XML-Spezifikation auf ein Minimum, im Kern bleibt well-formed XML ohne Namespaces übrig. Und daran entzündet sich die Diskussion, denn z.B. xsl: scheint so unvermeidbar zu sein…

So, für wen ist µXML dann gedacht? »It’s for those who just don’t give a damn anymore!« Also für alle, die genug Probleme mit den Komplikationen von XML hatten…

Vorschläge zur Abbildung z.B. des xsl-Namespace sind xsl.template oder xsl-template

Maik Stührenberg: Quo vadis XML?

Nach dem Appell zur Reduktion vom XML mehr oder weniger auf die 1.0-Recommendation folgt nun ein Beitrag, der einen Blick in die Zukunft verspricht. Natürlich beginnt es mit einem Rückblick… der in eine Vorstellung akademischer Konzepte führt, die auf XML mit mehr oder weniger Kompatibilität basieren. Der Vergleich des 15-jährigen XML-Standards mit einem Teenager war noch unmittelbar einsichtig, die Besonderheiten von XStandoff, LMNL, FtanML etc. sind wohl Lösungen für ganz bestimmte Herausforderungen.

(Leider musste ich mich um aktive Projekte kümmern, so dass ich die weiteren Beiträge nicht zusammenfassen konnte.)


Textänderungen anzeigen

Ich habe das Tool XTC = XML Tree Compare von Martin Achtziger http://www.xmldifftool.com/ schon auf der tekom-Tagung vorgestellt und in meinem Blog erwähnt. Im praktischen Einsatz in Projekten geht es mittlerweile nicht um so banale Dinge wie die Performance (die mit der aktuellen Version 3.x gefühlt doppelt so schnell ist) sondern um die Feinheiten, die letzten Details.

Ein automatisch erstellter Vergleich ist immer um ein Vielfaches wirtschaftlicher als jedes vorstellbare manuelle Verfahren. Mit der einmaligen Anker-Technik verfügt das Tool über eine Funktion, die es ermöglicht, dass Blöcke anhand eindeutiger Kennungen einander sauber zugeordnet werden, und nicht ein neu eingeschobener Abschnitt 1.3 verzweifelt mit dem alten 1.3 verglichen wird, der ja jetzt die 1.4 ist. Auf diese Weise können auch größere Umstellungen erkannt werden und die Änderungsanzeige hält sich nicht mit Irrelevantem auf.

Bleibt die Anzeige gelöschtem, geändertem und neuem Text. Hier ist der Automat im Nachteil, weil er nicht weiß, wie wir tatsächlich geändert haben, was die Absicht war. Er kann nur den alten und neuen Satz (eigentlich: Textknoten) betrachten und technisch analysieren. Zum Einsatz kommt hier zunächst ein bekannter Algorithmus: Longest common substring.

Beispiele

V1: Der Absatz enthält ganz und gar nichts.
V2: Der Absatz enthält gar nichts.

Diff: Der Absatz enthält ganz und gar nichts.

Der längste gemeinsame Text ist der Textanfang bis einschließlich »ga«. Ideal wäre natürlich dies gewesen: Der Absatz enthält ganz und gar nichts. Aber dies ist für den Computer wohl kaum zu erkennen.

V1: Datentyp des Feldes, sofern Ausprägungen vorgebbar.
V2: Datentyp des Feldes, genau dann wenn Ausprägungen vorgebbar.

Diff: Datentyp des Feldes, sofergenau dann wenn Ausprägungen vorgebbar.

Natürlich erschwert es auch hier die Lesbarkeit, dass vom Ende sowohl »sofern« als auch »wenn« mit einem »n« enden. Ideal wäre hier ein die Ausdehnung auf ganze Wörter: Datentyp des Feldes, soferngenau dann wenn Ausprägungen vorgebbar.

Aber die Ausdehnung auf ganze Wörter kann auch unerwünscht sein, wenn zum Beispiel nur Anfangs- oder Endbuchstaben ergänzt oder Tippfehler korrigiert wurden:

V1: Die Erklärung war nicht hinrecihend.
V2: Die Erklärungen waren nicht hinreichend.

Diff: Die Erklärungen waren nicht hinreciichend.

Hier wäre die Ganzwortmethode wohl eher hinderlich: Die ErklärungErklärungen warwaren nicht hinrecihendhinreichend.

Fragen

In meinen Augen stellen sich zwei Fragen:

  • Sollten Optimierungen beim Textvergleich vom Diff-Tool oder von einer nachgelagerten Aufbereitung durchgeführt werden?
  • Wie soll diese Optimierung aussehen?