¿Qué es la Web Semántica?
Disclaimer: Este artículo lo escribí en SushiKnights hace bastante tiempo, sin embargo, me parece que, así como la recursividad, para entender la Web Semántica, hay que saber que es la Web Semántica
.
Hace unos días publiqué un post sobre una prueba de concepto de un browser para la web semántica. Sin embargo, se me olvidó explicar qué es la web semántica
. Para ejemplificar un poco imaginen que quiero buscar información sobre el ex-presidente Ricardo Lagos en google. Lo natural sería buscar “Lagos Chile”, sin embargo ocurre que no siempre se obtienen los resultados deseados.
Siguiendo con el ejemplo, podría mejorar mucho la búsqueda si pusiera “Ricardo Lagos Chile”. Pero información de quien me entrega? Ricardo Lagos Escobar? Lagos Weber? O mi vecino Ricardo Lagos que tuvo la mala suerte de llamarse igual que dos personajes famosos?
El problema aquí es que no está clara la semántica de la búsqueda ya que, independiente del algoritmo de indexación, siempre se realiza un pattern matching, es decir, se buscan las palabras independiente del significado de estas.
La gente de la W3c y en particular, Sir Tim Berner-Lee pensaron en la siguiente solucion: Agregar información acerca de la información, es decir, metadatos. Es decir, poder especificar que cuando hablo de lagos chile, la palabra “lagos” es un apellido de una persona que fue presidente de un pais llamado Chile y no una gran masa de agua rodeada por tierra.
¿Y cómo se hace eso? Usando algun lenguaje, como RDF. Primero, necesitamos definir un identificador disponible en la Web para identificar la persona/cosa/etc sobre la que queremos agregarle información. Esto es importante, para poder identificar (volviendo al ejemplo) a Lagos (presidente) de lagos(agua). Por ejemplo, mi identificador es
http://www.dcc.uchile.cl/~agraves/foaf.rdf#me.
Ahora podemos agregar metadatos con respecto a mi identificador.
¿Y cómo se hace eso? Fácil. Cuando queremos decir algo sobre un recurso(recordar que un recurso puede ser una persona, un modelo de auto, o el edificio de la esquina) decimos que ese algo tiene cierta propiedad, Por ejemplo, para decir que “Alvaro Graves tiene una página web que es http://graves.cl”, tenemos que especificar un identificador para la relación “tiene una página web” y otro para “la página http://graves.cl”.
Existen hace tiempo identificadores de relaciones que mucha gente usa, como por ejemplo, “tiene una página ….”, “su nombre es ….” o “es de el color ….”. En particular, para nuestro ejemplo la relación “tiene una página web” se define de manera estándar por http://xmlns.com/foaf/0.1/homepage. Por lo tanto, para poder expresar la información “Alvaro Graves tiene una página web que es http://graves.cl” esta se puede expresar como
<http://www.dcc.uchile.cl/~agraves/foaf.rdf#me> <http://xmlns.com/foaf/0.1/homepage> <http://graves.cl>
Ok, muy interesante, pero para qué sirve todo esto? Al tener mucha información organizada de este modo se va creando un grafo donde cada identificador es un nodo. De esta forma es posible crear programas que puedan ir recorriendo este grafo y buscando (semi)automaticamente información que sería practicamente imposible de encontrar via google. Por ejemplo “Quiero una lista de todas los restorantes donde vendan pizzas que estén en santiago, ordenados por precio de la pizza”. En este caso, un programa, que llamaremos SuperGoogle, buscará todos un identificador de algún restorán, si éste tiene como propiedades “está ubicado en santiago” y “ofrecemos pizza”. Luego buscará en la propiedad “tiene lista de precios” del restorán el precio de la pizza y finalmente los ordenará de acuerdo a esto.
Para llegar a algo así todavía falta mucho, pero ya se están dando los pasos necesarios. La idea final es poder utilizar la Web como algo parecido a una base de datos donde la gente pueda realizar consultas mucho más complejas que las actuales. Esperemos que en unos años más, las búsquedas como las conocemos ahora sólo queden como un bonito recuerdo de infancia
Más información
Comentarios»
No comments yet — be the first.