Transclusion

In diesem Beispiel die Daten der Datei B wird in das Dokument transkludiert A.

Im Informatik, Transclusion ist die Aufnahme eines Teils oder aller von einer elektronisches Dokument in ein oder mehrere andere Dokumente von Hinweis über Hypertext. Die Transklusion wird normalerweise durchgeführt, wenn das Referenzdokument angezeigt wird, und ist normalerweise automatisch und transparent für den Endbenutzer.[1] Das Ergebnis der Transklosion ist ein einzelnes integriertes Dokument aus dynamischen zusammengestellten Teilen aus getrennten Quellen, die möglicherweise an verschiedenen Computern an unterschiedlichen Stellen gespeichert sind.

Transclusion erleichtert modulares Design (Verwendung der einzelne Quelle der Wahrheit Modell, ob in Daten, Code, oder Inhalt): a Ressource wird einmal gespeichert und zur Wiederverwendung in mehreren Dokumenten verteilt. Aktualisierungen oder Korrekturen einer Ressource werden dann in jedem widerspiegelt Referenzierung Unterlagen.

In Systemen, in denen keine Transklosion verfügbar ist, und in einigen Situationen, in denen sie verfügbar, aber nicht wünschenswert ist, ist Substitution häufig die komplementäre Option, wobei eine statische Kopie der einzelnen Quelle der Wahrheit in das entsprechende Dokument integriert wird. Beispiele für beide sind die Art und Weise, in der beide zum Beispiel zum Erstellen des Inhalts von Wikipedia verwendet werden (siehe Wikipedia: Transclusion und Wikipedia: Substitution für mehr Informationen). Ersetzte statische Kopien führen unterschiedliche Überlegungen ein Versionskontrolle als Transklosion, aber sie sind manchmal notwendig.

Ted Nelson geprägt den Begriff für sein nichtlineares Buch von 1980 Literaturmaschinen, aber die Idee von Master -Kopie und Vorkommen wurde 17 Jahre zuvor angewendet in Sketchpad.

Technische Überlegungen

Kontextneutralität

Die Transklusion funktioniert besser, wenn transkludierte Textabschnitte in sich geschlossen sind, so dass die Bedeutung und Gültigkeit des Textes unabhängig vom Kontext ist. Zum Beispiel sind Formulierungen wie "wie im vorherigen Abschnitt erläutert" problematisch, da der transkludierte Abschnitt in einem anderen Kontext erscheinen kann, was zu Verwirrung führt. Was den "kontextneutralen" Text ausmacht, variiert, enthält jedoch oft Dinge wie Unternehmensinformationen oder Kesselplatte. Zu überwinden Kontextsensitivitätsprobleme Wie die oben genannten, können Systeme, die transklusionsfähig sind, häufig auch bestimmte Elemente innerhalb des transkludierten Inhalts unterdrücken. Zum Beispiel kann Wikipedia Tags wie "Noinclude", "nurinclude" und "Einbeziehung" für diesen Zweck verwenden. Typische Beispiele für Elemente, die häufig solche Ausnahmen erfordern, sind Dokumenttitel, Fußnoten und Querverweise. Auf diese Weise können sie bei der Transklusion automatisch unterdrückt werden, ohne dass jede Instanz manuell überarbeitet wird.

Parametrisierung

Unter bestimmten Umständen und in einigen technischen Kontexten erfordern transkludierte Textabschnitte möglicherweise keine strikte Einhaltung des Prinzips "Kontextneutralität", da die transkludierten Abschnitte fähig sind Parametrisierung. Die Parametrisierung impliziert die Fähigkeit, bestimmte Teile oder Unterabschnitte eines transkludierten Textes abhängig von exogenen Variablen zu ändern, die unabhängig geändert werden können. Dies erfolgt üblicherweise durch die Lieferung eines transkludierten Textes mit einem oder mehreren Substitutionsplatzhalter. Diese Platzhalter werden dann durch die entsprechenden Variablenwerte ersetzt, bevor die endgültige transkludierte Ausgabe im Kontext rendert.

Ursprünge

Das Konzept der Wiederverwendung von Dateiinhalten begann mit Computerprogrammiersprachen: Cobol 1960,,[2] gefolgt von BCPL, Pl/i, C,[3] und in den 1990er Jahren sogar Forran.[4] Ein Richtlinie einbeziehen erlaubt gemeinsam Quellcode wiederverwendet werden, während sie die Fallstricke von vermeiden Kopier- und Pasteprogrammierung und hartes Codieren von Konstanten. Wie bei vielen Innovationen entwickelte sich ein Problem. Multiple -Incision -Anweisungen können den gleichen Inhalt wie eine andere Richtlinie liefern, die versehentlich Wiederholungen desselben Quellcode in das Endergebnis führt, was zu einem führt Error. Wachen einbeziehen Helfen Sie mit, dies zu lösen, indem nach einer einzigen Einbeziehung des Inhalts danach den doppelten Inhalt weglassen.[5]

Die Idee einer einzigen, wiederverwendbaren Quelle für Informationen führt zu Konzepten wie: Wiederhole dich nicht und die Abstraktionsprinzip. Eine weitere Verwendung wurde gefunden, um Programme mehr zu machen tragbar. Tragbarer Quellcode verwendet eine Include -Anweisung, um a anzugeben Standardbibliothek, der systemspezifischen Quellcode enthält, der je nach Computerumgebung variiert.[6]

Geschichte und Implementierung durch Projekt Xanadu

Ted Nelson, der die Wörter "Hypertext" und "entstanden hat.Hypermedia", auch den Begriff" Transclusion "in seinem Buch von 1980 geprägt Literaturmaschinen. Ein Teil seines Vorschlags war die Idee, dass Mikropayments Könnte automatisch vom Leser für den gesamten Text gefordert werden, unabhängig davon, wie viele Ausschnitte von Inhalten von verschiedenen Orten entnommen werden.

Laut Nelson hatte das Konzept der Transklosion jedoch bereits Teil seiner Beschreibung von 1965 gehören Hypertext.[7] Nelson definiert Transclusion als "... der gleiche Inhalt wusste an mehr als einem Ort" und unterscheidet sie von speziellen Fällen, wie z. B. die Aufnahme von Inhalten von einem anderen Ort (den er nennt Übertragung) oder ein explizites Zitat Das bleibt mit seinen Ursprüngen verbunden (was er nennt Transquotation).

Einige Hypertextsysteme, einschließlich Ted Nelsons eigener Xanadu -Projekt, unterstützen Transclusion.[8]

Nelson hat eine Demonstration der Web-Transklosion, den kleinen Transquotor (programmiert an Nelsons Spezifikation von Andrew Pam in den Jahren 2004-2005).[9] Es erstellt ein neues Format, das auf Portionsadressen von Webseiten basiert. In der Derperierung bleibt jeder Teil auf der resultierenden Seite Klick an seinen ursprünglichen Kontext.

Implementierung im Web

Http, als Übertragungsprotokoll, hat eine rudimentäre Unterstützung für die Transklusion über Byte -Serving: angeben a Byte -Reichweite In einer HTTP -Anforderungsnachricht.

Transklusion kann entweder vor (serverseitig) oder nach (clientseitiger) Übertragung auftreten. Zum Beispiel:

  • Ein HTML-Dokument kann vom Server vor dem Lieferumfang vor dem Client über die serverseitige oder eine andere serverseitige Anwendung vorgezogen werden.
  • XML -Entitäten oder HTML -Objekte können vom Client analysiert werden, wodurch die entsprechenden Ressourcen getrennt vom Hauptdokument angefordert werden.
  • Ein Webbrowser kann Elemente mit eigenen Algorithmen zwischenspeichern, die im Markup des Dokuments ohne explizite Richtlinien funktionieren können.
  • Angularjs Verwendet Transclusion für eine verschachtelte Richtlinie.[10]

Verlage von Webinhalten kann gegen die Transklusion von Material von ihren eigenen Websites in andere Websites abgewiesen werden, oder es verlangen möglicherweise eine Vereinbarung, dies zu tun. Kritiker der Praxis können sich auf verschiedene Formen von beziehen Inline -Verknüpfung wie Bandbreitendiebstahl oder Blutegel.

Andere Verleger können sich speziell darum bemühen, ihre Materialien wie in Form von in anderen Websites transkludieren zu lassen Webwerbung, oder as Widgets wie ein Trefferschalter oder Web -Fehler.

Mashups Nutzen Sie die Transklosion, um Ressourcen oder Daten in eine neue Anwendung zusammenzustellen, wie durch Platzierung Geo-markiert Fotos auf einer interaktiven Karte oder durch Anzeigen von Geschäftsmetriken in einem interaktiv Armaturenbrett.

Client-Seite HTML

Html Definiert Elemente für die clientseitige Transklusion von Bilder, Skripte, Stylesheets, Sonstige Unterlagen, und Andere Arten von Medien. HTML hat sich aus den frühesten Tagen des Webs stark auf clientseitige Transklusion verlassen (so können Webseiten schneller angezeigt werden, bevor Multimedia-Elemente geladen wurden), anstatt die Rohdaten für solche Objekte in das Markup einer Webseite einzubetten.

Durch Techniken wie z. Ajax, Skripte, die einem HTML-Dokument zugeordnet sind, können einen Webbrowser anweisen, das Dokument an Ort zu ändern, im Gegensatz zu der früheren Technik, eine völlig neue Version der Seite vom Webserver abzuziehen. Solche Skripte können Elemente oder Dokumente von einem Server transklusten, nachdem der Webbrowser die Seite gerendert hat, beispielsweise auf Benutzereingaben oder Änderungsbedingungen.

Zukünftige Versionen von HTML können eine tiefere Transklusion von Teilen von Dokumenten verwenden Xml Technologien wie Entitäten, Xpointer Dokumentreferenzierung und Xslt Manipulationen.

Proxy -Server kann eine Transklosion verwenden, um redundante Übertragungen von häufig angeforderten Ressourcen zu verringern.

Ein beliebtes Front -End -Framework als bekannt als Angularjs entwickelt und gewartet von Google Hat eine Richtlinie Callend NG-Transclude, die den Insertionspunkt für das transkludierte DOM der nächsten Elternrichtlinie markiert, der Transclusion verwendet.

Serverseitige Transclusion

Transklosion kann auf der serverseite wie bis durch erreicht werden Die Serverseite enthält und Markup Entity Referenzen von der Serversoftware behoben. Es ist ein Merkmal von Substitutionsvorlagen.

Transklosion des Quellcode

Die Transklusion des Quellcode in Software -Design oder Referenzmaterial kann den Quellcode innerhalb des Dokuments darstellen, jedoch nicht als Teil des Dokuments interpretiert werden, wodurch die semantische Konsistenz des eingefügten Code in Bezug auf seine Quellcodebasis erhalten bleibt.

Transklosion im Content -Management

Im Content -Management zum Ein-Source-Publishing, Spitzenklasse Content -Management -Systeme Zunehmend für Transklusion und Substitution sorgen. Komponenten -Content -Management -Systemevor allem zielen darauf ab, das zu nehmen modulares Design Prinzip bis zu seinem optimalen Grad. Mediawiki Bietet Transclusion und Substitution und ist eine gute Option für viele kleinere Organisationen (wie kleinere gemeinnützige Organisationen und KMU) Das hat möglicherweise nicht das Overhead -Budget für andere kommerzielle Optionen; Details finden Sie unter Komponenten -Content -Management -System.

Siehe auch

