María Jesús Lamarca Lapuente. Hipertexto: El nuevo concepto de documento en la cultura de la imagen. |
|
Hiperenlace simple | Hiperenlace extendido |
<AUTOR xlink:href="autores.xml#pedro#
xlink:show="new" <NOMBRE> Pedro Pérez López</NOMBRE> </AUTOR> |
<EDITOR_AUTOR xlink:extended> <xlink:locator href:"#ana" id="editor"/> <xlink:locator href:"autores.xml#pedro" id="autor"/> <xlink:arc from="editor" to="autor" show="replace"/> </EDITOR_AUTOR xlink:extended> |
Un enlace o hipervínculo simple se abre en una nueva ventana (show="new"), mientras que en un enlace o hipervínculo extendido existen 3 posibilidades: a una sección determinada del documento (#ana), a un determinado lugar de otro documento (#autores.xml#pedro) o a una zona delimitada por dos marcadores (editor y autor).
La especificación hace una precisión en cuanto a los términos enlace e hiperenlace al afirmar que uno de los usos comunes de XLink es crear hiperenlaces. Un hiperenlace es un enlace que se entiende primariamente para presentación a un usuario humano. Nada en el diseño de XLink, sin embargo, impide usar este término con enlaces que se usan únicamente para ser entendidos por ordenadores.
El lenguaje XLL (eXtensible Linking Language) define el modo de enlace entre diferentes enlaces. Se considera que es un subconjunto de HyTime (Hipermedia/Timed-based structuring Language o Lenguaje de estructuración hipermedia basado en el tiempo, ISO/IEC 10744:1997) y sigue algunas especificaciones del TEI (Text Encoding Initiative o Iniciativa de codificación de texto). Desde marzo de 1998 el W3C estuvo trabajando en los enlaces y direccionamientos del lenguaje XML. Provisionalmente, al lenguaje XLL se le llamó como Xlink y a partir de junio se le denomina XLL. Este lenguaje de enlaces extensible tiene dos importantes componentes: Xlink y Xpointer, ambos definen un modo estándar para representar enlaces entre recursos. El lenguaje XLL da un paso más allá en el tratamiento de los enlaces que el lenguaje HTML que sólo soporta los enlaces simples. Con XLL se pueden implementar enlaces extendidos y enlaces entre múltiples recursos. Jon Bosak establecía los siguientes mecanismos hipertextuales que soporta esta especificación:
Denominación independiente de la ubicación.
Enlaces que pueden ser también bidirecccionales.
Enlaces que pueden especificarse y gestionarse desde fuera del documento al que se aplique (Esto permitirá crear en un entorno intranet/extranet un banco de datos de enlaces en los que se puede gestionar y actualizar automáticamente. No habrá más errores del tipo "404 Not Found", archivo No Encontrado).
Hiperenlaces múltiples (anillos, múltiples ventanas, etc.).
Enlaces agrupados (múltiples orígenes).
Transclusión (el documento destino al que apunta el enlace aparece como parte integrante del documento origen del enlace).
Se pueden aplicar atributos a los enlaces (tipos de enlaces).
La especificación XLL o Extensible Linking Language tiene como fin dotar de cierta funcionalidad a los enlaces de la World Wide Web. La Web, a través del lenguaje HTML proporciona una forma de enlace única y utilizada por todos los usuarios: el elemento <a> o anchor (ancla). Se trata de un tipo de enlace unidireccional que no especifica nada de la página a la que apunta, excepto su localización. Tiene varios comportamientos según el diseño del URL (http, file, ftp, mailto, search) y el navegador que lo lea. Estos comportamientos son, por ejemplo, buscar y mostrar, buscar y guardar o mandar un e-mail, etc.
Esta especificación define el XML Linking Language (XLink), que permite insertar elementos en documentos XML con el fin de crear y describir enlaces entre recursos. Este lenguaje usa la sintaxis XML para crear estructuras que pueden describir enlaces similares a los enlaces simples del actual HTML, pero también enlaces más sofisticados.
XLink ofrece un marco para crear tanto enlaces básicos unidireccionales, como estructuras de enlaces mucho más complejas. XLink permite a los documentos XML:
Una aplicación importante de XLink es en los sistemas
hipermedia que tienen hiperenlaces. Un modo simple de enlazar es
usar un elemento
HTML
<A>
, que tiene
estas características:
El hiperenlace usa URIs como tecnología de localización.
El hiperenlace es expresado en uno de sus dos extremos.
El hiperenlace identifica el otro extremo (si bien un servidor debe tener gran libertad para encontrarlo o crear dinámicamente aquel destino).
Los usuarios pueden iniciar el cruce solamente desde el extremo donde está expresado el hiperenlace hacia el otro extremo.
El efecto del enlace sobre la
ventana, marcos,
retornos,
hojas de estilo en uso y otros efectos se determinan por
los agentes de usuario (sistemas que procesan documentos XML de acuerdo con
esta especificación), no por los hiperenlaces mismos. Por ejemplo, al
activar un enlace
<
A>
normalmente la
vista actual se reemplaza por otra, quizás con una opción para que el usuario pueda abrir una nueva
ventana.
Este conjunto de características es muy poderoso, pero el modelo que le sirve de base limita mucho las posibles funcionalidades de los enlaces. El modelo definido en la especificación XLink comparte con HTML el uso de la tecnología URI, pero va más allá que HTML al ofrecer características que antes sólo estaban disponibles en los sistemas hipermedia que conseguían una conexión más escalable y flexible.
El diseño de XLink ha sido posible gracias a la existencia de otros sistemas y estándares hipermedia anteriores. Como ya hemos afirmado, tanto HTML como HyTime y TEI han tenido una especial influencia. HTML define ya varios tipos de elementos que representan enlaces, HyTime define diferentes estructuras de enlaces y algunas características semánticas, incluyendo control de trayectos y presentación de objetos. Hypermedia/Time-based structuring language, se trata de una norma ISO/IEC 10744:1997, que es una extensión del lenguaje SGML a medios dinámicos como vídeo o audio. Y TEI (Text Endoding Initiative) ofrece una estructura para crear enlaces, agregar objetos y colecciones de enlaces. Pero la especificación hace también referencia a otros muchos sistemas de enlaces y, por tanto, a sistemas de hipertexto, que también han facilitado el diseño de XLink, y cita expresamente a Dexter, FRESS, e Intermedia, entre otros.
Entre las definiciones expresamente formalizadas en la Especificación podemos destacar las siguientes:
Un XLink es una relación explícita entre recursos o porciones de recursos. Esta relación se hace explícita mediante un elemento enlace XLink, que es un XLink conforme al elemento XML que declara la existencia de un enlace.
Hay 6 elementos XLink, pero solamente dos de ellos se consideran elementos de enlace. Los otros ofrecen varias piezas de información que describen las características de un enlace. El término enlace se usa en esta especificación referido solamente a un enlace XLink, aunque otro tipo de construcciones no-XLink puedan servir como enlaces.
Los elementos o tipos de enlaces XLink son los siguientes:
simple (simple): enlaces que ofrecen
una sintaxis rápida y fácil para una
clase común de enlaces, un enlace outbound con exactamente dos recursos participantes (entre los cuales
encontramos enlaces del estilo de HTML como
<A>
e
<IMG>
). Debido a
que los enlaces simples ofrecen menos funcionalidades que los enlaces
extendidos, no tienen una estructura interna especial. Aunque los enlaces
simples son conceptualmente un subconjunto de enlaces extendidos, hay
diferencia sintácticas. Por ejemplo, para convertir un enlace simple en un
enlace extendido, podrían ser necesarios varios cambios estructurales.
extendido (extended): enlaces que ofrecen una funcionalidad plena XLink, tales como los arcos inbound (que saltan hacia adentro) y los arcos a tres partes (third-party arc), o los enlaces en los que participan un número arbitrario de recursos. Como resultado, su estructura puede ser bastante compleja, incluyendo elementos para apuntar a recursos remotos, elementos para contener recursos locales, elementos para especificar reglas de arcos cruzados, y elementos para especificar recursos legibles por humanos y títulos de arcos. XLink define una forma para dar una semántica especial a los enlaces para encontrar bases de datos de enlaces; usado en el sentido de un enlace extendido que ayuda a la aplicación XLink a procesar otros enlaces.
Los enlaces extendidos pueden tener una mixtura de elementos
localizador (locator): tipo de elementos que direccionan los recursos remotos participantes en el enlace
arco (arc): tipo de elementos que proporcionan reglas de cruce entre los recursos que participan en el enlace.
recurso (resource): tipo de elementos que suministran los recursos locales que participan en el enlace
título (title): tipo de elementos que ofrecen etiquetas para los enlaces legibles para los humanos
Así pues, los enlaces del lenguaje XLL soportan una compatibilidad íntegra con el formato actual de HTML en cuanto a enlaces, pero además aportan otras funcionalidades, como enlaces bidireccionales que permiten al usuario activar un enlace desde cualquiera de las partes seleccionadas; localización muy precisa de la información, debido a su organización jerárquica mediante XML; enlaces indirectos, a través de un archivo intermedio, que impide que si un recurso cambia su URL, todos los documentos cuyos enlaces apuntan a ese recurso deban actualizarse y, además, los enlaces XLL tienen distintos formatos según unos cuantos ejes de actuación básica, como relaciones, topología, presentación, información asociada y elementos
La noción de recursos es universal en la World Wide Web. Un recurso es una unidad localizable de información o servicio. Como ejemplo de recursos tenemos: archivos, imágenes, documentos, programas y resultados de búsquedas. El significado dado para localizar una fuente es una referencia URI (Uniform Resource Identifier (Locator Attribute (href)). Es posible localizar una porción de un recurso. Por ejemplo, si el recurso completo es un documento XML, una porción útil de aquel recurso debe ser un elemento particular dentro del documento.
Cuando asociamos un enlace a un conjunto de recursos, se dice que aquellos recursos toman parte en el enlace (participate). Aunque los enlaces XLink deben aparecer en documentos XML, es posible asociar toda clase de recursos no solamente los codificados en XML.
Usar o seguir un enlace para algún propósito se denomina cruce (traversal). Aunque algunas clases de enlaces pueden asociarse arbitrariamente a varios recursos, un cruce siempre implica a un par de recursos (o fragmentos de ellos).
El recurso desde el cual empieza un cruce es el recurso origen (starting resource) y el destino es el recurso final (ending resource). Hay que hacer notar que el término recurso se usa en el sentido de fragmento de recurso, no de recurso completo.
La información acerca de cómo recorrer un par de recursos, incluyendo la dirección del recorrido y la posibilidad de aplicar información que funcione bien, se denomina un arco (arc). Si dos arcos en un enlace especifican el mismo par de recursos, pero ellos conmutan los lugares de inicio y destino de recursos, entonces el enlace es multidireccional, que no es lo mismo que la simple "vuelta atrás" después de cruzar un enlace.
Un recurso local (local resource) es un elemento XML que participa en un enlace en virtud de tenerlo en su seno, o ser él mismo un elemento enlace.
Un recurso o fragmento de recurso que participa en un enlace en virtud de ser direccionado con una referencia URI se considera como un recurso remoto (remote resource), aunque esté en el mismo documento XML como el enlace, o dentro del mismo elemento enlace. Dicho de otra manera, un recurso local es especificado "por el valor," y un recurso remoto es especificado "por la referencia."
Un arco que tiene un recurso de entrada local y un recurso de
destino remoto salta hacia afuera (outbound), esto es, está fuera
del elemento enlazado. Ejemplos de enlaces con tales arcos son los elementos
<A>
de HTML, los "clinks"
de HyTime y los elementos
XREF de
Text Encoding Initiative.
Si un recurso destino de un arco es local, pero su recurso de origen es remoto, entonces el arco es "inbound", esto es, salta hacia adentro.
Si ni el recurso origen ni el destino son locales, entonces el arco es un arco a tres partes (third-party arc). Algunos tipos de enlaces especifican solamente una clase de arco y entonces deberían ser denominados como enlaces que saltan hacia dentro (inbound), que saltan hacia afuera (outbound), o enlaces a tres partes (third-party link).
Para crear un enlace que emana de un recurso al cual no se tiene acceso escrito (o se elige no ejercitarlo) o de un recurso que no ofrece ninguna manera de embeber el enlace, es necesario usar un arco inbound o a tres partes. Cuando se usan tales arcos, el requerimiento para el descubrimiento del enlace es más importante que para los arcos que saltan hacia afuera (outbound).
En la imagen se muestra un enlace extendido que se asocia a 5
recursos remotos que proveen reglas para cruzarlos. Todos los arcos especifican
arcos a tres partes; esto es, el arco va exclusivamente a recursos remotos. Las
líneas sólidas no direccionales indican que el enlace está asociando los 5
recursos; las flechas punteadas indican las reglas de cruce que proveen
los enlaces. Los mismos recursos comparten la misma etiqueta con el valor
label
.
Este diagrama refleja arcos de cruce direccionales creados por los siguientes ajustes, donde tanto A como Cs permiten iniciar el cruce para todos los Bs. Porque algunas etiquetas aparecen en varios recursos, cada especificación de arco crea potencialmente varios arcos de cruce en uno:
<go xlink:type="arc" xlink:from="A" xlink:to="B" /> <go xlink:type="arc" xlink:from="C" xlink:to="B" />
Los documentos que contienen colecciones de "inbound" y enlaces a tres partes se llaman bases de datos de enlaces o "linkbases".
Las bases de datos de enlace a menudo se usan para gestionar de forma fácil un gran número de elementos enlaces. XLink ofrece una manera de instrumentar aplicaciones XLink para acceder a "linkbases" potencialmente relevantes. La instrucción toma la forma de una especificación de arco (si es explícito en un enlace extendido o si es implícito en un enlace simple) que tiene el siguiente valor para su atributo arcrole:
http://www.w3.org/1999/xlink/properties/linkbase
El marcado o etiquetado Link necesita ser reconocido realmente por las aplicaciones XLink y para ello se usa el mecanismo descrito en la Recomendación Namespaces in XML (http://www.w3.org/TR/REC-xml-names/) referida a los Espacios de Nombre en XML.
El espacio de nombres XLink (namespace XLink) definido por esta especificación tiene el siguiente URI:
http://www.w3.org/1999/xlink
Según lo dictado por los Namespaces XML, el uso de elementos y
atributos XLink requiere la declaración de XLink namespace. Por ejemplo, la
siguiente declaración podría hacer el prefijo
xlink
válido sin el elemento
myElement
para representar un XLink
namespace:
<myElement
xmlns:xlink="http://www.w3.org/1999/xlink">
...
</myElement>
Los espacios de nombre o XLink's namespace ofrecen atributos globales (global attributes) para usar
un elemento que es un espacio de nombres arbitrario. Los atributos globales son
type
,
href
,
role
,
arcrole
,
title
,
show
,
actuate
,
label
,
from
, y
to
. Los creadores de documentos usan
los atributos globales XLink para marcar el elemento en su propio
espacio de nombres, o en un namespace sobre el que ellos no tienen el control,
reconocible como elemento XLink . El atributo
type
indica el tipo de elemento XLink (simple, extendido, localizador, arco,
fuente, o título).
El siguiente es un ejemplo de elemento de referencia cruzada
(crossReference)
desde un espacio de nombres no-XLink que tiene un atributo global:
<my:crossReference xmlns:my="http://example.com/" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="students.xml" xlink:role="http://www.example.com/linkprops/studentlist" xlink:title="Student List" xlink:show="new" xlink:actuate="onRequest"> Current List of Students </my:crossReference>
Esta Recomendación propone un mecanismo, similar al HTML Base para definir los URIs base para partes de documentos XML
El lenguaje XML Linking (XLink) define al Lenguaje de Marcado Extensible (XML) 1.0 elaborado para describir enlaces entre recursos. Uno de los requerimientos de base sobre XLink es el soportar HTML enlazando conceptos de una forma genérica. El elemento HTML BASE es uno de los conceptos que ha sido tomado en cuenta por el Grupo de Trabajo XLink. BASE permite a los autores especificar claramente el URI base de un documento con el fin de permitir la resolución de URIs relativos en conexiones a imágenes externas, applets, programas de tratamiento de formularios, hojas de estilo, y otros.
Este documento describe un mecanismo para proveer servicio de
URI base a XLink, más como una especificación modular, con el fin de que sea
igualmente posible de ser usada dentro de otras aplicaciones XML beneficiándose
así sobre el control adicional sobre URIs relativos sin tener que implementar
completamente XLink y que puede hacer uso del mismo. La sintaxis consiste en un
único atributo XML denominado xml:base
.
El despliegue de XML Base está realizado dentro de las
referencias reglamentadas por las nuevas especificaciones, por ejemplo XLink y
el XML Infoset (http://www.w3.org/TR/xml-infoset/). Las aplicaciones y las especificaciones constituidas sobre estas
nuevas tecnologías deberían nativamente soportar XML Base. El comportamiento del
atributo xml:base
dentro de las
aplicaciones basadas sobre las especificaciones que no tienen referencias
normativas directas o indirectas dentro de XML Base no está definido.
El atributo xml:base
puede ser insertado en documentos XML para especificar un URI base de
otro URI base del documento o de la entidad externa. El valor de este atributo
es interpretado como una referencia URI tal y como está definido en RFC 2396
(IETF RFC
2396), después de ser procesado.
Dentro de procesadores XML capaces de interpretar los
Espacios de Nombres (namespaces), el prefijo "xml" está dedicado al Espacio del
Nombre (namespace) http://www.w3.org/XML/1998/namespace
tal como se ha descrito en el documento de Espacio de Nombres (namespace) en XML
(XML Names).
xml:base
puede
usarse todavía
por los procesadores XML, que no comprenden los Espacios de Nombres (namespace).
He aquí un ejemplo de
xml:base
en un documento simple que contiene XLinks seguidos. XLink normativamente hace
referencia a XML Base para interpretación de URI relativos referenciados en
abributos
xlink:href
<?xml version="1.0"?> <doc xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtual Library</title> </head> <body> <paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's new</link>!</paragraph> <paragraph>Check out the hot picks of the day!</paragraph> <olist xml:base="/hotpicks/"> <item> <link xlink:type="simple" xlink:href="pick1.xml">Hot Pick #1</link> </item> <item> <link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link> </item> <item> <link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link> </item> </olist> </body> </doc>
Los URIs en este ejemplo son transformados en URIs completos como se indica a continuación:
Esta especificación define el Lenguaje de Punteros XML (XPointer),
el lenguaje que se usa como la base para identificar un fragmento mediante una
referencia URI que localiza un recurso de tipo
media en Internet como
text/xml
,
application/xml
,
text/xml-external-parsed-entity
, o
application/xml-external-parsed-entity
.
El XML Pointer Language (XPointer) Framework está
recogido como Recomendación por el W3C (http://www.w3.org/TR/xptr-framework/).
Se trata de un
sistema extensible para direccionar XML que está debajo de las
especificaciones de los esquemas XPointer. El sistema tiene como fin poder
usarse como una base para fragmentos identificativos de algún tipo de
recursos media en Internet como:
text/xml
,
application/xml
,
text/xml-external-parsed-entity
, o
application/xml-external-parsed-entity
.
En este sistema pueden incluirse otros media basados en XML definiendo sus propios lenguajes de identificación de fragmentos.
Mucho tipos de aplicaciones de procesos XML necesitan direccionar a la estructura interna de los recursos de XML usando referencias URI, por ejemplo, el XML Linking Language (XLink), XML Inclusions (XInclude), el Resource Description Framework (RDF), y SOAP. Esta especificación no constriñe los tipos de aplicaciones que utilizan referencias URI para recursos XML.
Por ejemplo, XInclude difiere de las características de
enlace de XLL en que tiene enlaces específicos con el valor del atributo
show="embed"
. Estos enlaces ofrecen
un tipo de media de sintaxis independiente para indicar que una fuente está
gráficamente embebida en el presentación del documento. XLink no
especifica el modelo de este proceso, sino que simplemente facilita la detección
de enlaces y el reconocimiento de metadatos asociados para un nivel más
alto de aplicación.
La especificación XPointer define la sintaxis y semántica de los punteros y de los fragmentos de un puntero que provee un nombre de esquema y algún dato de puntero que es conforme con la definición de aquel esquema. El procesador XPointer evalúa una parte de un puntero para identificar cero o más sub-recursos en un recurso XML mediante el procesador XPointer. El procesador toma como entrada un recurso XML y una cadena para usarla como un puntero (por ejemplo, la identificación de un fragmento, con escape de vuelta atrás, tomado de una referencia URI que fue usada para acceder al recurso), trata de evaluar el puntero con respecto al recurso, y produce como salida una identificación de sub-recursos, o uno o más errores.
En el siguiente ejemplo, si el fragmento del puntero "xpointer" no se conoce o falla para identificar un sub-recurso, se evalúa el 'element' fragmento del puntero. Si el fragmento del puntero "xpointer" identifica el sub-recurso, el fragmento del "elemento" puntero no se evalúa.
#xpointer(id('boy-blue')/horn[1])element(boy-blue/3)
El Esquema XPointer
element()
puede usarse con el XPointer Framework (XPtrFrame)
para permitir direccionamientos básicos de elementos XML. Se define en la
Especificación del W3C:
http://www.w3.org/TR/xptr-element/
El Esquema XPointer
xmlns()
se usa con el XPointer Framework (XPtrFrame)
para permitir la correcta interpretación de los
espacios de nombre, en concreto de los prefijos namespace en los
punteros (pointers), por ejemplo, namespace-qualified scheme names
y namespace-qualified
element o attribute names que aparecen dentro de los esquemas de
datos (scheme data). Se define en la Especificación del W3C:
http://www.w3.org/TR/xptr-xmlns/
En resumen, XML Linking Languaje o Lenguaje de Enlaces Extensible (XLL) agrupa a todo un conjunto de tecnologías que abarcan los diferentes aspectos relacionadas con los enlaces y direccionamiento en el lenguaje XML.
IETF (nternet Engineering Task Force). RFC 2396. Uniform Resource Identifiers (URI): Generic Syntax. http://www.ietf.org/rfc/rfc2396.txt e Internet RFC Archives. http://www.faqs.org/rfcs/rfc2396.html
W3C. Extensible Markup Language XML W3C Recommendation. http://www.w3.org/TR/REC-xml/ (traducción al castellano. ARCINIEGAS, Fabio. Extensible Markup Language (XML) 1.0 - El lenguaje extensible de marcas (XML) 1.0 http://www.sidar.org/recur/desdi/traduc/es/xml/xml1/index.html)
W3C. Namespaces in XML. http://www.w3.org/TR/REC-xml-names/ (traducción al castellano: POZO, Juan R. Espacios de Nombres en XML. http://html.conclase.net/w3c/xml-names-es/
W3C. XML Base. http://www.w3.org/TR/xmlbase/ (traducción al castellano. SILVA, Pedro y MORENO, Yesenia. XML Base. http://pedrini.narod.ru/w3c/xmlbase/recxmlbase20010627es.html)
W3C. XML Linking Language (XLink). W3C Recommendation. http://www.w3.org/TR/xlink/.
W3C. XML Pointer Language (XPointer). http://www.w3.org/TR/WD-xptr
W3C. XML Pointer, XML Base and XML Linking. http://www.w3.org/XML/Linking
W3C. XPointer Framework. http://www.w3.org/TR/xptr-framework/
W3C. XPointer element() Scheme. http://www.w3.org/TR/xptr-element/
W3C. XPointer xmlns() Scheme. http://www.w3.org/TR/xptr-xmlns/
URL: http://www.hipertexto.info
Fecha de Actualización:
08/12/2013
|
|
|
|
Fundación Ricardo Lamarca, Ajedrez y cultura http://www.fundacionlamarca.es
|
|
Mapa de navegación / Tabla de contenido / Mapa conceptual / Tabla de documentos / Buscador / Bibliografía utilizada / Glosario de Términos / Índice Temático / Índice de Autores