2010/04/19

Poniendo en contexto la web semántica o 3.0



Hola, soy Ignacio y soy una persona.

Esa frase, que para la mayoría de los seres humanos es perfectamente comprensible, para un computador y para la web pre 3.0 no tiene significado, es simplemente un conjunto de caracteres que perfectamente podrían indicar una dirección postal, la naturaleza de un plato de comida o un insulto para el que lee.

Los humanos podemos interpretar una frase como esa porque tenemos una red neural que contiene una descripción de un lenguaje en común, sin necesidad de que el mensaje haga referencia explícita a un diccionario donde se explica ese lenguaje.

La web pre 3.0 no es tan "inteligente". O más bien, los computadores, capaces de acceder a la web y mostrarnos su contenido, no son tan inteligentes como los humanos.

La primera etapa de la web: los hipervínculos aportaron cierto significado

Una solución provisoria para que los contenidos de la web tengan más sentido se ha logrado mediante el uso de metadatos y la indexación con algoritmos que reconocen denominaciones de los enlaces y por tanto pueden asociar una etiqueta a un recurso de manera automática. Por ejemplo:

<a href="en.wikipedia.org/wiki/Albert_Einstein">Información sobre Albert Einstein</a>

Esa declaración, que debe estar presente en más de un sitio Web que Google ha indexado, permitirá que al buscar "Información sobre Albert Einstein" en Google el sistema nos pueda entregar como resultado la dirección de su entrada en Wikipedia. Ahi observamos la relación entre una descripción o título y una dirección de la web.

Dotar a los textos de significados precisos permite nuevas aplicaciones

La Web semántica o 3.0 es el resultado de implementar en Web una sintaxis donde relaciones más granulares se pueden definir, para que el texto contenido en páginas consista no sólo en datos, también significados que tanto computadores como personas puedan usar. De esa manera, si la información contenida en la página de Wikipedia sobre Einstein hubiera etiquetado adecuadamente la información, una aplicación Web sensible a la sintaxis semántica nos podría contestar preguntas más específicas como "¿en qué fecha nació Albert Einstein?" o "¿Quiénes influenciaron a Albert Einstein?".

Esto es importante no sencillamente para las búsquedas. En la web semántica, un sitio podría decir "soy un banco y guardo tu dinero", otro podría declarar "soy la compañía telefónica" y eso permitirá que le digas a tu computador: "usa el dinero del banco para pagar la cuenta telefónica".

Como se puede ver, es un cambio cualitativo en las posibilidades de la Web, y por lo mismo podríamos hablar en este caso de una real nueva versión de la Web. Sin embargo como el término "web 2.0" ya se ha adoptado incorrectamente para masificación social de la Web, Tim Berners-Lee recomienda que a la Web semántica le llamemos "Web 3.0".

Anatomía de la Web 3.0

Como los computadores tras la web del banco y la web de la compañía telefónica no cuentan con redes neurales que entiendan lenguaje natural, tenemos que estandarizar una manera de describir las relaciones, y una manera de hacer eso se llama RDF (Resource Description Framework).

Este dialecto XML consiste en simples declaraciones en la forma de la llamada triple, que siempre es un recurso con una propiedad (predicado) y un objeto. La estructura recuerda a la relación entre sujeto, predicado y objeto en la oración simple. Ejemplo:

Albert Einstein nació el 14 de marzo de 1879

Donde "Albert Einstein" es el sujeto, "nació el" es el predicado o propiedad y "14 de marzo de 1879" es el objeto.

Mediante el uso de RDFa, es posible declarar RDF dentro de documentos XHTML, como en el siguiente ejemplo:


<div about="http://dbpedia.org/resource/Albert_Einstein">
<span property="foaf:name">Albert Einstein</span>
<span property="dbp:dateOfBirth" datatype="xsd:date">1879-03-14</span>
</div>


Como se puede ver, esta declaración depende de términos (los que a veces se denominan vocabularios o taxonomías) que hayan sido definidos previamente: en este ejemplo se observa el úso de los términos foaf:name y dbp:dateOfBirth.

Otra declaración podría establecer otras relaciones, nóteses el uso de dbp:influenced:


<div about="http://dbpedia.org/resource/Baruch_Spinoza" rel="dbp:influenced">
<div about="http://dbpedia.org/resource/Albert_Einstein">
<span property="foaf:name">Albert Einstein</span>
</div>
</div>


Y aquí un ejemplo que establece dos influencias:


<div about="http://dbpedia.org/resource/Baruch_Spinoza">
<div rel="dbp:influenced">
<div typeof="foaf:Person">
<span property="foaf:name">Albert Einstein</span>
<span property="dbp:dateOfBirth" datatype="xsd:date">1879-03-14</span>
</div>
<div typeof="foaf:Person">
<span property="foaf:name">Arthur Schopenhauer</span>
<span property="dbp:dateOfBirth" datatype="xsd:date">1788-02-22</span>
</div>
</div>
</div>


Existen también otras maneras de representar RDF. Y hay otras normas para mapear las declaraciones sobre las relaciones entre las declaraciones y los hechos. Por ejemplo los mapas de tópico son una norma ISO y tienen su propio dialecto del lenguaje XML (XTM). Las ontologías son estructuras que también están utilizando un schema RDF o OWL (Web Ontology Language writable).

Para el desarollador web que quiera abordar la Web semántica, comprender RDF, el uso de RDFa, XTM y OWL será necesario, de manera similar a como el diseñador web tuvo que aprender HTML y luego CSS.

A continuación una linkografía recomendada por la W3C para profundizar: