Transklusion

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
B ist in Dokument A transkludiert worden.

In der Informatik bezeichnet eine Transklusion (engl. transclusion) die Übernahme von einem elektronischen Dokument oder Teilen davon in ein oder mehrere andere Dokumente durch einen Hypertext-Verweis.

Die Transklusion wird normalerweise automatisch vollzogen, wenn das Ziel-Dokument dargestellt wird und kann vom Betrachter nachvollzogen werden.[1] Im Ergebnis erhält man ein eigenständiges Dokument, welches sich erst im Moment, in dem es aufgerufen wird, aus verschiedenen Quellen zusammenfügt.

Transklusion ermöglicht den modularen Aufbau von Dokumenten: digitale Daten (z.B. Textbausteine) werden an einem Ort gespeichert, können aber in beliebig vielen Dokumenten verwendet, d.h. eingebunden werden. Aktualisierungen und Korrekturen, die an den Quell-Daten vorgenommen werden, werden automatisch in alle Ziel-Dokumente übernommen.

Im Gegensatz zu einem Hyperlink wird auf ein anderes Dokument nicht nur verwiesen. Vielmehr wird – und mehr als bei einem Zitat („Ausschnitt“) – das ganze Dokument eingefügt.

Transklusionen werden in vielen Wikis und dem Textsatzsystem TeX eingesetzt. Ist etwa der Inhalt der TeX-Quelldatei Werk.tex eine Zeichenkette der Gestalt

Anfang\input LiteraturSchluss

und die Zeichenkette ‹Literatur› der Inhalt von Literatur.tex, so wird Werk.tex mit demselben Ergebnis verarbeitet wie eine Datei, deren Inhalt die Zeichenkette

Anfang›‹Literatur› ‹Schluss

ist. LaTeX-Varianten von \input werden unten beschrieben.

Die Funktion ähnelt einem Include in serverseitigen Skriptsprachen wie ASP, JSP, PHP (mehr dazu unten) oder Server Side Includes und einem HTML-Frameset.

Eine Transklusion ist zu unterscheiden von einer Immersion, bei der die Grenzen zwischen zwei Dokumenten aufgelöst werden.

Durch eine Transklusion könnte beispielsweise ein Artikel über ein Land eine Tabelle oder einen Absatz einschließen, der die landwirtschaftlichen Exporte dieses Landes aus einem anderen Artikel über Landwirtschaft beschreibt. Statt die eingeschlossenen Daten zu duplizieren und an zwei Stellen zu speichern, erlaubt eine Transklusion, sie an einer Stelle zentral zu speichern und zu verwalten; eine korrigierte oder aktualisierte Fassung erscheint dann in allen Dokumenten, die die Daten transkludieren. Der Mechanismus ähnelt funktional also auch dem Normalisieren bei der Modellierung von relationalen Datenbanken.

Entwicklung[Bearbeiten | Quelltext bearbeiten]

Ted Nelsons Xanadu-Projekt enthält Transklusionen. Ted Nelson ging in seinem ursprünglichen Entwurf für Hypertext, den er 1980 in seinem Buch Literary Machines vorstellte, davon aus, dass Leser eines Dokuments den oder die Autor(en) automatisch über Micropayment vergüten würden, unabhängig davon, aus wie vielen Fragmenten es zusammengesetzt wäre. Da dieses Vergütungsmodell in heutigen Hypertextsystemen wie dem World Wide Web nicht vorgesehen ist, stellt die Transklusion ein grundlegendes urheberrechtliches Problem dar.

Atomisierung[Bearbeiten | Quelltext bearbeiten]

Die Idee der Transklusion erfordert, dass die Teile eines Textes atomisiert geschrieben werden können, damit der Inhalt eines Teils nicht dem Inhalt eines anderen Teiles widerspricht. Beispielsweise sind die folgenden Formulierungen, die oft in linearen Texten gefunden werden können, in einem atomisierten Text nicht möglich:

  • Eine Erklärung folgt weiter unten.
  • Eine Erklärung finden sie im vorausgehenden Abschnitt.
  • Wie früher erwähnt wurde …
  • Wie wir schon erwähnt haben …
  • Wir werden uns später mit dieser Frage im Detail beschäftigen.

Da man nicht weiß, wo das atomisierte Textfragment erscheinen wird, kann man nicht auf Teile außerhalb des Fragments verweisen.

Beispielbefehle in LaTeX und PHP [Bearbeiten | Quelltext bearbeiten]

Mit dem TeX-Format LaTeX verwendet man statt „\input Literatur “ im TeX-Beispiel oben eher

  1. \input{Literatur}“ für zusätzliche Protokollfunktionalität (Listeneintrag) und veränderte Fehlerbehandlung;
  2. \include{Literatur}“, um in der Bearbeitungsphase den Inhalt von Literatur.tex nur einzufügen, wenn der Nutzer das in der LaTeX-Präambel eingestellt hat.
  3. \InputIfFileExists{Literatur}{vor-einlesen}{andernfalls}“ ermöglicht Variationen von „\input{Literatur}“;
  4. der interne (Autoren nicht zugängliche) Befehl \@input protokolliert lediglich Fehlen der Zieldatei, ohne wie \input eine Fehlermeldung zu werfen.
  5. LaTeX bietet weitere Transklusionsbefehle wie \documentclass und \usepackage/\RequirePackage, um den Inhalt reiner Wertzuweisungsdateien (Formatierungseinstellungen – „Paketdateien“) wie article.cls oder doc.sty mit Zugang zu internen Befehlen, einer Versionskontrolle, Fehlerbehandlung, Protokollfunktion und selektiver Einbindung (Paketoptionen wählen nur Teile der Zieldatei zur Einbindung aus) sowie nicht mehrfach einzufügen.

Der PHP-Befehl „include“ entspricht recht genau dem internen LaTeX-Befehl „\@input“, der PHP-Befehl „require“ könnte dann wegen der zusätzlichen Fehlermeldung sowohl mit dem LaTeX-Befehl „\input“ als auch mit dem Befehl „\input“ des TeX-Formats plain TeX verglichen werden, und der PHP-Befehl „require_once“ ähnelt LaTeXs Paketladebefehlen („\RequirePackage“ etc.) hinsichtlich des Vermeidens mehrfacher Einbindung.

  1. The Discipline of Organizing. MIT Press, Cambridge, Massachusetts 2013, ISBN 9780262518505.