2. WWW y Semántica

Hoy en día, para gran parte de la población mundial, la World Wide Web es algo tan presente como la televisión. La Web es un lugar en el cual las personas consultan informaciones, hacen compras, trabajan, conversan, establecen relaciones, etc. La Web es algo cotidiano, una cosa obvia. ¿Cuál es la necesidad de explicar qué es la Web a un niño de 10 años nacido en una gran metrópolis? Para quienes nacieron en el siglo XXI, la Web es la Web, que es como decir que la luz es la luz. A pesar de las enormes transformaciones provocadas por la Web en el modo de vida de las personas a partir del momento en que comenzaron a utilizarla, se trata de algo aún muy reciente, y está en constante e intensa transformación. ¿Pero qué es la Web?

2.1 Web de Documentos

En términos técnicos, la Web es un sistema inventado por Tim Berners-Lee y Robert Cailliau [1] en 1989, con el objetivo de utilizar la Internet para la consulta y actualización de ítems de información (documentos) organizados en una estructura hipertextual. Hipertexto es un texto estructurado, compuesto por un conjunto intervinculado de ítems de información (nodos), que incluyen, por ejemplo, textos, imágenes, videos, etc. La arquitectura de ese sistema fue creada en base al concepto de cliente-servidor, en el que una aplicación (un cliente Web) hace la requisición de un documento (un recurso) a otra aplicación (un servidor Web), informando la identificación de dicho documento.

Este sistema está compuesto por tres elementos básicos, definidos por estándares internacionales:

• URL (Uniform Resource Locator ) [2] es el identificador de los documentos, de los nodos de la estructura. Por ejemplo, "http://es.wikipedia.org/wiki/World_Wide_Web" identifica al documento que describe a la Web en el portal de la Wikipedia en español.

• HTML (Hypertext Markup Language ) [3] es el lenguaje de marcación para la descripción de los documentos. En un principio, se lo concibió como un lenguaje de descripción de documentos científicos, pero las adaptaciones realizadas con el pasar del tiempo permitieron que se lo utilice para describir diversos tipos de documentos diferentes.

• HTTP (Hypertext Transfer Protocol ) [4] es el protocolo de comunicación para el acceso a los documentos. Este protocolo establece las reglas de la comunicación entre dos aplicaciones, un cliente y un servidor, con el fin de permitir la requisición de un contenido y el respectivo resultado devuelto en razón de la requisición efectuada; por ejemplo, una página HTML.

El sistema funciona de la siguiente manera: una aplicación-cliente, por ejemplo un navegador Web, hace la requisición de un documento al servidor, identificando ese documento a través de una URL, e informando que el documento debe ser, preferentemente, descripto en HTML. La URL contiene también la identificación del servidor que será responsable de gerenciar la requisición del documento. La comunicación entre el cliente y el servidor se establece mediante el protocolo HTTP. Una vez efectuada la requisición de un documento a través del navegador, el servidor identificado por la Web devuelve el documento solicitado, en forma de cadena de caracteres formateados en lenguaje HTML. Cuando el documento es recibido en HTML, el navegador interpreta el código del lenguaje y exhibe la información en pantalla. La idea original de este sistema era la de que, además de visualizarse la información contenida en un documento determinado, el usuario también pudiese alterar la información de dicho documento, algo semejante a lo que ocurre hoy en día en portales como el de la Wikipedia.

Además de estos tres elementos, existe un cuarto ítem importante en este sistema: el link que puede ser establecido entre los diversos documentos, un hyperlink en un hipertexto. Los links hacen la intervinculación entre los diversos nodos de la estructura. Un link puede estar incluido dentro del código de una determinada página, utilizando un tag específico del lenguaje HTML (el tag ), siendo también posible especificar una URL que apunta hacia otro documento. De esta forma, tenemos una red, un tejido, una Web de documentos intervinculados, un hipertexto. El documento, cuando es visualizado por los usuarios en un navegador, queda referenciado como tratándose de una página de la Web.

En resumen, puede accederse a cada documento de la Web a través de una URL, siendo posible también que ese documento esté intervinculado a otros documentos a través de links: un conjunto de documentos intervinculados por links. Eso es la Web de documentos.

El contenido de una página exhibida por un navegador puede contener diversas informaciones distintas, que serán utilizadas por los usuarios. Podemos tener una página, por ejemplo, con información sobre diferentes productos en promoción de una determinada tienda que vende electrodomésticos. Esa información está detallada de manera tal de que sea entendible por los seres humanos. ¿Qué es lo que, en una página Web, debe ser entendido por las máquinas?

El navegador, así como otras aplicaciones ejecutadas en Internet, no consiguen identificar lo que está descripto en esas páginas de la misma manera que las personas. El navegador no entiende el significado del texto incluido en las páginas. Lo que sí consigue un navegador es entender la semántica del lenguaje HTML, que contiene formas de indicar, por ejemplo, que una determinada frase es un título, un tag específico del lenguaje HTML, el tag <h1>, por ejemplo. De esta manera, podemos decir que una determinada frase, "La Web de Documentos", es un título: <h1>La Web de Documentos</h1>. Lo que el navegador consigue interpretar es la relación entre el texto "La Web de Documentos" y el tag <h1>, y a partir de allí, tener una manera de exhibir ese título de acuerdo a un estilo determinado. Para el navegador, es indiferente cuál es el significado del texto contenido entre <h1> y </h1>. Literalmente, el navegador no entiende texto. Puede tratarse de cualquier frase. El navegador no extrae información alguna del texto en sí.

2.2 Web Programable

El entorno inicial de la Web estaba compuesto, básicamente, por un universo de documentos estáticos, mantenidos en archivos en los servidores Web, que recibían requisiciones de parte de los navegadores para ser exhibidos a los usuarios. A pesar de que una URL pueda simplemente direccionarse hacia un archivo, también es posible que un servidor Web haga algo además de identificar el archivo y devolverlo al cliente. Puede ejecutar un código de programa y, a partir de ese proceso, devolver un contenido generado de manera dinámica por ese programa. En ese caso, la página HTML entregada por el servidor es la generada por el programa ejecutado a partir de la requisición identificada por la URL.

Cada servidor Web ejecuta un software específico para la atención de requisiciones HTTP. Normalmente, un servidor HTTP cuenta con un directorio, una carpeta, nombre que designa a un conjunto de documentos, archivos que pueden ser enviados en respuesta a las requisiciones de los navegadores. Esos archivos están identificados por las URLs asociadas a las requisiciones.

Common Gateway Interface (CGI) es un método estándar utilizado para generar contenido dinámico en páginas y aplicaciones de la Web. Provee una interfaz entre el servidor Web y los programas que generan el contenido dinámico de la Web. Esos programas están generalmente escritos en lenguaje de script, pero podría escribírselos en cualquier otro lenguaje de programación.

La Web ha evolucionado desde su estado inicial de simple espacio para la exhibición de páginas contenidas en documentos estáticos, hacia un universo en el cual diversos tipos de aplicaciones utilizan a los navegadores como plataformas para la ejecución de programas. Hoy en día es posible hacer compras, realizar operaciones bancarias, enviar mensajes y ejecutar una infinidad de diferentes aplicaciones a partir de la utilización de los navegadores. Diversos entornos de programación surgieron con la intención de facilitar la creación y la ejecución de tales aplicaciones, como por ejemplo: ASP, ASP.NET, JSPJava, PHP, Perl, Python, Ruby on Rails, etc.

Las aplicaciones, generalmente, están estructuradas en bloques lógicos llamados capas, siendo que a cada capa se le atribuye un papel. La estructura más habitual en las aplicaciones Web es la de tres capas: presentación, lógica de negocios y almacenamiento. Un navegador de Web es la primera capa (presentación). Un motor, utilizando alguna tecnología de contenido dinámico de la Web (JSPJava, Python, etc.), constituye la capa intermedia (lógica de negocios). Un banco de datos es el tercer nivel (almacenamiento). El navegador envía solicitudes a la capa intermedia, que ejecuta los servicios haciendo consultas y actualizaciones en el banco de datos, generando en consecuencia la respuesta, bajo la forma de una interfaz de usuario.

