63
Linked Data in Use Guillermo Álvaro Rey La Granja de San Ildefonso, 21 Julio 2011 Cursos de Verano UPM 2011 Oportunidades de la web de datos (Linked Data) en España

Linked Data In Use (Cursos de Verano UPM 2011)

Embed Size (px)

DESCRIPTION

Slides de la lección "Linked Data In Use" en Cursos de Verano UPM 2011: "Oportunidades de la web de datos (Linked Data) en España"

Citation preview

Page 1: Linked Data In Use (Cursos de Verano UPM 2011)

Linked Data in UseGuillermo Álvaro Rey

La Granja de San Ildefonso, 21 Julio 2011

Cursos de Verano UPM 2011 Oportunidades de la web de datos (Linked Data) en España

Page 2: Linked Data In Use (Cursos de Verano UPM 2011)

2

Agenda

» Re-Intro Linked Data» (Motivación)

» Publicando Linked Data» (un ejemplo)

» Consumiendo Linked Data» (ejemplos)

» “Ejercicios”» (Un poco de SPARQL)

Page 3: Linked Data In Use (Cursos de Verano UPM 2011)

3

• Linked Data: – Para pasar de una Web de documentos…– …a una Web de Datos

– …¿por qué?

Motivación

Un ejemplo:

¿Jugadores de fútbol de la provincia de Albacete que han marcado un gol

en la final de la Copa del Mundo?

Page 4: Linked Data In Use (Cursos de Verano UPM 2011)

4

Motivación: Ejemplo

¿¿??

Page 5: Linked Data In Use (Cursos de Verano UPM 2011)

5

Motivación: Ejemplo

No debería ser…?

Page 6: Linked Data In Use (Cursos de Verano UPM 2011)

6

(jugadores de fútbol de la provincia de Albacete que han ganado la

la Copa del Mundo)

Mejor encontrar que buscar…

Motivación: Ejemplo

Page 7: Linked Data In Use (Cursos de Verano UPM 2011)

7

• ¿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

Motivación: Datos vs Documentos

Page 8: Linked Data In Use (Cursos de Verano UPM 2011)

8

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

Linked Data: Los 4 principios (Tim Berners-Lee, 2006)

Image by: http://www.flickr.com/photos/PhOtOnQuAnTiQuE/

Page 9: Linked Data In Use (Cursos de Verano UPM 2011)

9

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…

RDF

Page 10: Linked Data In Use (Cursos de Verano UPM 2011)

10

Servicio

Operación

Mensajeentrada

Mensajesalida

Documentos y DatosDocumento

Datos

Page 11: Linked Data In Use (Cursos de Verano UPM 2011)

11

http://...service#lastFm

http://...operation#getEvents

http://...inMessage http://...outMessage

hasOperation

hasInput hasOutput

Last.fm service

geo.getEvents

label

label

Datos en RDF

Datos en RDF y con URIs

Page 12: Linked Data In Use (Cursos de Verano UPM 2011)

12

http://...service#lastFm

http://...operation#getEvents

http://...inMessage http://...outMessage

hasOperation

hasInput hasOutput

Last.fm service

geo.getEvents

label

label

http://...review

http://...reviewer

Guillermo

Great music service!

hasReviewhasReviewer

name

text

Enlazando con otros datos

Datos en RDF

Page 13: Linked Data In Use (Cursos de Verano UPM 2011)

13

http://...service#lastFm

http://...operation#getEvents

http://...inMessage http://...outMessage

hasOperation

hasInput hasOutput

Last.fm service

geo.getEvents

label

label

http://...review

http://...reviewer

Guillermo

Great music service!

hasReviewhasReviewer

name

text

http://dbpedia.org/resource/Madrid

lives in

…y más

Datos en RDF

Page 14: Linked Data In Use (Cursos de Verano UPM 2011)

14

Datos en la Web expuestos como RDF, y enlazados con otros datos. Eso es:

Linked Data!

Datos enlazados

Page 15: Linked Data In Use (Cursos de Verano UPM 2011)

15

2007

2008

2009 2010

La evolución de Linked Data

