1. Linked Data in Use
Guillermo Álvaro Rey
José Manuel Gómez Pérez
La Granja de San Ildefonso, 21 Julio 2011
Cursos de Verano UPM 2011 Oportunidades de la web de datos (Linked Data) en España
2. Agenda
» Re-Intro Linked Data
» (Motivación)
» Publicando Linked Data
» (un ejemplo)
» Consumiendo Linked Data
» (ejemplos)
» “Ejercicios”
» (Un poco de SPARQL)
2
3. Motivación
• Linked Data:
– Para pasar de una Web de documentos…
– …a una Web de Datos
Un ejemplo:
– …¿por qué?
¿Jugadores de fútbol de la provincia
de Albacete que han marcado un gol
en la final de la Copa del Mundo?
3
6. Motivación: Ejemplo
(jugadores de fútbol de la provincia
de Albacete que han ganado la
la Copa del Mundo)
Mejor
encontrar
que
buscar…
6
7. Motivación: Datos vs Documentos
• ¿Qué sucede?
– Nos interesan “cosas” concretas, no documentos
– Tenemos que encontrar las cosas que buscamos en los
documentos
– Las máquinas no pueden saber (aunque adivinan bien) los
contenidos
• Publicando datos en bruto…
– Hacemos más fácil a las máquinas encontrar cosas
– Mejor si lo hacemos siguiendo formatos y protocolos estándar
– …y mejor aún si los enlazamos con otros datos
7
8. Linked Data: Los 4 principios (Tim Berners-Lee, 2006)
1) Usar URIs
para identificar
cosas
2) Usar el
protocolo
HTTP para
esas URIs
3) Ofrecer
información
útil en esas
direcciones
4) Incluir enlaces
a otras URIs
Image by: http://www.flickr.com/photos/PhOtOnQuAnTiQuE/
8
9. RDF
En la Web de documentos, usamos HTML,
En la Web de datos, usamos:
RDF
(Resource Description Framework)
• Modelo de datos
• Basado en tripletas: sujeto, verbo, predicado. Ej:
– <Guillermo> <vive en> <Madrid>
– <Madrid> <es la capital de> <España>
– <España> <es campeona de> <Mundial de Fútbol>
– …
• Serializable en diferentes formatos:
– RDF/XML, RDFa, N3, Turtle, JSON…
9
11. Datos en RDF
Datos en
RDF y con
URIs
http://...service#lastFm label Last.fm service
hasOperation
http://...operation#getEvents label geo.getEvents
hasInput hasOutput
http://...inMessage http://...outMessage
11
12. Datos en RDF
Enlazando
con otros
datos
text Great music service!
http://...review
hasReviewer hasReview
http://...reviewer http://...service#lastFm label Last.fm service
name hasOperation
Guillermo label
http://...operation#getEvents geo.getEvents
hasInput hasOutput
http://...inMessage http://...outMessage
12
13. Datos en RDF
…y más
text Great music service!
http://...review
hasReviewer hasReview
http://...reviewer http://...service#lastFm label Last.fm service
name hasOperation
lives in
Guillermo http://...operation#getEvents label geo.getEvents
hasInput hasOutput
http://dbpedia.org/resource/Madrid
http://...inMessage http://...outMessage
13
14. Datos enlazados
Datos en la Web expuestos como RDF, y
enlazados con otros datos. Eso es:
Linked Data!
14
15. 2007 La evolución de Linked Data
2008
2009 2010
Linking Open Data cloud diagram,
by Richard Cyganiak and Anja Jentzsch.
http://lod-cloud.net/
15
16. Linked (Open?) Data
• Imagen anterior:
– La nube de “Linked Open Data”
• No confundir:
– Linked Data (Datos enlazados)
– Open Data (Datos abiertos)
16
17. SPARQL
• “La Web se transforma en una gran Base de Datos”…
• ¿Cómo consultar esta gran BD?
SPARQL Veremos
unos cuantos
(W3C Recommendation) ejemplos…
http://www.w3.org/TR/rdf-sparql-query/
17
18. Motivación para enlazar: Ejemplo en Logística
Image by:
http://www.flickr.com
Image by:
/photos/argen/
http://www.flickr.com/
photos/senoranderson/
Image by: http://map-of-spain.co.uk
18
19. Agenda
» Re-Intro Linked Data
» (Motivación)
» Publicando Linked Data
» (un ejemplo)
» Consumiendo Linked Data
» (ejemplos)
» “Ejercicios”
» (Un poco de SPARQL)
19
20. Publicando Linked Data
Dos grandes vías:
1) De Bases de Datos relacionales a Linked Data
• D2R
• Triplify
• Virtuoso
• Ultrawrap
http://triplify.org
• … http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/
2) Usando Repositorios RDF nativos
• Sesame
• Jena Veremos
• Owlim ejemplo
• Talis platform de esto…
• …
(También en CMS tipo Drupal 7, en HTML + RDFa…)
20
21. Creando Linked Data con repositorio
Caso práctico:
Linked User Feedback
• Un servicio para almacenar y exponer como Linked Data feedback de los
usuarios en forma de:
– Ratings
– Comentarios
– Etiquetas
http://soa4all.isoco.net/luf/about 21
25. ¿Qué necesitamos? (II)
SPARQL
• Un repositorio RDF:
– Para almacenar los datos
semánticamente.
– P.ej. SESAME
• http://www.openrdf.org/
• Desplegar en Tomcat
RDF repository
(Sesame)
25
26. ¿Qué necesitamos? (III)
LD SPARQL
• Un frontend Linked Data: access query
– Para exponer los datos como Linked Data
(con content negotiation, etc.)
– P.ej. Pubby LD Frontend
• http://www4.wiwiss.fu-berlin.de/pubby/ (Pubby)
• Desplegar en Tomcat
RDF repository
(Sesame)
26
27. ¿Qué necesitamos? (III)
• Y ya tenemos los datos expuestos como Linked Data con
Pubby:
– Acceso HTML:
• [base]/comments/73ab5e51d203587be87b1b3bbb4f3cc6
• [base]/ratings/643e74d8389277dd26907ea56856cbd4
• [base]/taggings/675330fa199511c3098672a200d7834b
– Con content-negotiation. También ofrece los datos como RDF/XML:
• ?output=n3
• ?output=xml
27
28. Añadidos (I)
• Una API
POST GET LD SPARQL
feedback feedback access query
• P.ej. RDF2Go:
http://rdf2go.semweb4j.org/
– Abstracción java sobre
LD Frontend
repositorios RDF REST API
(Pubby)
RDF2Go
– Programación
independiente del
repositorio
– Alternativa, programar
sobre la interfaz del
RDF repository
repositorio (Sesame)
28
29. Añadidos (II)
• Un SPARQL explorer
POST GET LD SPARQL SPARQL
feedback feedback access query Via Web
LD Frontend SPARQL explorer
REST API
(Pubby) (SNORQL)
RDF2Go
RDF repository
(Sesame)
29
30. Añadidos (II)
• Snorql: Luego volvemos para
hacer consultas…
– SPARQL explorer
• http://wiki.github.com/kurtjx/SNORQL/
– Ejemplo:
• http://soa4all.isoco.net/luf/snorql/
30
31. Agenda
» Re-Intro Linked Data
» (Motivación)
» Publicando Linked Data
» (un ejemplo)
» Consumiendo Linked Data
» (ejemplos)
» “Ejercicios”
» (Un poco de SPARQL)
31
32. Consumiendo Linked Data: Navegadores
• Navegadores Linked Data (páginas y extensiones sobre
navegadores, etc.)
– Tabulator
– Disco
– LENA
– Marble
– VisiNav
– Zitgist
– … Ejemplo
de rating
en Zitgist:
32
33. Consumiendo Linked Data: Visualizadores de relaciones
• Herramientas para visualizar relaciones.
Ejemplo: Relación
• Ejemplo RelFinder: entre Iniesta y Gasol
– http://www.visualdataweb.org/relfinder/relfinder.php
33
35. Consumiendo Linked Data: Usando SPARQL
• Consumiendo Linked Data con SPARQL
– Usando los SPARQL endpoints que exponen los diferentes
conjuntos de datos
– Ejemplos:
• Dbpedia: http://dbpedia.org/sparql
• UK Government: http://data.gov.uk/sparql
• USA Government: http://semantic.data.gov/sparql
• Musicbrainz: http://dbtune.org/musicbrainz/sparql
…
• LUF: http://soa4all.isoco.net/luf/sparql
– CKAN data hub: http://ckan.net/
35
36. Usando SPARQL
• Un SPARQL endpoint es un servicio REST
• HTTP GET con parámetro query
– GET /sparql?query=PREFIX+...
• Respuestas:
– (usando la cabecera ACCEPT o vía parámetro ej. “&out=json”)
– RDF
– XML
– (JSON)
36
37. Ejemplos de integración de LUF
(via consultas al SPARQL
endpoint)
SPICES
(Semantic Platform for the Interaction and iServe
Consumption of Enriched Services)
http://soa4all.isoco.net/spices/
(Linked Data services repository)
http://iserve.kmi.open.ac.uk/browser.html
37
38. Librerías para SPARQL
• Algunos ejemplos
– RAP – RDF API for PHP
• http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/index.html
– Sesame (Java)
• http://www.openrdf.org/
– Jena / ARQ (Java)
• http://jena.sourceforge.net
– PySPARQL (Python) Usada en la página de LUF
• http://code.google.com/p/pysparql
– …
38
http://soa4all.isoco.net/luf/about
43. Ejemplo sacando partido de enlazar
(work-in-progress)
“El Viajero” como “Guía Santillana”
Linked Data como Linked Data
Ratings
de LUF
Datos meteorológicos
(AEMET) Recomendaciones
Contexto de
Usuarios (RDF)
+ 43
44. Named Entity Recognition sobre Linked Data
Servicios de reconocimiento de nombres de entidades
(en textos en lenguaje natural)
Ejemplos:
http://dbpedia.org/spotlight
http://www.opencalais.com/ http://www.alchemyapi.com/
44
45. Ejemplo NER en miKrow
Uso de
Linked Data,
para ir más
allá de la
Company: Vodafone UK (info)
ontología de
dominio
http://mikrow.isoco.net 45
46. Agenda
» Re-Intro Linked Data
» (Motivación)
» Publicando Linked Data
» (un ejemplo)
» Consumiendo Linked Data
» (ejemplos)
» “Ejercicios”
» (Un poco de SPARQL)
46
47. Últimos ratings en LUF
Últimos 5 ratings en LUF http://soa4all.isoco.net/luf/snorql
¿Cómo sería para los
últimos ratings de 5
estrellas?
47
48. Fútbol en la DBpedia
http://dbpedia.org/snorql
Jugadores de fútbol de la
provincia de Albacete que
han ganado la Copa del
Mundo
48
49. Fútbol en la DBpedia
¿Cómo sería para los
jugadores de fútbol
nacidos en España que
han ganado la Copa del
Mundo de fútbol?
http://dbpedia.org/page/Andrés_Iniesta
Una pista…
49
51. Fútbol en la DBpedia
http://dbpedia.org/page/Fernando_Torres
Ojo con los datos…
51
52. Ejemplo de app: Linked Data Movie Quiz
http://10k.aneventapart.com/Uploads/310/
Creando
preguntas
sobre cine
usando la
Linked Movie
Data Base
Extra! (idea)
Usuarios al
jugar pueden
identificar
errores en el
set de datos
52
53. SPARQL en Linked Data Movie Quiz
https://github.com/lamboratory/Linked-Data-Movie-Quiz
Podemos ver las
consultas SPARQL
usadas para generar
las preguntas…
53
54. Actores en la Linked Movie DataBase
http://data.linkedmdb.org/snorql
Películas en donde
sale Marlon Brando,
Corripio, c/Fuencarral 102
con sus personajes,
directores y años
… 54
55. Actores en la Linked Movie DataBase
¿Cómo sería para
actores que hayan
hecho de Vito
Corleone?
Corripio, c/Fuencarral 102
55
56. Consultando más de un dataset a la vez
• Consultar un repositorio está bien…
• …pero ¿y si quiero consultar sobre varios a la vez?
• Algunas opciones:
– Varias queries
– Queries federadas (usando “SERVICE” en SPARQL 1.1) Veremos
– Juntando sets de datos ejemplo
– Usar repositorio con varios datasets Veremos
ejemplo
56
58. Personajes de la Biblia:
Bible Ontology y DBpedia
Bibleontology
DBpedia
58
59. Queries federadas:
Ejemplo
Hijos de Abraham
con abstract en
castellano en la
DBpedia
59
60. Consulta a repositorio centralizado
Opción para queries sobre distintos datasets: Usar un
repositorio que incluya varios. P.ej.
http://factforge.net/sparql Corripio, c/Fuencarral 102
“Ejercicio”: ¿Qué datos
saca esta query?
60
61. Visualizando datos en FactForge
Datos sobre playmates
en FactForge,
incluyendo inferidas
Navegación facetada
directamente con exhibit
Corripio, c/Fuencarral 102
Ojo a algunos datos en
distintos formatos
61
62. Agradecimientos / Acknowledgements
– Juan Sequeda @juansequeda
(many ideas from his Consuming Linked Data slides at SemTech2010)
– Selección española de fútbol, Marlon Brando, Hugh Heffner, personajes bíblicos…;)
62
63. ¿Dónde estamos?
Contacta con iSOCO
Guillermo Álvaro Rey José Manuel Gómez Pérez
galvaro@isoco.com jmgomez@isoco.com
@guillelamb @josemanuelgp
¿Quieres innovar?
Barcelona Madrid Pamplona Valencia
Tel +34 935 677 200 Tel +34 913 349 797 Tel +34 948 102 408 Tel +34 963 467 143
Edificio Testa A Av. del Partenón, 16-18 1,7 Parque Tomás Oficina 107
C/ Alcalde Barnils, 64-68 28042 Madrid Caballero, 2, 6º-4ª C/ Prof. Beltrán Báguena, 4
St. Cugat del Vallès 31006 Pamplona 46009 Valencia
08174 Barcelona
63