La difusión de las aplicaciones Web derivó en la necesidad de intercomunicación entre aplicaciones, de manera tal de hacer posible el intercambio de datos y servicios, lo que dio lugar al surgimiento de la idea de los Web Services y Web APIs, como implementaciones del concepto de componentes de software en el entorno Web. Los Web Services ofrecen una forma estándar de interoperación entre diferentes aplicaciones de software. Se trata de sistemas de software proyectados para soportar interacciones computador-computador interoperables a través de una red. Poseen una interfaz descripta en un formato procesable por computador (WSDL). Otros sistemas interactúan con el Web Service, utilizando mensajes descriptos en su interfaz, usando un protocolo específico (SOAP). Las Web APIs tienen una definición menos restrictiva respecto del formato de los datos en la comunicación entre las aplicaciones, y utilizan también otro protocolo de comunicación (REST).

La idea general de ambas tecnologías es la de permitir que las aplicaciones puedan ofrecer servicios que puedan ser consumidos por otras aplicaciones, lo cual resulta en otra capa dentro del entorno Web. En esa capa existe un tráfico de datos siendo intercambiados entre aplicaciones, que pueden manipularse, combinarse y transformarse, dependiendo de las tareas ofrecidas por cada aplicación Web, para entonces sí, ser presentadas a los usuarios.

Como forma de ilustrar la idea de componentes, podemos tomar el ejemplo de una tienda que realiza ventas vía Internet y que necesita informarle al usuario cuál es el valor del flete de los productos adquiridos. En general, el flete es realizado por una empresa tercerizada. Para que el portal de ventas pueda informar ese valor, la aplicación de la página debe obtener los datos a partir de un servicio (Web Service o Web API) ofrecido por la empresa que efectuará la entrega, y exhibir el valor en la interfaz presentada al usuario. Ese tráfico de datos, entre la aplicación de la página de ventas y el servicio Web ofrecido por la empresa de fletes es invisible para el comprador de los productos. El comprador sólo percibe la comunicación entre él y el propio portal de ventas.

Uno de los problemas que se presentan en esta arquitectura de componentes Web es la de que el significado y el formato de los datos no siguen ningún estándar, quedando especificados por cada uno de los servicios de la manera en que éstos la consideren más conveniente. De esta manera, una aplicación que pretenda combinar datos de diversos componentes, necesita conocer cada una de las definiciones y, en caso de querer efectuar alguna integración de los datos, saber cómo interpretar las diferentes definiciones, de modo tal de identificar las diferencias y semejanzas entre los diversos datos devueltos por los múltiples componentes. Para cada nuevo servicio que se quiera utilizar, es necesario entender su semántica y la forma en la cual está descripta. La interoperabilidad semántica de diferentes servicios y sus datos tiene que realizarse de forma manual. El portal del periódico The New York Times ofrece un conjunto de más de 10 APIs [5] diferentes para acceder a sus datos, cada una con su propia especificación y formato. El sitio ProgrammableWeb [6] website [6] contiene un catálogo con millares de aplicaciones disponibles, con especificaciones de lo más variadas y heterogéneas, e ilustra con claridad la diversidad existente en el universo de la Web Programable.

2.3 Web de Datos

Las páginas de la Web exhibidas por un navegador contienen un conjunto de informaciones que son sólo consumidas por las personas. Se trata de textos, fotos, videos, etc., dispuestos en la página de modo tal de que una persona pueda extraer un significado a partir de esa información. Estas informaciones agrupan, normalmente, un conjunto de datos que tienen alguna relación entre sí y que, por alguna razón, tiene sentido el hecho de presentarlas en una única página, en un documento único. A partir de la requisición de una URL, el servidor Web identifica cuáles datos serán devueltos al navegador.

En una presentación de Tim Berners-Lee [7] en el “Open, Linked Data for a Global Community”, él mismo utiliza un paquete de patatas fritas como ejemplo de la diversidad informativa que existe en el embalaje de un producto: factores nutricionales, composición química, sellos de calidad, identificación por código de barras, modos de contactarse con el fabricante, etc. Esas informaciones están expresadas en vocabularios específicos que necesitan de un conocimiento previo para su comprensión. Por ejemplo, se debe saber leer una tabla de factores nutricionales, entender que la tabla se refiere a una porción predefinida y que lo listado corresponde a porcentajes relativos a las necesidades ideales diarias para el consumo humano. En ese embalaje existen diversos datos diferentes, agrupados en un único documento. En realidad, puede existir mucha más información disponible en referencia a ese producto, pero por una decisión que involucra a diversos criterios, como espacio disponible en el embalaje, el grado de importancia de la información, etc., sólo una parte de la información es la que se exhibe. Muchas veces, inclusive, existe una dirección de Web impresa en los embalajes, que permite acceder a una página en la cual pueden obtenerse informaciones adicionales.

Considerando un ejemplo de la Web, en la página de una tienda de ventas pueden mostrarse informaciones sobre diferentes productos, la dirección física de la tienda, un teléfono de atención al cliente, etc. Todos esos datos están expuestos en un único documento que es presentado al usuario, utilizando textos y recursos gráficos (colores, tipografías y tamaños de letra, etc.), en una disposición espacial dentro de la página, con el objeto de comunicar toda esa información al usuario. Se trata de un proceso de comunicación. Un proceso que entiende que el receptor de ese mensaje es un ser humano. Como vimos anteriormente, el modelo inicial de la Web entiende a esa red como un conjunto de documentos intervinculados en una estructura de hipertexto. Cuando se realiza una requisición a un servidor Web, éste identifica cuál es el conjunto de datos que deberán agruparse en una determinada página. El acceso directo a los datos, de forma individual, no está permitido.

¿Y si en vez de considerar a esos documentos como bloques estancos de datos, pensáramos en una Web capaz de permitir el acceso individual a todos los datos agrupados en esas páginas y, además de esa Web de Documentos, pudiéramos tener accesos a una Web de Datos, en la cual cada uno de los nodos de la Web ya no fuese necesariamente un documento, sino un determinado dato específico, un recurso en particular? De esa manera, tendríamos acceso a una capa de granularidad más fina de la Web, y diferentes desarrolladores podrían crear aplicaciones que agrupasen esos datos de diferentes maneras. En el caso del ejemplo del paquete de patatas fritas, una aplicación determinada podría listar otro conjunto de datos relativos al producto de acuerdo con una perspectiva diferenciada, de acuerdo con otros criterios; por ejemplo, respecto de lo adecuado del consumo de las patatas fritas por parte de personas con hipertensión.

Los motores de búsqueda son algunas de las aplicaciones más populares en la Web. Google se transformó en una de las mayores empresas del planeta, a partir de la necesidad de conectar los datos publicados con los posibles consumidores de tales datos: un intermediario en el proceso de comunicación. Para ejecutar ese trabajo, las páginas de la Web son barridas y analizadas por robots, para que Google pueda montar un banco de datos que consiga responder a la búsqueda ejecutada por una persona, de la forma más precisa posible. Los motores de búsqueda poseen una comprensión limitada de lo que está siendo discutido en las páginas que exhibe. Considerando que existen diversos datos distribuidos en cada página, surge la necesidad de generar algoritmos que intenten extraer esos datos a partir de una información en formato comprensible para seres humanos. ¿Cómo entender entonces todos esos datos sin una indicación específica que pueda ser entendida por computadores? ¿Cómo puede darse formato a las informaciones y hacer que los computadores entiendan lo expuesto en una página Web? ¿Cómo crear nuevas formas de distribución para esos datos?

Las secciones siguientes se adentran en las nociones de semántica y metadatos, imprescindibles para alcanzar la idea de una Web de Datos que pueda ser entendida tanto por seres humanos como por computadores.