Linking Open Data cloud diagram,

by Richard Cyganiak and Anja Jentzsch.

http://lod-cloud.net/

Page 16: Linked Data In Use (Cursos de Verano UPM 2011)

16

• Imagen anterior:– La nube de “Linked Open Data”

• No confundir:– Linked Data (Datos enlazados)– Open Data (Datos abiertos)

Linked (Open?) Data

Page 17: Linked Data In Use (Cursos de Verano UPM 2011)

17

• “La Web se transforma en una gran Base de Datos”…• ¿Cómo consultar esta gran BD?

SPARQL(W3C Recommendation)

http://www.w3.org/TR/rdf-sparql-query/

Veremos unos cuantos ejemplos…

SPARQL

Page 18: Linked Data In Use (Cursos de Verano UPM 2011)

18

Motivación para enlazar: Ejemplo en Logística

Image by:http://

www.flickr.com/photos/senoranderson/

Image by:http://www.flickr.com/photos/argen/

Image by: http://map-of-spain.co.uk

Page 19: Linked Data In Use (Cursos de Verano UPM 2011)

19

Agenda

» Re-Intro Linked Data» (Motivación)

» Publicando Linked Data» (un ejemplo)

» Consumiendo Linked Data» (ejemplos)

» “Ejercicios”» (Un poco de SPARQL)

Page 20: Linked Data In Use (Cursos de Verano UPM 2011)

20

Dos grandes vías:

1) De Bases de Datos relacionales a Linked Data• D2R• Triplify• Virtuoso• Ultrawrap• …

2) Usando Repositorios RDF nativos• Sesame• Jena• Owlim• Talis platform• …

(También en CMS tipo Drupal 7, en HTML + RDFa…)

http://triplify.org

http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/

Veremos ejemplo de esto…

Publicando Linked Data

Page 21: Linked Data In Use (Cursos de Verano UPM 2011)

21

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

Creando Linked Data con repositorio

Page 22: Linked Data In Use (Cursos de Verano UPM 2011)

22

• Vocabularios:

(usados en Revyu.com)

– Review vocabulary• http://www.purl.org/stuff/rev

– Tag Ontology• http://www.holygoat.co.uk/projects/tags/

(además…)

– Provenance vocabulary• http://purl.org/net/provenance/

¿Qué necesitamos? (I)

Page 23: Linked Data In Use (Cursos de Verano UPM 2011)

23

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

@prefix rev: <http://purl.org/stuff/rev#> .

@prefix tags: <http://www.holygoat.co.uk/owl/redwood/0.1/tags/> .

<http://example.com/items#item1>

rev:hasReview <http://soa4all.isoco.net/luf/ratings/xxx> ;

rev:hasReview <http://soa4all.isoco.net/luf/comments/yyy> ;

tags:tag <http://soa4all.isoco.net/luf/taggings/zzz> .

<http://soa4all.isoco.net/luf/ratings/xxx>

rdf:Type rev:Review ;

rev:rating "3" ;

rev:minRating "1" ;

rev:maxRating "5" ;

rev:reviewer <http://example.com/users#user1> ;

rev:createdOn "2010-06-22T12:29:28+0200"^^xsd:dateTime .

<http://soa4all.isoco.net/luf/comments/yyy>

rdf:Type rev:Review ;

rev:text "This is a comment" ;

rev:reviewer <http://example.com/users#user1> ;

rev:createdOn "2010-06-22T10:59:01+0200"^^xsd:dateTime .

<http://soa4all.isoco.net/luf/taggings/zzz>

rdf:Type tags:Tagging ;

tags:associatedTag "one tag" , "other tag" ;

tags:taggedBy <http://example.com/users#user1> ;

tags:taggedOn "2010-06-22T13:03:05+0200"^^xsd:dateTime .

Un rating:

Un comentario:

Un etiquetado:

¿Qué necesitamos? (I)

Page 24: Linked Data In Use (Cursos de Verano UPM 2011)

24

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

@prefix rev: <http://purl.org/stuff/rev#> .

@prefix tags: <http://www.holygoat.co.uk/owl/redwood/0.1/tags/> .

<http://example.com/items#item1>

rev:hasReview <http://soa4all.isoco.net/luf/ratings/xxx> ;

rev:hasReview <http://soa4all.isoco.net/luf/comments/yyy> ;

tags:tag <http://soa4all.isoco.net/luf/taggings/zzz> .

<http://soa4all.isoco.net/luf/ratings/xxx>

rdf:Type rev:Review ;

rev:rating "3" ;

rev:minRating "1" ;

rev:maxRating "5" ;

rev:reviewer <http://example.com/users#user1> ;

rev:createdOn "2010-06-22T12:29:28+0200"^^xsd:dateTime .

<http://soa4all.isoco.net/luf/comments/yyy>

rdf:Type rev:Review ;

rev:text "This is a comment" ;

rev:reviewer <http://example.com/users#user1> ;

rev:createdOn "2010-06-22T10:59:01+0200"^^xsd:dateTime .

<http://soa4all.isoco.net/luf/taggings/zzz>

rdf:Type tags:Tagging ;

tags:associatedTag "one tag" , "other tag" ;

tags:taggedBy <http://example.com/users#user1> ;

tags:taggedOn "2010-06-22T13:03:05+0200"^^xsd:dateTime .

http://example.com/items#item1

http://soa4all.isoco.net/luf/comments/yyy

http://example.com/users#user1This is

a comment

hasReview

hasReviewertext

¿Qué necesitamos? (I)

Page 25: Linked Data In Use (Cursos de Verano UPM 2011)

25

• Un repositorio RDF:– Para almacenar los datos

semánticamente.– P.ej. SESAME

• http://www.openrdf.org/

• Desplegar en Tomcat

RDF repository(Sesame)

SPARQL

¿Qué necesitamos? (II)

Page 26: Linked Data In Use (Cursos de Verano UPM 2011)

26

• Un frontend Linked Data:– Para exponer los datos como Linked Data

(con content negotiation, etc.)– P.ej. Pubby

• http://www4.wiwiss.fu-berlin.de/pubby/

• Desplegar en Tomcat

RDF repository(Sesame)

LD Frontend(Pubby)

SPARQLquery

LDaccess

¿Qué necesitamos? (III)

Page 27: Linked Data In Use (Cursos de Verano UPM 2011)

27

• 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

¿Qué necesitamos? (III)

Page 28: Linked Data In Use (Cursos de Verano UPM 2011)

28

• Una API

RDF repository(Sesame)

REST API LD Frontend(Pubby)

RDF2Go

POSTfeedback

GETfeedback

SPARQLquery

LDaccess

Añadidos (I)

• P.ej. RDF2Go:http://rdf2go.semweb4j.org/

– Abstracción java sobre repositorios RDF

– Programación independiente del repositorio

– Alternativa, programar sobre la interfaz del repositorio

Page 29: Linked Data In Use (Cursos de Verano UPM 2011)

29

• Un SPARQL explorer

RDF repository(Sesame)

REST API LD Frontend(Pubby)

RDF2Go

POSTfeedback

GETfeedback

SPARQLquery

LDaccess

SPARQL explorer(SNORQL)

SPARQLVia Web

Añadidos (II)

Page 30: Linked Data In Use (Cursos de Verano UPM 2011)

30

• Snorql:– SPARQL explorer

• http://wiki.github.com/kurtjx/SNORQL/

– Ejemplo:• http://soa4all.isoco.net/luf/snorql/

Añadidos (II)

Luego volvemos para hacer consultas…

Page 31: Linked Data In Use (Cursos de Verano UPM 2011)

31

Agenda

» Re-Intro Linked Data» (Motivación)

» Publicando Linked Data» (un ejemplo)

» Consumiendo Linked Data» (ejemplos)

» “Ejercicios”» (Un poco de SPARQL)

Page 32: Linked Data In Use (Cursos de Verano UPM 2011)

32

• Navegadores Linked Data (páginas y extensiones sobre navegadores, etc.)– Tabulator

– Disco

– LENA

– Marble

– VisiNav

– Zitgist

– …

Consumiendo Linked Data: Navegadores

Ejemplo de rating en Zitgist:

Page 33: Linked Data In Use (Cursos de Verano UPM 2011)

33

• Herramientas para visualizar relaciones.• Ejemplo RelFinder:

– http://www.visualdataweb.org/relfinder/relfinder.php

Consumiendo Linked Data: Visualizadores de relaciones

Ejemplo: Relación entre Iniesta y Gasol

Page 34: Linked Data In Use (Cursos de Verano UPM 2011)

34

“Ejercicio” en RelFinder

Relaciones entre “Pulp Fiction”, “Kill Bill” y “Reservoir Dogs”

Page 35: Linked Data In Use (Cursos de Verano UPM 2011)

35

• 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/

Consumiendo Linked Data: Usando SPARQL

Page 36: Linked Data In Use (Cursos de Verano UPM 2011)

36

• 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)

Usando SPARQL

Page 37: Linked Data In Use (Cursos de Verano UPM 2011)

37

SPICES

(Semantic Platform for the Interaction and Consumption of Enriched Services)

http://soa4all.isoco.net/spices/iServe

(Linked Data services repository)http://iserve.kmi.open.ac.uk/browser.html

Ejemplos de integración de LUF

(via consultas al SPARQL endpoint)

Page 38: Linked Data In Use (Cursos de Verano UPM 2011)

38

• 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)• http://code.google.com/p/pysparql

– …

Librerías para SPARQL

Usada en la página de LUF

http://soa4all.isoco.net/luf/about

Page 39: Linked Data In Use (Cursos de Verano UPM 2011)

39

Visualizando grafos con SPARQL

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

PREFIX wsl: <http://cms-wg.sti2.org/ns/minimal-service-model#>

SELECT DISTINCT ?op ?labelOp

WHERE {

<http://iserve.kmi.open.ac.uk/...#LastFmEvents> wsl:hasOperation ?op .

OPTIONAL{ ?op rdfs:label ?labelOp . }

}

SPARQL y visualización

Page 40: Linked Data In Use (Cursos de Verano UPM 2011)

40

• The New York Times: Alumni In The News– http://data.nytimes.com/schools/schools.html

Ejemplo de consumo de Linked Data: NY Times

Page 41: Linked Data In Use (Cursos de Verano UPM 2011)

41

• The New York Times: Código fuente disponible

… y son consultas SPARQL

Ejemplo de consumo de Linked Data: NY Times

Page 42: Linked Data In Use (Cursos de Verano UPM 2011)

42

Ejemplo de Usoen la Web de iSOCO Lab

http

://la

b.is

oco.

net

+

Page 43: Linked Data In Use (Cursos de Verano UPM 2011)

43

Recomendaciones

Ejemplo sacando partido de enlazar(work-in-progress)

“El Viajero” como Linked Data

“Guía Santillana” como Linked Data

Ratings de LUF

Datos meteorológicos (AEMET)

Contexto de Usuarios (RDF)

+

Page 44: Linked Data In Use (Cursos de Verano UPM 2011)

44

Servicios de reconocimiento de nombres de entidades

(en textos en lenguaje natural)

Ejemplos:

Named Entity Recognition sobre Linked Data

http://dbpedia.org/spotlight

http://www.alchemyapi.com/http://www.opencalais.com/

Page 45: Linked Data In Use (Cursos de Verano UPM 2011)

45

Ejemplo NER en miKrow

Company: Vodafone UK (info)

Uso de Linked Data, para ir más allá de la ontología de dominio

http://mikrow.isoco.net

Page 46: Linked Data In Use (Cursos de Verano UPM 2011)

46

Agenda

» Re-Intro Linked Data» (Motivación)

» Publicando Linked Data» (un ejemplo)

» Consumiendo Linked Data» (ejemplos)

» “Ejercicios”» (Un poco de SPARQL)

Page 47: Linked Data In Use (Cursos de Verano UPM 2011)

47

Últimos ratings en LUF

Últimos 5 ratings en LUF

¿Cómo sería para los últimos ratings de 5 estrellas?

http://soa4all.isoco.net/luf/snorql

Page 48: Linked Data In Use (Cursos de Verano UPM 2011)

48

Fútbol en la DBpediahttp://dbpedia.org/snorql

Jugadores de fútbol de la provincia de Albacete que han ganado la Copa del Mundo

Page 49: Linked Data In Use (Cursos de Verano UPM 2011)

49

http://dbpedia.org/page/Andrés_Iniesta

¿Cómo sería para los jugadores de fútbol nacidos en España que han ganado la Copa del Mundo de fútbol?

Una pista…

Fútbol en la DBpedia

Page 50: Linked Data In Use (Cursos de Verano UPM 2011)

50

22 jugadores y no 23 ¿?

Fútbol en la DBpedia

Page 51: Linked Data In Use (Cursos de Verano UPM 2011)

51

http://dbpedia.org/page/Fernando_Torres

Ojo con los datos…

Fútbol en la DBpedia

Page 52: Linked Data In Use (Cursos de Verano UPM 2011)

52

Ejemplo de app: Linked Data Movie Quiz

Creando preguntas sobre cine usando la Linked Movie Data Base

http://10k.aneventapart.com/Uploads/310/

Extra! (idea) Usuarios al jugar pueden identificar errores en el set de datos

Page 53: Linked Data In Use (Cursos de Verano UPM 2011)

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…

Page 54: Linked Data In Use (Cursos de Verano UPM 2011)

54

Actores en la Linked Movie DataBase

http://data.linkedmdb.org/snorql

Películas en donde sale Marlon Brando, con sus personajes, directores y años

Corripio, c/Fuencarral 102

Page 55: Linked Data In Use (Cursos de Verano UPM 2011)

55

Corripio, c/Fuencarral 102

¿Cómo sería para actores que hayan hecho de Vito Corleone?

Actores en la Linked Movie DataBase

Page 56: Linked Data In Use (Cursos de Verano UPM 2011)

56

• 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)– Juntando sets de datos– Usar repositorio con varios datasets

Consultando más de un dataset a la vez

Veremos ejemplo

Veremos ejemplo

Page 57: Linked Data In Use (Cursos de Verano UPM 2011)

57

Queries federadas:Personajes de la Biblia

Hijos de Abraham

Page 58: Linked Data In Use (Cursos de Verano UPM 2011)

58

Bibleontology

DBpedia

Personajes de la Biblia:Bible Ontology y DBpedia

Page 59: Linked Data In Use (Cursos de Verano UPM 2011)

59

Hijos de Abraham con abstract en castellano en la DBpedia

Queries federadas: Ejemplo

Page 60: Linked Data In Use (Cursos de Verano UPM 2011)

60

Consulta a repositorio centralizado

Corripio, c/Fuencarral 102 http://factforge.net/sparql

Opción para queries sobre distintos datasets: Usar un repositorio que incluya varios. P.ej.

“Ejercicio”: ¿Qué datos saca esta query?

Page 61: Linked Data In Use (Cursos de Verano UPM 2011)

61

Visualizando datos en FactForge

Corripio, c/Fuencarral 102

Datos sobre playmates en FactForge, incluyendo inferidas

Navegación facetada directamente con exhibit

Ojo a algunos datos en distintos formatos

Page 62: Linked Data In Use (Cursos de Verano UPM 2011)

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…;)

Page 63: Linked Data In Use (Cursos de Verano UPM 2011)

63

¿Quieres innovar?

Barcelona

Tel +34 935 677 200

Edificio Testa A

C/ Alcalde Barnils, 64-68

St. Cugat del Vallès

08174 Barcelona

Madrid

Tel +34 913 349 797

Av. del Partenón, 16-18 1,7

28042 Madrid

Valencia

Tel +34 963 467 143

Oficina 107

C/ Prof. Beltrán Báguena, 4

46009 Valencia

Pamplona

Tel +34 948 102 408

Parque Tomás

Caballero, 2, 6º-4ª

31006 Pamplona

¿Dónde estamos?Contacta con iSOCO

Guillermo Álvaro [email protected]

@guillelamb