Universidad Jaime I Dep. de Lenguajes y Sistemas Inform(cid:19)aticos Consultas anal(cid:19)(cid:16)ticas y visualizaci(cid:19)on para datos abiertos enlazados Trabajo Fin de M(cid:19)aster SIU043 | Autor | Iv(cid:19)an Posilio Gellida |Tutores| Rafael Berlanga Llavori y Mar(cid:19)(cid:16)a Victoria Nebot Romero 23 de diciembre de 2014 (cid:19) Indice general 1. Introducci(cid:19)on 1 1.1. Motivacio(cid:19)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Fundamentos 3 2.1. Cambio a la web sem(cid:19)antica . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Datos enlazados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1. RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1.1. Tripletas RDF . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1.2. RDF y URIs . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1.3. Literales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2. RDF/XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3. Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.4. Extracci(cid:19)on de datos enlazados: SPARQL . . . . . . . . . . . . . . . 9 2.2.4.1. Puntos de acceso . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.4.2. Sintaxis SPARQL . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.4.3. Consultas SPARQL . . . . . . . . . . . . . . . . . . . . . 10 2.2.5. Datos abiertos enlazados . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3. Data warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.1. De(cid:12)nici(cid:19)on de data warehouse . . . . . . . . . . . . . . . . . . . . . 12 2.3.2. Data warehouse y sistemas operacionales . . . . . . . . . . . . . . . 13 2.3.3. Modelo multidimensional . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.4. OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.5. Operaciones OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.5.1. Roll-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.5.2. Drill-down . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.5.3. Slice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.5.4. Dice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3. Estudio de antecedentes 19 3.1. Rel(cid:12)nder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2. gFacet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3. Sgvizler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4. Propuesta 22 4.1. Exploraci(cid:19)on y bu(cid:19)squeda de relaciones . . . . . . . . . . . . . . . . . . . . . 22 4.2. Resultados de la exploraci(cid:19)on previa . . . . . . . . . . . . . . . . . . . . . . 23 4.3. Creaci(cid:19)on del cat(cid:19)alogo intermedio . . . . . . . . . . . . . . . . . . . . . . . 23 4.4. Interfaz de consultas visuales . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.4.1. Entidad central . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.4.2. Tabla de medidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 i (cid:19)INDICE GENERAL ii 4.4.3. Tabla dimensiones y propiedades . . . . . . . . . . . . . . . . . . . 26 4.4.4. Filtros en la tabla de propiedades . . . . . . . . . . . . . . . . . . . 27 4.5. Consulta (cid:12)nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.5.1. Consulta sin medidas . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.5.2. Consulta con medidas y sin operaciones de agregados . . . . . . . . 31 4.5.3. Consulta con medidas y funciones de agregados . . . . . . . . . . . 32 5. Arquitectura 33 5.1. Tecnolog(cid:19)(cid:16)a Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.1. Presentacio(cid:19)n del cliente . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.2. L(cid:19)ogica del cliente: AJAX . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2. Catalogo intermedio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3. Tecnolog(cid:19)(cid:16)a Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6. Elecci(cid:19)on del framework JavaScript 42 6.1. jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.1.1. Estructura de la aplicaci(cid:19)on . . . . . . . . . . . . . . . . . . . . . . . 43 6.1.2. Manipulaci(cid:19)on de la interfaz HTML . . . . . . . . . . . . . . . . . . 43 6.2. Backbone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.2.1. Patro(cid:19)n MVC de Backbone . . . . . . . . . . . . . . . . . . . . . . . 45 6.2.2. Problemas de Backbone . . . . . . . . . . . . . . . . . . . . . . . . 47 6.3. AngularJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.3.1. Patro(cid:19)n MVC con AngularJS . . . . . . . . . . . . . . . . . . . . . . 47 6.3.2. Enlace y (cid:19)ambito de los datos . . . . . . . . . . . . . . . . . . . . . . 49 6.3.3. Servicios y directivas . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.4. Elecci(cid:19)on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7. Resultados 54 7.1. Filtro opcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.2. Selecci(cid:19)on de entidades centrales . . . . . . . . . . . . . . . . . . . . . . . . 55 7.3. Detalles consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.4. Ver resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8. Conclusiones y trabajo futuro 59 8.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Bibliograf(cid:19)(cid:16)a 63 (cid:19) Indice de (cid:12)guras 2.1. grafo de la web actual y la web sem(cid:19)antica . . . . . . . . . . . . . . . . . . 4 2.2. Ejemplo de tripleta RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3. Grafo representando la tripleta de la (cid:12)gura 2.2 . . . . . . . . . . . . . . . 6 2.4. Ejemplo 1 RDF/XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5. Ejemplo 2 RDF/XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.6. Datos del dataset de Enipedia en datahub . . . . . . . . . . . . . . . . . . 9 2.7. Sintaxis b(cid:19)asica de SPARQL . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.8. Consulta SPARQL 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.9. Consulta SPARQL 1 con sintaxis alternativa . . . . . . . . . . . . . . . . . 11 2.10.Parte de los resultados consulta SPARQL 1 . . . . . . . . . . . . . . . . . 11 2.11.Consulta SPARQL 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.12.Visi(cid:19)on general de un data warehouse . . . . . . . . . . . . . . . . . . . . . 13 2.13.caracter(cid:19)(cid:16)sticas data warehouse y sistema operacional . . . . . . . . . . . . . 14 2.14.Ejemplo de esquema dimensional (estrella) de un DW . . . . . . . . . . . . 14 2.15.Ejemplo cubo multidimensional . . . . . . . . . . . . . . . . . . . . . . . . 15 2.16.Ejemplos operaciones roll-up . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.17.Ejemplo operaci(cid:19)on drill-down . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.18.Ejemplo operaci(cid:19)on slice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.19.Ejemplo operaci(cid:19)on dice donde intervienen 3 dimensiones . . . . . . . . . . 18 3.1. Ejemplo Rel(cid:12)nder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2. Ejemplo gFacet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3. Ejemplo de consulta SPARQL para visualizar con Sgvizler . . . . . . . . . 21 3.4. Ejemplo gr(cid:19)a(cid:12)co D3ForceGraph en Sgvizler . . . . . . . . . . . . . . . . . . 21 4.1. Ejemplo de entidades centrales del (cid:12)chero types statistics . . . . . . . . . . 24 4.2. Patrones de medidas en el (cid:12)chero enipedia catalogue sec (cid:12)ltered . . . . . . 24 4.3. Patrones de dimensiones en el (cid:12)chero enipedia catalogue sec (cid:12)ltered . . . . 24 4.4. Esquema en estrella de Powerplant . . . . . . . . . . . . . . . . . . . . . . 25 4.5. Interfaz de la tabla de medidas de la aplicaci(cid:19)on . . . . . . . . . . . . . . . 26 4.6. Patrones representando la misma medidas pero diferente tipo . . . . . . . . 26 4.7. Interfaz de las tablas de medidas y propiedades de la aplicaci(cid:19)on . . . . . . 27 4.8. Filtro slice sobre entidad central Powerplant . . . . . . . . . . . . . . . . . 28 4.9. Filtro dice sobre entidad central Powerplant . . . . . . . . . . . . . . . . . 28 4.10.Ejemplo de consulta SPARQL de los valores de una propiedad . . . . . . . 29 4.11.Respuesta del punto de acceso . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.12.Algoritmo para crear la consulta (cid:12)nal . . . . . . . . . . . . . . . . . . . . . 31 4.13.Ejemplo consulta SPARQL con count(*) como medida . . . . . . . . . . . 31 4.14.Ejemplo de consulta SPARQL sin funciones de agregados en las medidas . 31 4.15.Ejemplo de consulta SPARQL con funciones de agregados en las medidas . 32 4.16.Resultado consulta SPARQL con funciones de agregados en las medidas . . 32 iii (cid:19)INDICE DE FIGURAS iv 5.1. Esquema general de la aplicaci(cid:19)on . . . . . . . . . . . . . . . . . . . . . . . 34 5.2. Esquema de las peticiones AJAX solicitando dimensiones y medidas . . . . 36 5.3. Esquema de las peticiones AJAX solicitando propiedades . . . . . . . . . . 36 5.4. Cabeceras del punto de acceso de Enipedia . . . . . . . . . . . . . . . . . . 37 5.5. Esquema peticiones AJAX al punto de acceso mediante un proxy . . . . . 38 5.6. Ejemplo para activar CORS en un servidor PHP . . . . . . . . . . . . . . . 38 5.7. C(cid:19)odigo SQL creaci(cid:19)on almac(cid:19)en . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.8. Estructura de la base de datos del cat(cid:19)alogo intermedio . . . . . . . . . . . 40 6.1. Ejemplo jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2. Ejemplo de modelo de datos en Backbone . . . . . . . . . . . . . . . . . . 45 6.3. Ejemplo de colecciones en Backbone . . . . . . . . . . . . . . . . . . . . . . 45 6.4. Ejemplo de vista en Backbone . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.5. Ejemplo de controlador en Backbone . . . . . . . . . . . . . . . . . . . . . 46 6.6. Ejemplo de modelo de datos en AngularJS . . . . . . . . . . . . . . . . . . 47 6.7. Esquema vista - enlace de datos AngularJS . . . . . . . . . . . . . . . . . . 48 6.8. Esquema controlador AngularJS . . . . . . . . . . . . . . . . . . . . . . . . 48 6.9. Ejemplo 1 de enlace de datos de una v(cid:19)(cid:16)a en AngularJS . . . . . . . . . . . 49 6.10.Ejemplo de enlace de datos de doble v(cid:19)(cid:16)a en AngularJS . . . . . . . . . . . 50 6.11.Plantilla del ejemplo 2 de enlace de datos en AngularJS . . . . . . . . . . . 50 6.12.Controlador del ejemplo 2 de enlace de datos en AngularJS . . . . . . . . . 50 6.13.Ejemplo de uso de un servicio en AngularJS . . . . . . . . . . . . . . . . . 51 6.14.Ejemplo de directiva de(cid:12)nida por AngularJS . . . . . . . . . . . . . . . . . 51 6.15.De(cid:12)nici(cid:19)on de una directiva propia . . . . . . . . . . . . . . . . . . . . . . . 52 6.16.Bu(cid:19)squedas populares sobre distintos frameworks de JS en 2014 . . . . . . . 53 7.1. Interfaz (cid:12)ltro opcional de la aplicaci(cid:19)on . . . . . . . . . . . . . . . . . . . . 54 7.2. Interfaz seleccionar entidades centrales de la aplicaci(cid:19)on . . . . . . . . . . . 55 7.3. Interfaz detalles de consulta de la aplicaci(cid:19)on . . . . . . . . . . . . . . . . . 56 7.4. Ejemplo consulta con (cid:12)ltros en la aplicaci(cid:19)on . . . . . . . . . . . . . . . . . 57 7.5. Ejemplo selecci(cid:19)on funciones de agregado en las medidas . . . . . . . . . . . 58 7.6. Ejemplo resultado en formato HTML . . . . . . . . . . . . . . . . . . . . . 58 Cap(cid:19)(cid:16)tulo 1 Introducci(cid:19)on 1.1. Motivacio(cid:19)n Es posible publicar datos poniendo un documento de texto, un archivo HTML o PDF en unsitioweb.Yesunabuenaformadepublicarsielobjetivoesproporcionarunanarrativa para explicar los datos y que las personas simplemente los lean. Sin embargo, los datos detr(cid:19)as de dicho documento est(cid:19)an bloqueados y son inaccesibles. Las personas no pueden tomar esos datos, analizarlos y representarlos. Y por lo tanto, no pueden combinarlos con otros datos para proporcionar nuevos servicios o descubrir nuevos conocimientos. Y ah(cid:19)(cid:16) es donde entra en juego las tecnolog(cid:19)(cid:16)as de la web sem(cid:19)antica y los datos enlazados. La electricidad es un tema importante en nuestra sociedad y por lo tanto es importante analizarlo. Enipedia1 es un intento de reunir datos e informaci(cid:19)on sobre todas las centrales el(cid:19)ectricas del mundo. El prop(cid:19)osito es que esta informaci(cid:19)on est(cid:19)e disponible online para su consulta, visualizaci(cid:19)on, an(cid:19)alisis, actualizaci(cid:19)on y expansi(cid:19)on. Internamente contiene una base de conocimiento creada a partir de datos estructurados y enlazados de diferentes fuentes. Y ah(cid:19)(cid:16) es donde nos encontramos con uno de los problemas de los datos enlazados como tecnolog(cid:19)(cid:16)a sem(cid:19)antica. Donde realizar consultas sobre este tipo de datos no es trivial para todo tipo de usuarios. Debido a la di(cid:12)cultad de acceso a esta nueva riqueza de datos sem(cid:19)anticos. Provocada por la necesidad de conocer el lenguaje est(cid:19)andar de consulta SPARQLylastecnolog(cid:19)(cid:16)assem(cid:19)anticasasociadas.Adem(cid:19)as,lamayor(cid:19)(cid:16)adelaspersonasest(cid:19)an acostumbradas a consumir y consultar datos sobre tablas en 2 dimensiones. Por lo tanto, cuantas m(cid:19)as personas sean capaces de consultar y analizar datos enlazados, ser(cid:19)a mejor para explotar el verdadero valor de estos. Con lo que no solo deben de ser accesibles por expertos en web sem(cid:19)antica. 1http://enipedia.tudelft.nl/wiki/Main_Page 1 1.2. OBJETIVOS 2 1.2. Objetivos Crear una aplicaci(cid:19)on web mediante la cual se puedan realizar consultas, de forma interactiva,sobredatosenlazadossinnecesidaddeconocerSPARQL.Conelobjetivo de ayudar a mostrar resultados a los usuarios con relativamente poco conocimiento en las tecnolog(cid:19)(cid:16)as de la web sem(cid:19)antica. Crear un cat(cid:19)alogo interno en la aplicaci(cid:19)on para poder asistir a las consultas visuales. Mediante el cual se presentar(cid:19)an los elementos de Enipedia con los que el usuario podr(cid:19)a realizar las consultas. Crear un lenguaje visual para poder realizar consultas sin necesidad de conocer el lenguajeSPARQL.Basadoentablasendosdimensionesparapresentarloselementos de las consultas. De forma que un usuario medio pueda interactuar con un punto de acceso. Poder exportar los resultados de las consultas visuales a diferentes formatos que sean u(cid:19)tiles para un posterior an(cid:19)alisis. El an(cid:19)alisis de datos posterior no forma parte del presente proyecto. Cap(cid:19)(cid:16)tulo 2 Fundamentos La realizaci(cid:19)on de bu(cid:19)squedas es uno de los usos m(cid:19)as comunes en la web. Y para ello, las herramientas m(cid:19)as valiosas son los motores de bu(cid:19)squeda basados en palabras clave. Tales como Bing o Google. Sin embargo, su uso presenta varios problemas asociados: Una gran cantidad de p(cid:19)aginas quedan fuera del alcance de los buscadores. Alta recuperaci(cid:19)on pero baja precisi(cid:19)on. Se recuperan las principales p(cid:19)aginas rele- vantes. Pero tambi(cid:19)en se recuperan muchos documentos medianamente relevantes o irrelevantes. Baja recuperaci(cid:19)on. Hay ocasiones en las que nuestras peticiones no encuentran res- puestas. No existe referente sem(cid:19)antico en las p(cid:19)aginas devueltas. Lo que di(cid:12)culta deducir el signi(cid:12)cado de una palabra a trav(cid:19)es del contexto. Por ejemplo, bu(cid:19)squese una palabra de signi(cid:12)cado ambiguo como banco. Pero incluso si la bu(cid:19)squeda tiene (cid:19)exito, es la persona la que debe explorar los documentos seleccionados. Y extraer la informaci(cid:19)on que est(cid:19)a buscando de cada uno de ellos. Con lo cual, no hay mucho apoyo para la recuperaci(cid:19)on de la informaci(cid:19)on [25]. Y esto se convierte en una actividad que requiere mucho tiempo. Adem(cid:19)as, los resultados de las bu(cid:19)squedas en Internet no son f(cid:19)acilmente accesibles por otras herramientas de software. Ya que los motores de bu(cid:19)squeda a menudo se a(cid:19)(cid:16)slan de las aplicaciones. Hoy en d(cid:19)(cid:16)a el signi(cid:12)cado del contenido web no es accesible para los ordenadores. Debido al hecho de no poder tomar ventaja de las representaciones de los datos. Y eso supo- ne el mayor obst(cid:19)aculo para proporcionar a los usuarios un mejor soporte. La m(cid:19)aquina sencillamente no sabe lo que esta informaci(cid:19)on signi(cid:12)ca. Y por tanto su capacidad de ac- tuaci(cid:19)on aut(cid:19)onoma es muy limitada. Esta misma limitaci(cid:19)on expresiva hace que la noci(cid:19)on de sem(cid:19)antica que manejan los buscadores web, se limite a palabras clave con pesos. Pero al tratarse de palabras planas e inconexas, no permiten reconocer ni solicitar signi(cid:12)cados m(cid:19)as elaborados. Por lo tanto, necesitamos: Un lenguaje comu(cid:19)n para la comunicaci(cid:19)on de la pregunta. Que la informaci(cid:19)on no sea ambigua. Razonamiento autom(cid:19)atico. 3 (cid:19) 2.1. CAMBIO A LA WEB SEMANTICA 4 Razonamiento con conocimiento comu(cid:19)n. Y aqu(cid:19)(cid:16) es donde aparece el concepto web sem(cid:19)antica [7]. Permitiendo evolucionar gradual- mente la web existente. Proponiendo superar las limitaciones de la web actual mediante la introducci(cid:19)on de descripciones expl(cid:19)(cid:16)citas del signi(cid:12)cado, la estructura interna y la es- tructura global de los contenidos y servicios disponibles. 2.1. Cambio a la web sem(cid:19)antica En 1989, el f(cid:19)(cid:16)sico Tim Berners-Lee desarroll(cid:19)o tres tecnolog(cid:19)(cid:16)as que hicieron posible que los usuarios se encontraran y compartieran informaci(cid:19)on. Estas fueron el lenguaje HTML, el protocolo HTTP (Hypertext Transfer Protocol) y el sistema de localizaci(cid:19)on de recursos URL (Uniform Resource Locator). Y todo ello para conseguir un espacio comu(cid:19)n en el cual nos comunicamos al publicar informaci(cid:19)on. Figura 2.1: grafo de la web actual y la web sem(cid:19)antica Con el paso del tiempo, ha habido un crecimiento ca(cid:19)otico de recursos y con ausencia de una organizaci(cid:19)on clara. Provocado que la web actual se asemeja a un grafo formado por nodos (recursos) del mismo tipo y arcos (hiperenlaces) igualmente indiferenciados [10]. Lo que hace imposible el acceso a \la informaci(cid:19)on sobre la informaci(cid:19)on" de los recursos. Que ayudar(cid:19)(cid:16)a clasi(cid:12)car, ordenar, relacionar, etc. Sin embargo, tal y como muestra la (cid:12)gura 2.1, la web sem(cid:19)antica [7] ha crecido formando una red de nodos tipi(cid:12)cados e interconectados mediante clases y relaciones. Lawebsem(cid:19)anticaprecisadede(cid:12)nicionesparalasrelacionesentreconceptos.Juntoareglas l(cid:19)ogicas para razonar con ellos. La adopci(cid:19)on de de(cid:12)niciones de reglas comunes es clave. As(cid:19)(cid:16), todos los que participen de la web sem(cid:19)antica puedan trabajar de forma aut(cid:19)onoma. Ya sea publicando o consumiendo recursos. Con la garant(cid:19)(cid:16)a de que las piezas encajen. As(cid:19)(cid:16), por ejemplo, varias bibliotecas podr(cid:19)(cid:16)an colaborar para dar lugar a una gran meta-librer(cid:19)(cid:16)a que integre los contenidos de todas ellas. Y un programa que explore esa red de recursos, podr(cid:19)(cid:16)areconocerlasdistintasunidadesdeinformaci(cid:19)on,obtenerdatosespec(cid:19)(cid:16)(cid:12)cosorazonar sobre relaciones complejas. 2.2. DATOS ENLAZADOS 5 2.2. Datos enlazados El termino datos enlazados (Linked Data) [6] se re(cid:12)ere al conjunto de pr(cid:19)acticas adecua- das para publicar y enlazar informaci(cid:19)on estructurada en la web. Estos principios fueron introducidos por Tim Berners-Lee [6] [21]: 1. Usar URIs (Uniform Resource Identi(cid:12)er) para nombrar cosas. 2. Utilizar URIs bajo el esquema especi(cid:12)cado por el protocolo HTTP, as(cid:19)(cid:16) las personas pueden buscar esos nombres. 3. Cuando alguien busca un URI, proveer informaci(cid:19)on u(cid:19)til, usando est(cid:19)andares como RDF (Resource Description Framework) o SPARQL (SPARQL Protocol and RDF Query Language). 4. Incluir enlaces a otras URIs, as(cid:19)(cid:16) ellos pueden descubrir nuevas cosas. 2.2.1. RDF El paradigma de la web sem(cid:19)antica propone un formato comu(cid:19)n estandarizado. Que posee una sintaxis controlada por el World Wide Web Consortium (W3C) [13]. Adem(cid:19)as de una sem(cid:19)antica expresada en modelos formales. Donde los lenguajes utilizados deben describir elsigni(cid:12)cadodelcontenidopublicado.Ysercapacesdeorganizarseencapas,posibilitando diferentes grados de comprensi(cid:19)on por parte del software [20] [9]. Uno de los pilares b(cid:19)asicos de la web sem(cid:19)antica es el framework RDF [1] [3], que propor- ciona un marco de trabajo comu(cid:19)n para que la informaci(cid:19)on pueda ser intercambiada entre diferentes aplicaciones, sin perder signi(cid:12)cado. 2.2.1.1. Tripletas RDF RDF se basa en la idea de describir la realidad a trav(cid:19)es de a(cid:12)rmaciones [1] [3], que a partir de ahora se llamar(cid:19)an tripletas. Las cuales est(cid:19)an compuestas por 3 elementos: El sujeto: es aquello que se est(cid:19)a describiendo. El predicado: es la propiedad o relaci(cid:19)on que se desea expresar de ese sujeto. El objeto: es el valor de la propiedad, que puede ser o bien un literal (un valor constante concreto), o bien otro recurso con el que se establece una relaci(cid:19)on. En la (cid:12)gura 2.2 se puede ver una serie de tripletas RDF. Para ello se est(cid:19)a utilizando la notaci(cid:19)on N-Triples [16]. Lo importante es observar que el recurso descrito a trav(cid:19)es de las tripletas es http://www.example.com/index.html. Donde cada predicado declara una de las propiedades: el creador, la fecha de creaci(cid:19)on y el idioma. Y mientras en la primera tripleta el objeto es otro recurso, en las otras dos sentencias se especi(cid:12)can literales entre comillas.
Description: