# Transklusion

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.
Im Gegensatz zum Hyperlink, der den optionalen Sprung zu einer anderen Stelle oder zu einem anderen Dokument ermöglicht, wird eine Transklusion normalerweise automatisch vollzogen, wenn das Ziel-Dokument dargestellt wird. Im Ergebnis erhält man ein eigenständiges Dokument, welches erst im Moment, in dem es aufgerufen wird, aus verschiedenen Quellen zusammengefügt wird.
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. Der Mechanismus ähnelt funktional dem Normalisieren bei der Modellierung von relationalen Datenbanken.
Eine Transklusion ist zu unterscheiden von einer Immersion, bei der die Grenzen zwischen zwei Dokumenten aufgelöst werden.

## Entwicklung

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

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.

## Beispiel

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.

## Syntax

Im Gegensatz zu einem Hyperlink wird auf ein anderes Dokument nicht nur verwiesen. Vielmehr wird das andere Dokument als Ganzes – oder ein definierter Teil davon – 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 Literatur‹Schluss›
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.
Die Funktion ähnelt dem Include vieler Programmier- und Skriptsprachen sowie Server Side Includes und einem HTML-Frameset.

## Beispielbefehle in LaTeX

Mit dem TeX-Format LaTeX verwendet man statt „\input Literatur“ im TeX-Beispiel oben eher
* „\input{Literatur}“ für zusätzliche Protokollfunktionalität (Listeneintrag) und veränderte Fehlerbehandlung;
* „\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.
* „\InputIfFileExists{Literatur}{‹vor-einlesen›}{‹andernfalls›}“ ermöglicht Variationen von „\input{Literatur}“;
* der interne (Autoren nicht zugängliche) Befehl \@input protokolliert lediglich Fehlen der Zieldatei, ohne wie \input eine Fehlermeldung zu werfen.
* 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.