Você está na página 1de 115
Luis Criado-Fernandez Nosotros, los constructores de la Web Semantica Cimientos: Open Data y Linked Data Copyright © 2013 Luis Criado Fernandez ISBN: 978-84-616-0515-6 Autor: Luis Criado Fernandez Prdlogo: Luis Criado Abad Revisora: Maria del Amor Len Farifia Disefio: Alberto Criado Fernandez Editor: Luis Criado Fernandez Distribucion: Libro tradicional: http://www.amazon.es/ y http://www. lulu.com/ « Formato electronico: plataforma Google Play (para Android) y plataforma Amazon (para kindle) Prologo Este es un libro sorprendente. Un libro que trata de la Web Semantica, y que se inicia poéticamente, pues poesia, todo poesia, es esa declaracién de amor y agradecimiento que hace el autor a su musa, en su dedicatoria llena de sentido vital. Al leer y releer “La Web Semantica”, que ha escrito L.C.F., se apodera de mi ese entusiasmo que el autor trasmite en cada una de las paginas de su obra. Es este un libro corto, pero que dice mucho; pocas paginas, pero rebosantes de contenido; didactico, por ameno y entretenido, mas siempre en su justa medida. Tengo la impresion que el autor expone los temas para invitarnos a pensar, a reflexionar y, casi sin darnos cuenta, advertimos que esta web no es una alternativa, como pensabamos, sino la posible solucién para extraer informacion valida de esos torrentes de datos que contienen las webs, que crecen y crecen, parece que imparables. {Sin limites? La Web 3.0 (2010-2020), que afiade contenido semantico para los sistemas informaticos; la Web 4.0, que algunos situan entre 2020-2030, qué hara, quién se atreve a pronosticar? éSera esta Web el lugar donde se retina, de forma sistematica, todo el conocimiento del mundo; donde los contenidos se distribuyen y se clonan rapidamente, de forma que esos contenidos estarian salvaguardados de cualquier catastrofe? 40, quizas, crear esta “Nueva Biblioteca de Alejandria”, exigira tanto trabajo, tanto tiempo, que una década no sea suficiente? éTendran que volcarse en el empenio todos los paises, pues a toda la humanidad beneficia poder acceder a todos los conocimientos del mundo? Me esta sucediendo, mi amable lector, si todavia estas aqui, que las diversas preguntas que me hago aumentan cada vez mas mi curiosidad, mis ganas de preguntar, de no renunciar a preguntar. Nos esta sucediendo, y ahora hablo en plural, mi paciente lector, que sin darnos cuenta estamos filosofando, “porque —como afirma ese gran fildsofo que es Fernando Sabater- una de las caracteristicas de ponerse en plan filosdfico es no conformarse con la primera explicacién que tienes de un asunto, ni con la segunda, ni siquiera con la tercera o la cuarta”. Y ya que el autor de este libro, nos invita a todos, j6venes y viejos, a pensar y reflexionar, no dudaré en terminar este prdlogo citando a Epicuro: “Nadie por ser joven dude de filosofar ni por ser viejo de filosofar se hastie, pues nadie es joven o viejo para la salud de su alma’. Luis Criado Abad Introduccion Este trabajo se inspira en una larga labor de investigacion y en la constante voluntad por mantenerme lo mas actualizado posible en los avances que se producen en el campo de la Web Semantica. He redactado el libro con entusiasmo, procurando ser didactico, ameno y concreto. Escribir lo que tengo que decir y dejar de escribir en cuanto quede dicho, tal y como aconseja John Shaw Billings y corrobora Santiago Ramon y Cajal en su magnifico libro REGLAS Y CONSEJOS SOBRE INVESTIGACION CIENTIFICA. Pienso, que hoy en dia, el asunto de la Web Seméantica comienza a ser un tema cada vez mas popular y que las técnicas y/o procedimientos necesarios para su construccién comienzan a madurar. Encontramos indicios en la proliferacidn de la red de datos enlazados conocido como “Linked Data” impulsada por el mismisimo Tim Berners- Lee o en los avances en el procesamiento de lenguaje natural (PLN) (que es necesario para construir la Web Semantica) aplicados a lo cotidiano, como por ejemplo; Siri, el asistente virtual que incorpora Apple en su iPhone. Pero tal vez, la causa determinante de la popularidad e interés que despierta hoy la Web Semantica sea la creciente demanda social sobre la apertura de datos (movimiento Open Data). En consecuencia, la Web Semantica (y Linked Data) no sdlo interesa a personas con formacion especializada en este ambito, sino que creo que interesa a un grupo heterogéneo de actores. Puede interesar a empresarios, a administraciones, a__ instituciones académicas, a desarrolladores, a consultores, a bibliotecdlogos, a tecndlogos, e incluso a politicos. He procurado orientar este texto a todos ellos, de manera, que los detalles mas técnicos, necesarios para abordar una implementacién, se situan generalmente al final de cada capitulo. Sin embargo, para evitar confusion al lector, indicaré mediante el acronimo LT (Lectura Técnica) aquellos epigrafes que considero necesarios para profundizar y abordar implementaciones, pero que no se requieren para tener una idea general. De tal forma, que el lector pueda entender el siguiente epigrafe sin necesitar los conocimientos minuciosos del epigrafe saltado. Logicamente, llega un momento que hay que profundizar y necesariamente hay que bucear en cuestiones técnicas ineludibles, como los expuestos en los capitulos 5 y 6. Donde los apartados de tipo LT son mas frecuentes. En el texto se indicaran algunas referencias con enlaces entre corchetes. Cuando se seleccione una referencia, el eBook le posicionara en la seccion de la referencia correspondiente, vuelva a seleccionar la misma referencia para volver al punto del eBook donde estaba anteriormente. Situando al lector Muchas veces he dicho, que la Web Semantica no es una alternativa. En mi opinion, en este momento, es la solucién a una necesidad. Con el tiempo lo sabremos, sera la Web Semantica o no, pero algo hay que hacer, y hoy por hoy, es la Unica posible solucion que se ha dado al problema de la busqueda de informacion en la ingente cantidad de datos que contiene la Web y que continua creciendo imparable, con crisis o sin ella. Para situarnos en esto de la Web semantica, es util la grafica de Nova Spivack, Radar Networks [cap_0,_ref_1] (ver figura). En la figura se aprecia como la Web ha evolucionado y las expectativas de futuro. + " — Web 4.0 ‘Semartics of Information Connections ‘Semantics of Social Connections FES sae et Sach 7 uncom Se puede decir que la Web 1.0, es una web, donde la participacion de los usuarios en su construccion es inexistente, es decir, todo el contenido es mantenido por los webmasters. Pero esta situacién ha cambiado, ahora estamos en la Web 2.0, que es una web donde ademas de webmasters aparecen usuarios que participan en los contenidos de Internet mediante wikis, blogs, foros, redes sociales etc. Antes de continuar, permitame aclarar qué entendemos como “usuarios activos”, a lo largo de este texto, a todos estos actores que participan en los contenidos, incluidos los webmaster. Aclaremos también que no hay Webs puras; es decir, cuando decimos que ahora estamos en Web 2.0, nos referimos a que existen mayoritariamente sitios basados Web 2.0, aunque también continuan existiendo sitios Web 1.0 La Web 3.0 (denominaci6n utilizada por primera vez en el 2006 por Jeffrey Zeldman) es el siguiente paso evolutivo, y afiade, a las capacidades anteriores, entre otras cosas, contenido semantico para los sistemas informaticos. Por lo tanto, el concepto de la Web 3.0 contiene el concepto de Web Semantica, que es el interés de este libro, es decir, la Web Semantica es parte de la Web 3.0. Obsérvese, que segun la grafica estamos en plena construccién de esta tecnologia. En el momento en que escribo este libro, parece que la Web Seméantica comienza a despegar, aunque falta todavia un largo camino por recorrer para que se pueda hablar de una Web Semantica efectiva. Se ha trabajado mucho, se han definido especificaciones que garantizan la interoperabilidad, y sobre esto, se han desarrollado herramientas, repositorios de datos semanticos, interfaces de programacién de aplicaciones (API) y entornos de trabajo, pero todavia queda orientar estos esfuerzos hacia herramientas dirigidas a lo que yo llamo usuarios activos, los usuarios que participan en contenidos. Esto ultimo, es quizas lo mas importante, que los usuarios activos cuenten con herramientas para participar en la construccion del nuevo paradigma Web. El objetivo de este libro es mostrar cémo podemos participar en la creacion de un sitio web semantico con lo que hay hoy, y que ya utilizan buscadores tan importantes como Google. Puntualizamos, que en el ambito de la Web Semantica hay muchas herramientas libres que dan una idea muy claro del estado de esta tecnologia, pero queremos indicar que es razonable pensar que existen soluciones de pago mucho mas avanzadas que lo que encontramos gratuitamente y que no tenemos acceso a evaluar en este libro. Capitulo Qué es la Web Semantica y hacia donde nos lleva. En este capitulo vamos a explicar qué es y cual es la finalidad de la Web Semantica. Analizamos el problema de la ingente cantidad de informacion en la Web actual e identificamos los problemas a los que se enfrenta la implantacion del nuevo paradigma Web. 1.1. Qué es La Web Semantica es una propuesta realizada por el propio inventor del HTML y fundador de la W3C [cap_1,_ref_1] (Consorcio de la World Wide Web), Tim Berners Lee [cap_1, _ref_2], que en septiembre de 1998 publicé dos articulos, “Semantic Web Road Map [cap_1,_ref_3]” y “What the Semantic Web can represent [cap_1,_ref_4]”, en los que se presentaba la idea de Web Semantica como una extension de la Web actual dotada de significado, esto es, un espacio donde la informacion tendria un significado bien definido, de manera que pudiera ser interpretada tanto por personas como por sistemas informaticos. En consecuencia, la Web Semantica tiene como objetivo fundamental que la Web la entiendan personas y también las “maquinas”, aunque sea una minima parte. Como puede apreciarse, el alcance de estas palabras es enorme, pero mientras se logra este objetivo podemos ver la Web Semantica como via para compartir datos. La Web Semantica es también una interesante opcion para integrar aplicaciones. 1.2. Semantica y busquedas aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. . Compartir datos . Enlazar datos . Integrar Sistemas (en base a la Web Semantica) . Entendimiento de algo del contenido PON Cuando se logre un “entendimiento” de parte del contenido, se podran construir agentes inteligentes que contesten preguntas. Esta tecnologia cambiaraé completamente los buscadores actuales y, posiblemente surjan planteamientos, que hoy, no podemos ni imaginar. 1.4. Breve historia del mayor repositorio de informacion de la humanidad. En 1945, el Director de la Oficina de Desarrollo e Investigacion Cientifica (EE.UU.), el Doctor Vannevar Bush [cap 1, ref 6], escribio el articulo "As We May Think" para "The Atlantic Online", en el que expresaba su preocupacion por la ingente cantidad de informacion que existia y estaba siendo generada, y el poco tiempo y los ineficientes sistemas que habia para encontrarla [cap_1, ref_7]. Asi, y basandose en la tecnologia existente en aquel momento, describid un dispositivo personal, al que llam6 "memex". Este dispositivo no llegé a construirse pero es el primer antecedente de solucidn al problema de la gestion a gran escala de la informacién. Vannevar Bush fue un visionario que ya previo diversas formas (mecanicas) para estructurar, organizar y acceder a los textos. El antecedente directo de Internet es ARPANET (Advanced Research Projects Agency Network) que fue creada por encargo del Departamento de Defensa de los Estados Unidos. El primer enlace de ARPANET se establecié el 21 de noviembre de 1969 entre UCLA (University of California, Los Angeles) y Stanford. El 5 de diciembre del mismo ajfio, toda la red inicial estaba lista. En 1972, Ray Tomlinson inventd el correo electrénico. Ese mismo afio, Vinton Gray Cerf y Robert E. Kahn presentaron el protocolo TCP/IP, considerados padres de Internet, junto a Tim Berners Lee y Lawrence G. Roberts, recibieron el Premio Principe de Asturias de Investigacion Cientifica y Técnica en 2002 y, en el 2004 Vinton Cerf y Robert Kahn fueron también galardonados con el premio mas importante en el campo de computacién, el premio Turing. En 1973, aparece el protocolo FTP. Entre 1982 y 1986, Cerf disefid el MCI MAIL, primer servicio comercial de correo electrénico que se conectaria a Internet. La World Wide Web fue inventada en 1989 por Tim Berners Lee, un informatico del CERN (Organizacién Europea de Investigacion Nuclear). Era un sistema de hipertexto para compartir informacion, basado en Internet, concebido originalmente para servir como herramienta de comunicaci6n entre los cientificos nucleares del CERN. A finales de 1990, el primer navegador de la historia, ya tenia forma. Tanto el lenguaje de intercambio (HTML), como el protocolo de red (HTTP) se disefiaron para ser realmente muy simples. A principios de 1993 habia alrededor de 50 servidores. Ya habia un navegador grafico, pero solo funcionaba en una plataforma. Por otro lado los navegadores en modo linea se habian extendido a todas las plataformas, pero su uso era complejo. En Febrero del mismo afio, se lanzo la primera version alfa del navegador "Mosaic for X", desarrollado en el NCSA (National Center for Supercomputing Applications). En Abril el CERN declaraba la WWW como tecnologia de acceso gratuito. En septiembre, ya habia versiones de Mosaic (PC y Macintosh), y mas de 500 servidores. Es el comienzo del crecimiento explosivo de la Web. A finales del 1994 se calcula mas de 10.000 servidores y 10 millones de usuarios. En 1997, mas de 650.000 servidores. En los afios siguientes se tiende a la unificacién y compatibilidad. Todos sabemos que Internet ha tenido un crecimiento espectacular y continua imparable. Internet ha proporcionado nuevas oportunidades economicas, sociales y tecnologicas. Todo tipo de actores: empresas, universidades y personas han visto en la Web una forma de promocionarse, establecer relaciones econdmicas y sociales e intercambiar informacién de todo tipo. Asi, en 2003, la Web es algo cotidiano para una gran parte de los millones de usuarios de Internet que hay en todo el mundo. La Web es también el mayor repositorio de informacion de la humanidad y en él, se puede buscar informacion sobre cualquier tema imaginable. Las herramientas para localizar informacion en la world wide web son los buscadores. La importancia de estas herramientas es tal, que desde hace afios, suelen ser el punto de partida para navegar por la Web y es por este motivo, que la mayoria de los "portales", incluyen alguna utilidad para buscar informacion contenida tanto en sus propios servidores como en Internet. La proliferacidn de estas herramientas ha sido enorme, se han implantado miles de buscadores, y ha habido mucha competencia, pero hace algunos ajfios, se estabilizo un ranking donde Google permanece inmutable ocupando el primer puesto, seguido de Yahoo y/o Microsoft. Esto se puede comprobar en cualquier encuesta de ComScore [cap_1,_ref_8] que es una entidad lider en medici6n en el mundo digital. Pero aunque los buscadores utilizan cada vez mas y mejores algoritmos y servidores, la ingente cantidad de datos esta planteando serios problemas en la calidad de informacion que recibe el usuario. El volumen es enorme y su crecimiento es exponencial. Segtin Netcraft [cap 1, ref 9] (ver figura) en febrero del 2013 el numero de dominios es de mas de 630 millones y el numero de sitios web activos es de 184.916.199 Total Sites Across All Domains logari feb 2013 Hostnames: 630.795.511 Gi ETCRAFT = Active sites: 184.916.199 ule 000 000 ont .0K Bi Hostnames, Wi Active sites 10.000.000 16000; ——__—_—— — PP PP 98 50 Pay BP Ge OO” HST GP” A Ree cB ahh is ® Sh 6 a6? 40 oh at ak ae Lear cae 1.5. La Web, la nueva Biblioteca de Alejandria. En los afios ochenta, un gran cosmdlogo, llamado Carl Sagan, dedico tiempo y esfuerzos a labores de divulgacion cientifica. Fue autor y presentador de una serie documental titulada COSMOS. En esta serie, no solo se aprendia sobre el espacio, también se aprendia sobre las personas sobresalientes que participaron en la gran aventura del conocimiento de la humanidad. Recuerdo, que en uno de los capitulos, Carl hablaba de la Gran Biblioteca de Alejandria. Yo quedé muy impresionado con ello. Recuerdo que lo definié como la mayor maravilla de Alejandria, un lugar que fue en su época el cerebro y la gloria de una de las mayores ciudades del mundo, el primer auténtico instituto de investigacion de la historia. La Biblioteca de Alejandria fue el primer lugar donde los hombres reunieron por primera vez, de modo serio y sistematico, el conocimiento del mundo. Desgraciadamente un incendio acabo con practicamente todos sus volumenes. Pero en el siglo XXI, conceptos como globalizacién y digital, pueden ayudar a que el conocimiento de la humanidad perdure. La Web garantiza esto. Los contenidos se distribuyen y se clonan rapidamente, de forma que si en una maquina en concreto, que comparte informacién en la Web, ocurriese alguna catastrofe, ese contenido estaria salvaguardado casi con toda seguridad. De esta forma, la Web puede ser la nueva Biblioteca de Alejandria, sin la espada de Damocles de la destruccion. Es muy dificil estimar el tamafio de la Web, ya que un sitio web consta de varias paginas web, pero en el 2001, Michael K. Bergman realizo un estudio con el titulo “The Deep Web: Surfacing Hidden Value” [cap_1,_ref_10], en el cual se calculaba que el volumen de paginas web estaticas era del orden de cuatro mil millones, que expresado en términos de libros, es equivalente a entre 14 y 28 millones de libros. Teniendo en cuenta, la grafica de Netcraft y el trabajo de Bergman, se deduce que en el 2001 (por ejemplo en junio, por buscar un valor medio) habia mas de 11 millones de sitios webs activos que podemos asociar a los 4.000 millones de paginas web estaticas que hemos comentado con anterioridad. De manera, que considerando la misma relacion, en febrero del 2013 se podria estimar en mas de 63.000 millones de paginas web estaticas, lo que nos lleva a mas de 221 millones de libros, en el caso mas pesimista. Este volumen de informacion supera a cualquier biblioteca actual. Como dato, una de las bibliotecas consideradas mas grandes del mundo es la biblioteca de Washington conocida como Biblioteca del Congreso (fundada en 1800) que cuenta con 29 millones de libros. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. mediante los lenguajes de etiquetas del ambito de la Web Semantica que hemos enumerado anteriormente. Pero ahora, estamos adquiriendo una vision general, asi que no se preocupe el lector de la lista de estandares. Quédese, eso si, con que este esfuerzo extra, es lo que los investigadores llamamos “anotacion semantica”, tarea tediosa y complicada si se realiza sin ayuda de herramientas software. Y gpor qué este esfuerzo extra?. Sencillo, porque se ha remarcado en este epigrafe, que la Web Semantica no es Inteligencia Artificial. Pero, y si encontramos un termino medio, y si la Web Semantica pudiera utilizar alguna técnica mas de la Inteligencia Artificial, y si pudiéramos entender un poco el texto que contiene la Web, aunque sea poco. Hemos visto que hay millones de paginas web. Para que la Web Semantica sea una realidad, hay que resolver el problema de la “anotacidn semantica”, que es el proceso por el cual damos estructura formal a datos que en origen son desestructurados (desde un punto de vista semantico) y para hacer esto, o bien tenemos estandares suficientemente sencillos para que los usuarios activos lideren el proceso, cosa que cada vez es mas complicada; o bien, tenemos un procedimiento que nos permita transformar un sitio Web en un sitio Web Semantico, automatizando todo lo posible el proceso de “anotacion semantica”, cosa que suena a ciencia ficcién, pues implica “entender” el contenido, aunque sea una pequefia parte. Esto ultimo esta relacionado con una rama de la IA conocida como Procesado de Lenguaje Natural (PLN). Pero como en casi todo, se puede buscar una solucién mixta, tomando las mejores ideas de ambos planteamientos, que veremos detalladamente en su capitulo. 1.7. DAFO de la Web Semantica Para estudiar la problematica de la tecnologia de la Web actual y compararla con la Web Semantica vamos a utilizar una metodologia (muy popular en el campo de la economia) denominada DAFO. Esta metodologia consiste en el estudio de la situacién competitiva de una empresa dentro de su mercado, asi como de las caracteristicas internas de la misma para determinar sus debilidades, amenazas, fortalezas y oportunidades. Realizaremos, por lo tanto, un analisis DAFO adaptado a la tecnologia Web. Esta adaptacién la definimos de la siguiente manera: 1. Debilidades: Son aspectos que limitan o reducen la capacidad de desarrollo efectivo de la tecnologia, constituyen una amenaza para la consolidacion de su implantacion y deben, por tanto, ser controladas y superadas. 2. Fortalezas: Son ventajas competitivas que deben y pueden servir para competir con otras tecnologias alternativas. 3. Amenazas: Son las circunstancias de futuro que pueden impedir o reducir el uso de una tecnologia. 4. Oportunidades: Son las circunstancias de futuro que pueden favorecer el uso de la tecnologia. La gran ventaja que tiene la Web hoy en dia es Io facil que resulta disefiar un sitio web. Sin duda esto es su gran fortaleza. Ademas, en el futuro, la Web sera cada vez mas utilizada porque se ha convertido en el medio mas popular para el acceso a la informacion desde cualquier dispositivo. El problema es que esta popularidad que hoy ya existe esta afectando negativamente a la eficacia de las busquedas: cada vez los buscadores proporcionan mas informacion de peor calidad, es decir, devuelven mas paginas de informacién que no esta buscando el usuario, de manera que éste pierde cada vez mas tiempo en encontrar lo que verdaderamente necesita, o simplemente se conforma con un contenido de peor calidad. En definitiva, se ha alcanzado un punto de inflexion donde las ventajas se convierten en desventajas. Desde mi punto de vista, posiblemente me deje algo, el DAFO de la Web es algo asi: 1. Debilidades: Dependencia del rendimiento en funcion del incremento exponencial del volumen de paginas web 2. Fortalezas: Descentralizado, muy participativo (foros, blogs, wikis, redes sociales, etc..), facilidad para generar paginas web, accesibilidad y actualizacion constante de contenidos 3. Amenazas: El crecimiento exponencial de la Web, implica la pérdida de eficiencia/calidad de los buscadores (mayor dedicacién del usuario para encontrar lo que realmente necesita). 4. Oportunidades: Popularidad Afortunadamente se han desarrollado una serie de estandares que permitiran que las busquedas de informacién se optimicen. En realidad, cuando estos estandares en los que se basa la Web Semantica (RDF, RDFa, OWL y SPARQL) se incorporen a la Web, las busquedas seran mucho mas eficaces. El problema es que estos estandares no son sencillos y requieren personas especializadas. Se identifican, por tanto, dos grupos de problemas en la implantacién de la Web Semantica. Un primer problema, en esta visidn de la Web, es la definicion de ontologias. Toda la Web Semantica se basa en la existencia de ontologias, y estas han de ser miles (seguramente expresados en varios idiomas). Ademaés, deben desarrollarse ontologias nuevas a medida que se necesiten, por lo que constantemente sera necesario afiadir ontologias nuevas en la Web Semantica. Como es inviable que los usuarios utilicen directamente el lenguaje de etiquetado de estos estandares, debido a la dificultad, se requieren herramientas que faciliten esta tarea, esto sin tener en cuenta la dificultad que supone disefar una ontologia. Un segundo problema, probablemente mas importante, ya que condiciona el éxito de la Web Semantica, es el problema de la anotacién semantica (del que hablaremos en profundidad mas adelante), es decir, como los usuarios activos pueden expresar su informacion en los lenguajes de etiquetado de estandares que propone el Consorcio de la W3C. La oportunidad principal para implantar la Web Semantica, es en realidad, la debilidad de la Web actual, pero esto no sera posible si no se logra suavizar la complejidad de la tecnologia para que los usuarios activos puedan adaptarse a ella. Hay que tener muy en cuenta que realizar un proceso de implantacion implica una transformacién de las paginas actuales a paginas semanticas, es decir, se debe realizar un proceso de migracion y de mantenimiento. Seguidamente presentamos un posible DAFO de la Web Semantica: 1. Debilidades: Tecnologia complicada. Se requiere el desarrollo de una gestion eficaz y escalable de enormes cantidades de metadatos. 2. Fortalezas: Descentralizado, mejora importante en la calidad de datos, accesibilidad a los datos en bruto directamente, mejora de eficiencia/calidad de los buscadores (menor dedicacién del usuario para encontrar lo que realmente necesita). 3. Amenazas: Mentalidad de no compartir datos. Escased de procedimientos/herramientas para que los usuarios activos publiquen y mantengan datos con semantica 4. Oportunidades: Crecimiento exponencial de la Web. 1.8. El problema para implantar la Web Semantica El verdadero problema, la mayor amenaza que hoy por hoy tiene la Web Seméantica, es que nadie se preocupa de sus actores fundamentales, es decir, de los usuarios activos. Los responsables de mantener contenidos; paginas webs, blogs, foros, wikis, redes sociales, etc... Plantear que dichos actores deben asumir transformar sus contenidos web en contenidos semanticos sin facilitarle herramientas, es inviable. Sencillamente porque el grado de complejidad que la Web Semaéantica exige es tal, que se requiere herramientas semi-automaticas 0 automaticas que faciliten este proceso de transformacién. Si no se dispone de estas herramientas, es posible que la Web Semantica no pueda ser implantada. Por si esto fuera poco, no basta con transformar un sitio web una vez, sino que hay que mantener esta informacion actualizada mediante una representacién basada en ontologias constantemente. Debemos esforzarnos en proporcionar herramientas suficientes para que dichos actores puedan adaptarse al nuevo paradigma. Estos actores son constructores de la Web Semantica y deben ocuparse, a nuestro juicio, de tres acciones de gran trascendencia para el éxito de la misma: ¢ Identificacion del dominio de conocimiento al que pertenece el contenido, la pagina o sitio web. ¢ Anotacién de contenidos. ¢ Actualizacion y mantenimiento (coherencia de contenido con anotacion semantica) Como hacer esto lo veremos a lo largo de este libro. Cotten Capitulo Disefio y utilizacion de ontologias. Cuando alguien quiere acercarse al mundo de la Web Semantica es ineludible escuchar la palabra “ontologia” asi que este capitulo empieza por aqui. Lo que nos lleva rapidamente a hablar de estandares de la Web Semantica, que francamente, resulta ser un esfuerzo leerlo. Yo diria que es un “ladrillo” 0 mas bien un “muro”. Pero conviene derribar ese “muro” para conocer los fundamentos en los que se sustenta esta tecnologia. La parte final del capitulo es mucho mas amena y practica. Ya que disehamos e implementamos una pequena ontologia de ejemplo. 2.1. Qué es una ontologia en el Ambito de la Web Semantica. Resulta imposible hablar de Web Semantica sin hablar de ontologias. De manera, que conviene definir qué es esto. El significado de esta palabra, segun el diccionario de la Real Academia de la Lengua, parece que no tiene nada que ver con la Web Semantica, ya que se define como “parte de la metafisica que trata del ser en general y de sus propiedades trascendentales”. En filosofia, el concepto de ontologia se refiere a lo que es, qué entidades existen y cuales no. Ademas, la ontologia estudia la manera en que se relacionan las entidades que existen. Finalmente en Inteligencia Artificial (IA), la ontologia se orienta a un ambito concreto, lo que a menudo denominamos dominio de conocimiento. Una ontologia se refiere a un esquema conceptual en relacion con una tematica especifica. Una ontologia define una jerarquizaci6n de conceptos que se caracterizan por propiedades y la relacion entre todas estas entidades. La Web Seméntica se basa en una serie de estandares que permitiran gestionar computacionalmente la informacion de un dominio de conocimiento. Se parte de la idea de definir una ontologia en términos computables con el objetivo de que las paginas web que se puedan asociar a esa ontologia permitan hacer busquedas inteligentes. Entendiendo por busquedas inteligentes aquellas que puedan hacer inferencias con Idgica descriptiva. Para llegar a definir una ontologia es necesario conocer los estandares que permiten realizar esto. De forma, que en este capitulo, se presentan todos los estandares que se deben conocer antes de disefiar y desarrollar una ontologia. Se ha procurado dar una visién general de las caracteristicas que aporta cada estandar. Estos estandares sobre los que se construye la Web Semantica son, como hemos mencionado en el primer capitulo: RDF (habitualmente representado en XML), RDFa (embebido en HTML 5), OWL (Lenguaje Web de Ontologias) y SPARQL (un lenguaje de tipo SQL para tripletas). No se pretende explicar el detalle de dichos estandares, pero es necesario entender que OWL aporta riqueza semantica, que RDF permite la localizacién de cualquier recurso y que XML es una forma de representarlos y que todos estos estandares se pueden expresar también como tripletas. 2.2. ESTANDARES DE REPRESENTACION. En este epigrafe examinamos las caracteristicas que se deben conocer de los estandares para representar datos semanticos, pero lo veremos desde una prepectiva de alto nivel. Es decir, tratamos de dar una vision de para que sirven y cual es el papel en el ambito de la Web Semantica. 2.2.1 XML XML es un lenguaje de etiquetas y sdlo eso. Sin embargo, este sencillo lenguaje ofrece un formato de documento portable y flexible; portable porque se puede utilizar en cualquier plataforma; flexible porque puede representar cualquier tipo de dato que se pueda codificar como texto. Estas etiquetas de las que se compone XML se denominan elementos, cada elemento se compone de una etiqueta de apertura. Por ejemplo, hemos entrecomillado un ejemplo de etiqueta “” que hemos llamado elemento nombre y su cierre se escribira como “”. El contenido entre ambas es el valor del elemento. “Luis"”. Hay otras formas de hacer esto, pero el propdsito de este epigrafe es tener una idea general. Un elemento puede tener también atributos (propiedades) que nos ofrecen informacién sobre el mismo. Por ejemplo, si tenemos una etiqueta del estilo significara que el elemento imagen tiene dos atributos; el atributo path indica el directorio donde esta la imagen, y el atributo fichero nos proporciona el nombre de la imagen. Los documentos XML deben empezar con un prdlogo, en el que se define la version de XML y la codificacion. La reglas sintacticas que definen el propio documento se especifican en un fichero externo, normalmente con un esquema XSD. Este esquema se especifica en el primer elemento del fichero XML. Por ejemplo, si el primer elemento es “", se podria tener algo del estilo siguiente: k2xml version="1.0" e2xml vi encoding="UTF-8"2> on="1.0" encod: ion="1,0" encoding="UTF- //www.w3.0rg/2 eSchemaLocati }1/xMLSchema-instance" \clientes.xsd"> k/clientes> En definitiva, todos los documentos XML, sin excepcién, deben estar bien estructurados. Esto significa cumplir varias reglas: 1. Debe haber un Unico elemento raiz. 2. Toda etiqueta de inicio debe tener una etiqueta de cierre coincidente. 3. Los elementos se pueden anidar, pero no superponer. 4. Los valores de los atributos deben estar entrecomillados. 5. Se diferencia entre maytisculas y mintisculas. 2.2.2 Semantica sobre XML La flexibilidad de XML permite diferentes representaciones de la misma informacion, sin ambigtiedad sintactica y bien representada. En consecuencia, es posible que la misma informacién tenga diferentes formatos XML lo que implica que XML no es adecuado para incluir semantica por si mismo, hay que construir por encima de él, por eso se definio RDF y OWL. XML es el soporte para representar los estandares semanticos, pero no es un lenguaje de etiquetado semantico por si mismo. 2.2.3 Semantica sobre RDF/RDFS Seguin la WSC, el lenguaje de etiquetas RDF (Resource Description Framework o Infraestructura para la Descripcién de Recursos) tiene como objetivo general definir un mecanismo para describir recursos. El mecanismo que utiliza RDF para la definicidn de recursos es la tripleta, este modelo proporciona un ambito semantico muy simple, que se basa en tres términos; sujeto 0 recurso, propiedad o predicado y objeto o literal. RDFS (RDF Schema) es una extensién semantica de RDF. Todas las cosas descritas por expresiones RDF/RDFS se denominan sujeto o recurso. Un recurso puede ser una pagina web completa o una parte de ella. Pero un recurso puede ser también una coleccién completa de paginas (un sitio web completo). Por si esto fuera poco, un recurso puede ser también un objeto fisico, por ejemplo un libro impreso. Los recursos se designan siempre por URIs (Uniform Resource Identifier, identificador uniforme de recurso, definido en RFC 2396). Cualquier cosa puede tener un URI; la extensibilidad de URIs permite la introduccién de identificadores para cualquier entidad imaginable. Un ejemplo de URI puede ser una URL (Uniform Resource Locator) que nos permite localizar el recurso. También conviene presentar los Identificadores de Recursos Internacionales (IRI) que es un complemento de la URI (también definido en RFC 2396) y que utilizaremos en nuestras definiciones de ontologias. Pero este libro no es un manual aburrido de RDF/RDFS. Por ahora, lo importante es quedarse con la idea que el RDF y RDFS proporciona un modelo de datos para los recursos y las relaciones que se puedan establecer entre ellos, se incorpora la descripcién de propiedades y clases de los recursos, ademas se aporta una semantica basica para establecer jerarquias de generalizacién entre dichas propiedades y clases. Sin embargo, no es suficiente para la interoperabilidad semantica. Quizas esto asombre al lector, pero tiene algunas carencias importantes y por ello se penso en otro lenguaje complementario que veremos en el siguiente epigrafe. Pero antes, me permito enumerar, algunas de estas carencias que identifica Miguel Angel Abian en su libro “El futuro de la web. XML,RDF/RDFS, ontologias y la Web Semantica.” + No se pueden declarar restricciones de rango (rdfs:range) solo para una clase, debido a que rdfs:range define el rango de una propiedad para todas las clases. + No se pueden representar algunas caracteristicas de las propiedades. En concreto no se puede declarar que una propiedad es transitiva (si una clase), y tampoco se pueden declarar propiedades del estilo; menor que, simétrica, inversa y Unica. « No se puede reflejar que determinadas clases son disjuntas. « No permite expresar restricciones de cardinalidad. Lo que significa que una propiedad no esta restringida en cuanto al ntimero de valores que puede tomar. 2.2.4 OWL 1 Llegamos finalmente al lenguaje complementario que comentabamos. FI Lenguaje de Ontologias Web, Web Ontology Language (OWL), que en palabras del profesor lan Horrocks, es un “lenguaje de representacién del conocimiento descriptivo y basado en ldgica”. Este lenguaje, conocido como OWL 1, fue especificado en febrero del 2004 [cap_2,_ref_1], permite la definicion de ontologias estructuradas pensado para la Web. Los lenguajes anteriores, como DAML-OIL, se utilizaron para desarrollar herramientas y ontologias para comunidades de usuarios concretos (particularmente en las ciencias y en aplicaciones de comercio electrénico de compafiias especificas), pero no fueron definidos para ser compatibles con la arquitectura de la World Wide Web, y en consecuencia con la Web Seméantica. OWL se ha construido sobre RDF/RDFS, permitiendo representar ontologias a partir de un vocabulario mas amplio y una sintaxis mas fuerte que RDF. El lenguaje OWL proporciona la funcionalidad de aplicar ldgica descriptiva. Resulta especialmente interesante, el hecho de que OWL, puede embeberse en RDF/RDFS y expresarse como tripletas. Las primeras especificaciones de OWL, definian tres sublenguajes. Estos son: OWL Lite: Esta variante se recomienda para cubrir necesidades de clasificacion jerarquica y restricciones simples. Por ejemplo, soporta restricciones cardinales, pero solamente permite valores cardinales de 0 6 1. OWL Lite ofrece una rapida ruta de migraci6n para tesauros y otras taxonomias. OWL DL: Las especificaciones del 2004 se basaban en la logica descriptiva SHOIN(D). Actualmente se utiliza la logica descriptiva SROID(D). Esta variante de OWL ofrece maxima expresividad conservando la eficacia computacional, ademas se garantiza la decidibilidad. OWL Full: Proporciona soporte a usuarios que requieren el maximo de expresividad y la libertad sintactica de RDF sin garantias computacionales y por lo tanto sin garantia de decidibilidad. « Cada ontologia legal OWL Lite es una ontologia legal OWL DL. * Cada ontologia legal OWL DL es una ontologia legal OWL Full. Cada conclusion valida OWL Lite es una conclusién valida OWL DL. * Cada conclusién valida OWL DL es una conclusién valida OWL Full. En OWL, las clases o conceptos se organizan jerarquicamente mediante “subClassOf’. Cada clase solo puede tener un padre. La clases pueden contener diversas propiedades especificas del concepto que definen, y/o generales procedentes de la herencia de otras clases, aunque su valor puede ser particularizado. OWL Lite utiliza Unicamente algunas de las caracteristicas del lenguaje OWL y esta mas limitado en el uso de caracteristicas que OWL DL y OWL Full. Por ejemplo, en OWL Lite, las clases sdlo pueden ser declaradas en términos de superclases definidas (las superclases no pueden ser expresiones arbitrarias), y sdlo pueden ser usados ciertos tipos de restricciones de clase. Ademas, unicamente se permite la equivalencia entre clases y relaciones de subclases entre clases cuando se trata de clases definidas, no en el caso de expresiones de clases arbitrarias. Igualmente, las restricciones en OWL Lite usan sdlo clases definidas. OWL Lite tiene ademas una nocién limitada de cardinalidad como deciamos anteriormente. OWL DL y OWL Full utilizan el mismo vocabulario aunque OWL DL esta sujeto a algunas restricciones. De forma general, OWL DL requiere separacion de tipos (una clase no puede ser un individuo o una propiedad, una propiedad no puede ser tampoco un individuo o una clase). Esto implica que no se pueden aplicar testricciones a elementos del lenguaje de OWL (algo que se permite en OWL Full). Ademas, OWL DL requiere que las propiedades sean del tipo ObjectProperties o del tipo DatatypeProperties: DatatypeProperties son relaciones entre las instancias de clases y literales de RDF y tipos de datos de esquema XML, mientras que ObjectProperties son relaciones entre instancias pertenecientes a dos clases. Siendo practicos, hay que trabajar con OWL DL para nuestro objetivo de participar en la Web Seméntica. Ya que con OWL DL se corrigen las deficiencias que tenia RDF/RDFS. 2.2.5 Semantica con OWL 1 Como hemos visto anteriormente XML aporta la sintaxis para crear documentos bien estructurados sintacticamente, pero sin semantica y RDF/RDFS proporcionan un modelo de datos para cualquier recurso y las relaciones que se puedan establecer entre ellos, incorporando definicion de clases y propiedades, con algunos mecanismos para establecer jerarquias de generalizacién entre dichas propiedades y clases. Pero esto no es suficiente para la interoperabilidad semantica. OWL DL se define sobre las especificaciones anteriores para corregir las deficiencias semanticas que hemos identificado hasta este momento, de manera que al incorporar OWL DL obtenemos las siguientes ventajas: » Se pueden declarar restricciones de rango, por propiedad perteneciente a cada clase. + Se pueden tratar las propiedades transitivas, de relacién de orden (menor que, mayor que, etc...), de simetria, inversa y relacién unica. + Se puede indicar que determinadas clases son disjuntas. Por ejemplo, supongamos que en OWL declaramos la clase persona, y las subclases mujer y hombre, entonces se puede especificar que una persona no puede sera la vez mujer y hombre. + Se permite expresar restricciones de cardinalidad. 2.2.6 OWL 2 Aunque con OWL DL se puede construir la Web Semantica, el Consorcio de la WSC mantiene siempre una actitud muy activa. De manera que el grupo de trabajo [cap_2, ref_2] (OWL Working Group) desarrollo en el 2009 un conjunto de especificaciones OWL mas robustas conocidas como OWL 2 [cap_2,_ref_3]. OWL 2 afiade nuevas funcionalidades con respecto a OWL DL 1. Algunas de las nuevas caracteristicas son sintacticas (por ejemplo, la union disjunta de clases) mientras que otros ofrecen la expresividad nueva. Pero ademas de definir OWL DL 2, se definen tres nuevos perfiles. Asi, en OWL 2 nos encontramos con cuatro sublenguajes o perfiles. El primer sublenguaje es “OWL 2 DL”, con alguna limitacion cuando se tratan ontologias e instancias muy grandes. El sublenguaje “OWL 2 EL” se ha disefiado para soportar grandes volumenes con garantias de rendimiento, de manera, que es especialmente adecuado para aplicaciones con ontologias de gran tamafo y/o enormes volumenes de instancias. Con “OWL 2 QL” se permite consultas utilizando la tecnologia estandar de base de datos relacional, es especialmente adecuado para aplicaciones en se requieren consultas relacionales en SQL. Finalmente, el sublenguje “OWL 2 RL” permite operar directamente con BBDD basadas en triples RDF. 2.2.7 RDFa El estandar RDFa [cap_2, ref_4] se especificd en 2008, pero no tomo fuerza hasta el 2011, afio en que se publicé el estandar HTML 5 [cap_2,_ref_5]. En realidad RDFa fue disefado para introducir semantica en los documentos HTML. Por tanto, hasta que HTML no estuvo preparado para aceptar RDFa no podia ser utilizado. Con HTML 5 ya se puede utilizar RDFa. El estandar ha definido una correspondencia que permite extraer tripletes RDF. Observe el lector, como todos los estandares semanticos convergen siempre hacia las tripletas, siendo esta forma de representacion, lo que permite la compatibilidad. 2.2.8 SPARQL Cuando tenemos muchos datos semanticos, en cualquiera de los estandares que hemos comentado, como son; RDF, OWL y RDFa, surge la necesidad del acceso a los datos de una forma sencilla. El formato comun al que se pueden reducir todos ellos son las llamadas tripletas y SPARQL es un lenguaje de consultas que permite trabajar también en tripletas. SPARQL se disefiéd como lenguaje de consultas para RDF y viene a ser el equivalente a SQL con las bases de datos relacionales. Las primeras especificaciones de SPARQL [cap_2,_ref_6] son del 2006, en ellas se especifica el comando SELECT. Pero tuvimos que esperar hasta el 2009, para ver la primera versidn del llamado SPARQL 1.1, con soporte de tripletas procedentes de OWL 2 y actualizacion de las mismas mediante el comando UPDATE. La ultima revision de SPARQL 1.1 [cap_2, ref_7] es de marzo del 2013. 2.3. HERRAMIENTA PARA DEFINIR ONTOLOGIAS: PROTEGE Cuando se disefia un sitio web, se evita en la medida de lo posible, teclear directamente etiquetas HTML, por eso es frecuente utilizar aplicaciones especificas del estilo de Dreamweaver. Algo parecido ocurre para disefiar ontologias. Como habra podido advertir el lector, en este libro no nos hemos detenido en el detalle de los diferentes tags (etiquetas) de ninguno de los estandares semanticos que hemos presentado. Es importante saber qué funcionalidades ofrecen y también qué limitaciones tienen, pero nuestro objetivo es trabajar en entornos amigables y productivos, con herramientas graficas que nos faciliten la vida, y que desde el propio entorno generemos el codigo OWL que necesitamos automaticamente. Actualmente hay varias herramientas para editar y disefiar ontologias que soportan OWL. Ejemplos de este tipo de herramientas son WebODE, NeOn Toolkit [cap_2,_ref_8], PROTEGE [cap_2,_ref_9], etc...Nosotros trabajaremos en este libro con PROTEGE, ya que es la herramienta que mejor conozco. 2.3.1. Instalando y probando Protégé. Esta herramienta es gratuita y ha sido desarrollado por Centro de Investigacion Biomédica de Informatica de la Universidad de Stanford. La herramienta esta escrita en Java, de manera que antes de avanzar mas asegurese de tener instalado Java, en caso de que no lo tenga descargue e instale Java desde la pagina oficial [cap_2,_ref_10]. Para descargar Protégé tendra primero que registrarse. Una vez registrado descargue la version 4.1 (soporta OWL 2), que en el momento de redactar este libro, es la version estable mas avanzada. Abriendo protege-4.1.239.zip He escogido abrir SB protege-4.1.239.zip que es de tipo: Archivo WinRAR ZIP de: http://protege.stanford.edu {Qué deberia hacer Firefox con este archivo? © Abriccgn | winkaR. ZIP (predeterminada) © Guard ] Co Hacer esto automaticamente para estos archivos a partir de ahora. eccawal Solo tiene que descomprimirio y buscar el directorio “Protege_4.1”. En dicho directorio tendra el fichero por lotes “run.bat”. Cuando ejecute “run.bat” aparecera una pantalla del estilo: = e3] Create new OWL ontology Open OWL ontology Open OWL ontology from URI Open from the TONES repository Seleccionaremos la opcién “Create new OWL ontology” y lo primero que hay que hacer es declarar nuestra IRI. Por el momento, aceptaremos la propuesta de la herramienta y continuamos. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. be Feels acd ‘Saved the folowing ortologes: © onciogy 327232440258 rs iverw semarticweb oyontobges/20T OF toy 32720044255 04) CADocuments and Settngs\Asrministradorintologies\ontology! 327232440256\0ntology! 32723244075 —— [eee] Si abrimos el fichero, que ha generado Protégé veremos el siguiente cédigo: <2uml_version="1.0"2> 1> " #COLEOPTEROS"/> #insecto"/> HIMENOPTEROS"/> insecto"/> Para estar seguros de que sublenguaje o perfil OWL estamos utilizando en nuestra ontologia, podemos comprobarlo con el validador [cap_2,_ref_11] OWL “on line” de la Universidad de Manchester. Simplemente copiamos nuestro codigo OWL en el formulario y si todo lo hemos hecho bien obtendremos algo como esto: €> manchester acuk Gt - [Sewosoon a MAN £2 OWL 2 Validation Report Summary ‘The ontology and all of its imports are in the OWL 2 DL profile Imports Closure Ontology IRI Physical URI Nuestra ontologia cumple el estandar OWL 2 DL, facil ~no?. Con esto, el lector ya sabe que hay varios estandares definidos, que son complicados, pero que tenemos herramientas graficas para disefiar ontologias. Disefar una ontologia no es algo trivial, ya que es modelar un dominio o parte de un dominio de conocimiento, que quien disefia la ontologia debe conocer, normalmente se necesita un experto en la materia. Pero, el problema de aprender los estandares semanticos, un sin fin de etiquetas y sintaxis complicadas, es algo que no nos asustara porque ya sabemos que tenemos herramientas gratuitas que nos ayudan al disefio y edicién. 2.3.2. Clases y propiedades (LT). Vamos a disefiar una ontologia, en la que usaremos clases y propiedades. Como comentabamos en la introduccidn del libro, el epigrafe lo hemos marcado con “LT” (lectura técnica), de manera que la lectura de este epigrafe no es necesario para tener una visién global, pero si, para aquellos que necesiten profundizar, por ejemplo, lectores cuyo objetivo sea llegar a realizar tareas de direccién, disefio y/o implementacion. Me he decidido por construir una ontologia, en el sector del transporte publico, ya que conozco bien el funcionamiento. Se trata de una ontologia que nos ayudara a modelar el uso de una “tarjeta sin contactos”. La jerarquia de clases es la siguiente: Lege) Fe ran | femme] woe F@ resutaso Ahora vamos con las propiedades. En OWL hay dos tipos de propiedades, de tipo “objeto” (ObjectProperty) y de tipo “data” (DatatypeProperty). Las propiedades de tipo “data” nos permiten definir un tipo de dato basico (string, date, int, etc..) mientras que, las propiedades de tipo “objeto” permiten relacionar una propiedad con una instancia previa. En la pestafia “Object Properties” definimos las propiedades restriccidn_operador, restriccion_perfil, restriccion_resultado y restriccidn_titulo. ¥-mitopObjectProperty mrestriccion_operador ™restriccion_perfil ™restriccion_resultado mrestriccion_titulo En las cuatro definimos la caracteristica “Funcional”. Esto obliga a que al instanciar una clase que tenga esta propiedad solo permita un valor asignable de una lista de otras instancias. Pero esto se entenderaé mucho mejor cuando abordemos un ejemplo. Por el momento definalo como “Functional” en la ventana “Characteristics”. Ahora definimos el dominio donde actuan las propiedades, para ello hay que ir a la ventana “Description”, encontraremos algo de este estilo: Ranges (intersection) En restriccién_perfil, restriccién_resultado y restriccién_titulo, definimos el dominio de “tarjeta”. Pulsando en el! icono del signo “+” asociado a “Domains”, seleccionamos la pestaria “Class hierarchy” y navegamos por las clases de nuestra ontologia hasta seleccionar ‘tarjeta’. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Trabajamos ahora con la version descargada. El siguiente paso es aprender a rellenar una ontologia con datos, que llamamos instancias. Esto es poblar una ontologia. Vera que la version de la ontologia que ha descargado ya tiene algunas instancias, pero nosotros vamos afiadir alguna mas para ver como funciona. Lo primero es crear instancias de las propiedades de tipo objeto, ya que estas funcionan, como una restriccién de una BBDD relacional. De manera, que son como valores maestros. Seleccionamos la pestafa “Individuals” y nos situamos en la ventana de la izquierda donde seleccionamos la clase sobre la que vamos a instanciar. Elija “operador” (hereda de “maestros”). Ahora nos vamos a la ventana central y nos situamos en la pestafia “Members list’, y pinche el icono "Add individual". Tecleamos un nombre de operador de transportes. Por ejemplo, MLM y rellenamos los valores en la ventana de la derecha. Por el momento vamos a usar solo las propiedades “has_nombre_operador” y “has_operador’. Digamos que tenemos una ontologia construida, con las instancias basicas, como si fuesen tablas maestras de un modelo relacional. Ahora vienen los grandes volumenes de datos/instancias. Para ello lo mejor, es separarlo, por un lado, la propia ontologia y por otro, los datos con los cuales la poblamos. Pues muy bien, nos vamos a Protégé y creamos una nueva ontologia. Sefialamos todo por defecto, excepto el formato, que seleccionamos “OWL\XML”. Vamos a la pestafia “Activity Ontology” y nos situamos en la ventana inferior, pestafia “Imported Ontology”. Elija la opcién de importar desde Web y escriba esta URI “http://purl.org/crtm/TTPDesfire’. Ahora tenemos todas las clases y propiedades de la ontologia. Incluidas las instancias que hemos llamado “maestras’”. Nos cambiamos a la pestafia “Individuals” y en la pestafia “Class hierarchy” nos posicionamos sobre la clase “validacién”. Anadimos un individuo. Empezamos a escribir datos, en mi caso la instancia me queda asi: aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. responsabilizarse de anotar semanticamente toda la Web no podria hacerlo en tiempo real o cuasi-real. No importa la infraestructura tecnoldgica de sistemas informaticos con los que pudiera contar, sencillamente la Web es demasiado grande y compleja, para generar, en tiempo real, anotaciones semanticas de toda la Web por una misma entidad. Sirva de ejemplo de esta dificultad, el magnifico proyecto de DBpedia (versién Semantica de la famosa Wikipedia) que comenzo en el 2007, liderada por la Universidad de Leipzig, la Universidad de Libre de Berlin y la compafia OpenLink Software. La DBpedia se versiona, es decir, no actualiza sus datos semanticos en tiempo real y en consecuencia se va publicando en versiones; DBpedia 3.8, DBpedia 3.7, DBpedia 3.6, DBpedia 3.5.1, DBpedia 3.5, DBpedia 3.4, DBpedia 3.3, DBpedia 3.2, DBpedia 3.1, DBpedia 3.0 y DBpedia 2.0 En conclusion, ante la pregunta gQuién anota? No se puede responder que anota el equipo de la DBpedia o el Gobierno de tal sitio, o un gigante como Google. No, se necesita la participacién de todos. En realidad, el proceso de anotacién semantica deberia realizarse al mismo tiempo que se genera o se modifica el contenido, pero {como hacer esto?. Con herramientas que permitan anotar. g~Tenemos herramientas?. Algunas, pero hacen falta mas como veremos en el capitulo 4. 3.4. Hacia datos abiertos; accesibles y reutilizables. Open Data. En los ultimos afios se ha popularizado el concepto de datos abiertos, conocidos en todas partes como Open Data. Pero qué es esto. Si miramos en la Wikipedia, nos damos cuenta que se trata de un verdadero movimiento para compartir datos, con el claro objetivo de que los datos compartidos sean libres para todo el mundo, sin restricciones de copyright, patentes o cualquier otro mecanismo de control. Parecido a otros aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Las instancias de control de las Vistas Semanticas tienen el objetivo de relacionar la anotacién con el contenido. De manera, que se conozca cuando y de qué pagina web se ha extraido la anotacion semantica. Mediante las instancias sobre vvss.owl se podré averiguar si la anotacién es coherente con el contenido 0 ha quedado obsoleta (propiedad md5), y finalmente si es una anotacién nueva, modificada o no. 4.2.4 Anotacién en Gestores de Contenidos. Los gestores de contenido pueden adaptarse a los esténdares de la Web Semantica mediante el uso de los llamados Plug In. Por ejemplo, para el gestor de contenidos Joomla (liberado bajo licencia GPL) puede encontrar gratuitamente un Plug In para la utilizacion de la ontologia GoodRelations. Encontrar toda la informacién en la siguiente URL: https: //code.google.com/p/goodrelaticns-for-jocmla/ En el futuro, apareceran Plug In que integren completamente el proceso de anotacién con gestores de contenido (CMS). Particularmente estoy participando en un proyecto que integra la herramienta Sw2sws con Joomla. De manera, que el gestor de contenidos permite especificar el cddigo presentado anteriormente. 4.3 Como volcamos datos de una Base de Datos Relacional al mundo de la Web Semantica (RDF) Finalmente, no podemos dejar de comentar que la informacién que hay en bases de datos relacionales (RDB) puede exportarse al mundo de la Web Semantica con menor dificultad que intentar anotar a partir de texto libre 0 de lenguaje natural. Esto es una obviedad, ya que la informacién en RDB esta modelada y por lo tanto tiene una estructura. De todas formas, tampoco podemos simplificar las cosas y decir que esto sea sencillo. El tema es complejo y ha dado lugar a mucha bibliografia cientifica. Si el lector esta interesado en este campo, en la generacion de contenido semantico a partir del contenido de la base de datos, puede comenzar leyendo la tesis de Jess Barrasa Rodriguez que encontra en: hncep: //oa-upm.es/4147/1 |_BARRASA_RODRIGUEZ. pat Continue, de forma mas practica, con R20 y ODEMapster, que es un marco integrado para la expresién formal, la evaluacién, verificacién y explotacién de correspondencias semanticas entre ontologias y bases de datos relacionales (RDB). En cuanto a especificaciones, el grupo de trabajo “rdb2rd™ (del Consorcio de la W3C) ha definido un lenguaje llamado "R2RML" para mapear RDB hacia RDF. eps / /www 3.0rg/TR/x2em1/ Descomprimalo en su equipo y ya se puede utilizar. Simplemente lance el fichero "twinkle.jar". Pero antes de poder obtener beneficios de esta herramienta, tendra que aprender SPARQL. 5.1.2 Introduccién a SPARQL (LT). SPARQL es un lenguaje de consultas para RDF. En realidad, este lenguaje de consultas, se puede aplicar a cualquier estandard reducible a tripletas, y como anteriormente hemos indicado, que OWL puede ser también expresado en tripletas, significa que podemos utilizar SPARQL con OWL. Se trata de un lenguaje de recuperacion para el ambito semantico que es equivalente a SQL para las bases de datos relacionales. La sintaxis es_ similar. Las palabras clave mas importantes de SPARQL son: PREFIX, SELECT, FROM y WHERE. Como puede observarse, todas, excepto PREFIX se utilizan en el cotidiano SQL con la misma funcionalidad, aunque con sutiles diferencias de sintaxis. PREFIX sirve para la declaracidn de namespaces y puede aparecer varias veces en la misma consulta. Con la practica se entiende muy bien su utilidad. SELECT, al igual que SQL, sirve para definir los datos que deben ser devueltos en la respuesta. FROM identifica los datos sobre los que se ejecutara la consulta, pero a diferencia de SQL, donde se indican tablas de una BBDD, aqui se utilizan URIs. También es diferente, la manera de afadir varios URIs, ya que, en SQL las tablas que invoca FROM se separan por comas y en SPARQL hay que afiadir un FROM por cada URI. Finalmente, WHERE establece las condiciones de la consulta. En cuanto a las variables usadas en las consultas, en SPARQL van precedida siempre del caracter de interrogacién “?”. Como introduccisn a SPARQL, veamos el caso mas sencillo. Obtener todas las tripletas de una URL. Observesé que tanto en SELECT como en WHERE indicamos tres variables y que en FROM especificamos la URL donde se encuentran los datos. lf filename: capSexamplel.rq T ?s 2p ?0 ROM NHERE { ?s ?p ?0 } En este caso estamos obteniendo todas las tripletas del vocabulario RSS, asf que cambiando la definicién de FROM, podemos obtener las tuplas de Dublin Core, FOAF, DOAP [cap_5,_ref_9] o cualquier otra cosa. Para aprender a manejar SPARQL no se necesita demasiado, ya hemos instalado Twinkle, asi que sdlo hace falta unos pocos ejemplos para practicar. Voy a utilizar ejemplos basicos inspirados en el libro "Learning SPARQL" [cap_5,_ref_10] de Bob DuCharme, libro muy recomendable para profundizar en SPARQL. Pero antes, tenemos que tener unos datos con los que trabajar. Una manera muy facil para las personas es utilizar la notacién Turtle [cap_5,_ref_11] lt filename: capSexample2.ttl @prefix a: . elefono "6554444444" mail "“luis@yahoo.com" . lb: luis ja:luis ja:alfonso a:telefono "6553333333" . la:alfonso a:email “alfonso@gmail.com" . ja:alberto a:telefono "6302202020" . ja:alberto “alberto@yahoo . “alberto.perez@gmail.com" . Todos los ejemplos estan disponibles en mi sitio web: http: //criado.info/luis/ Bien, comencemos a explotar estos datos. Lo primero es entender los datos que tenemos, de forma que ejecutamos de nuevo la primera consulta particularizando con FROM de nuestros datos de ejemplo }t filename: capSexample3.rq T 2s 2p 20 2E { ?8 2p 20 } OM El resultado se recoge en la siguiente imagen: s hitp:slondo .tojturtefexamgie|osdrese ste: htp:|/riado inf oftrte/examgiejaddress thus hetp //ciado .tofturtiejexampie|adcress#corao itp J/onde eteiutilexargielodcreses oreo Htp://ciado ef ourtielexancie/address# alberto Hitp://oiado..rfoptrtiefexanpie/odcresse aberto hitp:Jjondo.rfoftutiajexarcie/addresss albert . hitp:fferads.rfojtatiejexanple/sdcressenal eto: //credo.rfoltatlelexanole/adcressatelef no Hitp:/ferado.nfoftatlejenanplejaddress#enal hrrp:sierade efoietleje= anole sdchescstelafene itp: /jerado.nfoftutlejexanole/sdcress#enal Fitp:fferedo.rfoturlejexsnoiejedcress#enst itn: /Jerado.rfoftutinjexanole/adckess #telefcno ° hss ahoo com esseaatens [sfonsogmel. com oreeg laberto peresiBgmal.com Isbertowyahoo com [Bsoz2nen2n Tenemos dos truplas de datos en relacion a Luis, otras dos de Alfonso y tres de Alberto. Supongamos ahora que queremos buscar de quien es el teléfono 6553333333. La consulta seria la siguiente: lt filename: capSexample4.rq PREFIX direccion: SELECT ?person FROM NHERE { 2person direccion:telefono "6553333333" . } Observe que la URL exacta que contiene los datos, puede no ser igual que la definicion PREFIX. En la parte WHERE "direccion:telefono" es equivalente a "". Lo que hace la consulta es seleccionar todas aquellas en que coinciden los teléfonos y_ "direccion:telefono", obteniendo como valor "http://criado.info/turtle/example/address#alfonso" de la variable "? person" La consulta es muy similar si queremos buscar a quien pertenece un # filename: capSexample8.ttl @prefix a: . leprefix d: . a:nombre = "Luis" . atapellido "Criado" . artelefono "6554444444" . aremail "luis@yahoo.com" . a:nombre "Alfonso" . atapellido "Ortiz" . a:telefono 553333333" . aremail “alfonso@gmail.com" . a:nombre "Alberto" . atapellido "Perez" . artelefono "6302202020" . atemail "alberto@yahoo.com" aremail “alberto.perez@gmail.com" . De manera que tenemos informacién también de los apellidos. Como puede apreciar el lector, ahora tenemos un identificador que agrupa toda la informacion en relacién a un mismo individuo, de manera que si utilizamos el ejemplo 4, con el FROM adecuado, esto es: lt filename: capSexample9.rq PREFIX direccion: SELECT ?person FROM HERE { ?person direccion:telefono "6553333333" } Obtenemos como respuesta: erson Ihttp://criado. info/turtle/example/data#i0555 De forma, que una vez que fijemos el identificador de persona, podemos obtener el resto de datos, por ejemplo el nombre y el apellido. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. :nombre rapellido iado" . itelefono "6554444444" . semail "luis@yahoo.com" . elefonooficina "9153333333" . email “alfonso@gmail.com" . nombre "Alberto" rapellido "Perez" . telefono "6302202020" . remail “alberto@yahoo.com" . remail "alberto.perez@gmail.com" . Y ahora escribimos una consulta para obtener; nombre, apellido, teléfono particular y teléfono de la oficina. Observesé, que podemos concatenar consultas de tripletas con el caracter ".", que en realidad funciona como un AND ldgico, esto es, restringimos la consulta. # filenam capSexample12.rq PREFIX direccion: 2person direccion:nombre ?nombre . 2person direccion:apellido ?apellido . 2person direccion:telefono ?telefono . 2person direccion:telefonooficina ?oficina . Después de ejecutar esta consulta obtenemos solo la informacion de "Alfonso", ya que es la Unica persona que tiene informacion en todos los campos de la consulta. Sin embargo, este comportamiento resulta extrafo, sobre todo si se tiene familiaridad con SQL, pero afortunadamente hay solucién. Para obtener el resto de registros, aunque en algunos campos no tengamos informacion, es necesario utilizar la palabra reservada "OPTIONAL". EI siguiente ejemplo ilustra como hacer esto: lt filename: cap5Sexample13.rq FIX direccion: ?nombre ?apellido ?telefono ?oficina //criado.info/sparg]/example/capSexamplel1.tt1> 2person direccion:nombre ?nombre . ?person direccion:apellido ?apellido . ?person direccion:telefono ?telefono . OPTIONAL { ®person direccion:telefonooficina ?oficina . Con esta consulta logramos obtener los registros de las tres personas del ejemplo, pero en el caso de "Alfonso" aparece también su teléfono de la oficina. 5.1.2.2. SPARQL y OWL (LT). Como hemos dicho, SPARQL gestiona cualquier lenguaje reducible a tripletas y OWL lo es. Vamos ahora a explotar con SPARQL ficheros en OWL. Con el ejemplo siguiente obtenemos todas las clases de la ontologia “vertebrados_es” i filename: capSexample14.rq PREFIX rdfs: //waw .criado.info/owl/vertebrados_es.owl> suj rdfs:subClass0f ?obj } La propiedad “rdfs:subClassOf’ es una instancia de “rdf:Property’ que se utiliza para indicar que todas las instancias de una clase son instancias de otra. Por lo tanto, hay que definir “rdfs” en “PREFIX” para que la consulta pueda ejecutarse. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. ERE { 2s rdfs:subClassOf vertebrados:mamiferos 5.1.2.5. Instancias Aunque, desde un punto de vista amplio, las ontologias sdlo deben definir clases y propiedades, es cierto que al definir una nueva clase o Propiedad, el propio OWL lo estructura como instancias del lenguaje base. Por ejemplo, cuando definimos una propiedad de tipo objeto tenemos que asociarlo con: http://www.w3.org/2002/07/owl#ObjectProperty Asi que, las propiedades que definimos en nuestra ontologia se pueden ver como instancias sobre el lenguaje base en OWL. La siguiente consulta nos permite ver todas las instancias de clase que tiene la famosa y muy utilizada ontologia "Goodrelations" que modela las ofertas de tiendas Web (comercio electrénico) de Martin Hepp IPREFIX owl: FROM RE ?instancias a ?clases Este resultado nos permite investigar un poco la ontologia, por ejemplo podemos obtener todas las instancias de "owl:objectProperty", que son propiedades definidas en "Goodrelations" de tipo objeto. # filename: capSexample18.rq PREFIX owl: aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. que son la base de la Web Semantica. La siguiente consulta muestra como podemos utilizar diferentes fuentes de datos en una misma consulta. Aunque todas las URL se refieren a la DBpedia podrian ser completamente URLs diferentes: lt filename: capSexample20.rq FIX dbo: iption#> //dbpedia.org/data/Santiago Ram%C3%B3n_y Ca} //dbpedia.org/data/Albert_Einstein.rdf> //dbpedia.org/data/Severo Ochoa. rdf> rdf> te ?nacio . leathDate ?murio . OPTIONAL { ?cientifico dbo:knownFor ?campo . } cientifico rdf:type dbo:Scientist } RDER BY ?cientifico 5.1.3 EndPoint (LT) Resulta muy util disponer de puntos finales de almacenamiento de tripletas. En los SPARQL EndPoints una organizacién puede publicar toda su informacién, de manera que para un tercero es mas facil explotar toda la informacion que se publica, ya que no requiere conocer las URLs de cada fuente de datos, es decir, si nos conectamos a un SPARQL EndPoint no necesitamos especificar FROM. 1lgunos ejemplos de SPAROL EndPoint http://www. w3.org/wiki/Sparqlindpoints Conectados a un EndPoint podemos plantear la consulta anterior para todos los cientificos de la DBpedia aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Por supuesto, también podemos filtrar por valores numéricos, incluso estableciendo rangos. La siguiente consulta devuelve un listado de todos los elementos de la tabla periddica cuyos pesos atémicos se encuentran entre 80 y 100. capSexample27.rq rico : nto tp:atomicWeight 2pesoatomico . (2pescatomico < 100). (2pesoatomico > 80). 5.2. Buscadores semanticos. Todos sabemos que la mayoria de las aplicaciones requieren almacenar y/o consultar datos. Tradicionalmente las aplicaciones han utilizado bases de datos relacionales. Dichas aplicaciones acceden a la BBDD mediante el lenguaje de consultas SQL. De la misma manera, en el ambito de la Web Semantica, los datos semanticos se almacenan en repositorios de tripletas y las aplicaciones semanticas podran acceder a estos datos semanticos mediante SPARQL. La aplicacion tipica de la Web Semantica es el buscador semantico, que en lugar de buscar mediante SQL lo hace con SPARQL. Existen actualmente buscadores semanticos especializados que funcionan de forma efectiva, como es el caso del buscador del Ayuntamiento de Zaragoza (Naveganza [cap_5,_ref_13]) desarrollado por iSOCO. Pero este buscador ha sido disefado para casos particulares. De manera que esta solucién usa una Unica ontologia, aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. li consola_fuseki_3.txt java ~jar fusekimserver.jar --dese tdb.ttl /ds Una vez arrancado podemos revisar la version instalada con el comando: 4.txt lh consola_fuseki m1 server. Jar tdb.tdbloader ~-w Java ~cp"fus Para acceder a la ayuda, escribimos It consol liava ~cp fuseki-gerver.jar tdb.tdbloader --help Para hacer una prueba, importamos datos desde una ontologia al modelo persistente. Ejemplo de importaci6n en un Dataset en el raiz |i consola_fuseki_6.txt liava -cp fuseki-server.jar tdb.tdbloader --Loc /DBITP ./vall.owl Ejemplo de importacién en un Dataset en un determinado directorio lt consola_fusek java -cp fuseki RIM/Datos/Web_Senantica/jena-fuseki-0.2.3- istribution/jena-fuseki-0.2.3/DBTTP . ‘Arrancar Fuseki con un Dataset de tripletas persistente. Una vez importado los datos en nuestro "dataset" podremos realizar consultas localmente a través del ENPOINT SPARQL de nuestro servidor Fuseki. De manera, que lanzamos el servidor desde la consola de comandos: |i consola_fuseki_s.txt java -Xmx1200M -jar fuseki-server.jar --update --loc DBITP /datasetDaTTr aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Para ello, especificamos los parametros de nuestra conexion: # Needed for JDBC URL *con.mysql.}dbe.driver* Para inicializar la base de datos de tripletas abrimos una consola/terminal y nos situamos en el directorio raiz de nuestra instalacion SDB. Ejecutamos el siguiente comando: # consola_Joseki. liava ~cp .(1ib\arg-2 txt -T.jar;.\lib\hsq! 1.8.0.10.jar; p\Lib\ieud sjars.\iib\its-0.8.5a \1sb\ jena tests jarz \1ib\ jena: jar; \lib\junit-4 p\23b\Iog4: 3.jar7-\1ib\lucon: yas 1b \ sab~ tg.jary.\Lib\sdb-1.3.4,jazy .\1Jb\s1£43-api-1.5.8. Jar; .\1ib\s1£4j-1og4j12- Hi -9-8. jars .\1ib\atax-api-1.0 7.\Lib\wstx-asl-3.2.9.jarz \Lib\xerc: ;\Lib\mysqi-connéctor-Java-9.0.8-bin.jar sdb. sdbcontig [/-scb=./Store/sdb-nysqi-innodb. ttl --format Tenga en cuenta, que si la BBDD tuviese ya informacién, este comando borrara los datos existentes. Importamos algunos datos el siguiente comando: lt consola_Joseki_3.txt hava -cp -\1ib\ hs: Reererss |\1ib\10g43-1.2 S\1ib\ lucene -

Você também pode gostar