Transclusion

inclusion par référence d'un document ou une partie d'un document dans un autre document

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

B est transclus dans le document A.

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

Neutralité de contexte

modifier

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

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

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

Le protocole de transmission HTTP a des fonctionnalités rudimentaires pour la transclusion via le service d'octet (spécifiant un byte range (en) 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

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

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

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.

Voir aussi

modifier

Notes et références

modifier
  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 )

Autres sources

modifier
  • 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 »

Liens externes

modifier

Sur les autres projets Wikimedia :

Source de la traduction

modifier