2.4 Semántica

En la presente guía estamos interesados en esclarecer la idea de definir una capa semántica para el modelo inicial de la Web de Documentos. Como vimos anteriormente, la idea inicial de la Web fue la de servir como una forma de navegación entre documentos dispuestos en una estructura de hipertexto. Estos documentos son exhibidos a los usuarios por aplicaciones que interpretan el lenguaje HTML. El contenido de las páginas es visto por los computadores de una manera expresamente sintáctica. La interpretación de la información propiamente dicha es realizada por las personas que acceden a las páginas. ¿Cuál es la semántica de las informaciones expresadas? ¿Cuál es el significado de esas informaciones?

La semántica, según la lingüística, es el estudio del significado utilizado para entender la expresión humana a través del lenguaje. Nosotros conseguimos entender el significado, por ejemplo, de esta frase, entendiendo el significado de cada una de las palabras, y las relaciones entre dichas palabras dentro de la frase. Entendemos, también, los signos de puntuación, como la coma, el punto, etc., así como su función en el marco del texto. Además de eso, podemos entender imágenes y códigos de colores, y una diversidad de signos codificados de diferentes modos. Una información puede, por ejemplo, exhibirse en caracteres grandes y en color rojo, para indicar la necesidad de prestar atención al texto expuesto. Todo eso depende de diversos factores, que incluyen también la cultura de la persona receptora de la información. El rojo, por caso, tiene significados diferentes en las culturas asiáticas.

Los modelos de comunicación son modelos conceptuales, utilizados para explicar el proceso de comunicación humana (figura 2.1). El primer modelo importante en la comunicación fue concebido en 1949 por Claude Shannon y Warren Weaver, de los Laboratorios Bell. La comunicación es el proceso de transferencia de informaciones de una parte (emisor) a otra (receptor). El modelo inicial de Shannon y Weaver constaba de tres partes principales: emisor, canal y receptor. En un modelo simple (por ejemplo, un mensaje en lenguaje natural), la información es enviada de alguna forma (como la lengua hablada) desde un emisor/remitente/codificador hacia un receptor/destinatario/decodificador, a través de un canal. Esa concepción de comunicación común la considera sólo como un medio de enviar y recibir informaciones.

fig2_1_comunicacao_entre_pessoas.svg
Figura 2.1 – Comunicação entre pessoas 1

Las figuras 2.2 y 2.3 ilustran el modo en que una información embutida en un modelo mental de una persona es codificada, para después ser transmitida a través de un canal para ser luego decodificada y mapeada de acuerdo al modelo mental de la otra persona.

En esta guía estamos haciendo una introducción a la semántica de los computadores que acceden a la información. ¿De qué manera una máquina puede interpretar el contenido de una página Web? ¿Cómo debe procederse para codificar una información haciendo el correcto mapeo entre el significado pretendido y el significado entendido?

fig2_2_modelo_mental.png
Figura 2.2 – Modelo mental 2
fig2_3_a_transmissao_do_significado.png
Figura 2.3 - La transmisión del significado

Tomemos como ejemplo a las páginas de comparación de precios. Al mismo tiempo que surgieron los sitios de ventas en la Web, que anunciaban un conjunto de productos en sus páginas, con información que incluía la descripción del producto, imágenes, precio, etc., surgió la idea de montar otros sitios que pudieran ofrecerle al usuario la comparación de los precios de un mismo producto ofrecido en diferentes sitios de ventas. Estas páginas de comparación de precios pueden considerarse los primero ejemplos de Web Semántica, aunque los primeros sistemas desarrollados en tales páginas hacían uso de softwares específicos (scrapers) para extraer información estructurada sobre los productos a partir de páginas de la Web. La información se extrae a partir de la identificación de estándares sintácticos dentro de las páginas HTML.