Verweise

  1. ^ Glushko, Robert J., ed. (2013). Die Disziplin der Organisation. Cambridge, Massachusetts: MIT Press. p. 231. ISBN 9780262518505.
  2. ^ Erste Spezifikationen für eine gemeinsame geschäftsorientierte Sprache (COBOL) für die Programmierung elektronischer digitaler Computer (PDF). Washington: Verteidigungsministerium. April 1960. S. V-27. Hören Sie: Funktion ein: zum Speichern des Programmierers, indem Sie die Unterprogramme für Bibliothek automatisch in das Quellprogramm einbeziehen.
  3. ^ Ritchie, Dennis M. (1993-03-01). "Die Entwicklung der C -Sprache". ACM Sigplan nennt. 28 (3): 201–208. doi:10.1145/155360.155580. Archiviert von das Original am 27. Februar 2020. Viele andere Veränderungen traten zwischen 1972 und 193 Jahren auf, aber die wichtigste war die Einführung der Präprozessorteilweise auf Drängen von Alan Snyder [Snyder 74], aber auch in der Erkennung des Nutzen BCPL und Pl/i. Die ursprüngliche Version war außerordentlich einfach und lieferte nur enthaltene Dateien und einfache Dateien und einfach Saitenersatz: #enthalten und #define von parameterlosen Makros. Bald danach wurde es erweitert, meistens von Mike Lesk und dann von John Reiser, um zu integrieren Makros mit Argumenten und Bedingte Zusammenstellung. Der Präprozessor wurde ursprünglich als optionales Ergänzung zur Sprache selbst angesehen. Alt URL Archiviert 2020-02-04 am Wayback -Maschine
  4. ^ Adams, Jeanne C.; Brainerd, Walter S.; Martin, Jeanne T.; Smith, Brian T.; Wagener, Jerrold L. (1992). FORTRAN 90 Handbuch: Komplette ANSI / ISO -Referenz (PDF). New York City: McGraw-Hill Book Company. p. 65. ISBN 0-07-000406-4. Die Include -Zeile ist eine neue Funktion in Forran, die die Aufnahme von Quellcode aus einer bestimmten Datei ermöglicht. Es ist eine bequeme Möglichkeit, den gleichen Text an mehreren Stellen an einem Programm zu platzieren.[Dead Link] Alt URL
  5. ^ Stallman, Richard M.; Weinberg, Zachary. "Header -Dateien" (PDF). Der C -Präprozessor: Für GCC Version 6.3.0 (GCC). S. 10–11. Alternativen zum Wrapper #ifndef: CPP Unterstützt zwei weitere Möglichkeiten, um anzuzeigen, dass eine Header -Datei nur einmal gelesen werden sollte. Keiner ist so tragbar wie ein Wrapper "#ifndef" und wir empfehlen, sie nicht in neuen Programmen zu verwenden, mit der Einschränkung, dass "#import" Standardpraxis ist Ziel c. [...] Eine andere Möglichkeit, zu verhindern, dass eine Header -Datei mehr als einmal eingeschlossen wird#pragma einmal’Richtlinie. Wenn beim Scannen einer Header -Datei "#pragma einmal" gesehen wird, wird diese Datei nie wieder gelesen, nein, nein, was.
  6. ^ Johnson, S. C.; Ritchie, D. M. (Juli -August 1978). "Unix Time-Sharing-System: Portabilität von C-Programmen und Unix-System". Das Bell System Technical Journal. 57 (6): 2021–2048. doi:10.1002/j.1538-7305.1978.tb02141.x. ISSN 0005-8580. S2CID 17510065. Abgerufen 27. Februar 2020. Noch vor dem Aufkommen der Interdata Maschine, wie oben erwähnt, wie oben erwähnt, waren viele Programme nicht nur von einem unerwünschten Abschluss abhängig Unix E/A -Konventionen, jedoch zu Details von besonders günstigen Pufferstrategien für die PDP-11. Ein Paket von Routinen, genannt ""Tragbare E/A -Bibliothek," wurde geschrieben von M. E. Lesk und implementiert auf dem Honeywell und IBM-Maschinen sowie die PDP-11 in allgemein erfolgreicher Bemühungen, die Mängel früherer Pakete zu überwinden
  7. ^ Theodor H. Nelson, "Eine Dateistruktur für den Komplex, das Ändern und das Unbestimmt." Proceedings der ACM 20. National Conference (1965), S. 84-100
  8. ^ Kolbitsch, Josef; Maurer, Hermann (27. Januar 2017). "Transklusionen in einer HTML-basierten Umgebung" (PDF). Archiviert von das Original (PDF) am 1. Juli 2017. Abgerufen 27. Januar, 2017.
  9. ^ Der kleine Transquotor Xanadu.com.au
  10. ^ "AngularJs". docs.angularjs.org. Abgerufen 2016-08-11.

Weitere Lektüre

Externe Links