La naturaleza de la información semántica en la Web. TESIS DE GRADO EN INGENIERIA INFORMATICA FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES TESISTA: Daniel Fernández DIRECTORES Lic. Gustavo López Lic. Ismael Jeder Lic. Arturo Servetto Lic. Adriana Echeverría Laboratorio de Informática de Gestión Departamento de Computación Mayo de 2009 Daniel Fernández TESIS DE GRADO 2 Daniel Fernández TESIS DE GRADO Agradecimientos A Paula por su paciencia y sus largas horas de compañía. A mi familia por todo el apoyo brindado a lo largo de la carrera. A los profesores que me han ayudado durante el desarrollo de este trabajo. A mis amigos, colegas y compañeros que me proveyeron la fuerza necesaria para seguir adelante. Gracias a todos. 3 Daniel Fernández TESIS DE GRADO Resumen La Web actual está formada principalmente por un conjunto de documentos cuya información semántica es fácilmente comprendida por los usuarios y no así por las máquinas que los procesan automáticamente. En este trabajo se estudiarán y compararán las principales tecnologías dedicadas a procesar el significado de los datos de la Web para que puedan ser interpretados por sistemas de computación. Asimismo, se presentará un desarrollo basado en la tecnología más adecuada acorde a la investigación llevada a cabo. Abstract Nowadays the Web is mostly composed by a group of documents whose semantic information is easily understood by its users but not by the computers which process the information automatically. This work will show the analysis and comparison of the main technologies applied to process the meaning of the data among the Web, so that it can be interpreted by computer systems. This work will also show a development based on the more suitable technology, according to the investigation being achieved. 4 Daniel Fernández TESIS DE GRADO Índice Capítulo 1: Introducción ..................................... 7 1.1. 1.2. 1.3. 1.4. Introducción ................................................................... 8 Motivaciones ................................................................. 10 Objetivos...................................................................... 10 Estructura del documento ............................................... 11 Capítulo 2: La información ................................ 12 2.1. World Wide Web ............................................................ 13 2.2. El significado de los datos de la Web ................................ 15 2.3. El procesamiento del lenguaje natural .............................. 17 2.3.1. Lenguaje ............................................................... 17 2.3.2. Historia ................................................................. 18 2.3.3. Cómo trabaja el PLN ............................................... 19 2.3.4. Problemas y limitaciones ......................................... 21 2.4. EL PLN y la Web ............................................................ 24 2.5. Web Scraping ............................................................... 27 2.5.1. Dapper .................................................................. 29 2.5.2. Yahoo! Pipes .......................................................... 32 2.6. Aproximación top-down.................................................. 34 2.7. Nueva aproximación: bottom-up ..................................... 36 2.8. Resumen investigación ................................................... 38 Capítulo 3: Los metadatos ................................ 39 3.1. Los datos sobre los datos ............................................... 40 3.2. Web Semántica ............................................................. 42 3.2.1. Las diferentes Capas ............................................... 43 3.2.2. Unicode ................................................................. 44 3.2.3. URI ....................................................................... 45 3.2.4. XML, NS y XML Schema ........................................... 46 3.2.5. RDF ...................................................................... 49 3.2.6. RDF Schema .......................................................... 57 3.2.7. OWL...................................................................... 59 3.2.8. Lógica ................................................................... 66 3.2.9. Prueba .................................................................. 67 3.2.10. Confianza ............................................................ 68 3.3. Microformatos ............................................................... 69 3.3.1. hCard .................................................................... 70 3.3.2. hCalendar .............................................................. 71 3.3.3. hReview ................................................................ 72 3.4. Los problemas de la aproximación bottom-up ................... 74 3.5. Microformatos vs. RDF ................................................... 76 3.6. La tecnología más adecuada ........................................... 78 3.7. Resumen investigación ................................................... 79 5 Daniel Fernández TESIS DE GRADO Capítulo 4: La red social semántica .................... 80 4.1. Solución propuesta ........................................................ 81 4.1.1. Red social de dominio libre ...................................... 83 4.1.2. Creación de datos y metadatos ................................. 88 4.1.3. Búsqueda semántica ............................................... 92 4.1.4. Notificaciones semánticas ........................................ 96 4.1.5. Repositorio de esquemas calificados .......................... 97 4.1.6. Exportación de datos ............................................. 101 4.2. Ejemplo ..................................................................... 102 4.3. Pruebas y resultados.................................................... 123 4.3.1. Pruebas ............................................................... 123 4.3.2. Resultados ........................................................... 125 Capítulo 5: Conclusiones y trabajo futuro .......... 128 5.1. Conclusiones ............................................................... 129 5.2. Futuras líneas de trabajo .............................................. 131 5.3. Bibliografía ................................................................. 132 6 Daniel Fernández TESIS DE GRADO Capítulo 1: Introducción En el presente capítulo, se introduce el tema que trata la tesis exponiendo el problema que busca resolver, de manera de colaborar con la comunidad científica. También, se listan las motivaciones que llevaron a hacer este trabajo y los objetivos que se intentan alcanzar en el mismo. Finalmente, se explica brevemente como está conformada su estructura en capítulos y el contenido de cada uno de ellos. 7 Daniel Fernández 1.1. TESIS DE GRADO Introducción En los últimos tiempos, la Web se ha convertido en un instrumento de uso diario para muchas personas, el cual es comparable con otros medios tales como la radio, la televisión y el teléfono. Nos facilita la comunicación, el intercambio de información, podemos hacer compras, transacciones bancarias, etc. Pequeñas compañías, empresas internacionales, estados, gobiernos de distintos países, universidades, bibliotecas, están presentes en la Web. Todo esto conlleva a un notorio crecimiento en su volumen de datos y a una necesidad de acceder a los mismos de una manera rápida y precisa. Los buscadores cumplen un rol importante en facilitar el acceso a la información que contiene la Web. Realizan un muy buen trabajo cuando se trata de indexar dicha información y facilitarla ante una consulta. Algunos de los buscadores más populares devuelven la información de páginas Web cuyos contenidos coinciden exactamente con las palabras escritas por los usuarios. Otros, mediante procesos sofisticados, intentan devolver al usuario resultados más certeros. La Web del presente consta de información básicamente representada en forma de texto. Esta información es fácilmente comprensible por una persona que la lea, sin embargo, es muy difícil realizar procedimientos automáticos que procesen su significado y permitan la existencia de aplicaciones cada vez más inteligentes. En estos momentos, la parte más importante en una búsqueda Web la debe realizar el usuario. Por ejemplo, si una persona quiere encontrar el hotel más barato en Bariloche debe realizar varias búsquedas de hoteles y comparar precios hasta encontrar el indicado. No puede solicitarle directamente a su máquina que busque el hotel con menor tarifa a pesar de que los datos necesarios están almacenados en la Web. Las máquinas pueden acceder a dicha información pero el trabajo de interpretar su significado lo deben efectuar las personas. La estructura de la Web está conformada por lenguajes de etiquetado con hiperenlaces, los mismos generan una relación fluida y dinámica entre los documentos1 y la información que contienen. Sin embargo, dichos lenguajes describen únicamente la forma en que la información debe ser presentada ante el usuario por el navegador pero no expresan nada sobre su significado. En este contexto, es fácil para las máquinas navegar los datos de la Web, pero se les dificulta obtener automáticamente una interpretación semántica de los mismos. La Web puede crecer significativamente en poder y alcance si se extiende para darle sentido semántico a sus datos permitiendo un mejor procesamiento automático de la información. Es así, que cuando los buscadores empiecen a comprender mejor los datos que hay en la Web, entonces podrán empezar a trabajar más ellos y menos nosotros, los usuarios. Asimismo, cualquier aplicación que procese dichos datos, será capaz de entender su significado y 1 En el contexto de la Web, el término documento hace referencia al documento hipermedial elaborado mediante el lenguaje de marcas de hipertextos (html), que permite el intercambio informacional mediante el protocolo de transferencia de hipertextos (http). 8 Daniel Fernández TESIS DE GRADO extraer mejores conclusiones de manera automática, sin que se precise la intervención humana. Muchos años de estudio se han dedicado a resolver el problema de interpretar automáticamente el significado de los datos de la Web. Algunos sectores relacionados a la Inteligencia Artificial buscan mejorar los agentes de extracción de datos mediante técnicas de procesamiento del lenguaje natural. Otros sectores optan por agregar etiquetas a los documentos de la Web suministrando, de esta manera, metadatos a los agentes de extracción para que puedan interpretar la información. De estos últimos sectores, se destaca la Web Semántica [Berners-Lee, 2001], una tecnología que permite representar eficientemente la información en la Web estableciendo una forma universal de estructurar las relaciones entre los datos y entre éstos y sus significados. De fomentarse la Web Semántica, un sistema automático podría seguir la estructura de las relaciones generadas y obtener sus propias conclusiones respecto a la búsqueda que se está realizando. En la vigente tesis, se analizarán las características de la Web actual, las limitaciones que presenta su estructura y cuales son los motivos que hacen difícil a una computadora interpretar el significado de los datos de la Web. A continuación, se estudiarán las principales técnicas y tecnologías que buscan solucionar dicho problema y se explicará porqué actualmente la Web Semántica es la más factible. Finalmente, se presentará una solución en la cual se muestran las ventajas de aplicar dicha tecnología al software social2. 2 Se considera software social a las aplicaciones cuyo contexto de trabajo es comunitario y colaborativo. 9 Daniel Fernández 1.2. TESIS DE GRADO Motivaciones En los últimos años trabajé en empresas de desarrollo de software que de a poco fueron enfocando mi interés hacia tecnologías relacionadas con la Web. Una charla presentada por Microsoft sobre la Web Semántica incrementó mis ganas de seguir investigando y explorando el mundo de la Web. Descubrí que actualmente el significado de sus documentos no puede ser interpretado automáticamente por las máquinas y me uní al vasto número de personas que trabaja en solucionar dicho problema. 1.3. Objetivos Los objetivos que la presente tesis intenta alcanzar son los siguientes: Estudiar las características de la Web haciendo foco en sus limitaciones actuales y argumentar la relevancia de introducir un mejor manejo del significado de sus datos. Analizar en profundidad las principales técnicas y tecnologías que colaboran en fomentar la interpretación automática del significado de los datos de la Web. Determinar cual es la técnica o tecnología más factible e implementar un ejemplo de la misma en un entorno reducido. Realizar pruebas de manera de señalar los beneficios concretos de la misma en el área en la que se encuadra y cómo contribuye a su avance. Hacer extensivos a la comunidad científica y académica los resultados y conclusiones obtenidos, como así también a aquellos organismos posiblemente interesados 10 Daniel Fernández 1.4. TESIS DE GRADO Estructura del documento Este documento se divide en seis capítulos: I. El presente capítulo es el primero y tiene como objetivo introducir el tema de la tesis, sus objetivos y su estructura. II. El segundo capítulo estudia la Web, sus características y sus limitaciones actuales. Se introducen y analizan dos técnicas que buscan interpretar automáticamente el significado de los datos en la Web: el procesamiento del lenguaje natural y Web scraping. III. El tercer capítulo introduce el concepto de metadatos y como pueden colaboran para darle significado a los datos de la Web. En este capítulo se presentan la Web Semántica y los microformatos, dos tecnologías que hacen uso de los metadatos. Al final del capítulo, se determina de las técnicas y tecnologías estudiadas, cual es la más adecuada para promover el significado de los datos en la Web. IV. En el cuarto capítulo se presenta una solución desarrollada bajo la técnica o tecnología escogida, se explican sus características, beneficios y se detallan las pruebas realizadas junto a sus resultados. V. Finalmente, en el quinto capítulo se resumen las conclusiones a las que se fueron llegando a lo largo del proyecto y se señalan posibles líneas de trabajo futuro. 11 Daniel Fernández TESIS DE GRADO Capítulo 2: La información En el capítulo 2 se analiza la World Wide Web, su estructura y sus características que hacen que sea un entorno complejo. Se estudia la extracción automática de datos de los documentos Web y si es legal llevarla a cabo o no. Al igual que el primer capítulo, se remarca la necesidad de interpretar el significado de dichos datos y se presentan dos técnicas que buscan lograrlo; las mismas son conocidas como procesamiento del lenguaje natural y Web scraping. Finalmente, se comparan ambas técnicas detallando las limitaciones que cada una posee en la actualidad. 12 Daniel Fernández 2.1. TESIS DE GRADO World Wide Web Nadie duda que actualmente la fuente de información más grande del mundo sea la World Wide Web. Según un informe de la consultora internacional IDC y el fabricante de sistemas de almacenamiento EMC [Gantz et al, 2007], en el 2006, la cantidad de información digital creada, capturada y replicada fue de 1288 x 1018 bits, esto equivale a 161 billones de gigabytes (3 millones de veces mayor que las de todos los libros escritos). Para ilustrar mejor esta cifra, podemos decir que el material que se encuentra en la Web equivale aproximadamente a 12 pilas de libros, cada una extendiéndose desde la Tierra hasta el Sol. Se estima que para el 2010 el crecimiento de la información va a continuar llegando a los 988 billones de gigabytes. Los sistemas automáticos que recolectan, procesan o indexan información de la Web no sólo se topan con este crecimiento exponencial de la misma sino con otra serie de características: Es fácil acceder a la cantidad de información en la Web pero requiere de mucho tiempo y espacio para el procesamiento. La información en la Web abarca todo tipo de aspectos. En otras palabras, se puede encontrar información de lo que sea en la Web. Existen datos de todo tipo en la Web, por ejemplo tablas estructuradas, textos, datos multimedia (imágenes, películas), etc. La información en la Web es heterogénea. Múltiples páginas Web pueden presentar la misma información o parecida, utilizando formatos y sintaxis completamente diferentes, lo que hace que la integración de la información sea una tarea difícil La mayoría de la información en la Web es semiestructurada debido a la estructura en red del código HTML y la necesidad de los diseñadores Web de presentar la información de una manera simple y atractiva para simplificar la visualización y navegación a los usuarios. La mayoría de la información Web está vinculada. Hay vínculos a través de las páginas de un sitio y hacia otros sitios diferentes. Estos links sirven como una herramienta de organización de la información y también como una indicación de confianza con las páginas enlazadas y sitios. La mayoría de la información de la Web es redundante. El mismo fragmento de información o sus variaciones pueden aparecer en muchas páginas o sitios. La Web es ruidosa. Una pagina Web, generalmente contiene una mezcla de distintos tipos de información, por ejemplo el contenido principal, publicidades, paneles de navegación, avisos de copyright, etc. Para una 13 Daniel Fernández TESIS DE GRADO aplicación en particular, solo una porción de dicha información es útil y el resto es ruido3. La Web consiste de una parte superficial y otra profunda. La Web superficial esta compuesta de páginas que pueden ser navegadas utilizando un simple navegador. Esta Web puede ser alcanzada también por los buscadores. La Web profunda esta mayormente compuesta de base de datos que sólo pueden ser accedidas a través de consultas parametrizadas. La Web también posee servicios. Muchos sitios Web y páginas permiten al usuario realizar operaciones con parámetros entrantes, o sea proveen servicios. Por otro lado, la Web es una sociedad virtual. No solamente esta formada por datos, información y servicios, sino también por interacciones entre personas y organizaciones. La Web es dinámica. La información en la Web cambia constantemente. Mantenerse al tanto de los cambios y monitorearlos son dos tareas importantes a la hora de extraer información de la Web. Podemos ver que la Web es un entorno muy rico en información pero completamente difícil para trabajar. Sin embargo, existen buscadores que, a pesar de todas estas características, logran procesar su información. Un ejemplo de ellos es Google que es capaz de indexar alrededor de 20 millones de gigabytes de información en sólo 24 horas y recibe más de 27000 millones de búsquedas por mes de usuarios de todo el mundo. Entonces, ¿cuál es el problema principal con el que se topan los sistemas automáticos de extracción? La respuesta es la dificultad en interpretar la semántica de los datos de la Web. Entendemos por semántica a los aspectos del significado de una palabra, lenguaje o representación formal. En otras palabras los buscadores devuelven como resultado un listado de páginas que contengan las palabras claves que les ingresamos pero no existe una interpretación del significado de la consulta o del de su correspondiente resultado. Muchas veces el mayor porcentaje de los resultados suelen ser comerciales y encontrar la información buscada puede convertirse en una hazaña. Hay que probar distintas combinaciones de palabras y realizar más de una búsqueda. Uno de los casos exitosos en encontrar significado en los datos de la Web es nuevamente el buscador Google. Para explicarlo simplemente, los creadores del buscador de Google encontraron semántica en la Web al determinar que si un sitio tiene muchos hipervínculos desde otras páginas, significa que el mismo debe ser importante. Más importante es aún si una de las páginas que lo apuntan también tiene muchos hipervínculos desde otras páginas; y así sucesivamente. Esa semántica implícita en los hipervínculos es una de las características que le permitió a Google determinar la importancia de las páginas en sus resultados y convertirse en uno de los mejores buscadores de la actualidad. No obstante, es muy poco el significado que se logra interpretar automáticamente de toda la información que contiene actualmente la Web. 3 El término ruido hace referencia a los datos que no aportan a la información principal de un documento. 14 Daniel Fernández TESIS DE GRADO 2.2. El significado de los datos de la Web Algunos repositorios en la Web son excelentes fuentes de información. Wikipedia [WEB-9] es un muy buen ejemplo de un sitio Web donde se puede encontrar prácticamente porciones de información de casi todos los temas. Artistas, lugares, animales, eventos históricos, protocolos o cualquier concepto existe en Wikipedia. Sin embargo, a pesar de tener toda la información necesaria, no podemos realizar, por ejemplo, una búsqueda en Wikipedia que nos de todas las guerras ocurridas en America del Sur durante el siglo XX. Wikipedia contiene la información en su base de datos necesaria para responder a dicha consulta, pero no puede hacerlo porque la información es texto crudo que carece de significado para las máquinas. A pesar de poder encontrar las guerras por su nombre, las máquinas no saben realmente cuando sucedieron porque no pueden comprender el significado del texto asociado que está escrito en lenguaje natural. Por ejemplo, la Segunda Guerra Mundial es un concepto para Wikipedia, que tiene asociado un texto crudo como el siguiente: ―Segunda Guerra Mundial fue el conflicto armado más grande y sangriento de la historia mundial, en el que se enfrentaron las Potencias Aliadas y las Potencias del Eje, entre 1939 y 1945. Fuerzas armadas de más de setenta países participaron en combates aéreos, navales y terrestres.‖ 4 Podemos ver que las fechas se encuentran en la definición de la guerra, sin embargo las máquinas no pueden interpretar el significado de esas fechas y concluir cual fue periodo en el que transcurrió la guerra. Veamos como segundo ejemplo este texto extraído de Wikipedia donde se explica el significado de las Guerras Médicas: ―Las Guerras Médicas son un enfrentamiento que tuvo lugar en el 490 adC y en el 480-479 adC. La primera fase (490 adC) se produjo cuando los persas (medos) enviados por su rey Darío I a través de un ejército y viajando por mar, desembarcaron en la ciudad de Maratón.‖5 Si una persona lee dicho texto, utiliza su conocimiento previo para sacar un conjunto de conclusiones en cuanto al significado del mismo. Esto quiere decir que el texto posee información semántica implícita. Si existiese un sistema que pudiese interpretar el significado de dicho texto, esperaríamos que obtenga conclusiones como las siguientes: Las guerras Médicas fueron un enfrentamiento. Las guerras Médicas comenzaron en 490 adC 4 Texto extraído de la siguiente URL: http://es.wikipedia.org/wiki/2%C2%AA_Guerra_Mundial 5 Texto extraído de la siguiente URL: http://es.wikipedia.org/wiki/Imperio_Persa 15 Daniel Fernández TESIS DE GRADO Las guerras Médicas finalizaron en 479adc. Las guerras Médicas están divididas en fases. La primera fase de las guerras Médicas comenzó en 490 adC. Los persas tenían rey. En 490adc, el rey persa fue Darío I Los persas también son conocidos como medos. Los persas viajaban por mar. Maratón es una ciudad Darío I envió a un ejército a la ciudad de Maratón. Una rama de la Inteligencia Artificial conocida como Procesamiento del Lenguaje Natural ha estado trabajando años para lograr que los sistemas interpreten los textos y lleguen a conclusiones como las enseñadas. Se presentará en las siguientes secciones el procesamiento del lenguaje natural y sus limitaciones en la actualidad. 16 Daniel Fernández TESIS DE GRADO 2.3. El procesamiento del lenguaje natural El uso de procesamiento del lenguaje natural para extraer e interpretar el significado de la información de la Web resultó ser una tarea poco sencilla y uno de los problemas más complejos a los que se enfrenta la Inteligencia Artificial. Hay problemas fundamentales que necesitan resolverse para poder darle a una computadora la habilidad de representar al mundo y sus diferentes culturas. Los buscadores que hacen uso de dicha tecnología no logran obtener los resultados esperados debido a la complejidad, irregularidad y diversidad del lenguaje humano y a los problemas filosóficos y psicológicos asociados al significado de frases, oraciones y textos en su conjunto. Como otras limitaciones se destacan la anáfora, la elipsis, la ambigüedad y la necesidad de encontrar el contexto. 2.3.1. Lenguaje El lenguaje se define como “Un conjunto de oraciones, que usualmente es infinito y se forma con combinaciones de palabras del diccionario. Es necesario que esas combinaciones sean correctas (con respecto a sintaxis) y tengan sentido (con respecto a la semántica)” [Magaña et al, 2007]. Podemos distinguir entre dos clases de lenguajes: los lenguajes naturales y lenguajes formales. Los primeros son el medio que utilizamos de manera cotidiana para establecer nuestra comunicación (oral, escrita o señas) con las demás personas. Algunos ejemplos son el castellano, el inglés o el francés y su origen y desarrollo es natural, es decir, sin el control de ninguna teoría. Las teorías de lenguajes naturales y las gramáticas, fueron establecidas a priori, esto es, después de que el lenguaje había ya madurado. Es por ello de la dificultad o imposibilidad de conseguir una formalización completa. Por otro lado, los lenguajes formales como las matemáticas y la lógica, fueron desarrollados generalmente a través del establecimiento de una teoría, la cual le da las bases para dichos lenguajes. Las palabras y oraciones de un lenguaje formal son perfectamente definidas (una palabra mantiene el mismo significado prescindiendo de su contexto o uso). Los billones de documentos en la Web están escritos tanto en lenguaje naturales como lenguajes formales o en una combinación de ambos. 17 Daniel Fernández 2.3.2. TESIS DE GRADO Historia El procesamiento del lenguaje natural es un área de investigación de la inteligencia artificial que se encuentra en continuo desarrollo. También se lo conoce de forma abreviada como PLN o NLP (del inglés Natural Language Processing). El objetivo principal del PLN es lograr un mecanismo para que las máquinas se comuniquen con las personas y viceversa por medio del lenguaje humano. En definitiva, se busca construir sistemas que puedan analizar, entender y generar lenguaje natural. Durante el período 1940-1960, surgieron las primeras aplicaciones del PLN, teniendo como interés fundamental la traducción automática. Los experimentos en este sector, se basaban en substituir una palabra por otra generando resultados pobres y lejos del objetivo buscado. Más adelante el interés del área se fue centrando en la interpretación del significado de los datos. Se construye, para los setenta, el primer sistema de preguntasrespuestas basado en lenguaje natural. En los próximos años se comienza a aplicar el procesamiento del lenguaje natural no sólo en campos como la traducción automática sino también en el reconocimiento del habla, la corrección ortográfica de textos y en el procesamiento y la recuperación de información. Para estos últimos años, se introducen nuevas técnicas de representación del conocimiento y se comienzan a utilizar como fuente de información los billones de documentos de la Web. Muchos buscadores se interesan en mejorar las técnicas de procesamiento y recuperación de la información para brindar un mejor servicio a los usuarios. En definitiva, intentan aplicar el procesamiento del lenguaje natural para poder permitirle al usuario realizar preguntas en lenguaje natural y generar las correspondientes respuestas procesando e interpretando la información de la Web. Sin embargo, la complejidad implícita en el tratamiento del lenguaje natural junto a las características que presenta un entorno enredado como es la Web hacen que los resultados de aplicar PLN sean limitados y, por lo tanto, sus aplicaciones tengan poco éxito. Es así, que si bien en los últimos años se han obtenido importantes avances en el área, todavía queda mucho camino por recorrer. 18 Daniel Fernández TESIS DE GRADO 2.3.3. Cómo trabaja el PLN El lenguaje natural posee 3 niveles de análisis en su estructura: Figura 1. Niveles de análisis del procesamiento del lenguaje natural. 2.3.3.1. Nivel Morfológico: Tiene como función determinar la forma, clase o categoría gramatical de cada palabra de una oración encontrando la relación que se establece entre las unidades mínimas de las mismas. Por ejemplo, el reconocimiento de sufijos o prefijos. Tiene una relación muy estrecha con el léxico. Como léxico entendemos al conjunto de información sobre cada palabra que el sistema utiliza para el procesamiento. A continuación, se ofrece un análisis morfológico para esta frase: <<Esta nota para mañana>>. <Esta> Pronombre+Demostrativo+Femenino+Singular Determinante+Demostrativo+Femenino+Singular 19 Daniel Fernández <nota> TESIS DE GRADO Verbo(notar)+Presente indicativo+3ra persona+Singular Verbo(notar)+Imperativo+2da persona+Singular Sustantivo+Femenino+Singular <para> Preposición Verbo(parir)+Presente subjuntivo+1ra persona+Singular Verbo(parir)+Presente subjuntivo+1ra persona+Singular Verbo(parir)+Imperativo+3ra persona+Singular Verbo(parir)+ Presente indicativo+3ra persona+Singular Verbo(parir)+Imperativo+2ra persona+Singular <mañana> Sustantivo+Femenino+Singular Adverbio Como se puede comprobar, la conclusión del análisis automático es una lista con las posibles categorías gramaticales junto a los valores gramaticales de cada una de las palabras que aparecen en la frase. La incertidumbre del lenguaje queda visible por lo que se tendrán que emplear otros mecanismos para lograr una desambiguación lo más completa posible. 2.3.3.2. Nivel Sintáctico: Su función es identificar cada componente sintáctico de la oración, etiquetarlo y analizar como se combinan las palabras para formar oraciones gramaticalmente correctas. Tiene como objetivo comprobar si los vocablos del texto están bien coordinados y unidos. Además en este nivel se pretende también la resolución de problemas no solucionados en el análisis anterior como la reiterada ambigüedad gramatical de las palabras, destinando para ellos varios mecanismos como las posiciones de las voces en las oraciones o los contrastes gramaticales. Para esto se dispone de una base de datos donde se recogen todas las combinaciones gramaticalmente aceptables entre los vocablos, aunque otra opción es al contrario, recoger las posibilidades prohibidas. Una construcción que no se permite es ésta: <<El documentos son…>>, ya que una de las reglas es que el artículo y el sustantivo deben coincidir en género y número. El criterio sería así: ARTI(SING)+SUST(PLUR)=PROHIBIDO Por otro lado, habrá reglas que señalan que un verbo no puede ir precedido de un artículo. 20 Daniel Fernández TESIS DE GRADO ARTI+VERB=PROHIBIDO ARTI+HOMOGRAFÍA(SUST,VERB)=SUST 2.3.3.3. Nivel Semántico: La semántica estudia la significación de las palabras, por tanto, un análisis semántico tratará de averiguar el significado de las oraciones de un texto, y por extensión el del mismo texto. En PLN el conocimiento semántico se representa especificando conceptos simples y sencillos que se combinan en estructuras más intricadas como redes semánticas, dependencias conceptuales o estructuras. Como el resto de los niveles, esta fase toma el resultado de otros niveles precedentes que puede ser ambiguo (ambigüedad sintáctica en este caso) para tratar de eliminarlas. Uno de los rompecabezas en el procesamiento de la fase semántica es la gran cantidad de conocimiento que se necesita acerca de los vocablos y conceptos en el universo el discurso, en orden a formalizar tales interpretaciones, por ende, el nivel semántico es el tipo de análisis más complicado que enfrenta el PLN. Las técnicas de extracción del significado no han obtenido los resultados deseados al momento y se continúa trabajando en ello. Este punto es de gran importancia en el documento, por ende analizaremos las posibles causas de por qué es tan difícil obtener semántica a partir del procesamiento del lenguaje natural. 2.3.4. Problemas y limitaciones A diferencia de las máquinas, el hombre usa el mínimo de lenguaje y el máximo de su cultura e historia contextual para entender y ser entendidos. Esta diferencia hace que el uso del procesamiento del lenguaje natural se encuentre con una serie de dificultades que limitan la comprensión del lenguaje humano. Algunas de dichas dificultades son: 1 – La aparición en el texto de un guión puede tener varios significados, uno que está poniendo en relación dos palabras o también lo podemos hallar dividiendo un vocablo al final de una línea, indicando que el resto de la voz está en el siguiente renglón. 2 – La anáfora es un tipo de señalamiento que desempeñan ciertas palabras como por ejemplo “ésta”, “lo”, “le”, “aquí”, “allí”, etc. para asumir el significado de una parte del discurso ya emitida. ―Juan y Diego son hermanos, el primero es abogado y el segundo arquitecto‖. Primero = Juan Segundo = Diego 21 Daniel Fernández TESIS DE GRADO Se distinguen dos tipos de expresiones anafóricas: las endofóricas, es decir, las que aparecen dentro de los textos y por lo tanto, su antecedente se localiza en el mismo texto y las exofóricas, cuyo antecedente no es posible ubicarlo dentro del texto. Para Grishman [Grishman, 1991] una de las características de las lenguas naturales y tal vez una de las principales razones para que su análisis sea tan complicado, es que gran parte de lo que se quiere comunicar está implícito en el discurso. 3 – Otro problema con el que se enfrenta el PLN es la elipsis y se define como una figura de construcción que consiste en omitir en la oración una o más palabras, necesarias para la recta construcción gramatical, pero no para que resulte claro el sentido. Se distinguen tres tipos de elipsis: intrasentenciales (producidas en el interior de una oración u oraciones coordinadas), fragmentos (ocurren fundamentalmente en situaciones de diálogo), y elipsis semánticas (aquellas que no se manifiestan como estructuras incompletas sino como proposiciones semánticamente incompletas). 4 – Tal vez el punto más importante que causa la dificultad de procesar los millones de texto en lenguaje natural que contiene la Web está dado por la ambigüedad. Así lo remarca Winograd y Flores [Winograd et al, 1987]. Cuando nosotros, como humanos, procesamos el lenguaje, estamos constantemente adivinando el significado del mismo utilizando todo nuestro conocimiento del universo y basándonos en nuestra cultura para tratar de deducir que es lo que está siendo comunicado. Como ejemplo de esto, Winograd y Flores plantean que si se pregunta “Hay agua en la heladera?”, la mayoría de los seres humanos entienden que dicha pregunta se refiere a si hay algo como agua mineral o una botella con agua dentro de la heladera. La existencia de moléculas de agua en la lechuga es considerada como una respuesta graciosa o una burla. Winograd remarca que los humanos relacionamos el lenguaje al conocimiento de circunstancias comunes. En cambio, las máquinas no pueden determinar que respuesta devolver, excepto que la pregunta sea completamente explícita. Cuando un humano usa el lenguaje, en situaciones como la anterior, no necesita ser explícito sino que se asume que el oyente lo entiende. Esta innecesidad de situar al oyente en el contexto de lo expresado, comprime en un 90% la comunicación haciendo conciso el uso del lenguaje. Si se tuviese que pedir agua de forma explícita la pregunta sería la siguiente: “tenés agua que pueda beber en la heladera, excluyendo las moléculas en cualquier vegetal o fruta o en el hielo o ...”. Las computadoras encuentran realmente difícil descubrir cuando el contexto no es expresado en detalle. Pero esto también le sucede a la gente adulta cuando quiere aprender un idioma extranjero. Aunque muchos contextos o circunstancias normales son transferibles entre culturas, la más pequeña diferencia puede crear problemas de entendimiento. Encontrar diferentes formas de ver el mundo es algo muy común en el hombre, de hecho a lo largo de su vida cambia la forma de ver las cosas. Algo que entendía de una manera un niño, de adulto lo ve distinto. 22 Daniel Fernández TESIS DE GRADO Existen tres técnicas que tratan de resolver el problema del contexto semántico: pretender que no existe (aproximación ciega), usar el conocimiento del humano para ayudar a la computadora (aproximación cooperativa) o tratar de representar el contexto según el sistema de las computadoras (aproximación por sentido común). Ninguna de las tres logra satisfacer los requerimientos. La aproximación ciega. La idea es pretender que no hay ambigüedad en el lenguaje. Por ende, de haber ambigüedad la computadora asume únicamente el contexto permitido por el programador. Una base de datos hecha por químicos, responderá la pregunta de si existe agua en un químico X sin tener conocimiento de que el agua es bebida por los seres humanos. Esta aproximación serviría para extraer semántica de ciertos sitios específicos, pero no de la Web completa. La aproximación cooperativa Acá el sistema no tiene que resolver la ambigüedad, sino detectar que existe y dejar que se ocupe el humano. Pero esto se puede tornar frustrante y aburrido. Mientras más contextos se permiten, más molesto se torna para el humano resolver dicha ambigüedad. La aproximación cooperativa no se podría aplicar a toda la Web, porque se necesitarían demasiadas horas humanas para resolver todas las ambigüedades que contiene. La aproximación por sentido común. Es tratar de darle a la computadora el conocimiento completo del mundo. Ya existen intentos de ello, como por ejemplo el proyecto de Doug Lenat's CYC [WEB-1] que lleva mas de 21 años de trabajo en la Universidad de Austin, Texas. El objetivo de Lenat es darle conocimiento a la máquina para que razone con sentido común y lo utilice para procesar naturalmente cualquier texto. Esta sería la solución adecuada para procesar todos los datos de la Web y extraer su significado semántico. Sin embargo, existen muchas trabas y hasta el día de hoy no se logra que interprete el conocimiento del mundo como nosotros los humanos lo hacemos. 4 – Como última pero no menor, es la limitación propia de la complejidad, irregularidad y diversidad del lenguaje humano y los problemas filosóficos y psicológicos asociados al significado de frases, oraciones y textos en su conjunto. Las personas se confunden, mienten y pueden interpretar una misma frase de manera distinta aunque se encuentre en el mismo contexto. Esto hace que la interpretación semántica de los textos en la Web sea aun más compleja y tenga que tener en cuenta la confiabilidad del usuario. 23 Daniel Fernández 2.4. TESIS DE GRADO EL PLN y la Web Tradicionalmente, las principales fuentes para la investigación del procesamiento del lenguaje natural provenían principalmente de textos impresos, como por ejemplo artículos de periódicos o libros. Los mismos eran entornos más acotados donde se tenía un cierto control del mismo. Con el crecimiento del la Web como un recurso de información, muchas miradas cambiaron de dirección y el mismo comenzó a ser cada vez más utilizado en las tareas relativas a PLN. Pero de lograr superar los problemas y limitaciones que enfrenta el procesamiento del lenguaje natural, ¿alcanza esta técnica para procesar los billones de documentos de la Web? Definitivamente no. Esto se debe principalmente a dos razones: A - La Web no sólo contiene textos sino también datos multimedia: sonido e imágenes. El sonido puede ser abarcado en parte por la rama del lenguaje natural que estudia el habla humano, no así las imágenes que muchas veces colaboran indispensablemente con el significado del texto o de la página. B - Hay mucha semántica en la Web que no está ubicada en los textos sino en su distribución. Por ejemplo, podemos ver que en la figura 2 hay semántica implícita en la distribución de los datos a lo largo de la página Web. Cuando se extrae la semántica de dichos datos, se debe tener en cuenta su ubicación en la página y la estructura de la misma. 24 Daniel Fernández TESIS DE GRADO Figura 2. Ejemplo gráfico de una página Web que promociona películas. 25 Daniel Fernández TESIS DE GRADO En el ejemplo se observa que hay cuatro películas en cartelera: Leatherheads, Dragon Ball Z: Bardok Trunks Double Feature, You Don't Mess With the Zohan y The Other Boleyn Girl. Por otro lado, también está publicada la película más votada que es Poseidón. Una aplicación que quiera extraer no solo los datos de la página sino también su significado, debe interpretar que hay una línea divisoria entre la película The Other Boleyn Girl y Poseidón y, por ende, determinar que esta última no está en cartelera. Asimismo, debe relacionar el título que se encuentra por debajo de la película y concluir que Poseidón no sólo no está en cartelera sino que es la película más votada. Este análisis, que es tan simple para el ojo humano quien lo resuelve en cuestión de milisegundos, es algo realmente complicado de deducir automáticamente por una computadora. Tal vez sea necesario que el humano ayude en parte a la máquina a resolver estos problemas. En la siguiente sección veremos técnicas de extracción donde el humano juega un rol importante a la hora de decirle a la máquina qué, de dónde y qué significa los datos que extrae. 26 Daniel Fernández 2.5. TESIS DE GRADO Web Scraping Las páginas Web están codificadas en una estructura de tipo árbol para representar la información pero los datos relevantes están mezclados con otros de distribución, posicionamiento, decoración, navegación y, a veces, formato. Web scraping es una técnica de ingeniería inversa de una página HTML en la cual la idea es tomar esa información desordenada y con ayuda previa suministrada (por un humano) lograr estructurarla en un formato que sea entendible por una aplicación. Figura 3. Estructuración de la información mediante un scraper. 27 Daniel Fernández TESIS DE GRADO Para que una aplicación de Web scraping pueda identificar cuales son los datos relevantes en una página, necesita que un humano le provea de cierta información previa. Básicamente le debe especificar que información buscar, como encontrarla, cuales son los patrones repetitivos y donde almacenar los datos extraídos. Por ejemplo, si se quiere extraer los nombres de las películas en cartelera en el ejemplo de la figura 2, el usuario le indicaría a la aplicación de Web scraping que extraiga los textos con formato en negrita y subrayados que se encuentran en la primera tabla HTML y no en la segunda donde se muestra la película más votada. Con esta información, la aplicación puede extraer diariamente todas las películas en carteleras porque a pesar de que los datos de la página se modifican, la estructura es siempre la misma y, por ende, el patrón de extracción también. La información que suministra el humano puede codificarse directamente en la aplicación de Web scraping o ser suministrada mediante una interfaz determinada previamente a comenzar la extracción. No importa que modo se utilice sino que antes de comenzar el scraping de la página HTML, la aplicación sepa que información extraer y como encontrarla. La misma no debe toparse con sorpresas ni ambigüedades como en el procesamiento del lenguaje natural ya que no las sabe resolver. Cabe destacar que Web scraping difiere de screen scraping en que un sitio Web no es una pantalla visible sino un contenido basado en HTML y JavaScript con una interfaz gráfica por arriba. Por ende, Web scraping no consiste en trabajar en la interfaz visual como screen scraping, sino en la estructura de objetos por debajo (DOM, Document Object Model) del HTML y JavaScript. Web scraping también difiere de screen scraping en que este último ocurre muchas veces para la misma pantalla dinámica, mientras que Web scraping ocurre una sola vez por página dinámica para muchas diferentes páginas estáticas. Probablemente la técnica más común y tradicionalmente utilizada para Web scraping es utilizar expresiones regulares que coincidan con los contenidos que uno quiere y poder extraerlos de manera estructurada. Además de expresiones regulares, uno puede usar código escrito en lenguajes más avanzados (JAVA o ASP NET) para parsear los largos pedazos de texto. Se analizarán algunas de las aplicaciones más conocidas de Web scraping en la Web actual: Dapper [WEB-2] y Yahoo! Pipes [WEB-3]. 28 Daniel Fernández 2.5.1. TESIS DE GRADO Dapper Dapper es un servicio Web gratuito que sirve para extraer y darle el formato que se quiera a cualquier dato de la Web. Dapper permite crear un “dapp” (que es como un repositorio de datos) para cualquier sitio sin necesidad de programar nada. Dicho dapp contiene la definición de qué tipo de información se quiere extraer. Por ejemplo, se puede utilizar para extraer información de una página de autos. Dapper va a utilizar el dapp para saber qué contenidos debe extraer como, por ejemplo, el modelo del auto, el fabricante, una imagen, etc. Dapper extrae la información del sitio en cualquier momento. La página de la cual Dapper extrae el contenido puede ser modificada en cualquier momento simplemente suministrándole a Dapper una nueva URL que debe contener la misma estructura que la original. También es posible programar Dapper para que automáticamente procese con el dapp muchas páginas de a una por vez y extraiga los datos relevantes. Dapper funciona como un navegador Web que permite ir marcando los textos y enlaces que más le interesen al usuario de un sitio determinado. Asimismo, permite enlazar uno o más dapps juntos para armar un resultado más complejo. Por ejemplo, se puede enlazar la salida de un dapp a otro dapp sin necesidad de programar nada. No solamente es posible crear dapps, sino también utilizar otros ya creados por diferentes usuarios. Para ello se debe elegir el dapp y luego el formato en el que se desee obtener la información. El contenido que obtuvo el dapp será transformado al formato seleccionado. Por ejemplo, si se quiere obtener un resultado RSS con los datos de un sitio Web de noticias y sabemos que existe un dapp asociado al sitio, simplemente se puede seleccionar el dapp y luego la salida RSS. La información extraída por cualquier dapp se puede transformar a varios formatos; RSS Feed, Flash Widget, Google Gadget, XML, JSON, XSL, HTML, email y otros. Para darle cierto dinamismo al dapp, se le pueden especificar variables de entrada. Las mismas se asocian a cajas de texto de la página en la cual trabaja el dapp. Una vez que se ingresa la variable, se obtienen los resultados en el formato especificado. Por ejemplo, si se usa un dapp que devuelve los resultados de OneWorld.net, el mismo recibe como variable la palabra que se desee buscar y la utiliza de la misma manera que si una persona lo hiciese ingresándola en la caja de texto de búsqueda de OneWorld.net. Ver figura 4 y 5. 29 Daniel Fernández TESIS DE GRADO Figura 4: Resultado en OneWorld.net luego de ingresar en la búsqueda la palabra “semantic”. 30 Daniel Fernández TESIS DE GRADO Figura 5: Resultado luego de ingresar la palabra “semantic” al dapp que extrae los resultados de OneWorld.net. Al tener la posibilidad de indicar qué datos extraer y de qué sector de la página, se puede asociar los mismos a un significado determinado. Si se extrae el título de una película dicho dato se puede almacenar bajo la etiqueta “título de película” aplicándole un significado que una aplicación puede luego entender. En resumen, Dapper es una solución para Web scraping que permite extraer información de cualquier página y estructurarla bajo ciertas etiquetas semánticas. 31 Daniel Fernández 2.5.2. TESIS DE GRADO Yahoo! Pipes Pipes se define como herramienta de composición para agregar, manipular y mezclar contenidos de la Web. Como los famosos tubos de Linux, esta solución permite combinar comandos simples y obtener la salida según los requerimientos del usuario. Por ejemplo, se pueden combinar varios feeds en uno sólo, luego ordenarlo, filtrar los datos que se quieran y utilizar servicios de terceros para traducirlo. La salida será finalmente un RSS feed o JSON. Un ejemplo sencillo de cómo utilizar un pipe sería mostrar el resultado de un feed. Aunque no tiene utilidad alguna, sirve para explicar el modo en que trabaja Pipes. Para este ejemplo, se debe seleccionar como parámetro de entrada un feed y automáticamente se agrega como defecto la salida del tubo. Ver figura 6. Figura 6. Creación de un pipe mediante Yahoo! Pipes. En cambio, si se desea hacer un trabajo más específico sobre la salida de datos, la aplicación permite asociarle metadatos semánticos. 32 Daniel Fernández TESIS DE GRADO Figura 7. Resultado de la información estructurada generada por un pipe. La entrada del pipe puede no sólo ser de un feed RSS sino también se pueden obtener datos de fotos de Flickr, del buscador de Yahoo!, del buscador Google Base y otras fuentes. Al igual que Dapper, permite entradas de usuario lo que dinamiza el pipe. Continuando con la comparación entre Dapper y Pipes, este último tiene la ventaja de poseer como herramienta distintos operadores para filtrar pipes, unirlos, separarlos, etc. Sin embargo, como desventaja no permite procesar los datos de cualquier página de la Web, sino que sus entradas son limitadas. En resumen, Pipes es una herramienta Web que permite obtener distintos contenidos, manipularlos y transformarlos en uno nuevo de forma que su significado lo pueda entender una aplicación. Ofrece una interfaz intuitiva y amigable para el usuario. Sin embargo, como las fuentes de donde puede leer datos un pipe es limitada, el uso más común que ha adoptado esta herramienta es combinar, mezclar, filtrar y rearmar RSS feeds. 33 Daniel Fernández 2.6. TESIS DE GRADO Aproximación top-down Habiendo analizado las técnicas de procesamiento del lenguaje natural y Web scraping, se puede ver que ambas intentan extraer los datos de la Web tal como se encuentran almacenados para luego poder interpretarlos o asociarlos a un significado. Este camino, donde se trata de procesar los datos tal cual se encuentran actualmente, se lo conoce como aproximación “top-down” porque el trabajo comienza desde arriba, mejorando los sistemas de extracción y hacen su camino hacia abajo hasta interpretar todos los datos de las páginas Web sin necesidad de modificarlos. El camino top-down apunta su mirada y esfuerzo a mejorar los sistemas automáticos que interpretan la información de la Web. Sus seguidores afirman que si un humano puede entender la información de un sitio Web es que su significado está implícito en él y, por lo tanto, puede ser interpretado automáticamente por una máquina. El trabajo debe concentrarse en hacer más inteligentes los agentes automáticos (spiders, robots, scraps, etc.) y no en modificar los datos de las páginas Web. El camino top-down se vale de información preprogramada, conceptos y técnicas como el procesamiento del lenguaje natural. A veces es necesaria la intervención humana que guíe o corrija el proceso, pero las aplicaciones que opten por este camino no va a ser van a necesitar que se modifique o agregue información semántica a las páginas Web existentes. El procesamiento del lenguaje natural por lo general no requiere de ayuda humana y con conocimiento previo logra inferir nuevo conocimiento a partir de los datos extraídos. En cambio, la técnica de Web scraping necesita de un humano que no sólo le diga de donde extraer los datos sino también a qué significado se asocian los mismos. No hay un procesamiento inteligente de la información extraída. Al depender de un humano para entender el significado de los datos y su ubicación, se torna imposible mediante Web scraping procesar los billones de documentos de la Web en su totalidad, lo que significa que dicha técnica es viable para procesar sólo una porción de los mismos. Mientras que el procesamiento del lenguaje natural, al trabajar de forma automática, permitiría procesar todos los documentos de la Web si se resolviesen sus problemas actuales. Además, Web scraping tiene la desventaja de que si cambia la página original, hay una gran probabilidad que se tenga que cambiar la forma de extraer dicha información. En cambio el PLN, puede automáticamente procesar los cambios e incluso aprender de los mismos. Lamentablemente, el procesamiento del lenguaje natural está lejos de cumplir sus objetivos en la extracción del significado de los datos de la Web. Se deben resolver no sólo las dificultades propias del lenguaje natural, sino también los significados ocultos asociados a la ubicación gráfica de los datos en las páginas y a los datos multimedia que éstas contienen. En este punto, Web Scraping no tiene inconvenientes porque el usuario entiende la estructura de la página indicando como es la distribución de los datos y que significa cada uno para poder armar el patrón repetitivo. 34 Daniel Fernández TESIS DE GRADO Se puede concluir que la Web es un entorno complejo donde no se ha encontrado un camino top-down óptimo y aceptable para extraer el significado de sus datos respetando el formato en que se encuentran. Si se quiere tener una Web en la cual las máquinas entiendan el significado de sus datos, tal vez sea necesario modificar la forma en que los mismos se guardan. 35 Daniel Fernández 2.7. TESIS DE GRADO Nueva aproximación: bottom-up Algunos expertos opinan que es posible mantener los datos como se encuentran almacenados actualmente en la Web y se debe trabajar más en los sistemas inteligentes que los parsean e interpretan. Es el concepto que define al camino top-down explicado anteriormente. Mientras que otros expertos optan por modificar los datos de la Web agregándole información que explique su significado. Este camino opuesto que consiste en cargar datos semánticos en la Web es conocido como bottom-up. Figura 8. Distintas aproximaciones para estructurar la información de la Web. El acercamiento bottom-up comienza desde abajo, modificando el contenido de las páginas y arma su camino hacia arriba hasta obtener procesos que logren interpretar el significado de dichas páginas. Por lo general, esta técnica se basa en agregar metadatos semánticos a los sitios Web existentes para facilitar el procesamiento de los mismos. Estos metadatos pueden estar en las mismas páginas de los sitios o en cualquier otro objeto de la Web. Sin importar su ubicación, generalmente cumplen con un formato reconocible y lo suficientemente descriptible para poder darle significado a la página. A diferencia de top-down, en el camino bottom-up la carga de datos juega un rol muy importante porque sin ella no es posible extraer la semántica de los datos. El primer paso y tal vez el más difícil es poblar la Web de datos semánticos para luego poder continuar con el segundo, extraerlos automáticamente. Una técnica que pueden adoptar algunos sitios donde el 36 Daniel Fernández TESIS DE GRADO usuario tiene un rol importante en la carga de datos (como por ejemplo Wikipedia) es facilitar una interfaz que los obligue a ingresar los datos con su semántica implícita de manera de poder generar automáticamente los metadatos semánticos asociados a dicha información. Los opositores al camino bottom-up sostienen que no va a funcionar porque los sitios Web van permanecer con los datos actuales sin ninguna modificación o agregado. Su fundamento se basa en que sus administradores no van a querer reescribirlos para compartir información semántica si no hay aplicaciones que haciendo uso de dicha información les generen beneficios (por ejemplo, buscadores de uso global). Por otro lado, sustentan que nadie va a desarrollar una aplicación que procese los datos semánticos si son pocos los sitios que los contengan. Este problema es equivalente al que se conoce vulgarmente como “el huevo y la gallina”. Es decir que debido a que la mayoría de los sitios actuales no poseen información semántica, son escasas las aplicaciones que hacen uso de ella; y como son pocas las aplicaciones que hacen uso de la información semántica, son pocos los sitios actuales que la agregan. Hay que tener en cuenta que tanto reformar un sitio Web como desarrollar una aplicación semántica requiere un gran costo no sólo monetario sino también de tiempo. Sin embargo, en la actualidad el camino bottom-up está obteniendo más seguidores ya que la aproximación top-down requiere de una tecnología que estamos lejos de perfeccionar todavía. No hay una solución a corto plazo ni se puede demostrar que alguna vez la va a haber. Mientras que el camino bottom-up enfrenta problemas con solución posible como son el tiempo y el dinero. En consecuencia, se concluye que es más viable el camino bottom-up y en el próximo capítulo se estudiarán los metadatos y las tecnologías que los usan. 37 Daniel Fernández 2.8. TESIS DE GRADO Resumen investigación En el presente capítulo, se llegó a las siguientes conclusiones: 1. En la actualidad, la mayoría de los datos de la Web están almacenados de manera desestructurada y carecen de información semántica por lo que no se los puede interpretar automáticamente. 2. Si las máquinas lograsen comprender el significado de los datos de la Web, entonces podrían prestar mejores servicios y reducir la cantidad de trabajo de las personas. 3. El procesamiento del lenguaje natural hace un muy buen trabajo interpretando automáticamente los datos pero se topa con problemas que actualmente está lejos de solucionar. Entre ellos, el contexto de una frase es el más difícil de resolver. 4. La técnica de Web scraping también logra extraer datos de la Web de manera automática sin importar la distribución de los objetos en las páginas. Sin embargo, necesita intervención humana, por lo que es aplicable a dominios particulares pero no a la Web en su completitud. 5. Las técnicas que buscan interpretar el significado de los datos de la Web sin modificar la forma en que se encuentran almacenados pertenecen al camino conocido como top-down. Opuestamente, existe otro camino más viable conocido como bottom-up que busca agregar metadatos semánticos para facilitar la tarea de interpretación automática de los datos. 38 Daniel Fernández TESIS DE GRADO Capítulo 3: Los metadatos Explicadas en capítulos anteriores las dificultades que existen en extraer el significado de la información tal cual se encuentra almacenada actualmente en la Web, en el capítulo tres se presentan alternativas que optan por modificar el contenido de las páginas Web agregando metadatos y facilitando la tarea a los agentes de extracción. Asimismo, se explica el concepto de metadatos y se analiza la tecnología más conocida que hace uso de ellos llamada Web Semántica. Como opción paralela y en un contexto más específico se introducen los microformatos. Al final del capítulo, se remarcan las características más importantes de cada tecnología y cual se va a implementar en la vigente tesis. 39 Daniel Fernández 3.1. TESIS DE GRADO Los datos sobre los datos La aproximación bottom-up consiste en agregar metadatos a los sitios Web para poder darle significado a los datos. De esta manera, los agentes automáticos pueden procesar los metadatos semánticos e interpretar mejor la información que contiene la Web. Los metadatos representan datos estructurados sobre los datos. Son información descriptiva sobre un objeto o recurso tanto si éste existe físicamente como no. Permiten describir, identificar, localizar, valorar y administrar los objetos descriptos. No siempre es sencillo establecer una diferenciación clara entre datos y metadatos. Por ejemplo, una palabra como “edad” es un dato, pero también puede ser un metadato si se encuentra adjunto a otro dato como “15” ya que describe que ese número no es ni una fecha, ni una altura, ni una distancia sino que es una edad. En muchas ocasiones, los datos son tanto "datos" como "metadatos". Por ejemplo, el título de un texto cumple el rol de dato al ser parte del texto y a la vez el rol de metadato al ser un dato referente al texto. Dado que los metadatos son datos en sí mismos, existe la posibilidad de definir metadatos sobre metadatos. A pesar de que esto puede parecer innecesario, se verá más adelante que los metadatos sobre metadatos pueden llegar a ser de gran utilidad. Los metadatos pueden ser incluidos en la página Web por el mismo administrador, por los usuarios a través de una interfaz o pueden ser generados por sistemas de agrupación de información. No importa como sean ingresados los metadatos, sino que sirvan para ser interpretados por las máquinas; o sea, los metadatos deben utilizar un lenguaje adecuado para las máquinas e idealmente respetar todos una misma sintaxis y formato. Hay varias soluciones propuestas que se rigen por el camino bottom-up. La más importante y más completa es la propuesta por Tim Berners-Lee, conocida como Web Semántica [Berners-Lee, 2001]. La idea es poblar la Web con una red de nodos tipificados e interconectados mediante clases y relaciones definidas por una ontología compartida por distintos autores. Para lograrlo, la Web Semántica define un conjunto de componentes que permiten almacenar la información semántica. Los principales componentes de la Web Semántica son los metalenguajes y estándares de representación XML, XML Schema, RDF, RDF Schema y OWL. La solución de Berners-Lee mantiene los principios que han hecho un éxito de la Web actual, como son los principios de descentralización, compatibilidad, flexibilidad y máxima facilidad Se analizará también una solución con un dominio más específico presentada por Microformats [WEB-7] que obtuvo mucha aceptación en la comunidad Web durante el último tiempo. Los microformatos triunfan en muchos aspectos donde la Web Semántica tiene problemas. No intentan abastecer la visión semántica completa sino que ofrecen una solución más acotada permitiendo marcar semánticamente los datos más frecuentes en algunas páginas Web. La sintaxis es simple, fácil de entender y totalmente integrada al actual HTML. 40 Daniel Fernández TESIS DE GRADO Ambas soluciones comparten un mismo camino que es utilizar la aproximación bottom-up para poblar la Web con datos semánticos. Cada una posee ventajas y desventajas, con características que hacen que su nivel de aceptación esté creciendo o decreciendo con el tiempo. Se estudiarán y compararán las soluciones remarcando las mejores características de cada una. Cabe destacar que existen otras soluciones con dominios aún más acotados que no se analizarán en la vigente tesis. Entre ellas está Semantic Wiki, una idea que tiene como objetivo darle significado semántico a los datos de la Wikipedia estructurándolos con metadatos y generando vínculos entre los mismos. 41 Daniel Fernández 3.2. TESIS DE GRADO Web Semántica La Web Semántica fue pensada por Tim Berners-Lee, inventor de la Web, las URIs, el protocolo HTTP y el lenguaje HTML. Existe un grupo de personas que pertenecen a la W3C (del ingles, World Wide Web consortium) [WEB-4] y se dedican a mejorar, extender y estandarizar dicho sistema y otros lenguajes, publicaciones y herramientas que ya han sido desarrolladas. La W3C define a la Web Semántica como “una Web extendida, dotada de mayor significado en la que cualquier usuario en Internet podrá encontrar respuestas a sus preguntas de forma más rápida y sencilla gracias a una información mejor definida.”. En otras palabras es una mezcla de información enlazada de manera tal que puede ser procesada automáticamente por las maquinas en una escala global. La pregunta es cómo lograr una manera eficiente de representar la información en la Web la cual permita ser localizada y accedida tanto por usuarios interesados como por aplicaciones de forma automática. Para ello, en la Web Semántica, toda la información debe ser expresada como declaraciones sobre recursos. Por ejemplo “el libro If Tomorrow Comes fue escrito por Sidney Sheldon” o “esta página fue creada por X persona”. Los recursos son identificados mediante una URI (Uniform Resource Identifier) y el modelo que representa sus relaciones es un lenguaje conocido como RDF (Resource Description Framework). RDF se basa en la idea de convertir las declaraciones de los recursos en expresiones con la forma sujetopredicado-objeto (más conocidas como tripletes). La Web Semántica a su vez presenta un lenguaje de ontología llamado OWL (Web Ontology Language). Este lenguaje nos permite clasificar la información y extender la funcionalidad de la Web Semántica agregando nuevas clases y propiedades para describir los recursos. Otras capas son las de lógica, confianza, firmas digitales, etc. En este capítulo se analizan las capas de la Web Semántica y su situación en la Web actual. 42 Daniel Fernández 3.2.1. TESIS DE GRADO Las diferentes Capas A continuación se explican brevemente las diferentes capas que componen la Web Semántica (ver Figura 9). Confianza Prueba Lógica OWL RDF + RDF Schema XML + NS + XML Schema Unicode URI Figura 9. Capas de la Web Semántica. Unicode (Universal Code) Unicode es una codificación del texto que permite utilizar los símbolos de diferentes idiomas. Esto permite expresar información en la Web Semántica en cualquier idioma. URI (Uniform Resource Identifier) URI es el acrónimo de Uniform Resource Identifier, o en castellano, Identificador Uniforme de Recursos. Es un poco confusa la diferencia entre URI y URL, por lo que por ahora vamos a decir que un URL es un recurso que puede ser accedido vía Internet. XML (Extensible Markup Language), NS (Namespace) y XML Schema XML proporciona una sintaxis superficial para documentos estructurados, pero no impone restricciones semánticas en el significado de estos documentos.XML Schema es un lenguaje que se utiliza para restringir la estructura de los documentos XML y para ampliar XML con tipos de datos. RDF (Resource Description Framework) 43 Daniel Fernández TESIS DE GRADO RDF es un modelo de datos para objetos ("recursos") y relaciones entre ellos, proporcionando una semántica simple para éste. Este tipo de modelo de datos puede ser representado en una sintaxis XML. RDF Schema RDF Schema es un vocabulario utilizado para describir propiedades y clases de recursos RDF, con una semántica para jerarquías de generalización de dichas propiedades y clases. OWL (Web Ontology Language) OWL añade más vocabulario para describir propiedades y clases permitiendo definir relaciones entre clases (por ejemplo, desunión), cardinalidad (por ejemplo, "uno exacto"), igualdad, escritura de propiedades más rica, características de propiedades (por ejemplo, simetría), y clases enumeradas. Lógica, Prueba y Confianza Estas capas hacen usos de los datos de las capas inferiores para calificar los datos relevantes, aplicar lógica y deducir nueva información. A continuación se detallan cada una de las capas. Cabe destacar que las capas de lógica, prueba y confianza no han sido desarrolladas en un nivel tan intenso como las capas inferiores debido a que permanecen en un estado de boceto. 3.2.2. Unicode Antes de unicode, había diferentes sistemas de codificación de caracteres para cada idioma, cada uno usando los mismos números (0-255) para representar los caracteres de ese lenguaje. Algunos (como el ruso) tienen varios estándares incompatibles que dicen cómo representar los mismos caracteres; otros idiomas (como el japonés) tienen tantos caracteres que precisan más de un byte. Intercambiar documentos entre estos sistemas era difícil porque no había manera de que un computador supiera con certeza qué esquema de codificación de caracteres había usado el autor del documento; el computador sólo veía números, y los números pueden significar muchas cosas. Almacenar estos documentos en el mismo sitio; implicaba almacenar el tipo de codificación junto con cada texto. Para documentos multilingües, con caracteres de varios idiomas en el mismo documento había que utilizar códigos de escape para cambiar de modos (modo ruso, luego modo Mac Greek, etc.). Para resolver estos problemas se diseñó unicode. 44 Daniel Fernández TESIS DE GRADO Unicode representa cada carácter como un número de 2 bytes, de 0 a 65535. Cada número de 2 bytes representa un único carácter utilizado en al menos un idioma del mundo (los caracteres que se usan en más de un idioma tienen el mismo código numérico). Hay exactamente un número por carácter, y exactamente un carácter por número. Los datos de unicode nunca son ambiguos. Sigue existiendo el problema de todos esos sistemas de codificación anticuados. Por ejemplo, el ASCII de 7 bits que almacena los caracteres ingleses como números del 0 al 127 (65 es la “A”, mayúscula, 97 es la “a” minúscula, etc.). El inglés tiene un alfabeto sencillo, así que se puede expresar en ASCII de 7 bits. Los idiomas europeos occidentales como el francés, español y alemán usan todos un sistema llamado ISO-8859-1 (también conocido como “latin-1”), que usa los caracteres del ASCII de 7 bits del 0 al 127, pero lo extiende en el rango 128-255 para tener caracteres como ñ (241) y ü (252). Para respetar las viejas codificaciones, unicode usa los mismos caracteres que el ASCII de 7 bits para los números del 0 al 127, y los mismos caracteres que ISO-8859-1 del 128 al 255, y de ahí en adelante se extiende para otros lenguajes que usan el resto de los números, del 256 al 65535. 3.2.3. URI Una URI es un identificador Web formado por una cadena de caracteres que identifica inequívocamente un recurso en la Web. No debe confundirse con una URL, la cual es un tipo de URI cuyos caracteres identifican un recurso en la Web mediante la representación de su mecanismo de acceso. Una URI se puede referir como cualquier cosa que necesita ser referenciada como objetos accesibles por la red (un documento electrónico, una imagen, un servicio), cosas que no son accesibles por la red (una persona, una empresa) y conceptos abstractos que no existen físicamente. Su definición formal se encuentra en el RFC 2396, titulado Uniform Resource Identifiers: Generic Syntax. La URI puede ser clasificada como un localizador (URL) o como un nombre (URN) o como la combinación de ambos. Un URN (Uniform Resource Name) es como el nombre de una persona y sirve para tratar sobre un recurso sin expresar su ubicación o como acceder a él. Mientras que un URL (Uniform Resource Locator) se asemeja a una dirección de un lugar y permite actuar sobre dicho recurso porque describe el método de acceso (en cierta manera, nos indica su localización). El formato del URL es: <protocol>:// <host> [:<port>] [<path> [? <query>]] Ejemplo: http://www.google.com:80/ig Mientras que el formato de URN es: urn:<namespace>:<string> 45 Daniel Fernández TESIS DE GRADO Ejemplo: urn:isbn:90-365-17273 Ambos son URIs. Otros ejemplos de URIs serían: http://ejemplo/recurso.txt#seccion01 http://ejemplo/de/uri/recurso.txt /ejemplo/de/uri/recurso.txt de/uri/recurso.txt ../../../recurso.txt recurso.txt /recurso.txt#seccion01 #seccion01 En la Web Semántica las URIs son las encargadas de identificar cualquier tipo de objeto, inclusive las propiedades. Ya se verá más adelante que la ventaja de que las propiedades también sean identificadas con URIs, es que pueden ser tratadas como recursos y por ende agregar información adicional de las mismas simplemente mediante nuevas afirmaciones con la URI de la propiedad como sujeto. 3.2.4. XML, NS y XML Schema La Web Semántica utiliza el lenguaje XML como método para representar y transportar la información. Es importante tener en cuenta que XML no es un lenguaje de etiquetado sino que se trata de un lenguaje que establece un conjunto de reglas que permiten la creación de lenguajes de etiquetado. XML define, entre otras cosas, las normas a seguir sobre cómo se deben combinar las cadenas de caracteres y cómo se han de especificar las propiedades de los elementos. Algunas ventajas de XML son: Es un estándar. Es ideal para manejar datos estructurados. Las máquinas pueden fácilmente generar XML, leerlo y asegurarse que la estructura de datos no sea ambigua. Es legible por un humano Cualquier aplicación en cualquier plataforma puede procesar XML. Es accesible y reutilizable, porque la flexibilidad de las etiquetas de XML pueden utilizarse sin tener que amoldarse a reglas específicas de un fabricante, como es el caso de HTML. Es extensible. Uno puede crear sus propias etiquetas (o utilizar las creadas por otros) bajo un dominio propio y con los atributos necesarios. Su licencia es libre. Por otro lado, XML posee “namespace” o espacio de nombres que le permiten solucionar el problema de la disparidad de terminologías entre las comunidades Web. Los namespaces permiten particionar el conjunto de todos 46 Daniel Fernández TESIS DE GRADO los nombres posibles, de forma que se pueda definir a qué zona de ese espacio corresponde una etiqueta. De esta forma, etiquetas con el mismo nombre, pero definidas por dos autores diferentes, pueden diferenciarse en el espacio de nombres. El espacio de nombres no es esencial en todos los documentos, pero resulta útil cuando se usan etiquetas procedentes de diferentes lugares o etiquetas que se quieren procesar de forma diferente. El especio de nombres de una etiqueta se indica con un prefijo y :, como en este caso: <namespace:etiqueta>. Por ejemplo, se usan espacios de nombres en el siguiente documento XML: <?xml version="1.0" encoding="UTF-8"?> <mv:persona xmlns:mv="http://www.ejemplo.com/mivocabulario"> <mv:direccion> <mv:calle>Perú</mv:calle> <mv:número>235</mv:número> </mv:direccion> </mv:persona> Conviene recordar que el prefijo de un espacio de nombres es totalmente arbitrario; lo que define un espacio de nombres es, en realidad, el URI. Lo único que se requiere de este URI es que sea único en el documento. Finalmente, esta capa hace uso del estándar XML Schema cuyo propósito es definir la estructura de los documentos XML que estén asignados a tal esquema y los tipos de datos válidos para cada elemento y atributo. En este sentido, las posibilidades de control sobre la estructura y los tipos de datos son muy amplias. Al restringir el contenido de los ficheros XML, es posible intercambiar información entre aplicaciones con gran seguridad y disminuye el trabajo de comprobar la estructura de los ficheros y el tipo de los datos. XML Schema se asimila a un DTD en que ambos definen qué elementos puede contener un documento XML cómo están organizados y que atributos y de qué tipo pueden tener sus elementos. Sin embargo, la estructura de tipos de XML Schema es mucho más rica que la de DTD. Un ejemplo de XML Schema es el siguiente: Película.xsd <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Película"> <xsd:complexType> <xsd:sequence> <xsd:element name="Título" type="xsd:string"> <xsd:element name="Directores" type="xsd:string" maxOccurs="5"> <xsd:element name="Sinopsis" type="xsd:string"> 47 Daniel Fernández TESIS DE GRADO </xsd:sequence> <xsd:attribute name="precio" type="xsd:double"> </xsd:complexType> </xsd:element> </xsd:schema> El elemento raíz se llama película y tiene tres hijos y un atributo. Los hijos son Título, Sinopsis que deben aparecer una vez y Directores que puede aparecer de una a cinco veces. El hecho de que estén agrupados en una secuencia indica que los elementos deben aparecer en orden, es decir, primero el Título, luego los Directores y por último la Sinopsis. Los tres elementos son de tipo string. El atributo de libro se llama precio y es de tipo double. Un ejemplo de fichero XML asignado al XML Schema es el siguiente: Matrix.xml <?xml version="1.0" encoding="UTF-8"?> <Libro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Película.xsd" precio="45"> <Título>The Matrix</Título> <Directores>Andy Wachowski</Directores> <Directores>Larry Wachowski</Directores> <Sinopsis> Existen dos realidades: una que consiste en la vida que vivimos cada día, y otra que se encuentra detrás de ella. Una es un sueño. La otra "The Matrix" (La Matriz). ¿Has tenido alguna vez un sueño del que estuvieras muy seguro de que era real?. Neo, esta buscando desesperadamente la verdad sobre The Matrix, algo de lo que ha oído hablar sólo en susurros, algo misterioso y desconocido. Neo está seguro de que algo tiene un control inimaginable y siniestro sobre su vida. </Sinopsis> </Libro> 48 Daniel Fernández TESIS DE GRADO 3.2.5. RDF RDF es un lenguaje basado en XML originalmente creado en 1999 para modelar los recursos de la Web. Está descripto en una serie de documentos de la W3C conocidos como “recomendaciones”. Los principales documentos que describen RDF son “RDF/XML Syntax Specification (Revised)” [Beckett, 2004] y “RDF Vocabulary Description Language 1.0: RDF Schema” [Brickley et al, 2004]. El primero se focaliza en los aspectos sintácticos, mientras que el segundo trata la definición de vocabularios (generalmente llamados esquemas o schemas en inglés). RDF permite representar información de cualquier recurso que pueda ser identificado en la Web incluyendo los que no pueden ser extraídos de la misma. Algunos ejemplos de estos recursos son: información de productos, descripción de personas, imágenes o documentos electrónicos. RDF se basa en la idea de identificar cualquier cosa en la Web mediante URIs y describir los recursos en términos de propiedades y valores. 3.2.5.1. Afirmaciones RDF Un ejemplo de una afirmación RDF es “Ribas es el creador de flashes.html” y el mismo puede escribirse de la siguiente manera: http://ejemplo.com/flashes.html tienen un creador cuyo valor es Ribas Se puede ver que el ejemplo consta de tres partes: I - La cosa que la afirmación describe: http://ejemplo.com/flashes.html II - Una propiedad específica de la cosa que la afirmación describe: Creador III - El valor de la propiedad para la cosa que la afirmación describe: Ribas Por eso mismo se dice que el elemento base del modelo RDF es el triplete (triple): un recurso (el sujeto) está asociado a otro recurso (el objeto) mediante un tercer recurso (el predicado). 49 Daniel Fernández TESIS DE GRADO Figura 10. Estructura de una afirmación RDF. El sujeto es el recurso, es decir, aquello que se está describiendo. El predicado es la propiedad o relación que se desea establecer acerca del recurso. Por último, el objeto es el valor de la propiedad o el otro recurso con el que se establece la relación. En el ejemplo anterior se tiene: Sujeto: http://ejemplo.com/flashes.html Predicado: Creador Objeto: Ribas El sujeto (recurso) y el predicado (la propiedad) deben estar identificados mediante una URI. En cambio el objeto de una afirmación RDF (el valor de la propiedad) puede ser otro recurso especificado por una URI o puede ser un literal (una cadena simple de caracteres) u otros tipos de datos primitivos definidos por XML. En términos RDF, un literal puede comprender en su contenido marcado XML pero ya no puede valorarse más por un procesador RDF. Existen varias restricciones sintácticas en cómo se puede expresar el marcado en literales. Es posible reescribir la afirmación RDF de la siguiente manera: Sujeto: http://ejemplo.com/flashes.html Predicado: http://purl.org/dc/elements/1.1/creator Objeto: “Ribas” En el ejemplo, el sujeto es una página Web por ende se encuentra identificado por una URL que es una URI. El predicado también está referido por una URI, en este caso una propiedad descripta por el modelo Dublin Core [WEB-5], un modelo de metadatos elaborado y auspiciado por la DCMI (Dublin Core Metadata Initiative). El objeto, en cambio, es una cadena de texto simple o literal. 50 Daniel Fernández TESIS DE GRADO 3.2.5.2. Gráficos RDF Todos los tripletes pueden ser representados en un gráfico. Los gráficos constan de óvalos, arcos y rectángulos. En la figura 11 se puede apreciar un ejemplo de un gráfico RDF. Figura 11. Ejemplo de un gráfico RDF. Este ejemplo representa gráficamente la afirmación RDF expresada anteriormente: Sujeto (Recurso): http://ejemplo.com/flashes.html Predicado (Propiedad): http://purl.org/dc/elements/1.1/creator Objeto (Literal): “Ribas” El gráfico consiste en dos nodos conectados por un único arco. Un nodo está representado por un óvalo y contiene la URI del sujeto (http://ejemplo.com/flashes.html). El otro nodo es un rectángulo porque representa un literal, en este caso el nombre del creador (“Ribas”). El arco que conecta ambos nodos es la propiedad de la afirmación y contiene la URI que la identifica. La dirección de la flecha es relevante porque el arco siempre empieza en el sujeto y apunta hacia el objeto de la afirmación. Si se deseara expresar más detalle sobre el creador, por ejemplo su email, se crearía la afirmación de la siguiente manera: El individuo cuyo nombre es Ribas y su correo electrónico [email protected], es el creador de http://ejemplo.com/flashes.html. El creador se convierte ahora en una estructura más compleja que contiene un nombre y un email. En RDF tal entidad estructurada se representa como otro recurso. Sin embargo, la afirmación no proporciona un nombre o URI a dicho recurso sino que el mismo es anónimo. Cuando un recurso es anónimo se lo grafica mediante un óvalo vacío como podemos ver en la figura 12. 51 Daniel Fernández TESIS DE GRADO Figura 12. Ejemplo de un gráfico RDF con un recurso anónimo. En el caso de que el creador tenga un identificador único que le asignó la organización donde trabaja con su número de empleado (en este caso una URI, http://organizacionejemplo.com/23164), la afirmación RDF se puede escribir de la siguiente manera: El individuo identificado por http://organizacionejemplo.com/23164, que tiene un nombre que es Ribas y un correo electrónico que es [email protected], es el creador de http://ejemplo.com/flashes.html. El gráfico correspondiente es el de la figura 13. Figura 13. Ejemplo de un gráfico RDF con un recurso identificado por una URI. 52 Daniel Fernández TESIS DE GRADO Como el recurso no es más anónimo, el nodo vacío pasa a ser un nodo con una URI que lo identifica. En este caso se representó el ejemplo completo en un solo gráfico, pero podría dividirse en dos afirmaciones distintas (cada una con su gráfico correspondiente). Las afirmaciones serían: El individuo identificado por http://organizacionejemplo.com/23164 tiene un nombre que es Ribas y un correo electrónico que es [email protected]. El individuo identificado por http://organizacionejemplo.com/23164 es el creador de http://ejemplo.com/flashes.html. No importa si se expresa en conjunto o divida en partes, el resultado semántico de la afirmación es el mismo. 3.2.5.3. Etiquetas RDF RDF define un conjunto de etiquetas XML. Por ejemplo, algunas de ellas son: rdf:RDF Es la forma de marcar el principio y el final de un documento RDF. Es opcional siempre y cuando se especifique el sistema de trabajo para la aplicación en concreto. rdf:Description Description agrupa un conjunto de afirmaciones sobre un recurso. Los elementos hijos son todas las propiedades del recurso que se está describiendo. rdf:Atl Alternative se usa para especificar una lista de recursos que representan, de forma alternativa, el/los valor/es de la propiedad que se está utilizando. rdf:Bag Un bag es una lista de recursos o literales sin orden. Se permiten valores duplicados y no hay diferencias en cuanto al orden en que aparecen los recursos. rdf:seq Una secuencia es una lista ordenada de recursos o literales. Una secuencia es usada para declarar un conjunto en el cual el orden de aparición de los miembros es importante. Se permiten valores duplicados. 53 Daniel Fernández TESIS DE GRADO 3.2.5.4. Ejemplos RDF La afirmación anteriormente nombrada que se escribe en lenguaje natural: como http://ejemplo.com/flashes.html tienen un creador cuyo valor es Ribas puede representarse en RDF/XML de la siguiente manera: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://ejemplo.com/flashes.html"> <dc:creator>Ribas</dc:creator> </rdf:Description> </rdf:RDF> La afirmación más compleja escrita como: El individuo identificado por http://organizacionejemplo.com/23164, que tiene un nombre que es Ribas y un correo electrónico que es [email protected], es el creador de http://ejemplo.com/flashes.html. se representa de la siguiente manera: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:card="http://persona.org/card/1.3/"> <rdf:Description rdf:about="http://ejemplo.com/flashes.html"> <dc:creator> <rdf:Description rdfs:resource="http://organizacionejemplo.com/231 64"> <card:name>Ribas</card:name> <card:email>[email protected]</card:email> </rdf:Description > </dc:creator> </rdf:Description> </rdf:RDF> También puede dividirse en dos partes: 54 Daniel Fernández TESIS DE GRADO <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:card="http://persona.org/card/1.3/"> <rdf:Description rdf:about="http://ejemplo.com/flashes.html"> <dc:creator rdfs:resource="http://organizacionejemplo.com/23164"/> </rdf:Description> <rdf:Description rdfs:resource="http://organizacionejemplo.com/23164"> <card:name>Ribas</card:name> <card:email>[email protected]</card:email> </rdf:Description > </rdf:RDF> Un ejemplo un poco más completo sería la descripción de las películas de la figura 2: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:pel="http://www.pelej.com/vocabulario"> <rdf:Description rdf:about="http://www.pelej.com/peliculas/#pel07153"> <pel:titulo>Leatherheads</pel:titulo> <pel:fecha>04/02/2008</pel:fecha> <pel:descripcion>El título de este trabajo dirigido por el mismísimo George Clooney lo dice todo. En Leatherheads se da... </pel:descripcion> </rdf:Description> <rdf:Description rdf:about="http://www.pelej.com/peliculas/#pel07154"> <pel:titulo>Dragon Ball Z: Bardok Trunks Double Feature </pel:titulo> <pel:fecha>04/02/2008</pel:fecha> <pel:descripcion>La serie Dragon Ball Z una vez más destaca en el plano cinematográfico con una producción en alta... </pel:descripcion> </rdf:Description> <rdf:Description rdf:about="http://www.pelej.com/peliculas/#pel07155"> <pel:titulo>You Don't Mess With the Zohan</pel:titulo> <pel:fecha>04/02/2008</pel:fecha> <pel:descripcion>Un nuevo y excelente trabajo de Adam Sandler, y con una participación especial de la cantante Mariah Carey. En... 55 Daniel Fernández TESIS DE GRADO </pel:descripcion> </rdf:Description> <rdf:Description rdf:about="http://www.pelej.com/peliculas/#pel07156"> <pel:titulo>The Other Boleyn Girl (película La Otra Chica Boleyn) </pel:titulo> <pel:fecha>02/02/2008</pel:fecha> <pel:descripcion>Natalie Portman y Scarlett Johansson, en los papeles de las hermanas Mary y Anne Boleyn respectivamente, se pelean por... </pel:descripcion> </rdf:Description> <rdf:Description rdf:about="http://www.pelej.com/peliculas/#pel07157"> <pel:titulo>Poseidón</pel:titulo> <pel:fecha>27/07/2006</pel:fecha> <pel:descripcion>Poseidón es Año Nuevo, y la fiesta de fin de año ha dado comienzo en el mar del Atlántico Norte, abordo del crucero... </pel:descripcion> </rdf:Description> <pel:enCartelera> <rdf:Bag> <rdf:li rdf:resource="http://www.pelej.com/peliculas/#pel071 53"> </rdf:li> <rdf:li rdf:resource="http://www.pelej.com/peliculas/#pel071 54"> </rdf:li> <rdf:li rdf:resource="http://www.pelej.com/peliculas/#pel071 55"> </rdf:li> <rdf:li rdf:resource="http://www.pelej.com/peliculas/#pel071 56"> </rdf:li> </rdf:Bag> </pel:enCartelera> <pel:masVotada rdf:resource="http://www.pelej.com/peliculas/#pel07157"/> </rdf:RDF> 56 Daniel Fernández 3.2.6. TESIS DE GRADO RDF Schema RDFS o RDF Schema es un lenguaje extensible de representación del conocimiento que provee los elementos básicos para la descripción de ontologías e intenta estructurar los recursos RDF. En otras palabras, es una extensión semántica definida por la W3C que provee un mecanismo para describir grupos de recursos relacionados y las relaciones entre los recursos. Las descripciones del vocabulario RDF Schema están escritas en RDF utilizando algunos de los términos descriptos anteriormente. Entre otros, RDFS describe los términos de dominio (rdfs:domain) y rango (rdfs:range). En el vocabulario RDF, el sistema de clases y propiedades es similar al tipo de objeto en los lenguajes de programación orientada a objetos como por ejemplo C# o JAVA. Sin embargo, RDF difiere de dichos sistemas en que en lugar de definir una clase en término de sus propiedades, describe las propiedades en términos de las clases del recurso al que aplican. Por ejemplo, se puede definir la propiedad eg:author que tenga un dominio ej:Document y un rango de ej:Person, mientras que un sistema clásico de programación orientada a objetos definiría una clase Documento que tienen un atributo autor cuyo tipo es persona. RDF permite fácilmente que se definan propiedades adicionales en el dominio del documento o en el rango de ej:Persona. Esto se puede hacer sin necesidad de redefinir la descripción original de las clases. Esta posibilidad de extender la descripción de recursos existentes es uno de los principios básicos para que RDF pueda crecer y extenderse a lo largo de la Web. Algunas de las etiquetas definidas por RDF Schema son: rdfs:Resource Todas las cosas que se describan por expresiones RDF se denominan recursos (resources), y se consideran como instances (objetos o instancias específicas de la categoría) de la clase rdfs:Resource. rdfs:Class Este corresponde con el concepto genérico de un tipo o categoría, semejante a la noción de Clase en los lenguajes de programación orientados a objetos tales como Java. Cuando un esquema define una nueva clase, el recurso que representa esa clase debe tener una propiedad rdf:type cuyo valor es el recurso rdfs:Class. Las clases RDF pueden definirse para representar cualquier cosa, como páginas Web, personas, tipos de documentos, bases de datos o conceptos abstractos. rdfs:subClassOf Esta propiedad especifica una relación subconjunto/superconjunto entre clases. La propiedad rdfs:subClassOf es transitiva. Si la clase A es una subclase de otra clase B más amplia, y B es una subclase de C, entonces A es también implícitamente una subclase de C. Sólo los objetos específicos de una categoría de rdfs:Class pueden tener la propiedad rdfs:subClassOf. Una clase puede ser subclase de más de una clase. 57 Daniel Fernández TESIS DE GRADO rdfs:subPropertyOf La propiedad rdfs:subPropertyOf es un objeto específico de una categoría de rdf:Property que se utiliza para especificar que una propiedad es una especialización de otra. Si alguna propiedad P2 es una subPropertyOf de otra propiedad más general P1 y si un recurso A tiene una propiedad P2 con un valor B, esto implica que el recurso A tiene también una propiedad P1 con valor B. rdfs:seeAlso La propiedad rdfs:seeAlso especifica un recurso que podría proporcionar información adicional sobre el recurso. rdfs:domain La propiedad rdfs:domain es una instancia de rdf:Property que especifica el dominio de una propiedad. rdfs:range La propiedad rdfs:range es una instancia de rdf:Property que especifica el rango de una propiedad. 58 Daniel Fernández 3.2.7. TESIS DE GRADO OWL Para que las aplicaciones puedan procesar el contenido de la información en lugar de únicamente representar información para los humanos, la Web Semántica necesita agregar, por encima de la capa RDF, un lenguaje de ontología que permita describir formalmente el significado de la terminología usada en los documentos Web. Las ontologías permiten trabajar con conceptos, en lugar de palabras clave, en los sistemas de recuperación de información. Desde el punto de vista de las fuentes de información, éstas describen el contenido de los repositorios de datos independientemente de la representación sintáctica de los mismos, posibilitando su integración semántica. Se diseña entonces el Lenguaje de Ontología Web (OWL) que forma parte de un conjunto creciente de recomendaciones del W3C relacionadas con la Web Semántica [McGuinness, 2004]. Su fin es interpretar más fácilmente el contenido Web que los mecanismos admitidos por XML, RDF, y RDFS proporcionando vocabulario adicional junto con una semántica formal. Muchas veces se compara OWL con RDF Schema. RDFS es un lenguaje de ontología utilizado para describir propiedades y clases de recursos RDF, con una semántica para jerarquías de generalización de dichas propiedades y clases. Sin embargo, OWL añade más vocabulario para describir propiedades y clases. Por ejemplo relaciones entre clases (unión, desunión), cardinalidad (uno exacto, uno o más), igualdad, características de propiedades (simetría), etc. OWL proporciona tres sublenguajes, cada uno con mayor nivel de expresividad que el anterior, diseñados para ser usados por comunidades específicas de programadores y usuarios Los sublenguajes son: OWL Lite, OWL DL, y OWL Full. Actualmente, hay un gran número de ontologías OWL disponibles en la Web. El gobierno de los EEUU y la Unión Europea han estado invirtiendo en el desarrollo del lenguaje de ontologías Web. Por ejemplo, el programa DAML (DARPA Agent Markup Language) [WEB-6] comenzó oficialmente en Agosto del 2000 con el objetivo de desarrollar un lenguaje y herramientas para la Web Semántica. Su último lenguaje DAML+OIL (OIL proviene de Ontology Inference Layer), uno de los lenguajes predecesores en los que se basó OWL, se está migrando a OWL. 59 Daniel Fernández TESIS DE GRADO 3.2.7.1. Ontología Según Tom Gruber [Gruber, 2003], una ontología es una especificación explícita de una conceptualización. Una conceptualización es una abstracción, una vista simplificada del mundo que queremos representar. Las ontologías son acuerdos, en un contexto social, para cubrir una serie de objetivos. Se crean, entre otras cosas, para: IIIIII- Permitir el intercambio de datos entre programas. Simplificar la unificación (o traducción) representaciones. Facilitar la comunicación entre personas. de distintas Continuando con las definiciones de Gruber, las ontologías tienen los siguientes componentes que servirán para representar el conocimiento de algún dominio: Conceptos: son las ideas básicas que se intentan formalizar. Los conceptos pueden ser clases de objetos, métodos, planes, estrategias, procesos de razonamiento, etc. Relaciones: representan la interacción y enlace entre los conceptos del dominio. Suelen formar la taxonomía del dominio. Por ejemplo: subclase-de, parte-de, parte-exhaustiva-de, conectado-a, etc. Funciones: son un tipo concreto de relación donde se identifica un elemento mediante el cálculo de una función que considera varios elementos de la ontología. Por ejemplo, pueden parecer funciones como categorizar-clase, asignar-fecha, etc. Instancias: se utilizan para representar objetos determinados de un concepto. Axiomas: son teoremas que se declaran sobre relaciones que deben cumplir los elementos de la ontología. Por ejemplo: “Si A y B son de la clase C, entonces A no es subclase de B”, “Para todo A que cumpla la condición X, A es B”, etc. Las ontologías resultan muy útiles para facilitar el razonamiento automático, o sea, sin intervención humana. Partiendo de unas reglas de inferencia, un motor de razonamiento puede usar los datos de las ontologías para inferir conclusiones de ellos. Ver ejemplo de la figura 14. 60 Daniel Fernández TESIS DE GRADO Figura 14. Ejemplo de un razonamiento con reglas de inferencia. 3.2.7.2. Los sublenguajes de OWL OWL tiene tres versiones distintas: OWL Lite, OWL DL y OWL Full. Cada una tiene un poco más de capacidad expresiva que la anterior. La complejidad para la realización de razonadores automáticos en cada una de ellas también es incremental. 3.2.7.2.1. OWL Lite OWL Lite da soporte a aquellos usuarios que primordialmente necesitan una clasificación jerárquica y restricciones simples. Por ejemplo, soporta restricciones cardinales, pero solamente permite valores cardinales de 0 ó 1. Por ende, es más simple proveer herramientas de soporte para OWL Lite. En resumen, OWL Lite tiene una más baja complejidad formal que OWL DL. 3.2.7.2.2. OWL DL OWL DL (su nombre proviene de su correspondencia con la lógica de descripciones) da soporte a aquellos usuarios que quieren la máxima expresividad mientras conservan completamente la computabilidad (todas las conclusiones son garantizadas para ser computables) y resolución (todos los 61 Daniel Fernández TESIS DE GRADO cálculos se resolverán en un tiempo finito). OWL DL incluye todas las construcciones del lenguaje de OWL, pero pueden ser usados sólo bajo ciertas restricciones. Por ejemplo, una clase puede ser una subclase de otras muchas clases pero una clase no puede ser una instancia de otra. 3.2.7.2.3. OWL Full OWL Full da soporte a usuarios que requieren el máximo de expresividad y libertad sintáctica de RDF sin garantías computacionales. Por ejemplo, en OWL Full una clase puede ser tratada simultáneamente como una colección de individuos y como un individuo propiamente dicho. OWL Full permite a una ontología aumentar el significado del vocabulario predefinido (RDF ó OWL). Es poco probable que algún software racional admita por completo el razonamiento para cada característica de OWL Full. Cada uno de estos sublenguajes es una extensión de su predecesor más simple, respecto a lo que puede ser expresado legamente y a la validación de sus conclusiones. El siguiente grupo de relaciones se mantienen, pero las relaciones inversas no se mantienen. IIIIIIIV- Cada ontología legal de OWL Lite es una ontología legal de OWL DL Cada ontología legal de OWL DL es una ontología legal de OWL Full Cada conclusión válida de OWL Lite es una conclusión válida de OWL DL Cada conclusión válida de OWL DL es una conclusión válida de OWL Full OWL Full se puede ver como una extensión de RDFS, mientras que OWL Lite y OWL DL se pueden ver como extensiones de una vista restringida de RDF. Cualquier documento OWL (Lite, DL, Full) es un documento RDF, y cualquier documento RDF es un documento OWL Full pero sólo algunos documentos RDF serán documentos OWL Lite o OWL DL legales. Por esta razón, hay que tener cuidado cuando se desea migrar un documento RDF a OWL. 3.2.7.3. Etiquetas OWL Algunas etiquetas que define el lenguaje OWL son: <owl:allValuesFrom> Exige que todos los valores de esa propiedad sean instancias de la clase indicada (o subclases si estamos en OWL Full). <owl:someValuesFrom> Exige que al menos un valor de esa propiedad sea del tipo indicado. <owl:hasValue> 62 Daniel Fernández TESIS DE GRADO Exige que todos los valores de esa propiedad tengan el valor indicado. La diferencia con allValuesFrom es que en aquella se daba una clase, mientras que en esta se dice el individuo concreto que debe ser. En OWL Lite esta propiedad no se puede usar. <owl:maxCardinality> <owl:minCardinality> <owl:cardinality> Establecen que la cardinalidad de esa propiedad sea como máxima, como mínima o exactamente (respectivamente) una determinada. En OWL Lite está restringido a una cardinalidad de cero o de uno. <owl:inverseOf> Sirve para establecer la propiedad inversa de otra. <owl:TransitiveProperty> Sirve para especificar que una determinada propiedad es transitiva. Por ejemplo, hasAncestor es transitiva pues el ancestro de mi ancestro es también mi ancestro. <owl:SymmetricProperty> Que se utiliza para indicar que una propiedad es simétrica. Esto es, que si P es simétrica y se tiene que P(x,y), entonces también se verifica que P(y,x). <owl:equivalentClass> Indica que dos clases son equivalentes. <owl:equivalentProperty> Indica que dos propiedades son equivalentes. <owl:sameAs> Indica que dos recursos son el mismo recurso. <owl:differentFrom> Se utiliza para especificar que dos recursos son distintos. <owl:AllDifferent> Se utiliza para establecer que un conjunto de recursos son todos distintos entre si. 63 Daniel Fernández TESIS DE GRADO 3.2.7.4. Ejemplo Retomando el ejemplo visto anteriormente se lo puede expresar en RDF/XML de la siguiente forma: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://ejemplo.com/flashes.html"> <dc:creator>Ribas</dc:creator> </rdf:Description> </rdf:RDF> Si otra empresa comienza a crear documentos RDF y ninguno de ellos conoce la etiqueta dc:creador, entonces creará un término propio llamado por ejemplo emp:autor. Con la etiqueta nueva generan la siguiente afirmación RDF/XML: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:emp="http://empresa.ejemplo.com/elementos/"> <rdf:Description rdf:about="http://ejemplo.com/flashes.html"> <emp:autor>Ribas</emp:autor> </rdf:Description> </rdf:RDF> El agente automático va a ignorar dicha afirmación porque no puede entender el significado de emp:author. Sin embargo, gracias a la colaboración de cierto individuo de la comunidad Web, el agente descubre la siguiente relación entre los conceptos dc:creador y emp:autor en una ontología OWL: 64 Daniel Fernández TESIS DE GRADO <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#"> <owl:ObjectProperty rdf:about="http://purl.org/dc/elements/1.1/creador"> <owl:equivalentProperty rdf:about="http://purl.org/dc/elements/1.1/autor"> </owl:ObjectProperty> </rdf:RDF> Como el agente automático sí entiende ontologías OWL, esta afirmación le indica al agente que emp:autor es similar a dc:creador. Por ende, puede interpretar la afirmación RDF/XML con la etiqueta emp:autor. Simplemente la tiene que reemplazar por dc:creador y procesar su significado. 65 Daniel Fernández 3.2.8. TESIS DE GRADO Lógica Teniendo toda la información de recursos, propiedades, ontologías, se puede hacer deducciones lógicas con la misma y permitir a la máquina razonar automáticamente usando esos principios. La capa lógica está compuesta por un conjunto de axiomas y reglas de inferencia que los agentes (computacionales o humanos) podrán utilizar para relacionar y procesar la información. Estas reglas ofrecen el poder de deducir nuevas sentencias a partir de los datos y estructuras que están descritos en las capas XML y RDF, usando además las relaciones entre esos datos y estructuras definidas en la capa Ontológica. La expresividad de RDF y RDFS para modelar ontologías completas es muy limitada: en el caso de RDF se limita (en líneas generales) a representar predicados binarios, y RDFS (también en líneas generales) está limitado a jerarquía de clases, jerarquía de propiedades con definición de restricciones de dominio y rango de dichas propiedades. RDF/RDFS carece de soporte para tipos de datos primitivos, carece de poder expresivo para representar axiomas (no hay negación, implicación, cardinalidad, cuantificación), no es posible definir propiedades de propiedades (transitividad, simetría, etc.), no permite especificar condiciones necesarias y suficientes para establecer la pertenencia a una clase. Sin embargo, el lenguaje OWL adiciona mayor expresividad a RDF y RDFS con una semántica formal basada en la lógica descriptiva. OWL está especificado sobre RDF y RDF esquema y añade importantes primitivas para la descripción de clases y propiedades, como son: relaciones entre clases (p.e. complemento, disjunta), cardinalidad de propiedades (p.e. mínimo dos, exactamente uno), igualdad de clases, mayor riqueza de tipos en las propiedades, características de propiedades (p.e. simetría, transitividad), clases enumeradas, entre otras. 66 Daniel Fernández 3.2.9. TESIS DE GRADO Prueba En muchas ocasiones, la persona no se va a creer así como así la información que se le brinde, será necesario que se le suministre pruebas que sea capaz de verificar. Esta verificación de las pruebas puede ser llevada a cabo por un humano o también por una máquina. Como los sistemas pueden recolectar información de muchos lugares de la Web, interpretarla, aplicar lógica y razonar, tiene sentido utilizarlos para generar pruebas. Una prueba es una deducción a la que llega un sistema luego de aplicarle cierta lógica. Un ejemplo muy habitual sobre la necesidad de las pruebas está relacionado con las autorizaciones de acceso a una página. Este ejemplo consiste en que se establece que, se delega en un individuo A la capacidad de decir quién puede y quién no puede acceder a una determinada página. Supongamos que A concede al usuario B este privilegio. Entonces B, cuando quiera acceder a la página le presentará una prueba de que puede acceder: “Yo puedo acceder porque A me ha dado permiso de acceso y A tiene autoridad para dar permiso de acceso a esta página” En ese momento, el sistema se pone a comprobar la validez de la prueba consultando la información que tiene disponible. Una vez que se asegura que la prueba presentada es válida, permitirá al usuario B el acceso al sistema. Otra utilidad que se plantea para las pruebas es que los agentes no tengan que deducir toda la información siempre, sino que puedan almacenar e intercambiar pruebas entre ellos. De este modo, se puede evitar el tener que estar realizando continuamente una actividad que consume tantos recursos como es el razonamiento automático. En el ejemplo de la figura 14, la prueba sería “Andrés estaba en el edificio en el momento del crimen”. Estas pruebas pueden nacer de miles o millones de links semánticos en la Web, lo que hace que no sean fáciles de crear, pero si es simple verificarlas. De esta manera, los sistemas pueden compartir no sólo información sino también pruebas evitando tener que consumir recursos para deducirlas nuevamente. 67 Daniel Fernández 3.2.10. TESIS DE GRADO Confianza Un problema que surge en la arquitectura de la Web Semántica es que cualquier persona puede decir cualquier cosa sobre cualquier tema. Alguien puede afirmar que “la ciudad de Posadas se encuentra en territorio brasilero” y tiene permiso de hacerlo sin ningún problema. Esta libertad de expresarse, es una característica necesaria en la creación de la Web Semántica, pero genera la incógnita de quien es confiable y quien no. El humano como tal puede discernir entre la información que confía y la que no, a veces por simple intuición; en cambio, la máquina necesita un mecanismo alternativo y menos intuitivo. Por lo tanto, se crea la capa confianza con el fin de que las máquinas puedan determinar en quien confiar y en quien no. Las firmas digitales cumplen un rol importante en esta capa. Basada en un trabajo matemático y criptográfico, las firmas digitales permiten dar fe de que cierta persona escribió o está de acuerdo con cierta afirmación o documento. De esta manera, si todos firman digitalmente sus documentos, sólo es necesario indicarle a la máquina en cuales firmas uno confía y en cuales no, o darle un nivel de confiabilidad (por ej. de 1 a 10). El problema es que no se puede ir indicando para cada persona de la Web, si se confía o no en la misma. Acá es donde nace la red de confianza. Por ejemplo, Héctor le indica a la computadora que confía en otra persona llamada Javier, quién a su vez, confía en Verónica y Ezequiel. La red de confianza asume que Héctor seguramente también confíe en Verónica y Ezequiel. De la misma manera, si Verónica confía en una nueva persona llamada Carolina, ésta última estará dentro de la red de confianza de Héctor. Según el nivel de distancia en la red, podemos obtener un nivel de confianza o desconfianza asociado. Cabe destacar que indicar la desconfianza en cierto individuo es tan útil como indicar la confianza. Supongamos que un agente semántico encuentra un documento en el que no tiene información de si Héctor confía o no y otro que, dentro de su red de confianza, está marcado como no confiable. Ante una búsqueda de Héctor, el agente va a confiar más en el documento del cual no tiene información que en el que está específicamente calificado como no confiable. 68 Daniel Fernández 3.3. TESIS DE GRADO Microformatos Los microformatos son una solución propuesta por Microformats [WEB-7] que adopta el camino bottom-up de una manera sencilla, poco invasiva, tratando de generar los menores cambios posibles sobre las páginas existentes facilitando así el paso de semantizar la Web. La idea es agregar metadatos a las páginas Web pero embebidos de manera estructurada en el código XHTML de la página. Los microformatos son un paso para crear datos estructurados en la Web. La idea es mucho más simple que RDF u OWL. Si se quiere crear una página con información de eventos (fecha de inicio, fecha de fin, localidad, tema, página Web, etc.), en lugar de almacenarla de forma normal en HTML, Microformats recomienda almacenarla de una manera estructurada en HTML y CSS (Cascading Style Sheet). La página puede mantener el formato que se desea, no es necesario duplicar información, simplemente hay que almacenarla como indican los microformatos. La idea es crear estándares reconocidos universalmente para solucionar temas específicos a los que se enfrentan los usuarios Web. Estos estándares deben ser simples de usar, legibles por el humano y presentables ante el usuario final. Para que los microformatos sean fáciles de insertar en las páginas Web existentes, se reutilizan estándares ampliamente adoptados como HTML y CSS. En la actualidad, la idea de Microformats es muy aceptada por la comunidad Web e incluso por grandes empresas como Yahoo!Local que en Junio del 2006 anunció que soportaba los microformatos hCalendar, hCard y hReview (los cuales son los más reconocidos). También Microsoft y Google implementan los microformatos en muchos de sus servicios Web. Algunos de los microformatos estándares que se están utilizando en la actualidad son: hCard hCalendar hReview 69 Daniel Fernández 3.3.1. TESIS DE GRADO hCard hCard es un formato simple utilizado para representar personas, compañías, organizaciones y lugares. Se puede almacenar detalles personales como nombre, url, email, dirección, foto, título, etc. Un ejemplo de hCard es el siguiente: <div class="vcard"> <a class="url" href="www.exampleorganization.com">John Stweart</a> <div class="org">Example Organization</div> <div class="adr"> <div class="street-address">Cedar Av</div> <div class="locality">Marshfield</div> <div class="region">WI</div> <div class="postal-code">54449</div> </div> <div class="tel">1 535 34423</div> </div> La salida en una página Web es la siguiente: John Stweart Example Organization Peru Marshfield, WI 54449 1 535 34423 70 Daniel Fernández 3.3.2. TESIS DE GRADO hCalendar hCalendar es un microformatos para representar eventos y horarios. Se puede detallar información del evento como la localidad, url, fecha de inicio, resumen, etc. Un ejemplo de hCalendar es el siguiente: <div id="hcalendar-Conferencia Nuestra Tierra" class="vevent" > <a class="url" href="www.eventoejemplo.com"> <abbr title="20080203T1200-0300" class="dtstart"> 3 de Febrero 12pm </abbr>, <abbr title="20080203T1600-0300" class="dtend"> 4pm 2008 </abbr><span class="summary">Conferencia Nuestra Tierra</span><span class="location">Bs As, Argentina</span></a> <div class="description"> Charla sobre el calentamiento global </div> </div> La salida en una página Web es la siguiente: 3 de Febrero 12pm, 4pm 2008 – Conferencia Nuestra Tierra– at Bs As, Argentina Charla sobre el calentamiento global 71 Daniel Fernández 3.3.3. TESIS DE GRADO hReview hReview es otro microformato, esta vez enfocado en informar revisiones de productos, servicios, negocios o eventos. Se puede agregar información a este microformatos como es la versión, un resumen, el tipo (producto, negocio, evento, persona, lugar, sitio Web o url), item (url o foto, hCard para personas o negocios, hCalendar para eventos), licencia, etc. <div class="hreview" > <span class="item" > <a class="url" href="http://www.comercioejemplo.com/prod/p00452"> <img src="http:// www.comercioejemplo.com/prod/img/p00452.jpg" alt="Foto: tenedor de plata" class="photo"/> ¡El mejor tenedor de plata! </a> </span> <div class="description"> </p>“Tenedor de plata, único, importado.”</p> </div> ( <abbr title="5" class="rating"> ***** </abbr> ) <p class="reviewer vcard">Por: <a class="url fn" href="http://diegomoreno.ejemplo.com/blog/"> Diego Moreno </a>, <abbr title="200502" class=" dtreviewed "> Febrero 2008 </abbr> </p> </div> La salida en una página Web es la siguiente: 72 Daniel Fernández TESIS DE GRADO ¡El mejor tenedor de plata! “Tenedor de plata, único, importado.” (*****) Por: Diego Moreno, Febrero 2008 Con solo alterar el archivo CSS, se puede modificar la visualización de todos los ejemplos y mantener el significado de los datos para que las máquinas lo puedan interpretar. 73 Daniel Fernández TESIS DE GRADO 3.4. Los problemas de la aproximación bottom-up En el primer capítulo se ha concluido que para darle significado a los datos de la Web el camino más viable en la actualidad es generar metadatos que puedan ser comprendidos automáticamente por las máquinas. Como pudimos ver en el presente capítulo, la solución más completa que busca cumplir dicho objetivo es la Web Semántica. Sin embargo, no ha tenido el éxito esperado desde el día que se presentó hasta la fecha. Muchos expertos explican que no es un cambio instantáneo sino un proceso de transición, pero siguen existiendo dudas en cuanto a si se va a expandir completamente o no. La realidad es que han pasado más de 10 años y el cambio, si es que fuese a completarse, avanza realmente muy lento. Según Cory Doctorow [Doctorow, 2001] uno de los problemas principales por el que no se generan metadatos es que la gente es vaga. En otras palabras, el usuario promedio tiende a escribir lo menos posible, entonces obligarlos a escribir no sólo los datos sino también los metadatos no parece ser una buena idea. Un ejemplo que ratifica dicha afirmación es Semantic Wiki, una idea que tiene como objetivo darle significado semántico los datos de la Wikipedia. Las wikis normales contienen generalmente texto desestructurado que no puede ser interpretado por una máquina y a pesar de que existen enlaces, estos no están tipados. Semantic Wiki define un formato para estructurar dicha información con metadatos y generar vínculos entre los mismos. Pero cargar los metadatos directamente a mano es una tarea molesta por lo que los usuarios de la Wikipedia optaron, en su mayoría, por no hacerlo. Es así que la idea de Semantic Wiki no ha tenido el éxito querido y apenas prosperó. La mejor forma de solucionar esto es hacer interfaces más ricas que permitan que, a medida que los usuarios cargan los datos, también carguen los metadatos implícitamente (sin darse cuenta). La misma interfaz los debe forzar a hacerlo. Un proyecto que ha adoptado esta técnica es Freebase, una base de datos Web que permite almacenar todo tipo de conocimientos y editarlos colaborativamente (algo similar a la Wikipedia pero almacenando la semántica de los datos). Haciendo uso de una interfaz simple y amigable desarrollada bajo los conceptos de Web 2.0, Freebase logra que los usuarios carguen los datos de manera estructurada guardando el significado de los mismos. Por ejemplo, si queremos cargar un evento histórico, Freebase tiene cargadas las propiedades que debería tener el mismo y nos permite ingresarle una fecha de inicio y otra de fin. Es así que a la base de datos de Freebase se le pueden hacer consultas del estilo ¿cuáles son los eventos históricos que ocurrieron entre 1840 y 1860? Cory Doctorow también afirma que la gente miente por lo que cualquiera pueda generar metadatos de lo que sea ensuciando el significado de la información. Una manera de solucionar este problema es llevar a cabo una idea similar a la capa de confianza propuesta por la Web Semántica. El objetivo es identificar quién dijo qué y que nivel de confianza tengo en lo que dijo. ¿Pero cómo lograr que la gente no sólo cargue datos sino que colabore en formar una red de confianza? Las redes sociales es la respuesta a dicha 74 Daniel Fernández TESIS DE GRADO pregunta. Actualmente, las redes sociales están aumentando en popularidad y ganando aceptación por parte de la comunidad Web. Es una tendencia clara en la cual la gente quiere relacionarse, compartir, vincularse, conocer nueva gente y comunicarles qué hace. Prefiere realizar actividades socialmente que de forma aislada por eso se vincula con otras personas. Esa vinculación que nace de una amistad existente entre dos personas o de un simple interés en común es la base para generar una red de confianza. 75 Daniel Fernández 3.5. TESIS DE GRADO Microformatos vs. RDF A pesar de que ambos pertenecen al camino bottom-up, los microformatos no son comparables con la Web Semántica. Esto se debe a que los microformatos son un formato popular para embeber metadatos en XHTML, mientras que la Web Semántica es una tecnología nueva que define una serie de formatos para que se las máquinas puedan entender y compartir el significado de todos los datos de la Web. En lugar de comparar ambas soluciones, se ejercerá la comparación entre los microformatos y RDF ya que ambos son lenguajes de etiquetados para describir cosas. A diferencia de los microformatos, RDF es un lenguaje mucho más poderoso y extensible cuyos recursos son representados por URIS. Además, RDF contiene por encima un lenguaje de ontología (OWL) que permite a las máquinas razonar utilizando lógica. Los microformatos simplemente estructuran cierta información para que las máquinas puedan entender su significado y extraerlo directamente del HTML. No obstante, son más prácticos y entendibles para el programador normal que el lenguaje RDF. Otra ventaja de los microformatos es que son embebidos directamente de manera estructurada en el código XHTML de la página sin necesidad de reescribir la información. A pesar de que los microformatos son más simples y fáciles de embeber directamente en páginas HTML/XHTML, tienen la desventaja de trabajar en dominios limitados y de no permitir generar relaciones entre recursos. Por otro lado, las bases matemáticas de RDF son complicadas y no cualquier programador cotidiano puede entenderlas. No obstante, en un futuro no será necesario hacerlo ya que como cualquier lenguaje tendrá asociadas herramientas que faciliten su uso. Actualmente, existen varias aplicaciones capaces de procesar y gestionar archivos RDF que simplifican trabajar bajo dicho lenguaje. Algunas de ellas son: Cara, DataCraft, Jena, Rdf crawler, RDFstore, Redland y otras. Según las primeras recomendaciones de RDF es imposible embeberlo en HTML. Sin embargo, se han definido dos lenguajes para lograrlo: eRDF y RDFa. eRDF intenta mediante la utilización de herramientas actualmente disponibles codificar dentro de HTML y XHTML información en formato RDF. Es un intento de extender RDF siguiendo los principios de Microformats. eRDF es RDF válido, pero no es soportado por W3C y todo lo que se puede codificar mediante RDF no se puede definir mediante eRDF. Por otro lado, RDFa es una propuesta hecha por W3C para poder expresar información estructurada en XHTML bajo la representación RDF. La sintaxis de RDFa permite utilizar muchos de los atributos de HTML para codificar semántica, pero también define algunos atributos nuevos para tener más flexibilidad y menos ambigüedad a la hora de codificar relación semánticas en XHTML. eRDF y RDFa tienen una sintaxis parecida, pero a diferencia de RDFa, eRDF se restringe únicamente a atributos existentes y no depende necesariamente de XTHML, sino que puede ser usado en HTML directamente. Ambas soluciones no han sido adoptadas por la comunidad Web como lo han sido los microformatos. 76 Daniel Fernández TESIS DE GRADO La Web Semántica obtuvo menos aceptación que los microformatos, pero a veces la mejor solución no es siempre por la que opta la comunidad Web. Un ejemplo es OSI vs TCP/IP, donde el primero a pesar de tener unas bases teóricas mucho más sólidas no se pudo imponer sobre el segundo. La aceptación de tecnologías y formatos no sólo depende de si es mejor o no, sino de otros factores como el momento en que aparecen, su simplicidad, la existencia de herramientas asociadas, el tamaño del cambio, el costo del mismo, etc. 77 Daniel Fernández 3.6. TESIS DE GRADO La tecnología más adecuada En este trabajo se escoge a la Web Semántica como tecnología indicada para fomentar el significado de los datos en la Web. Dicha elección se debe a los siguientes puntos: La Web Semántica pertenece al camino bottom-up (el más factible según lo estudiado anteriormente). Es una tecnología definida para un dominio de datos extensible. Sus lenguajes de etiquetado son muy completos y poderosos. Es posible embeber RDF dentro del HTML gracias a los nuevos lenguajes eRDF y RDFa. Los microformatos pueden convivir dentro de la idea que postula Web Semántica. Tiene bien definido un lenguaje de ontologías. Existen y se está trabajando en herramientas que facilitan su uso. 78 Daniel Fernández 3.7. TESIS DE GRADO Resumen investigación Se resume a continuación lo visto en el presente capítulo: 1. La aproximación bottom-up consiste en agregar metadatos a los sitios Web para poder darle significado a los datos. 2. Los metadatos representan datos estructurados sobre los datos. 3. La tecnología más importante y mejor definida que hace uso de los metadatos para darle significado a los datos de la Web es la Web Semántica. 4. La Web Semántica está compuesta por una serie de capas de las cuales las principales son: Unicode, URI, XML, RDF, RDF Schema y OWL. 5. El lenguaje RDF permite representar información de cualquier recurso que pueda ser identificado en la Web. 6. El elemento base del modelo RDF es el triplete: el sujeto, el objeto y el predicado. 7. No existe un beneficio inmediato para los usuarios que hagan uso de la Web Semántica. 8. Es posible embeber RDF en HTML mediante los lenguajes eRDF y RDFa. 9. La idea detrás de los microformatos es agregar metadatos a las páginas Web pero embebidos de manera estructurada en el código XHTML de la página. 10. El dominio que abarca los microformatos es mucho más pequeño y específico que el de la Web Semántica. 11. La gente es vaga cuando se trata de agregar metadatos. Una forma de solucionar dicho problema es desarrollar interfaces más ricas que tengan implícita la carga de metadatos. 12. La gente miente por lo que se debe determinar en cual dato confiar y en cual no. Las redes sociales son el camino ideal para desarrollar una capa de confianza. 13. La Web Semántica es la tecnología escogida en el vigente trabajo debido a que es la más factible y completa en la actualidad. 79 Daniel Fernández TESIS DE GRADO Capítulo 4: La red social semántica En el presente capítulo, se propone una solución que une las características colaborativas del software social con la estructuración de datos que propone la Web Semántica. Posteriormente, se detallan las principales características de la aplicación implementada y se explican las ventajas de emplear dicha tecnología en una plataforma social. Finalmente, se presenta un ejemplo detallado de su aplicabilidad con pruebas y resultados. 80 Daniel Fernández 4.1. TESIS DE GRADO Solución propuesta Las aplicaciones sociales en la Web son el servicio estrella de los últimos años, permite que los usuarios se comuniquen, organicen e intercambien experiencias o intereses. Un caso exitoso en Argentina es la comunidad virtual llamada Taringa que alcanzó 1,6 millones de usuarios registrados para el 2008 [WEB-10]. Taringa es una aplicación Web donde los usuarios pueden escribir, compartir y buscar información sobre cualquier tema. A pesar de la notable aceptación que ha obtenido a lo largo de los últimos años, Taringa está desarrollada bajo una plataforma que no le permite obtener un mayor provecho de sus datos y el significado de los mismos. Principalmente, la información se almacena en modo desestructurado porque los usuarios únicamente tienen la posibilidad de ingresarla como texto plano. Por el contrario, si se guardasen los datos de manera estructurada, se obtendrían una serie de ventajas como las siguientes: Búsqueda y navegación de datos más efectivas. Facilidad para definir la semántica de los datos y lograr que las máquinas puedan procesarlos automáticamente. Información fuertemente relacionada. Interoperabilidad con aplicaciones externas. Si los usuarios de Taringa ingresasen los datos de manera estructurada, se podrían aplicar las reglas de la Web Semántica y mejorar los servicios que brinda el sitio. Pero para lograr que los usuarios carguen los datos estructuradamente, se les debe proveer de una interfaz rica con las herramientas necesarias para llevarlo a cabo. Por otro lado, los esfuerzos dedicados a la Web Semántica se han estado dirigiendo mayormente a la creación de formatos estándares en forma de esquemas u ontologías. Sin embargo, actualmente no hay suficientes esquemas para cubrir la amplia variedad de información que queremos compartir. Un pequeño grupo de expertos no puede tener en cuenta el rango variado de datos que requieren los usuarios de la Web. Incluso, si el esquema existe, puede que el mismo no sea el apropiado o que no sea comprensible por un usuario cotidiano que carece de conocimiento técnico. Crear nuevas ontologías y modelar datos no es una tarea fácil. Debería ser flexible para los usuarios quienes pueden llegar a necesitar datos distintos o variar en los niveles de detalle de un concepto dependiendo del propósito. Además, las personas tienen diferentes puntos de vista y se les debe permitir mantener sus preferencias. No es práctico imponer un estándar único y estricto de limitaciones. Los esquemas deben generarse de manera colaborativa. En este trabajo se implementa una red social con tecnología Web Semántica donde los usuarios tienen la libertad de definir la estructura de la información que quieren compartir. Esto permite organizar todos los datos mediante metadatos semánticos y compartirlos al resto de la Web mediante formatos estándares. 81 Daniel Fernández TESIS DE GRADO Figura 15. Flujo de datos y metadatos desde y haca la Web. En el sistema, los usuarios tienen la posibilidad de estructurar semánticamente la información que ingresan y definir su dominio de trabajo según sus preferencias. Por ejemplo, si un grupo de usuarios desean compartir información sobre libros digitales pueden definir una entidad eBook y asignarle las propiedades que creen convenientes como son el título, fecha de publicación, autor, resumen, etc. Una vez definida la entidad, los usuarios pueden cargar libros para la misma, compartirlos, organizarlos, buscarlos por sus propiedades y recibir notificaciones más precisas y personalizadas Algunas características importantes del sistema implementado son las siguientes: Red social de dominio libre. Creación de datos y metadatos. Búsquedas semánticas. Notificaciones semánticas. Repositorio de esquemas calificados. Exportación de datos. A continuación se analizan las características en detalle. 82 Daniel Fernández TESIS DE GRADO 4.1.1. Red social de dominio libre 4.1.1.1. Definición de red social Desde sus principios, la Web no sólo sirvió como un gran repositorio de información sino también como un medio de comunicación entre personas sin importar su ubicación. El mensajero instantáneo (o programa de chat) fue uno de los primeros mecanismos para poder conectarse en tiempo real con amigos, conocidos o gente nueva. Más adelante en el tiempo, otros servicios complementarían la comunicación entre personas como por ejemplo el weblog, el blog y el fotolog, entre otros. En dicho contexto, surgieron las redes sociales, sitios que permiten crear un perfil público, donde el usuario carga sus datos personales y puede acceder a distintas herramientas para interactuar en línea con otros individuos, conversar, mantenerse al tanto, compartir información y realizar otras funciones sociales. En una definición más formal, una red social es una estructura social formada por nodos que representan generalmente individuos u organizaciones y se encuentran unidos entre ellos por distintos tipos de vínculos como por ejemplo amistad, igualdad de visiones, relaciones laborales, etc. José Hector María Melisa Camila Diego Juan Manuel Azul Jorge Figura 16. Ejemplo de un diagrama social. En la Figura 16 se ilustra un ejemplo de un diagrama social. Los individuos y las organizaciones, conocidos como actores, son los nodos de la 83 Daniel Fernández TESIS DE GRADO gráfica. La interdependencia, conocida como arcos son las flechas del diagrama y pueden ser por características como la edad, género, raza, amistad, ideas, política, etc. Hace menos de 10 años comenzaron a aparecer las primeras redes sociales y han obtenido un increíble crecimiento y aceptación por parte de la comunidad Web en los últimos años. Algunos ejemplos son MySpace que tiene más de 110 millones de usuarios activos en el mundo, Hi5 con 70 millones de usuarios registrados, Orkut con 67 millones, Facebook con unos 60 millones y Friendster con 53 millones. Todas son redes sociales en línea cuyos vínculos entre los usuarios se basan principalmente en la amistad. También existen otro tipo de redes sociales como LinkedIn que buscan vincular a las personas según sus relaciones laborales o profesión, o Flickr que conecta a sus usuarios de acuerdo a su mutuo interés en fotografía. Según los resultados de Alexa, un sitio dedicado a proveer información sobre el tráfico en la Web, las redes sociales son uno de los sitios más visitados en la actualidad. En el ranking que presenta Alexa, ocupan una de las posiciones más altas como por ejemplo MySpace que se encuentra sexto, Facebook octavo, Orkut décimo y Hi5 décimo primero. A través del boca a boca o por invitaciones personales, la gente no sólo descubre las redes sociales sino también que existen un montón de amigos ya adheridos a las mismas. Esto último hace que la aplicación sea atractiva y genera ganas de participar para comunicarse y compartir información con los amigos. Actualmente, existe una gran pelea entre las redes sociales por atraer nuevos usuarios y no perder los existentes. El objetivo real es ganar más tráfico y mayor popularidad. Facebook, por ejemplo, provee una API para que los sistemas externos puedan comunicarse con su red social permitiendo expandirla fuera de sus dominios. El mismo Google, tratando de mantener una igualdad de competencia entre las redes sociales, presentó Open Social que es una API abierta para crear aplicaciones montadas sobre redes sociales ya existentes. Una propiedad interesante de las redes sociales es que ciertos nodos que parecen estar a una gran distancia uno del otro (un agricultor en la India con el presidente de Estados Unidos), puede que realmente se encuentren mucho más cerca de lo esperado. Este fenómeno permite la creación de nuevas relaciones generando más oportunidades de negocio o recreativas. Incluso, con la popularización de estas herramientas, seria posible probar la teoría de los “seis grados de separación” que propone que cualesquiera dos personas pueden ser conectadas mediante conocidos en no más de seis pasos. La teoría fue inicialmente propuesta en 1929 por el escritor húngaro Frigyes Karinthy y más adelante probada por el psicólogo estadounidense Stanley Milgram. Las características más importantes que se buscan remarcar de las redes sociales y que van a ser útiles en la solución, son que permiten identificar unívocamente a las personas, generar relaciones entre ellas, comunicarlas y que su aceptación crece día a día de una manera notable. También se puede medir la importancia de un individuo en una red social y por ende la relevancia de sus afirmaciones. El estudio de estas mediciones se conoce como análisis de red social. 84 Daniel Fernández TESIS DE GRADO El análisis de red social (ARS) o, del inglés, Social Network Analysis (SNA) es la medición de las relaciones y el flujo entre diversos actores sociales (como personas o grupos). Los nodos en la red son las personas y los grupos mientras que los vínculos muestran la relación y el flujo entre los nodos. ARS provee tanto un análisis matemático como uno visual de las relaciones humanas. También es conocido como análisis estructural debido a que se ha desarrollado como herramienta de medición y análisis de las estructuras sociales que emergen de las relaciones entre las personas y grupos. Asimismo, se analizan las estructuras sociales que surgen de la ocurrencia de determinados eventos. Al basar la solución, en una red social se obtienen un conjunto de funcionalidades que son imprescindibles para lograr una buena gestión entre los datos y los usuarios. Permite, por ejemplo, llevar una trazabilidad de la carga de datos al registrar quien y cuando cargó o modificó un dato. Para poder crear una capa de confianza, es importante saber quien escribió qué. En cuanto a la privacidad de los datos, toda red social brinda la posibilidad de compartirlos públicamente, permitir que sólo amigos puedan accederlos o almacenarlos en forma privada. Las notificaciones de las redes sociales son avisos de que cierto dato fue cargado y son claves en el flujo de la información. Sin ella, un usuario nunca se enteraría de la existencia de un dato que lo considera importante. En resumen, la solución se basa en una red social, no sólo debido a que actualmente la Web se está orientando a sistemas sociales, sino porque sus funcionalidades van a ser primordiales para cumplir con sus objetivos. 4.1.1.2. Dominio libre De acuerdo a Jyri Engeström [Engeström, 2005], las personas no son la principal característica de una red social sino el objeto en común que las une. El objeto es la base de la red social y la razón por la cual las personas se asocian a la misma. Engeström define esta relación de personas basada en un objeto en común como “object centered sociality” y asegura que el éxito de una red social existe sólo si la misma se centra en el objeto que la caracteriza y no en obtener el máximo número de afiliados. Engeström induce que si las redes sociales no están bien fundamentadas en un objeto, muchas veces lleva a que la mayoría de las personas se conecte unas con otras con ninguna otra razón más que aumentar su número de contactos personales. Muchos navegan los perfiles de otros usuarios por simple curiosidad. Las relaciones establecidas entre algunos usuarios carecen de sentido porque no están respaldadas por objetos o actividades en común. A continuación se listan algunas redes sociales conocidas junto a su objeto: 85 Daniel Fernández Red Social Amie Street aNobii Avatars United CafeMom del.icio.us DeviantART EasyRoommate Facebook Flickr Flixster Linkedin Sportsvite TravBuddy.com TESIS DE GRADO Url http://amiestreet.com http://www.anobii.com http://www.avatarsunited.com http://www.cafemom.com http://delicious.com http://www.deviantart.com http://www.easyroommate.com http://www.facebook.com http://www.flickr.com http://www.flixster.com http://www.linkedin.com http://www.sportsvite.com http://www.travbuddy.com Objeto Música Libros Juegos online Madres Enlaces Arte Hospedaje Entretenimiento Fotos Películas Profesionales Deportes Viajes Figura 17. Tabla con las redes sociales y su correspondiente objeto. La mayoría define una semántica asociada a su objeto y permite cargar información respecto al mismo. Por ejemplo, del.icio.us, al ser una red social basada en enlaces, permite cargar un enlace en particular, entre otras cosas. Al llenar el campo donde se debe cargar el enlace, le estamos brindando a del.icio.us información semántica ya que le indicamos explícitamente que el texto ingresado es un enlace. Lo mismo sucede con el resto de las redes sociales, cada una define un conjunto de propiedades asociadas al objeto y cada propiedad tiene un significado que la red social entiende. Por ejemplo, Facebook es una de las redes sociales con mayor crecimiento en los últimos años, sin embargo está compuesta por un esquema cerrado con un número limitado de tipos de datos (personas, mensajes, eventos). De dicha manera, la aplicación provee un conjunto reducido de semántica para poder definir por ejemplo una persona y completar sus atributos (nombre, email, dirección, etc.) u otros datos de relación (trabajó con, casado, etc.). El usuario declara todo explícitamente y no hay nada inferido. La ventajas de las redes sociales orientadas a un objeto, es que realizan un muy buen trabajo en torno al mismo. Definen las propiedades necesarias para el objeto y brindan un conjunto de servicios que hacen que los usuarios accedan cómodamente a la información relacionada con el mismo. La vinculación entre la red social y el objeto es fuerte. Sin embargo, dichas redes sociales, no pueden extenderse más allá de su dominio, sino que están limitadas al mismo. Retomando el ejemplo de Facebook, es una red social que carece de real utilidad más allá del entretenimiento (su objeto) como la mayoría de las redes sociales actuales. No podemos utilizar Facebook para descubrir, acumular, o tratar información científica. Esto se debe a que sus datos definidos sobre esquemas fijos que son límites para la comunidad. La utilidad de estas redes sociales orientadas a un objeto es limitada, no se puede hacer algo en conjunto más allá de lo que permite el esquema. No proveen un framework para acumular y navegar lo que se conoce en conjunto. 86 Daniel Fernández TESIS DE GRADO La rigidez del diseño de estos sitios, hacen que sean muy simples y atractivos para los usuarios, pero le limitan la posibilidad de crecer más allá de la metáfora con la que se fundó. El valor agregado que brinda la red social semántica es que permite definir un esquema para una comunidad de manera que las cosas que tengamos en común como miembros se conviertan en los atributos que definen la comunidad. Esto lo logra, extendiendo la red social para poder crear entidades nuevas, atributos y conceptos más allá de los existentes permitiendo que los usuarios definan relaciones entre ellos. En la red social semántica, el usuario puede precisar el o los objetos de su dominio expandiendo este último hasta donde desee. Por ejemplo, si hay usuarios que le gustan los peces, pueden cargar información de cualquier pez, compartirla entre ellos, recibir notificaciones ante la carga de nuevos datos relacionados, conocer gente vinculada con tema, etc. 87 Daniel Fernández TESIS DE GRADO 4.1.2. Creación de datos y metadatos Como se mencionó anteriormente, la red social permite al usuario extender su dominio brindándole la posibilidad trabajar con cualquier objeto según su interés. Para crear un dominio de trabajo en la red social semántica, lo primero que se debe hacer es definir la estructura (o esquema) que describe al objeto. En adelante, se llamará template al esquema que define un objeto determinado. En términos de la Web Semántica, el objeto es un recurso RDF y el template es el esquema RDFS que lo describe. El usuario le debe asignar un nombre a los templates que genere, pero la red social semántica le asignará una URI unívoca a cada uno. El usuario debe también seleccionar las propiedades que desee que el template tenga. Los templates pueden tener otro template como propiedad, al igual que una clase RDFS puede hacerlo con otra, brindando la extensibilidad y reusabilidad que caracteriza a la Web Semántica. 4.1.2.1. Clases frecuentes Para practicidad al usuario se definen nueve clases de uso frecuente que pueden ser usadas como propiedades. Se enumeran a continuación dichas clases: 1 - Texto Definición Conjunto de caracteres URI http://www.meantoo.com/vocabulary/tempprop#Text RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Text"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label>Text</rdfs:label> <rdfs:comment>Text</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 2 - Entero Definición Número entero URI 88 Daniel Fernández TESIS DE GRADO http://www.meantoo.com/vocabulary/tempprop#Integer RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Integer"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Integer </rdfs:label> <rdfs:comment> Integer </rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 3 – Imagen Definición Archivo de tipo imagen URI http://www.meantoo.com/vocabulary/tempprop#Image RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Image"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Image </rdfs:label> <rdfs:comment> Image </rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 4 – Fecha Definición Día, mes, año URI http://www.meantoo.com/vocabulary/tempprop#Date RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Date"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Date </rdfs:label> <rdfs:comment> Date </rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 5 - Hora Definición Hora, minuto, segundos URI http://www.meantoo.com/vocabulary/tempprop#Time RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Time"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Time </rdfs:label> <rdfs:comment> Time </rdfs:comment> 89 Daniel Fernández TESIS DE GRADO <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 6 - Booleano Definición Verdadero o falso URI http://www.meantoo.com/vocabulary/tempprop#Boolean RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Boolean"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Boolean </rdfs:label> <rdfs:comment> Boolean </rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 7 - Enlace Definición Enlace Web URI http://www.meantoo.com/vocabulary/tempprop#Link RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Link"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Link </rdfs:label> <rdfs:comment> Link </rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 8 – Email Definición Dirección de email URI http://www.meantoo.com/vocabulary/tempprop#Email RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#Email"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Email </rdfs:label> <rdfs:comment> Email </rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 9 - Lista fija 90 Daniel Fernández TESIS DE GRADO Definición Lista de valores fijos URI http://www.meantoo.com/vocabulary/tempprop#FixedList RDF/XML <rdfs:Class rdf:about="http://www.meantoo.com/vocabulary/tempprop#FixedList"> <rdfs:isDefinedBy rdf:resource="http://www.meantoo.com/vocabulary/tempprop#"/> <rdfs:label> Fixedlist </rdfs:label> <rdfs:comment> Fixed List </rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> 4.1.2.2. Reutilización de datos Para una mejor comprensión de la reutilización de los datos, se ejemplificará un caso de uso de la red social semántica donde tres usuarios de la red (Jorge, Sofía y Gustavo) quieren compartir información sobre las películas que vieron con las respectivas calificaciones que cada uno le asigna. Rápidamente, se podría definir una estructura genérica como la siguiente: Calificación película Título película: Texto Género: Texto Año de filmación: Fecha Sinopsis: Texto Imagen: Imagen Calificación: Entero Sin embargo esta estructura presenta ciertas desventajas, debido a que los conceptos de película y calificación se encuentran ambos dentro de la misma estructura. Esto significa que se debe cargar tantas veces la película como las calificaciones que se le den sin poder reutilizar datos ya cargados para luego vincularlos. Digamos que Jorge carga una calificación para la película “Rambo I”; luego, si Gustavo también quiere asignarle una clasificación deberá cargar nuevamente los datos de la misma sin poder reutilizar los existentes. Por eso es necesario separar los conceptos de película y calificación creándolos en templates separados: Película Título película: Texto Género: Texto Año de filmación: Fecha Sinopsis: Texto Imagen: Imagen 91 Daniel Fernández TESIS DE GRADO Calificación película Película: Template película (un objeto) Calificación: Entero De esta forma, se pueden cargar por separado objetos película y por otro lado su calificación permitiendo reutilizar los datos individualizando la información y evitando la repetibilidad de datos. Más adelante se mostrará que la separación correcta de los conceptos en distintos templates también colabora para realizar búsquedas más precisas sobre los objetos. 4.1.3. Búsqueda semántica Debido a que la red social conoce la estructura de la información que ella contiene, permite ejercer búsquedas inteligentes. Retomando el ejemplo de las películas, un usuario debería poder buscar todas las comedias que fueron filmadas en Francia después del año 2000. Para lograr ello, la red social semántica presenta una búsqueda avanzada donde el usuario puede, junto a otros datos generales, elegir el template que define los objetos que busca y condicionar los valores de sus propiedades. En la figura 18 se presenta una tabla con las condiciones posibles en una búsqueda según el tipo de propiedad. Propiedad Texto Entero Imagen Fecha Hora Booleano Enlace Email Lista fija Template Condición igual a texto, distinto a texto >,<,=,<>,<=,>=,entre Sin condición >,<,=,<>,<=,>=,entre >,<,=,<>,<=,>=,entre Si, No igual a enlace, distinto a enlace igual a email, distinto a email igual a valor de lista, distinto a valor de lista igual a URI o distinto a URI Figura 18. Condiciones por tipo para búsqueda en la red social semántica. Si se buscan las comedias que fueron filmadas en Francia después del año 2000, se necesita condicionar las siguientes propiedades del template película: Género: lista fija con valor “Comedia” País de filmación: con valor “Estados Unidos” 92 Daniel Fernández TESIS DE GRADO Año de filmación: > a 2000 En la figura 19 se puede ver el ejemplo en el sitio Web. Figura 19. Ejemplo de búsqueda en la red social semántica. 93 Daniel Fernández TESIS DE GRADO Para una búsqueda de todas las películas en que trabajó Robert de Niro, existen dos opciones: Opción 1: se sabe el número que identifica al objeto Robert de Niro (ej. #4312) En la figura 20 se puede ver el ejemplo en el sitio Web. Figura 20. Ejemplo de búsqueda en la red social semántica. 94 Daniel Fernández TESIS DE GRADO Opción 2: no se sabe el número, se puede buscar por nombre y apellido (nombre: Robert, apellido: De Niro) En la figura 21 se puede ver el ejemplo en el sitio Web. Figura 21. Ejemplo de búsqueda en la red social semántica. 95 Daniel Fernández 4.1.4. TESIS DE GRADO Notificaciones semánticas Las notificaciones son avisos ante la carga de un nuevo dato. Debido a que la red social tiene información semántica de los datos que guarda, las notificaciones pueden ser mucho más precisas. Por ejemplo, un usuario puede solicitar que se le notifique cada vez que el usuario “Sofía” califique una película con un puntaje mayor o igual a 4. O pedir una notificación cada vez que se cargue una persona nueva. En la figura 22 se puede ver el ejemplo en el sitio Web. Figura 22. Ejemplo de notificación en la red social semántica. Asimismo, la red social semántica permite a los usuarios relacionarse con nuevos usuarios mediante un concepto en particular. Siguiendo con el ejemplo de las películas, un usuario puede utilizar las notificaciones o las búsquedas para conocer otros usuarios interesados en los mismos tipos de películas. 96 Daniel Fernández TESIS DE GRADO 4.1.5. Repositorio de esquemas calificados La aplicación implementada permite que el usuario defina con libertad las estructuras de los datos que quiere generar. Estas estructuras son almacenadas con el formato de la Web Semántica conocido como RDFs. Los usuarios tienen las herramientas necesarias para definir en forma práctica un esquema RDFs con sus respectivas clases y propiedades para describir los datos de su dominio. Debido a que se puede definir cualquier esquema RDFs, el dominio de cada usuario no se limita a un conjunto de datos en particular, sino que puede crecer infinitamente. La creación de esquemas comunes de manera colaborativa conlleva a un repositorio de esquemas RDF. Como pueden existir múltiples esquemas para un concepto, es necesario organizarlos en base a su importancia. La aplicación permite ordenar los esquemas según la cantidad de datos que tenga asociados o según su puntaje de calificación. Este último se obtiene de puntajes que los usuarios otorgan a cada dato e indirectamente a su esquema. Dos reglas se establecen en la calificación de los datos: 1 – El creador de un dato, no puede calificarlo. Esto evita el voto redundante y el malintencionado, todo creador implícitamente estima que su dato es bueno, de lo contrario no lo estaría creando. 2 – El voto es positivo con un valor entre 1 y 10. La red social semántica tiene un sistema de calificación que se lo denomina bilateral porque un usuario puede calificar los datos de otro y, a su vez, esté último puede también calificar los datos del primero. Por lo general, cuando se puede calificar de manera positiva o negativa, existe un miedo entre los usuarios de que las malas calificaciones que otorgue puedan ser devueltas en modo de represalia. Christopher Allen y Shannon Appelcline [Allen et al, 2005] determinaron que, debido a este miedo generado en los sistemas de calificación bilateral, los usuarios tienden a otorgar puntuaciones positivas y lo ejemplifican con el caso de eBay donde de cada 100 votos que se otorgan, 99 son positivos. Por eso, explican que es mejor un sistema de calificaciones positivas que varíe en por lo menos 10 puntos. Allen y Appelcline explican que en un rango menor de puntuación, por ejemplo de 1 a 5, el 10% de los usuarios tiende a calificar los datos con 1 o 2 puntos, mientras que el 42,2% los califica con 4 puntos. Esto conlleva a que se pierda información significativa de puntuación y no haya una adecuada diferenciación en la misma. En cambio, con un rango de 1 a 10, el 90% de los usuarios califican con un puntaje bien distribuido entre 5 y 10 otorgando un valor más significativo a su puntación. 97 Daniel Fernández TESIS DE GRADO Respetando estas dos reglas, la red social semántica debe calcular una puntuación para cada objeto según las calificaciones que éste recibe. Una opción es utilizar la media aritmética (promedio) entre la cantidad de votos y votantes para asignarlo como puntaje. A continuación, se muestra una tabla que detalla un ejemplo de calificaciones basado en la media aritmética para cuatro objetos: Nro. objeto Obj1 Obj2 Obj3 Obj4 Cant. Pers. 2 26 10 1 Suma Calif. 6 110 26 5 Media Aritmética 3,00 4,23 2,60 5,00 Figura 23. Calificación de datos según la media aritmética. - En la primera columna se enumera el objeto que se está calificando. - La segunda columna pertenece a la suma de todas las puntaciones que el objeto ha recibido. - En la tercera columna aparece el número de personas que lo han votado. - Finalmente, la cuarta muestra el resultado de calcular media de votos aritmética del objeto (la segunda columna dividido la tercera). Aunque utilizar la media aritmética como calificación del objeto no es totalmente justo. Los 26 votos del objeto número dos que suman 110 puntos dan la correcta intuición de que dicho objeto es mucho más confiable que el número cuatro con un voto de 5 puntos. La media aritmética, sin embargo, califica mejor al objeto número cuatro con un puntaje de 5 puntos mientras que al objeto número dos le asigna injustamente 4,23 puntos. El error recae en usar una aproximación aritmética que no toma en cuenta el número total de calificaciones. Idealmente se le debe asignar menos peso a los datos con menor cantidad de votos y más peso a aquellos que tienen mayor cantidad. Una forma de solucionar esto y reducir el ruido generado por los objetos con pocas votaciones es utilizar una aproximación estadística como la media bayesiana. Esta técnica normaliza las calificaciones empujándolas hacia la calificación promedio del sitio. De hecho, cuantos menos votos recibe un elemento, el resultado bayesiano más se acerca a la media global de todos ellos. n r i 1 n xi Cm C Donde 98 Daniel Fernández TESIS DE GRADO r = media bayesiana n = número de votos de un elemento C = mínimo número de votos requeridos para ser listado m = la media de todos los votos de todos los elementos xi = valor del voto i Si definimos R como la media aritmética de un elemento n i 1 R xi n se obtiene n i 1 xi nR Entonces, la media bayesiana puede reescribirse de la siguiente manera: r nR n Cm C r nR n C Cm n C n r n R C C n C m Si analizamos la última fórmula, vemos que el primer sumando: v (v m) R indica el peso dado a la media propia, mientras que el segundo sumando: m (v m) C determina el peso dado a la media general. Si se obtienen muchos votos de un elemento, pesa más la propia media de ese elemento que la general, y viceversa, si tienes muy pocos votos, pesa más la media general. Otra forma de explicarlo es que, cuantos más votos tiene un elemento, menos se modifica el resultado bayesiano de la media aritmética de ese elemento. 99 Daniel Fernández TESIS DE GRADO Si aplicamos la media bayesiana al ejemplo anterior, obtenemos la siguiente tabla: Objeto Obj1 Obj2 Obj3 Obj4 Suma puntuaciones 6 110 26 5 Cantidad Votos 2 26 10 1 Media de votos Arit. ( R ) 3,00 4,23 2,60 5,00 Media total Arit. ( C ) 3,71 3,71 3,71 3,71 Figura 24 Calificación de datos según la media bayesiana. Con m = 10 - En la primera columna se enumera el objeto que se está calificando. - La segunda columna pertenece a la suma de todas las puntaciones que el objeto ha recibido. - En la tercera columna aparece el número de personas que lo han votado. - La cuarta muestra el resultado de calcular media de votos aritmética del objeto (la segunda columna dividido la tercera). - En la quinta columna se detalla C, que es la media global de todos los elementos del conjunto, es decir, la suma de todas las votaciones de todos ellos dividido por el número de votos que han recibido todos los elementos. - En la última columna, se calcula la media bayesiana. Se puede ver que al aplicar la media bayesiana en la red social semántica, se equilibran mucho mejor los pesos y la influencia de cada elemento respecto a los demás. A diferencia del resultado generado por la media aritmética, la media bayesiana es más justa y califica al objeto número dos con mayor puntaje (4,09) que el objeto número cuatro (3,83). 100 Media Bayesiana 3,59 4,09 3,15 3,83 Daniel Fernández 4.1.6. TESIS DE GRADO Exportación de datos Para lograr interoperabilidad con otros sistemas, todos los datos que se generan en la aplicación se comparten no sólo en formato RDF/XML, sino también en formato RDFa. Se escoge RDFa, en lugar de eRDF, debido a que el primero es soportado por la W3C, el mismo organismo que creo el RDF. Como desventaja, RDFa sólo funciona con XHTML pero actualmente la mayoría de los navegadores soporta dicho formato. La exportación de datos en formatos estándar es clave para la creación de herramientas que extraigan dichos datos. Por ejemplo, si en la red social se guardan datos de eventos históricos, se puede crear una herramienta externa que haga uso de dichos datos y permita generar líneas de tiempo históricas entre dos fechas determinadas. Como el dominio no es acotado, es posible generar cualquier tipo de herramienta que utilice los datos semánticos de la red social y por ende, generar distintos tipos de beneficios. 101 Daniel Fernández TESIS DE GRADO 4.2. Ejemplo A continuación se analizará un ejemplo más detallado de la calificación de películas, mostrando como se visualiza cada estructura ante un usuario de la red social semántica y como implícitamente se generan sus definiciones en RDF/XML. Se ejemplificarán cinco templates: - Template Template Template Template Template género imagen simple persona simple película calificación película Nota: Todos las URIS nombradas en el ejemplo no necesariamente existen como URLs. 102 Daniel Fernández TESIS DE GRADO Template género El template género es la estructura más simple de todas debido a que sólo contiene una propiedad con el nombre del género de la película. Por ejemplo: terror, comedia, suspenso, etc. Estructura Género: Texto Género: Texto Web Figura 25. Captura Web de un template en la red social semántica. URI http://www.meantoo.com/classes/dani/1225426644 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225426644" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdfs:class rdf:id="movietype"> <rdfs:label>Movie type</rdfs:label> <rdfs:comment>Movie classification</rdfs:comment> <rdfs:subclassof rdf:resource="http://www.w3.org/1999/02/22-rdfsyntax-ns#Resource" /> </rdfs:class> - <rdfs:property rdf:id="type"> <rdfs:label>Type</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movietype" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#text" /> </rdfs:property> </rdf:rdf> En el esquema RDF, se define una clase identificada unívocamente dentro del mismo como “movietype”, mientras que universalmente por la siguiente 103 Daniel Fernández TESIS DE GRADO URI: “http://www.meantoo.com/classes/dani/1225426644#movietype”. La misma tiene una etiqueta o nombre (label) que es “Movie type” y un comentario (comment) que dice “Movie classification”. La única propiedad del esquema es identificada por “type” con la etiqueta “Type” y sin comentario. Esta propiedad es de tipo texto de la red social semántica ya que su tipo (range en términos RDFS) está definido por la URI: http://www.meantoo.com/vocabulary/tempprop#text Objeto asociado al template género Web Figura 26. Captura Web de un objeto en la red social semántica. URI http://www.meantoo.com/ objects/23047 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225426644" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <a:movietype rdf:id="object1"> <a:type>Mafia films</a:type> </a:movietype> </rdf:rdf> En esta definición RDF/XML se define un recurso asociado a la clase http://www.meantoo.com/classes/dani/1225426644#movietype. En términos de la red social semántica, se define un objeto para el template Género. La propiedad tipo contiene el texto “Mafia Films”, lo que indica que este objeto género será usado para calificar las películas de mafia. 104 Daniel Fernández TESIS DE GRADO Template imagen simple El template imagen simple permite cargar dos datos básicos de una imagen: el archivo asociado y una descripción de la misma. Estructura Imagen simple Imagen: Imagen Descripción: Texto Web Figura 27. Captura Web de un template en la red social semántica. URI http://www.meantoo.com/classes/dani/1225426748 RDF/XML - - - - <?xml version="1.0" encoding="UTF-8" ?> <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225426748" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdfs:class rdf:id="simpleimage"> <rdfs:label>Simple Image</rdfs:label> <rdfs:comment>Image with description</rdfs:comment> <rdfs:subclassof rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Resource" /> </rdfs:class> <rdfs:property rdf:id="image"> <rdfs:label>Image</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#simpleimage" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#image" /> </rdfs:property> <rdfs:property rdf:id="description"> <rdfs:label>Description</rdfs:label> <rdfs:comment /> 105 Daniel Fernández TESIS DE GRADO <rdfs:domain rdf:resource="#simpleimage" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#text" /> </rdfs:property> </rdf:rdf> El esquema que describe la clase de una imagen simple contiene una propiedad más y de distinto tipo que el esquema anterior. Dicha propiedad es la que se etiqueta con el identificador “image” y su tipo (range) es http://www.meantoo.com/vocabulary/tempprop#image. Este tipo de propiedad permite, en la red social semántica, cargar un archivo de tipo imagen cuando se cree un objeto para dicho template. Objeto asociado al template imagen simple Web Figura 28. Captura Web de un objeto en la red social semántica. URI http://www.meantoo.com/objects/31177 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225426748" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <a:simpleimage rdf:id="object1"> 106 Daniel Fernández TESIS DE GRADO <a:image rdf:resource="http://farm4.static.flickr.com/3161/2731353649_728926f0c f_m.jpg" /> <a:description /> </a:simpleimage> </rdf:rdf> Este objeto define una instancia del template imagen simple. Hace referencia a una imagen externa con dirección http://farm4.static.flickr.com/3161 /2731353649_728926f0cf_m.jpg. No tiene descripción asociada. 107 Daniel Fernández TESIS DE GRADO Template persona simple El template persona simple describe los datos elementales de una persona como son su nombre, apellido, fecha de nacimiento y las fotos de la misma. Estructura Persona simple Nombre: Texto Apellido: Texto Fecha de nacimiento: Fecha Fotos: Template imagen simple (uno o más) Web Figura 29. Captura Web de un template en la red social semántica. URI http://www.meantoo.com/classes/dani/1225426833 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225426833" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdfs:class rdf:id="simpleperson"> <rdfs:label>simple person</rdfs:label> <rdfs:comment>Simple description of a person</rdfs:comment> <rdfs:subclassof rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Resource" /> </rdfs:class> - <rdfs:property rdf:id="name"> <rdfs:label>Name</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#simpleperson" /> 108 Daniel Fernández - - - - TESIS DE GRADO <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#text" /> </rdfs:property> <rdfs:property rdf:id="lastname"> <rdfs:label>Last Name</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#simpleperson" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#text" /> </rdfs:property> <rdfs:property rdf:id="birthdate"> <rdfs:label>Birth Date</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#simpleperson" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#date" /> </rdfs:property> <rdfs:property rdf:id="pictures"> <rdfs:label>Pictures</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#simpleperson" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#exttemp" /> </rdfs:property> <rdfs:property mnt:count="http://www.meantoo.com/vocabulary/tempprop#many" rdf:id="pictures0"> <rdfs:label>Pictures</rdfs:label> <rdfs:domain rdf:resource="#simpleperson" /> <rdfs:range rdf:resource="http://www.meantoo.com/classes/dani/1225426748" /> <rdfs:subpropertyof rdf:resource="#pictures" /> </rdfs:property> </rdf:rdf> En este esquema RDF, se puede apreciar el uso de otro template como propiedad. Es el caso de la propiedad llamada “pictures” cuyo tipo es http://www.meantoo.com/classes/dani/1225426748 (URI del template imagen simple), o sea que se cargará un objeto imagen simple por cada vez que se cague dicha propiedad. Debido a que una propiedad de tipo template permite especificar más de un template asociado a la misma, estos últimos se definen como propiedades separadas y se relacionan mediante la etiqueta rdfs:subpropertyof. Objeto asociado al template persona simple Web 109 Daniel Fernández TESIS DE GRADO Figura 30. Captura Web de un objeto en la red social semántica. URI http://www.meantoo.com/objects/22084 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225426833" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <a:simpleperson rdf:id="object1"> <a:name>Robert</a:name> <a:lastname>De Niro</a:lastname> - <a:pictures> - <rdf:seq> <rdf:li rdf:resource="http://www.meantoo.com/objects/22054" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22055" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22056" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22057" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22058" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22059" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22060" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22061" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22062" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22063" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22064" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22065" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22066" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22067" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22068" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22069" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22070" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22071" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22072" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22073" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22074" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22075" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22076" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22077" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22078" /> 110 Daniel Fernández TESIS DE GRADO <rdf:li rdf:resource="http://www.meantoo.com/objects/22079" <rdf:li rdf:resource="http://www.meantoo.com/objects/22080" <rdf:li rdf:resource="http://www.meantoo.com/objects/22081" <rdf:li rdf:resource="http://www.meantoo.com/objects/22082" <rdf:li rdf:resource="http://www.meantoo.com/objects/22083" </rdf:seq> </a:pictures> </a:simpleperson> </rdf:rdf> /> /> /> /> /> Como se puede apreciar en su definición RDF/XML, el objeto creado para describir al actor Robert De Niro mediante el template persona simple contiene en la propiedad “Pictures”, objetos definidos por el template imagen simple. Cada objeto de tipo imagen simple, tiene asociado una imagen del actor. 111 Daniel Fernández TESIS DE GRADO Template película El template película contiene propiedades que la definen como son título, género, imágenes, fecha de filmación, actores, directores, sinópsis, país de filmación y escritores. Las propiedades actores, directores y escritores están tipificadas por el template persona simple y un objeto película puede tener 0 o N valores para cada una de ellas. La propiedad género es del tipo definido por el template género mencionado anteriormente y la propiedad imágenes por el template imagen simple; ambas propiedades pueden tener 0 o N valores asociados. Estructura Película Título película: Texto Género: Template genéro (uno o más) Imágenes: Template imagen simple (uno o más) Fecha: Fecha Actores: Template persona simple (uno o más) Directores: Template persona simple (uno o más) Sinopsis: Texto País: Lista fija de países Escritores: Template persona simple (uno o más) 112 Daniel Fernández TESIS DE GRADO Web Figura 31. Captura Web de un template en la red social semántica. URI http://www.meantoo.com/classes/dani/1225427088 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225427088" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdfs:class rdf:id="movie"> <rdfs:label>Movie</rdfs:label> <rdfs:comment>Definition of a movie with its main attributes</rdfs:comment> 113 Daniel Fernández - - - - - - - TESIS DE GRADO <rdfs:subclassof rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Resource" /> </rdfs:class> <rdfs:property rdf:id="title"> <rdfs:label>Title</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#text" /> </rdfs:property> <rdfs:property rdf:id="type"> <rdfs:label>Type</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#exttemp" /> </rdfs:property> <rdfs:property mnt:count="http://www.meantoo.com/vocabulary/tempprop#many" rdf:id="type0"> <rdfs:label>Type</rdfs:label> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/classes/dani/1225426644" /> <rdfs:subpropertyof rdf:resource="#type" /> </rdfs:property> <rdfs:property rdf:id="images"> <rdfs:label>Images</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#exttemp" /> </rdfs:property> <rdfs:property mnt:count="http://www.meantoo.com/vocabulary/tempprop#many" rdf:id="images0"> <rdfs:label>Images</rdfs:label> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/classes/dani/1225426748" /> <rdfs:subpropertyof rdf:resource="#images" /> </rdfs:property> <rdfs:property rdf:id="releasedate"> <rdfs:label>Release Date</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#date" /> </rdfs:property> <rdfs:property rdf:id="cast"> <rdfs:label>Cast</rdfs:label> <rdfs:comment /> 114 Daniel Fernández - - - - - - - - TESIS DE GRADO <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#exttemp" /> </rdfs:property> <rdfs:property mnt:count="http://www.meantoo.com/vocabulary/tempprop#many" rdf:id="cast0"> <rdfs:label>Person</rdfs:label> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/classes/dani/1225426833" /> <rdfs:subpropertyof rdf:resource="#cast" /> </rdfs:property> <rdfs:property rdf:id="director"> <rdfs:label>Director</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#exttemp" /> </rdfs:property> <rdfs:property mnt:count="http://www.meantoo.com/vocabulary/tempprop#many" rdf:id="director0"> <rdfs:label>Person</rdfs:label> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/classes/dani/1225426833" /> <rdfs:subpropertyof rdf:resource="#director" /> </rdfs:property> <rdfs:property rdf:id="plot"> <rdfs:label>Plot</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#text" /> </rdfs:property> <rdfs:property rdf:id="country"> <rdfs:label>Country</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="#country1" /> </rdfs:property> <rdfs:class rdf:id="country1" /> <a:country1 rdf:id="afghanistan"> <rdfs:label>Afghanistan</rdfs:label> </a:country1> <a:country1 rdf:id="africa"> <rdfs:label>Africa</rdfs:label> </a:country1> <a:country1 rdf:id="albania"> <rdfs:label>Albania</rdfs:label> </a:country1> 115 Daniel Fernández TESIS DE GRADO - <a:country1 rdf:id="algeria"> <rdfs:label>Algeria</rdfs:label> </a:country1> - <a:country1 rdf:id="americansamoa"> <rdfs:label>American Samoa</rdfs:label> </a:country1> - <a:country1 rdf:id="andorra"> <rdfs:label>Andorra</rdfs:label> </a:country1> … … … - <a:country1 rdf:id="virginislandsus"> <rdfs:label>Virgin Islands US</rdfs:label> </a:country1> - <a:country1 rdf:id="wallisandfutuna"> <rdfs:label>Wallis and Futuna</rdfs:label> </a:country1> - <a:country1 rdf:id="westernsahara"> <rdfs:label>Western Sahara</rdfs:label> </a:country1> - <a:country1 rdf:id="yemen"> <rdfs:label>Yemen</rdfs:label> </a:country1> - <a:country1 rdf:id="zambia"> <rdfs:label>Zambia</rdfs:label> </a:country1> - <a:country1 rdf:id="zimbabwe"> <rdfs:label>Zimbabwe</rdfs:label> </a:country1> - <rdfs:property rdf:id="writer"> <rdfs:label>Writer</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#exttemp" /> </rdfs:property> - <rdfs:property mnt:count="http://www.meantoo.com/vocabulary/tempprop#many" rdf:id="writer0"> <rdfs:label>Person</rdfs:label> <rdfs:domain rdf:resource="#movie" /> <rdfs:range rdf:resource="http://www.meantoo.com/classes/dani/1225426833" /> <rdfs:subpropertyof rdf:resource="#writer" /> </rdfs:property> </rdf:rdf> 116 Daniel Fernández TESIS DE GRADO La estructura template presenta propiedades de tipo template al igual que el template visto anteriormente (template Persona). Se definen también en este template propiedades de tipo fecha y lista fija. En el caso de la lista fija, para definir sus valores posibles, se crea una clase especial. En este ejemplo, la propiedad de la lista fija se llama “country” y su tipo es “country1”, una clase definida en el esquema. Los valores para “country” son los recursos definidos para la clase “country1”, en este caso, países. Objeto asociado al templa película Web Figura 32. Flujo Captura Web de un objeto en la red social semántica. URI http://www.meantoo.com/objects/31225 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225427088" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <a:movie> <a:title>The Godfather Part II</a:title> - <a:type> - <rdf:seq> <rdf:li rdf:resource="http://www.meantoo.com/objects/20522" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/4485" /> 117 Daniel Fernández TESIS DE GRADO <rdf:li rdf:resource="http://www.meantoo.com/objects/9890" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/4788" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/11826" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/6" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31161" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/26503" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31162" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/4799" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/27426" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/4487" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/644" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31163" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/19058" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/1377" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/4001" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/23047" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/23233" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/5950" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/23230" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/4071" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/1685" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/641" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/5149" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/331" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/1916" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/107" /> </rdf:seq> </a:type> - <a:images> - <rdf:seq> <rdf:li rdf:resource="http://www.meantoo.com/objects/31164" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31165" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31166" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31167" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31168" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31169" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31170" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31171" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31172" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31173" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31174" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31175" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31176" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31177" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31178" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31179" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31180" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31181" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31182" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31183" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31184" /> </rdf:seq> </a:images> 118 Daniel Fernández TESIS DE GRADO - <a:cast> - <rdf:seq> <rdf:li rdf:resource="http://www.meantoo.com/objects/31186" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/4537" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31187" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/7000" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/19279" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/22084" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/23328" /> </rdf:seq> </a:cast> <a:director rdf:resource="http://www.meantoo.com/objects/31218" /> - <a:writer> - <rdf:seq> <rdf:li rdf:resource="http://www.meantoo.com/objects/31224" /> <rdf:li rdf:resource="http://www.meantoo.com/objects/31218" /> </rdf:seq> </a:writer> <a:plot>The Godfather Part II is a 1974 crime drama film directed by Francis Ford Coppola from a script co-written with Mario Puzo. The film is both a sequel and a prequel to The Godfather, chronicling the story of the Corleone family following the events of the first film while also depicting the rise to power of the young Vito Corleone. The film stars Al Pacino, Robert Duvall, Diane Keaton, Robert De Niro, John Cazale, Talia Shire, and Lee Strasberg. It is ranked as the fourth best movie of all time on the Internet Movie Database, with the movie"s predecessor, The Godfather, ranked as #2, and the American Film Institute lists it as #32. The Godfather Part II was nominated for eleven Academy Awards and won six, including the Best Picture Award and the Best Supporting Actor Award for Robert De Niro. The Godfather Part II has been selected for preservation in the United States National Film Registry.</a:plot> <a:country rdf:resource="http://localhost/classes/dani/1225427088#unitedstates" /> </a:movie> </rdf:rdf> La definición RDF/XML de la película “El padrino II” contiene valores literales como la sinopsis de la misma y recursos RDF como son los actores, directores, escritores, géneros o imágenes asociadas. Estos recursos RDF son otros objetos definidos en la red social semántica. Por ejemplo, se puede ver que un valor para la propiedad “cast” (actores) es el recurso http://www.meantoo.com/objects/22084#object1, que como vimos anteriormente describe al actor Robert De Niro. Esto quiere decir que Robert De Niro forma parte del grupo de actores de la película “El padrino II”. 119 Daniel Fernández TESIS DE GRADO Template calificación película El template calificación película es la estructura que permite calificar una película. Para ello cuenta con tres propiedades. La primera permite definir de qué película se está tratando y está tipificada por el template película, la segunda es un entero para asignarle la calificación y la tercera un comentario de tipo texto donde se puede explicar el porqué de la calificación otorgada. Estructura Clasificación película Película: Template película Clasificación: Entero Comentario: Texto Web Figura 33. Captura Web de un template en la red social semántica. URI http://www.meantoo.com/classes/dani/1225735189 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225735189" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdfs:class rdf:id="movieranking"> <rdfs:label>Movie ranking</rdfs:label> <rdfs:comment>It is used to rank a movie between 0 and 10</rdfs:comment> <rdfs:subclassof rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Resource" /> </rdfs:class> - <rdfs:property rdf:id="movie"> 120 Daniel Fernández TESIS DE GRADO <rdfs:label>Movie</rdfs:label> <rdfs:comment /> <rdfs:domain rdf:resource="#movieranking" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#exttemp" /> </rdfs:property> - <rdfs:property mnt:count="http://www.meantoo.com/vocabulary/tempprop#one" rdf:id="movie0"> <rdfs:label>Movie</rdfs:label> <rdfs:domain rdf:resource="#movieranking" /> <rdfs:range rdf:resource="http://www.meantoo.com/classes/dani/1225427088" /> <rdfs:subpropertyof rdf:resource="#movie" /> </rdfs:property> - <rdfs:property rdf:id="ranking"> <rdfs:label>Ranking</rdfs:label> <rdfs:comment>Ranking between 0 and 10</rdfs:comment> <rdfs:domain rdf:resource="#movieranking" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#number" /> </rdfs:property> - <rdfs:property rdf:id="comment"> <rdfs:label>Comment</rdfs:label> <rdfs:comment>Opinion about the movie</rdfs:comment> <rdfs:domain rdf:resource="#movieranking" /> <rdfs:range rdf:resource="http://www.meantoo.com/vocabulary/tempprop#text" /> </rdfs:property> </rdf:rdf> La clase template tiene como características distintivas a los templates anteriores que la propiedad de tipo template que contiene esta limitada a sólo un objeto. Esto quiere decir que por cada objeto calificación película se puede definir sólo una película como propiedad. 121 Daniel Fernández TESIS DE GRADO Objeto asociado al template calificación película Web Figura 34. Captura Web de un objeto en la red social semántica. URI http://www.meantoo.com/objects/dani/1225933171 RDF/XML <?xml version="1.0" encoding="UTF-8" ?> - <rdf:rdf xmlns:mnt="http://www.meantoo.com/vocabulary/tempprop#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:a="http://www.meantoo.com/classes/dani/1225735189" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <a:movieranking rdf:id="object1"> <a:movie rdf:resource="http://www.meantoo.com/objects/162433" /> <a:ranking>9</a:ranking> <a:comment>Excellent movie. Almost as good as part I.</a:comment> </a:movieranking> </rdf:rdf> Este objeto califica la película “El padrino II” (URI = http://www.meantoo.com /objects/162433) con un puntaje de 9 (tipo entero) y agrega un pequeño comentario de la misma (tipo texto). 122 Daniel Fernández 4.3. TESIS DE GRADO Pruebas y resultados 4.3.1. Pruebas Se llevaron a cabo una serie de pruebas de la solución desarrollada para poder evaluar si cumple los tres puntos propuestos: - Tener una interfaz de usuario rica y amigable que oculte las dificultades propias de la Web Semántica durante la carga de datos y metadatos. - Embeber los datos RDF generados por los usuarios en el código HTML mediante el lenguaje de etiquetado RDFa. - Brindar un beneficio inmediato al usuario que comparta sus datos con la tecnología de la Web Semántica. Para probar dichos puntos, se realizaron un conjunto de pruebas en el siguiente orden: 1 – Creación de templates Para continuar con el dominio de las películas, se crearon los templates vistos en ejemplos anteriores: género, imagen simple, persona simple, película y calificación película. 2 – Carga automática de datos Se extrajeron automáticamente un conjunto grande de datos para los templates generados. Para realizar dicha carga automática, se leyeron datos de películas desde Dbpedia [WEB-8] y se transformaron a formato RDF/XML para que concuerden con los esquemas de los templates. Dbpedia es un proyecto que tiene como objetivo extraer datos de Wikipedia y estructurarlos en formato RDF/XML. Actualmente contiene más de 2.180.000 entidades, de las cuales por lo menos 80.000 son personas, 293.000 son lugares, 62.000 son álbumes de música y 36.000 son películas. 3 - Carga manual de datos Se les solicitó a tres personas que se registren en la red social semántica y carguen datos manualmente para los cinco templates definidos. 123 Daniel Fernández TESIS DE GRADO 4 - Búsqueda y notificaciones Se les solicitó a quince personas que generen notificaciones, busquen y naveguen la red social semántica. Se calculó la cantidad de visitas a cada dato por usuario. 5- Segunda carga automática de datos Se realizó una segunda carga automática de datos, pero esta vez con el objetivo de calcular la cantidad de notificaciones automáticas que se dispararon. 124 Daniel Fernández 4.3.2. TESIS DE GRADO Resultados En la siguiente tabla se pueden ver los resultados de cada prueba: 1 – Se crearon los cinco templates para el dominio de películas: Template Género Imagen Simple Persona Simple Película Calificación Película Depende de otro template No No Si (Imagen Simple) Si (Imagen Simple, Persona Simple, Género) Si (Película) Figura 35. Tabla con los templates de prueba creados y sus dependencias. Es importante tener en cuenta de cuales templates depende un template debido a que es uno de los principales factores que afectan el número de visitas de sus datos. Por ejemplo, es muy probable que cada usuario que vea un dato del template película quiera ver su género y por ende, vea un dato del template género. 2 – Se cargaron automáticamente 162210 entidades automáticamente de Dbpedia en 21 horas. En la tabla de la figura 36 se puede la cantidad de datos por template. Template Género Imagen Simple Persona Simple Película Calificación Película Totales Datos cargados automáticamente 3163 134139 13362 11546 0 162210 Figura 36. Tabla con los templates de prueba y la cantidad de datos que se le cargaron automáticamente a cada uno. 3 – Se cargaron manualmente 77 entidades por los tres usuarios durante un día. Es importante destacar el primer aporte de la red social semántica: personas que no conocen la complejidad propia de la tecnología de la Web Semántica lograron indirectamente generar datos en formato RDF respaldados por un RDF esquema. 125 Daniel Fernández Template Género Imagen Simple Persona Simple Película Calificación Película Totales TESIS DE GRADO Datos cargados en la Web 2 24 9 13 29 77 Figura 37. Tabla con los templates de prueba y la cantidad de datos cargados manualmente. 4 – Durante tres días, se obtuvieron 37 notificaciones y 18563 visitas a los datos cargados por quince usuarios (si un usuario visitó un dato más de una vez, se lo contó como una sola visita). Template Género Imagen Simple Persona Simple Película Calificación Película Totales Notificaciones Vistos p/usuario 5 618 0 15289 6 1514 13 891 14 38 251 18563 Figura 38. Tabla con los templates de prueba, la cantidad de notificaciones que se crearon asociadas a los mismos y la cantidad de visitas por usuario que sus datos obtuvieron. Se puede visualizar que los usuarios lograron acceder a muchos datos. Es un claro beneficio para quien carga los datos en la red social semántica. 126 Daniel Fernández TESIS DE GRADO 5 – Se cargaron 2646 películas automáticamente y se dispararon 17 notificaciones automáticamente. Template Género Imagen Simple Persona Simple Película Calificación Película Totales Notificaciones disparadas 3 0 5 9 0 17 Datos nuevos 9 0 23 36 0 68 Figura 39. Tabla con los templates de prueba, la cantidad de notificaciones asociadas a los mismos que se dispararon y la cantidad de datos nuevos en las notificaciones. Los resultados demuestran que se puede enmascarar bajo una interfaz amigable la complejidad de la Web Semántica y lograr que usuarios sin experiencia en dicha tecnología generen datos bajo dicha tecnología. Se crearon 77 objetos manualmente, todos almacenados en formato RDF/XML y RDFa. Asimismo, se puede ver que se accedió al 11,4 % del total de los datos cargados sólo en tres días de pruebas por quince personas únicamente. Es un buen promedio considerando que la carga del 99.96% de los datos fue automática y duró menos de 24 horas. Finalmente, las pruebas detallan que la carga de datos externos disparó 17 notificaciones a usuarios con 68 datos nuevos en total. Había 38 notificaciones, de las cuales sólo 24 pueden ser afectadas por la carga de películas porque jamás se van a disparar notificaciones basadas en el template calificación película ante la carga de datos para el template película (el segundo no depende del primero). Que se hayan disparado 17 notificaciones de 24 es un buen indicio de la llegada inmediata que tiene la red social semántica ante la carga de datos y un beneficio claro e inmediato para el usuario creador. 127 Daniel Fernández TESIS DE GRADO Capítulo 5: Conclusiones y trabajo futuro En este capítulo se analiza cómo se han cumplido los objetivos que se marcaron al principio de la tesis. Después se extraen las conclusiones más importantes de los distintos temas abordados a lo largo del trabajo. Finalmente, se exponen las posibles líneas de trabajo futuro en las que se puede seguir trabajando. 128 Daniel Fernández 5.1. TESIS DE GRADO Conclusiones El objetivo de este trabajo era encontrar la mejor tecnología que fomente el significado de los datos en la Web y desarrollar una solución informática que aplicase y promueva dicha tecnología. De las dos aproximaciones existentes para generar e interpretar la semántica de los datos, se concluyó que el camino bottom-up es el más adecuado. Esto se debe a que las principales técnicas en el camino top-down están lejos de obtener resultados sólidos. Por un lado, el procesamiento del lenguaje natural se topa con dificultades no resueltas propias del lenguaje humano y la complejidad en determinar los contextos, problemas en los cuales se trabajo durante años y no existe una solución próxima. Mientras que Web scraping logra hacer un buen trabajo en dominios acotados pero no sirve para procesar el significado de todos los datos de la Web. En cambio, la aproximación bottom-up lidia con dificultades más fáciles de solucionar como son el agregado de metadatos a las páginas Web y la conexión de los mismos. Es por ello que el mejor camino para fomentar el significado de los datos en la Web es el bottom-up y se escoge de sus dos principales técnicas y tecnologías a la Web Semántica. La Web Semántica es más completa y abarcativa que los microformatos. Fue definida para un dominio extensible y para ser aplicable a todos los datos de la Web. Permite representar eficientemente cualquier tipo de información estableciendo una forma universal de estructurar las relaciones entre los datos y entre éstos y sus significados. Mientras que los microformatos, a pesar de ser más simples, están definidos para contextos específicos. Actualmente, los esfuerzos entorno a la Web Semántica están enfocados a la creación de nuevos esquemas y ontologías. Sin embargo no es práctico imponer un estándar único con limitaciones estrictas en la definición de un concepto. Los usuarios tienen distintas preferencias y requerimientos emergentes. No existe un esquema perfecto para definir un concepto. La posibilidad de crear esquemas debe ser un proceso colaborativo y evolutivo. El software social motiva la amplia participación mediante interfaces simples y amigables. En este trabajo se implementó un sistema que une las características colaborativas de una red social con la estructuración de datos que propone la Web Semántica. Es una plataforma social que facilita el modelado y la forma de compartir información heterogénea de manera estructurada. Al relajar las libertades y permitir que los usuarios puedan definir sus propios conceptos con libertad, se fomenta la contribución de la comunidad Web. A continuación se enumeran sus más importantes aportaciones: Enmascara la complejidad de la Web Semántica Al utilizar una interfaz simple y amigable desarrollada bajo la tecnología conocida como Web 2.0, la red social facilita la carga de datos semánticos y los 129 Daniel Fernández TESIS DE GRADO almacena en formato RDF/XML y RDFa de manera transparente para el usuario. Esto es un beneficio claro para las personas que no conocen ni les interesan los detalles de la Web Semántica, pero aún así quieren que los datos que carguen en la Web se guarden, busquen e interpreten de una forma más inteligente. Trabajar en forma colaborativa bajo cualquier dominio La red social semántica permite que el usuario especifique libremente los dominios en los que quiere trabajar. La ventaja de que un usuario limite a voluntad sus dominios es que no sólo puede encontrar información de manera más específica sino que puede conocer e interactuar con otras personas que tienen mismos intereses. Creación de un repositorio de esquemas socialmente calificados La carga de un template equivale a la carga de un esquema RDF. Cuando un usuario califica un dato del template, está indirectamente calificando el template, es decir el esquema RDF. Por ende, la red social semántica es también un repositorio de esquemas RDF que están socialmente calificados. Si un usuario desea estructurar sus datos en formato RDF para que un buscador semántico lo interprete de manera más inteligente, en lugar de inventar nuevas clases y propiedades, puede utilizar el esquema más adecuado y con mejor puntaje que encuentre en la red social semántica. Interoperabilidad con otros sistemas A diferencia de los sistemas cerrados donde únicamente sus propietarios entienden la semántica de los datos, la aplicación implementada en este trabajo tiene interoperabilidad con otros sistemas permitiendo que los datos estructurados se compartan. Con el crecimiento significativo de datos estructurados, la Web rápidamente se va a mover hacia los que es una Web Estructurada y esto se lo considera como el paso transitivo para alcanzar la Web Semántica. 130 Daniel Fernández 5.2. TESIS DE GRADO Futuras líneas de trabajo Queda mucho trabajo por hacer para esparcir completamente el uso de la Web Semántica a lo largo de toda la Web. Algunos de ellos son: Desarrollo de buscadores semánticos que logren parsear cualquier dato en formato RDF/XML, eRDF o RDFa, almacenarlo, interpretarlo para luego devolverlo en forma de resultados más precisos. Desarrollo de otras herramientas que hagan uso de los datos guardados en formato RDF/XML, eRDF o RDFa. Transformación de datos existentes en las páginas Web al formato RDFa o eRDF. Esto se puede llevar a cabo manualmente o mediante técnicas de scraping. Conferencias incentivando el uso de la Web Semántica a nivel mundial. Deben ser orientadas no sólo a personas en el área de la informática sino también a empresarios y comerciantes para que descubran las ventajas de la tecnología. En cuanto a la solución informática, se la puede mejorar a futuro desarrollando herramientas que posibiliten lo siguiente: Creación de comunidades orientadas a dominios específicos. Expansión de las propiedades de una clase RDFS. Expansión de los datos de un recurso RDF. Importación de datos en formato RDF/XML y RDFa. Condiciones AND y OR en las búsquedas. Autentificación mediante OpenId. Desarrollo de herramientas internas basadas en OpenSocial Comunicación con otras redes sociales. 131 Daniel Fernández 5.3. TESIS DE GRADO Bibliografía [Allen et al, 2005] Christopher Allen, Shannon Appelcline, Collective Choice: Ratings, 2005 [Beckett, 2004] Dave Beckett, RDF/XML Syntax Specification (Revised), World Wide Web Consortium, 2004. [Berners-Lee, 1989] Tim Berners-Lee, Information Management: A Proposal, 1989 [Berners-Lee, 2001] Tim Berners-Lee, The Semantic Web: A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities, 2001 [Brickley et al, 2004] Dan Brickley, Ramanathan V. Guha, RDF Vocabulary Description Language 1.0: RDF Schema, World Wide Web Consortium, 2004 [Contreras et al, 2003] Jorge L. Contreras, Nader Mousavi, Website Spidering and Scraping: A Legal Minefield, 2003 [Doctorow, 2001] Cory Doctorow, Metacrap: Putting the torch to seven straw-men of the meta-utopia, 2001 [Downes, 2005] Stephen Downes, Semantic Networks and Social Networks, 2005 [Engeström, 2005] Jyri Engeström, Why some social network services work and others don't — Or: the case for object-centered sociality, 2005 [Freeman, 1979] Linton C. Freeman, Centrality in Social Networks Conceptual Clarification, 1979 [Gantz et al, 2007] John F. Gantz, David Reinsel, Christopher Chute, Wolfgang Schlichting, John McArthur, Stephen Minton, Irida Xheneti, Anna Toncheva, Alex Manfrediz, A Forecast of Worldwide Information Growth Through 2010, 2007 [Gauker, 2003] Christopher Gauker, Words without Meaning, 2003 [Grishman, 1991] Ralph Grishman, Introducción a la lingüística computacional, 1991 [Gruber, 2003] Tom Gruber, It Is What It Does:The Pragmatics of Ontology for Knowledge Sharing, 2003 [Hanneman, 2001] Robert A. Hanneman, Introducción a los métodos del análisis de redes sociales, 2001 [Magaña et al, 2007] Carlos M. N. Magaña, Marisela E. Pimentel, Lenguajes Naturales, 2007 132 Daniel Fernández TESIS DE GRADO [McGuinness et al, 2004] Deborah L. McGuinness, Frank van Harmelen, OWL Web Ontology Language Overview, 2004 [O'Reilly, 2007] Tim O'Reilly, Different Approaches to the Semantic Web, 2007 [Torres, 2007] Elias Torres, Open Data in HTML, 2007 [Wilson, 2006] Todd Wilson, Three common methods for data extraction, 2006 [Winograd et al, 1987] Terry Winograd, Fernando Flores, Understanding computers and cognition, 1986 [WEB-1] http://www.cyc.com [WEB-2] http://www.dapper.net [WEB-3] http://pipes.yahoo.com/pipes [WEB-4] http://www.w3c.es [WEB-5] http://dublincore.org [WEB-6] http://www.daml.org [WEB-7] http://microformats.org [WEB-8] http://dbpedia.org [WEB-9] http://www.wikipedia.org [WEB-10] http://www.taringa.net 133