El HTML es un lenguaje de marcado de texto que define, básicamente, la estructura del mismo. En forma conjunta con otro lenguaje (CSS), que define el estilo del texto, el navegador puede combinar la estructura y el estilo, y exhibe así la información para las personas. Para que un scraper entienda el significado de un texto, es necesario buscar estándares que, de alguna forma, determinen un significado. Veamos el ejemplo de un sitio de compras brasileño, en el cual podemos identificar un estándar <tipo-precio>: una cadena de caracteres con el formato "xxx.xx" al lado de los caracteres R$ (el signo monetario correspondiente al Real, la moneda nacional brasileña). No existe dentro del lenguaje HTML un tag que indique explícitamente que dicha cadena de caracteres sea un precio. En un ejemplo un poco más sofisticado, podemos encontrarnos con el siguiente texto: "Google Chromecast HDMI Streaming, de R$ 249,00, sólo por R$ 192,72", junto a una imagen. Podemos escribir un código que busque las palabras "De" y "Sólo por", cercanas a números que puedan identificarse con el estándar de <tipo-precio>, y entender que se trata de una promoción del producto. Definimos de esa manera un nuevo estándar <tipo-promoción>. Y así sucesivamente. Es simple darse cuenta de que los cambios en la disposición y el agrupamiento de la información pueden determinar una reprogramación del scraper. Mantener en funcionamiento un scraper requiere de mucho tiempo de programación. Se trata de un sistema bastante inestable, al que habrá que reprogramar cada vez que una tienda online cambie la estructura de la información de los productos que ofrece.

Como ya vimos en la sección 2.3 (Web de Datos), la idea es que nos sea posible identificar de manera individual y legible por computador, cada uno de los datos agrupados en las páginas Web. Para ello, es necesario que incluyamos información extra sobre tales datos dentro del código HTML. Información que será consumida por los computadores. Esa información "acerca" de los datos recibe el nombre de "metadatos".

2.5 Metadatos

Los metadatos son datos acerca de los datos. Proveen información adicional sobre los datos, para ayudar a los desarrolladores de aplicaciones y los usuarios finales a entender mejor el significado de los datos publicados, su contenido, su estructura. Los metadatos también son utilizados para aclarar otras cuestiones relativas al conjunto de datos, como por ejemplo, la licencia de uso, la empresa/organización que generó los datos, la calidad de los datos, su origen, el modo de acceder a ellos, la frecuencia de actualización del conjunto de informaciones, etc. El objetivo de los metadatos es el de ayudar en el proceso de comunicación entre quienes publican datos y quienes los consumen, para que estos últimos consigan entender todos los asuntos pertinentes a su utilización.

Los metadatos pueden utilizarse también como auxiliares de ciertas tareas, como por ejemplo el descubrimiento y la reutilización del conjunto de datos, y pueden ser atribuidos de acuerdo a diferentes granularidades, que van desde una única propiedad de un recurso (una columna de una tabla) a un conjunto de datos completo, o todos los conjuntos de datos de una determinada empresa/organización, Un ejemplo bien simple de metadatos, de uso bastante corriente, son los nombres de las columnas de una tabla, colocadas en la primera línea de un archivo en formato CSV. La función de esos metadatos es la de permitir que un lector de los datos de ese archivo CSV entienda el significado de cada uno de los campos, de los datos y de cada línea.

Hasta el día de hoy, la Web se desarrolló más rápidamente como un medio de transmisión de documentos destinados a las personas, y no de datos e información que puedan ser procesados automáticamente. Los metadatos deben hacerse disponibles en formas legibles, tanto para los seres humanos como para los computadores. Es importante ofrecer metadatos en ambos formatos, con el fin de alcanzar tanto a los usuarios como a las aplicaciones. En el caso de metadatos legibles por computador, corresponde incentivar el uso de vocabularios de referencia, como modo de reforzar una semántica común.

