Aller au contenu

Transclusion

Un article de Wikipédia, l'encyclopédie libre.
B est transclus dans le document A.

En informatique, la transclusion est l'inclusion par référence d'un document ou une partie d'un document dans un autre document.

La transclusion est exĂ©cutĂ©e sur demande quand est ouvert un document faisant rĂ©fĂ©rence Ă  un autre et est normalement automatique et transparente Ă  l'utilisateur. Le rĂ©sultat semble ĂȘtre un seul document intĂ©grĂ© bien que ses parties aient Ă©tĂ© assemblĂ©es en utilisant plusieurs documents sĂ©parĂ©s provenant d'ordinateurs diffĂ©rents situĂ©s en des lieux diffĂ©rents.

Le terme a été inventé en 1963 par Ted Nelson, un pionnier de l'hypertexte.

Considérations techniques

[modifier | modifier le code]

Neutralité de contexte

[modifier | modifier le code]

La transclusion est plus efficace lorsque les sections de texte sont indépendantes, pour que la signification et la validité du texte soient indépendants du contexte dans lequel il apparaßt. Par exemple, des formulations telles que « comme expliqué dans la section précédente » sont problématiques, parce que la section de texte d'une transclusion peut apparaßtre dans un contexte différent, causant la confusion. Ce qui constitue du texte « contextuellement neutre » peut varier, mais inclut souvent des boilerplate (en).

Paramétrisation

[modifier | modifier le code]

Dans certaines circonstances et dans quelques contextes techniques, les sections de texte d'une transclusion peuvent ne pas exiger l'adhĂ©sion stricte au principe de « neutralitĂ© de contexte », dans ce cas il est possible de paramĂ©trer la transclusion. Le paramĂ©trage implique la possibilitĂ© de modifier certaines parties ou les subdivisions du texte d'une transclusion selon des variables qui peuvent ĂȘtre changĂ©es indĂ©pendamment du contexte. Ceci est habituellement fait en utilisant un texte contenant une ou plusieurs marques substitutives. Ces marques substitutives sont alors remplacĂ©es par la valeurs des variables correspondantes avant le rendu final.

Histoire et mise en Ɠuvre par le Projet Xanadu

[modifier | modifier le code]

Ted Nelson a inventé le terme transclusion dans son livre de 1982, Literary Machines (en). Le concept de transclusion faisait déjà partie de sa description de l'Hypertexte[1].

Le systÚme hypertexte Projet Xanadu développé par Ted Nelson utilise le concept de transclusion.

Mise en Ɠuvre sur le Web

[modifier | modifier le code]

Le protocole de transmission HTTP a des fonctionnalitĂ©s rudimentaires pour la transclusion via le service d'octet (spĂ©cifiant un byte range dans la requĂȘte HTTP).

La transclusion peut arriver avant (cÎté serveur) ou aprÚs (cÎté client) la transmission. Par exemple :

  • Un document HTML peut ĂȘtre prĂ©-composĂ© par le serveur avant la livraison au client, en utilisant les inclusions (ou une application) du cĂŽtĂ© serveur.
  • L'analyse syntaxique des EntitĂ©s XML ou des Objets HTML peut ĂȘtre faite par le client, en demandant les ressources correspondantes sĂ©parĂ©ment du document principal.
  • Un navigateur Web peut mettre en cache les Ă©lĂ©ments en utilisant ses propres algorithmes, qui peuvent opĂ©rer sans directives explicites dans le balisage du document.
  • AngularJS emploie la transclusion pour l'opĂ©ration directives emboĂźtĂ©es[2].

CÎté client

[modifier | modifier le code]

HTML définit les éléments du cÎté client (Client side) pour la transclusion des images, du code HTML, des feuilles de style, du Framing (en) et des autres types de médias.

Avec des techniques comme Ajax, le code associé à un document HTML peut charger un navigateur Web de modifier le document.

Les serveurs proxy peuvent employer la transclusion pour réduire les transmissions superflues de ressources couramment demandées.

CÎté serveur

[modifier | modifier le code]

