Transclusión

Compartir Imprimir Citar
Incluyendo un conjunto de datos dentro de otro automáticamente
En este ejemplo, los datos de archivo B se transcluye en el documento A.

En informática, transclusión es la inclusión de parte o la totalidad de un documento electrónico en uno o más documentos por referencia a través de hipertexto. La transclusión generalmente se realiza cuando se muestra el documento de referencia, y normalmente es automática y transparente para el usuario final. El resultado de la transclusión es un solo documento integrado hecho de partes ensambladas dinámicamente desde fuentes separadas, posiblemente almacenadas en diferentes computadoras en lugares dispares.

La transclusión facilita el diseño modular (utilizando el modelo de fuente única de la verdad, ya sea en datos, código o contenido): un recurso se almacena una vez y se distribuye para su reutilización en varios documentos. Las actualizaciones o correcciones a un recurso se reflejan luego en cualquier documento de referencia.

En sistemas donde la transclusión no está disponible, y en algunas situaciones donde está disponible pero no es deseable, la sustitución suele ser la opción complementaria, mediante la cual se integra una copia estática de la única fuente de verdad en el documento relevante. Ejemplos de ambos son proporcionados por las formas en que ambos se utilizan en la creación del contenido de Wikipedia, por ejemplo (consulte Wikipedia:Transclusion y Wikipedia:Substitution para obtener más información).. Las copias estáticas sustituidas introducen un conjunto diferente de consideraciones para el control de versiones que la transclusión, pero a veces son necesarias.

Ted Nelson acuñó el término para su libro no lineal de 1980 Literary Machines, pero la idea de copia maestra y ocurrencias se aplicó 17 años antes, en Sketchpad.

Consideraciones técnicas

Neutralidad del contexto

La transclusión funciona mejor cuando las secciones de texto transcluidas son independientes, de modo que el significado y la validez del texto son independientes del contexto. Por ejemplo, formulaciones como "como se explicó en la sección anterior" son problemáticos, porque la sección transcluida puede aparecer en un contexto diferente, causando confusión. ¿Qué constituye "contexto neutral" el texto varía, pero a menudo incluye cosas como información de la empresa o repetitivo. Para ayudar a superar los problemas de sensibilidad del contexto como los mencionados anteriormente, los sistemas capaces de transclusión a menudo también son capaces de suprimir elementos particulares dentro del contenido transcluido. Por ejemplo, Wikipedia puede usar etiquetas como "no incluir", "solo incluir" e "solo incluir" para este propósito. Ejemplos típicos de elementos que a menudo requieren tales excepciones son títulos de documentos, notas al pie y referencias cruzadas; de esta manera, se pueden suprimir automáticamente al transcluir, sin volver a trabajar manualmente para cada instancia.

Parametrización

Bajo algunas circunstancias, y en algunos contextos técnicos, es posible que las secciones de texto transcluidas no requieran un cumplimiento estricto de la "neutralidad del contexto" principio, porque las secciones transcluidas son capaces de parametrización. La parametrización implica la capacidad de modificar ciertas porciones o subsecciones de un texto transcluido en función de variables exógenas que se pueden cambiar de forma independiente. Esto se suele hacer proporcionando un texto transcluido con uno o más marcadores de posición de sustitución. Estos marcadores de posición luego se reemplazan con los valores de las variables correspondientes antes de representar la salida transcluida final en contexto.

Orígenes

El concepto de reutilización del contenido de los archivos comenzó con los lenguajes de programación informática: COBOL en 1960, seguido de BCPL, PL/I, C y, en la década de 1990, incluso FORTRAN. Una directiva de inclusión permite que se reutilice el código fuente común mientras se evitan los peligros de la programación de copiar y pegar y la codificación rígida de constantes. Como ocurre con muchas innovaciones, surgió un problema. Múltiples directivas de inclusión pueden proporcionar el mismo contenido que otra directiva de inclusión, provocando inadvertidamente repeticiones del mismo código fuente en el resultado final, lo que genera un error. Incluir guardias ayuda a resolver esto al, después de una sola inclusión de contenido, luego omitir el contenido duplicado.

La idea de una fuente de información única y reutilizable conduce a conceptos como: No te repitas y el principio de abstracción. Se encontró otro uso para hacer que los programas fueran más portátiles. El código fuente portátil utiliza una directiva de inclusión para especificar una biblioteca estándar, que contiene un código fuente específico del sistema que varía con cada entorno informático.

Historia e implementación por Proyecto Xanadu