En el ejemplo de la tabla CSV, es posible percibir la dificultad que puede producir el hecho de no aplicar un vocabulario común de referencia para describir un metadato. Cada organización, cada persona, puede utilizar terminología diferente para designar el título de las columnas de una tabla, que puede ser entendido dentro de una determinada empresa, pero a la vez, puede presentar ambigüedad para personas diferentes pertenecientes a empresas diferentes. Algunos de los vocabularios de referencia de uso más popular están referidos en el capítulo 6. Por ejemplo, los datos podrían describir su origen utilizando el PROV-O, una recomendación de W3C que provee un conjunto de clases, propiedades y restricciones que pueden utilizarse para representar e intercambiar información generada en sistemas diferentes y bajo distintos contextos.

Los metadatos pueden pertenecer a diferentes tipos. Esos tipos pueden ser clasificados en diferentes taxonomías, agrupados de acuerdo a diferentes criterios. Por ejemplo, una taxonomía específica podría definir a los metadatos según sus características descriptivas, estructurales y administrativas. Los metadatos descriptivos sirven para identificar un conjunto de datos; los metadatos estructurales sirven para entender el formato en que es distribuido el conjunto de datos, y los metadatos administrativos proveen información sobre versión, frecuencia de actualización, etc. Otra taxonomía podría definir tipos de metadatos con un esquema que considerase las tareas para las cuales los metadatos son utilizados, por ejemplo, el descubrimiento y reutilización de datos.

Los metadatos pueden embutirse en páginas Web, mezclados (dentro del código HTML) con la información a ser presentada a los usuarios. De esa manera, parte del código HTML tiene por fin su uso por parte de los usuarios humanos, y otra parte está dirigida a la comprensión de los computadores. La sección 4.5 habla sobre tecnologías utilizadas para embutir metadatos en páginas Web. Además, los metadatos pueden almacenarse en catálogos que mantienen información sobre datos publicados en la Web. Los metadatos pueden también ser consumidos por implementaciones que utilizan las tecnologías vinculadas con la Web Semántica y con los Datos Conectados, según se explica en los capítulos 4 y 5.

Una de las primeras maneras de incluir metadatos en una página Web fue a través de la utilización del tag <meta> del lenguaje HTML. Ese tag posee dos atributos, de acuerdo a los cuales es posible definir un nombre y un contenido. Uno de los primero usos del tag <meta> fue como forma de comunicación entre quienes publican las páginas y los robots de los motores de búsqueda que las barren. Esos robots leen las páginas con el objeto de generar un índice que sirva de base a las respuestas de las requisiciones de búsqueda de los usuarios. Una de las tantas informaciones que el tag <meta> puede comunicarles a los robots es el hecho de si una página debe o no ser incluida en los índices de los motores de búsqueda, De esa manera, es posible que un publicador pueda informar a los robots que no desea aparecer en los resultados de búsquedas:

<meta name="robots" content="noindex" />

Se le dio otro uso muy intenso al tag <meta> para que los motores de búsqueda tuvieran una manera de indexar las páginas de acuerdo con un conjunto de palabras clave definidas por el desarrollador. Por ejemplo:

<meta name="keywords" content="guide, semantic web" />

Como seres humanos que entienden algo de inglés, podemos intuir que existe un conjunto de palabras clave asociadas a la página en la cual ese tag fue incluido. De todos modos, la semántica del tag <meta> no define ninguna interpretación específica para los atributos "name" y "content". Esa información es interpretada por las aplicaciones que leen las páginas, de acuerdo a una semántica que se estableció en base al uso. En el caso del ejemplo, un tag <meta> con 'name="keywords"' es interpretado por los robots de los motores de búsqueda indicando que el campo "content" listará una serie de palabras clave que estarán asociadas con el contenido de la página. Para tales convenciones, como la de que "keywords" significa un conjunto de palabras clave, es necesario que sean utilizados vocabularios de referencia, cuyo significado sea comprendido por quien publica la página, de manera tal que la aplicación que la consume pueda conseguir obtener un significado entendido equivalente al significado pretendido.

Esa forma de incluir metadatos posee una expresividad bastante limitada, pero se hizo sumamente extensiva a partir de la creación de estándares para la definición de metadatos, y por un conjunto de vocabularios de referencia, explicados en las próximas secciones de la presente guía.