La transclusion peut ĂȘtre accomplie cĂŽtĂ© serveur, avec les Server Side Includes et les rĂ©fĂ©rences d'EntitĂ© de caractĂšre. C'est une caractĂ©ristique de la substitution de modĂšle Web (en).

Dans le code source

[modifier | modifier le code]

La transclusion du code source dans la conception de logiciel et la rĂ©fĂ©rence, permettent au code source d'ĂȘtre prĂ©sentĂ© dans un document, sans ĂȘtre interprĂ©tĂ© dans le cadre du document, prĂ©servant la cohĂ©rence sĂ©mantique du code insĂ©rĂ© par rapport Ă  sa source.

Notes et références

[modifier | modifier le code]
  1. ↑ Theodor H. Nelson, A File Structure for the Complex, the Changing and the Indeterminate. Proceedings of the ACM 20th National Conference (1965), p. 84-100
  2. ↑ « A Practical Guide to AngularJS Directives » (consultĂ© le )

Bibliographie

[modifier | modifier le code]

Autres sources

[modifier | modifier le code]
  • A. Di Iorio et F. Vitali « A Xanalogical Collaborative Editing Environment » () (lire en ligne) [PDF].
    — « (ibid.) », dans Proceedings of the Second International Workshop of Web Document Analysis 2003 (WDA2003), Edinburgh, UK.
  • J. Kolbitsch et H. Maurer, « Transclusions in an HTML-Based Environment », Journal of Computing and Information Technology, vol. 14, no 2,‎ , p. 161–174 (DOI 10.2498/cit.2006.02.07, lire en ligne)
  • J. Kolbitsch, « Fine-Grained Transclusions of Multimedia Documents in HTML », Journal of Universal Computer Science, vol. 11, no 6,‎ (lire en ligne)
  • H. Krottmaier « Transcluded Documents: Advantages of Reusing Document Fragments » () (lire en ligne) [PDF].
    — « (ibid.) », dans Proceedings of the 6th International ICCC/IFIP Conference on Electronic Publishing (ELPUB2002), Czech Republic, p. 359–367.
  • H. Krottmaier et Helic D. « Issues of Transclusions » () (lire en ligne) [PDF].
    — « (ibid.) », dans Proceedings of the World Conference on E-Learning in Corporate, Government, Healthcare, & Higher Education (E-Learn 2002), Montreal, Canada, p. 1730–1733.
  • H. Krottmaier et H. Maurer, « Transclusions in the 21st Century », Journal of Universal Computer Science, vol. 7, no 12,‎ , p. 1125–1136 (lire en ligne [PDF, HTML, PostScript])
  • A. Moore et et al. « Personally tailored teaching in WHURLE using conditional translucion » () .
    — « (ibid.) », dans Proceedings of the Twelfth ACM Conference on Hypertext and Hypermedia, Aarhus, Danmark, p. 163–164.
  • (en) T. H. Nelson, Literary Machines, Mindful Press,
  • T. H. Nelson, « The Heart of Connection: Hypermedia Unified by Transclusion », Communications of the ACM, vol. 38, no 8,‎ , p. 31–33 (DOI 10.1145/208344.208353)
  • T. H. Nelson, « Generalized Links, Micropayment and Transcopyright », Almaden Research Center,
  • T. H. Nelson, « Transcopyright: Pre-Permission for Virtual Republishing »,
  • T. H. Nelson, « Xanalogical Structure, Needed Now More than Ever: Parallel Documents, Deep Links to Content, Deep Versioning and Deep Re-Use », ACM Computing Surveys, vol. 31, no 4es,‎ , p. 33 (DOI 10.1145/345966.346033, lire en ligne)
  • A. Pam, « Fine-Grained Transclusion in the Hypertext Markup Language » [Text], Internet Draft,
  • (en) E. Wilde et D. Lowe, XPath, XLink, XPointer, and XML : A Practical Guide to Web Hyperlinking and Transclusion, Addison-Wesley Professional, , 169–198 p., PDF (lire en ligne), « XML Linking Language »

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

Sur les autres projets Wikimedia :