Ted Nelson, quien originó las palabras "hipertexto" e "hipermedia", también acuñó el término "transclusión", en su libro de 1980 Literary Machines. Parte de su propuesta fue la idea de que los micropagos podrían ser exigidos automáticamente al lector por todo el texto, sin importar cuántos fragmentos de contenido se tomen de varios lugares.

Sin embargo, según Nelson, el concepto de transclusión ya había formado parte de su descripción del hipertexto de 1965. Nelson define la transclusión como, "... el mismo contenido conocido en más de un lugar," diferenciándolo de casos más especiales, como la inclusión de contenido de una ubicación diferente (que él llama transdelivery) o una cita explícita que permanece conectada a sus orígenes (que él llama transquotation ).

Algunos sistemas de hipertexto, incluido el Proyecto Xanadu de Ted Nelson, admiten la transclusión.

Nelson ha realizado una demostración de transclusión web, el Little Transquoter (programado según las especificaciones de Nelson por Andrew Pam en 2004-2005). Crea un nuevo formato basado en direcciones de porción de páginas web; cuando se elimina la referencia, cada parte de la página resultante permanece conectada con un clic a su contexto original.

Implementación en la Web

HTTP, como protocolo de transmisión, tiene un soporte rudimentario para la transclusión a través del servicio de bytes: especificando un rango de bytes en un mensaje de solicitud HTTP.

La transclusión puede ocurrir antes (del lado del servidor) o después (del lado del cliente) de la transmisión. Por ejemplo:

Los editores de contenido web pueden objetar la transclusión de material de sus propios sitios web a otros sitios web, o pueden requerir un acuerdo para hacerlo. Los críticos de la práctica pueden referirse a varias formas de enlaces en línea como robo de ancho de banda o leeching.

Otros editores pueden buscar específicamente que sus materiales se transcluyan en otros sitios web, como en forma de publicidad web o como widgets como un contador de visitas o un error web.

Los mashups hacen uso de la transclusión para reunir recursos o datos en una nueva aplicación, por ejemplo, colocando fotos con etiquetas geográficas en un mapa interactivo o mostrando métricas comerciales en un tablero interactivo.

HTML del lado del cliente

HTML define elementos para la transclusión del lado del cliente de imágenes, scripts, hojas de estilo, otros documentos y otros tipos de medios. HTML se ha basado en gran medida en la transclusión del lado del cliente desde los primeros días de la Web (por lo que las páginas web podían mostrarse más rápidamente antes de que los elementos multimedia terminaran de cargarse), en lugar de incrustar los datos sin procesar de dichos objetos en línea en una página web. margen.

A través de técnicas como Ajax, las secuencias de comandos asociadas con un documento HTML pueden indicarle a un navegador web que modifique el documento en el lugar, a diferencia de la técnica anterior de tener que extraer una versión completamente nueva de la página del servidor web. Dichos scripts pueden transcluir elementos o documentos de un servidor después de que el navegador web haya presentado la página, en respuesta a la entrada del usuario o condiciones cambiantes, por ejemplo.

Las versiones futuras de HTML pueden admitir una transclusión más profunda de partes de documentos utilizando tecnologías XML como entidades, referencias de documentos XPointer y manipulaciones XSLT.

Los servidores proxy pueden emplear la transclusión para reducir las transmisiones redundantes de recursos solicitados comúnmente.

Un marco front-end popular conocido como AngularJS desarrollado y mantenido por Google tiene una directiva denominada ng-transclude que marca el punto de inserción para el DOM transcluido de la directiva principal más cercana que usa la transclusión.

Transclusión del lado del servidor

La transclusión se puede lograr en el lado del servidor, como a través de las inclusiones del lado del servidor y las referencias de entidades de marcado resueltas por el software del servidor. Es una característica de las plantillas de sustitución.

Transclusión del código fuente

La transclusión del código fuente en el diseño de software o materiales de referencia permite que el código fuente se presente dentro del documento, pero no se interprete como parte del documento, preservando la coherencia semántica del código insertado en relación con su base de código fuente.

Transclusión en la gestión de contenidos

En la gestión de contenido para la publicación de una sola fuente, los sistemas de gestión de contenido de primera clase proporcionan cada vez más la transclusión y la sustitución. Los sistemas de gestión de contenido de componentes, especialmente, tienen como objetivo llevar el principio de diseño modular a su grado óptimo. MediaWiki proporciona transclusión y sustitución y es una buena opción lista para usar para muchas organizaciones más pequeñas (como pequeñas organizaciones sin fines de lucro y pymes) que pueden no tener el presupuesto general para otras opciones comerciales; para obtener más información, consulte Sistema de gestión de contenido de componentes.