El impredecible futuro de la Web semántica

Ramón Saquete

Escrito por Ramón Saquete

La Web semántica, también llamada Web 3.0 o Linked Data, es una revolución tecnológica que está cambiando la forma de entender la Web y obligando a que todo evolucione: los buscadores, los navegadores, el desarrollo y el SEO.
La Web semántica se basa, en esencia, en un nuevo tipo de enlace que sirve para conectar datos o conceptos, en lugar de documentos, como ocurre con los enlaces actuales. Estos nuevos enlaces, además, indican qué tipo de relación existe entre los conceptos, de forma que podemos saber que información vamos a encontrar antes de navegar por el enlace.

Si dibujamos los conceptos como nodos y las relaciones como arcos entre éstos tendremos una estructura de datos que los ingenieros informáticos conocemos bastante bien, el grafo.
Tim Berners Lee, director del W3C e inventor de la Web, pretende que este grafo pueda ser consultado como si la Web se tratara de una base de datos global, sobre la que se puedan aplicar algoritmos para adquirir nuevos conocimientos y sirva de base para crear inteligencias artificiales capaces de entender el lenguaje humano. Esta idea todavía es utópica. Las tecnologías Linked Data tienen muchos problemas que resolver antes de llegar a cumplir ese y otros objetivos como, por ejemplo, que la tecnología sea fácil de usar para todo el mundo. En el siguiente enlace de mi blog personal hablo en profundidad sobre los problemas de la Web semántica.

Sin embargo, a pesar de estos problemas, la Web semántica ha tenido bastante éxito. En el año 2007 surgió, en el W3C, el proyecto Linked Open Data, con el fin de divulgar la Web semántica. En su web han ido publicando cada año un grafo que muestra los enlaces creados entre todas las Webs semánticas. Si observamos la evolución, se puede apreciar como el ritmo de crecimiento ha sido exponencial. En el centro del grafo tenemos a la DBpedia, la versión semántica de la Wikipedia y muy cerca Freebase que es actualmente propiedad de Google y ha sido la base para su Knowledge graph. Este «grafo del conocimiento» sirve para complementar las búsquedas con información semántica.

Nube Linked Open Data

Los nuevos enlaces de la web 3.0 se llaman enlaces RDF. El RDF (Resource Definition Framework) es el lenguaje en el que se escriben estos enlaces y puede serializarse o escribirse en varios formatos (XML, N3 y Turtle) o empotrarse dentro de un HTML como RDFa (RDF con atributos). Por si esto no os parece suficientemente complejo, además hay detractores del RDF, como Google, que prefiere los Microdatos de HTML5 y otros que abogan por el formato Hypernotation. Como ya he dicho, este es uno de los grandes problemas que tiene actualmente la Web semántica, hay demasiadas tecnologías y son demasiado complejas para el usuario medio. Por ejemplo, si un ingeniero le trata de explicar a un usuario que los Microdatos sólo permiten crear estructuras de tipo árbol y que esto es un tipo de grafo más restrictivo, seguramente el usuario desistirá en intentar entender la tecnología. Por lo tanto, para crear los nuevos enlaces RDF, los usuarios necesitarán herramientas que les abstraigan la complejidad de esta tarea.
No obstante, para su mejor comprensión, voy a tratar de explicar, con casos prácticos, cómo se crean estos enlaces RDF. Partamos de un ejemplo simple:

<rdf:RDF>

<rdf:Description rdf:about=»http://dbpedia.org/resource/Way_of_the_Dragon»>

<dbpprop:starring rdf:resource=»http://dbpedia.org/resource/Chuck_Norris»/>

</rdf:Description>

</rdf:RDF>

Enlace RDF

Chuck Norris no necesita entender RDF para saber usarloLos enlaces RDF son tripletas formadas obviamente por tres elementos: sujeto, predicado y objeto. En el ejemplo, la película «Way of the Dragon» es el sujeto que vamos a describir y que aparece en el atributo «about» del elemento rdf:Description. El predicado es dbpprop:starring que indica el significado de la relación, es decir, que actúa en esa película y el objeto que relaciona aparece en su atributo rdf:resource que es Chuck Norris. De esta forma tenemos dos conceptos relacionados semánticamente e identificados unívocamente mediante URIs.

Es importante tener en cuenta que los URIs identifican conceptos. Por ejemplo, el URI http://dbpedia.org/resource/Chuck_Norris identifica al propio Chuck Norris, no al documento que contiene información sobre él.

Además los URIs deben ser desreferenciables, lo que quiere decir que si el URI hace referencia a Chuck Norris al desreferenciarla escribiéndola en el navegador, debería aparecer aquello a lo que hace referencia, es decir, que debería salir el propio Chuck de nuestro monitor pegando una patada giratoria. Como eso no es posible, una redirección 303 realiza una negociación de contenido reenviándonos a la página http://dbpedia.org/page/Chuck_Norris que contiene un documento HTML con información sobre él. Si hubiésemos accedido con una aplicación móvil o hubiese accedido una araña de un buscador semántico, la redirección 303 nos habría mandado a esta otra página http://dbpedia.org/data/Chuck_Norris que contiene un documento RDF con un montón de tripletas que hacen referencia a Chuck Norris. Veamos un extracto de este último documento:

<rdf:RDF>
<rdf:Description rdf:about="http://dbpedia.org/resource/Chuck_Norris">
<rdf:type rdf:resource="http://dbpedia.org/ontology/Person"/>
<rdf:type rdf:resource="http://umbel.org/umbel/rc/Actor"/>
<owl:sameAs rdf:resource="http://es.dbpedia.org/resource/Chuck_Norris"/>
<rdfs:comment xml:lang="en"> Carlos Ray "Chuck" Norris is an American martial artist and actor.</rdfs:comment>
<foaf:homepage rdf:resource="http://www.chucknorris.com/"/>
</rdf:RDF>

Como podemos ver, cuando se abre un bloque rdf:Description para hablar de un sujeto, podemos incluir en él varios predicados. En el ejemplo tenemos dos predicados rdf:type que indican el tipo datos. En este caso, Chuck es una persona y un actor, lo que, para los seres humanos puede parecer obvio pero, para una inteligencia artificial, es de mucha ayuda. El predicado owl:sameAs sirve para indicar otro URI distinto que identifica al mismo sujeto y que puede hablar de lo mismo desde otro punto de vista o, como en este caso, en otro idioma. A continuación, el predicado rdfs:comment, que no enlaza con otro concepto, sino que se relaciona directamente con un valor de tipo texto y, por lo tanto, no hay enlace. Por último, encontramos el URL de su página personal.


Como se puede observar en el ejemplo, los enlaces RDF pueden ser de muchos tipos distintos. Pueden ser enlaces que entren, que salgan, recíprocos, que definan sujetos, que definan predicados, o que indiquen que un sujeto, predicado u objeto es igual al definido en otro URI.
El URI como identificador de un concepto de mundo real, es una de las ideas más difíciles de entender de la Web semántica. De hecho, muchos de los enlaces RDF que podemos encontrar, no la aplican correctamente. Para desreferenciar un URI de este tipo, existen dos técnicas: las redirecciones 303 y los fragmentos. Si un URI aparece con un fragmento (la parte con #), está haciendo referencia al concepto y si no lo lleva, al documento. En el documento URIs chulos para la web semántica, el W3C intenta explicar estás dos técnicas y la combinación de ambas de forma amigable.
Pero lo que realmente es difícil de entender, hasta el punto de necesitar meses o años de estudio, si no se ha estudiado antes ningún otro modelo de datos, son los vocabularios. Estos se crean con los meta lenguajes SKOS, RDFS y OWL que sirven para definir tesauros y ontologías. Los vocabularios son una forma de establecer un formato global, lo que es básico para que la información sea interoperable. De esta forma no es necesaria una API para que una Web pueda compartir información que otra Web quiera incorporar a su sitio, sino que, al tener un formato común, global y accesible, la información puede ser compartida minimizando el esfuerzo de desarrollo, ya que no es necesario implementar y aprender a usar la API. Sin embargo, la complejidad que aportan los vocabularios a la web semántica es enorme. Si queremos publicar un enlace RDF debemos buscar un vocabulario que encaje con el significado que queremos darle. Si no sirviera ninguno de los vocabularios que están actualmente definidos, tendremos que inventar uno nosotros, como, por ejemplo, los que han implementado las webs BBC Music, BBC Programmes y el New York Times.


Un detalle importante de mención y del que todavía no hemos hablado, son las declaraciones de los espacios de nombres de los vocabularios. El espacio de nombres es lo que, en cada etiqueta, aparece antes de los dos puntos, y sirve para evitar que las definiciones de dos vocabularios se solapen. Por ejemplo, og:image y twitter:image, se llamarían igual si no fuera porque llevan delante el espacio de nombres de los vocabularios Open Graph y Twitter Cards. Los espacios de nombres se pueden declarar al principio del documento con el atributo xmlns (XML name space), o si están muy extendidos, se pueden omitir. Ejemplo:

<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

xmlns:foaf=»http://xmlns.com/foaf/0.1/»>

</rdf:RDF>

En el ejemplo estamos declarando los espacios de nombres rdf, rdfs y foaf.

Una de las formas que disponemos para publicar un archivo RDF es añadiendo a la cabecera de un documento HTML la siguiente línea:

<link rel="alternate" type="application/rdf+xml" href="archivo.rdf" />

Este documento HTML, contendrá la misma información que el archivo RDF.
Otra de las opciones, como ya he comentado, es empotrarlo dentro del mismo HTML en formato RDFa.
Además, utilizando un almacén de datos RDF, podemos ofrecer un SPARQL endpoint. SPARQL (pronunciado esparcle) es un lenguaje de consulta parecido a SQL que permite realizar consultas de lo más dispares, como por ejemplo: dime todas las películas de los actores que han actuado con Chuck Norris.
Actualmente, Google usa las tecnologías semánticas para mostrar snippets enriquecidos e incorporar información a su Knowledge graph. Por otro lado, las redes sociales Facebook y Twitter las usan para que, a la hora de publicar páginas, éstas aparezcan con información personalizada o adicional haciendo uso de los vocabularios Open Graph y Twitter Cards.


De momento, las tecnologías semánticas están siendo utilizadas de forma muy limitada, pero conforme vayan asentándose e imponiéndose unas sobre otras, conforme aparezcan herramientas que abstraigan a los usuarios de la complejidad subyacente de la tecnología y los navegadores y buscadores vayan evolucionando, veremos cada vez más como surgen formas originales de explotar las posibilidades de la Web de los datos.

Ramón Saquete
Autor: Ramón Saquete
Desarrollador web y consultor SEO técnico en la agencia de marketing online Human Level, es experto en WPO e indexabilidad.

Únete a la conversación

1 comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  1. Buen día estimado Ramón

    En estos momentos estoy desarrollando un proyecto de investigación sobre la importancia de la Web 3.0 en la educación. Tengo dos preguntas concretas:

    1. ¿La Web semántica es un elemento que forma parte de la Web 3.0 o son sinónimos?

    2. Desde su punto vista, ¿En qué radica el aporte de la Web 3.0 a la educación en general?

    Me despido esperando una pronta respuesta

    Lic. David Vera