Transclusion
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
modifierNeutralité de contexte
modifierLa 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
modifierDans 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
modifierTed 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
modifierLe 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
modifierHTML 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
modifierLa 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
modifierLa 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
modifierNotes et références
modifier- 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
- « 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- Ted Nelson: Transclusion: Fixing Electronic Literature, 29 January 2007.
Source de la traduction
modifier- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Transclusion » (voir la liste des auteurs).