Linked data in use

63
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

description

Linked Data presentation.

Transcript of Linked data in use

Page 1: Linked data in use

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

Page 2: Linked data in use

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

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

4

Motivación: Ejemplo

¿¿??

Page 5: Linked data in use

5

Motivación: Ejemplo

No

debería

ser…?

Page 6: Linked data in use

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

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

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

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

10

Servicio

Operación

Mensaje

entrada

Mensaje

salida

Documentos y Datos Documento

Datos

Page 11: Linked data in use

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

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!

hasReview hasReviewer

name

text

Enlazando

con otros

datos

Datos en RDF

Page 13: Linked data in use

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!

hasReview hasReviewer

name

text

http://dbpedia.org/resource/Madrid

lives in

…y más

Datos en RDF

Page 14: Linked data in use

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

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

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

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

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

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

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

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

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

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

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#user1 This is

a comment

hasReview

hasReviewer

text

¿Qué necesitamos? (I)

Page 25: Linked data in use

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

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)

SPARQL

query

LD

access

¿Qué necesitamos? (III)

Page 27: Linked data in use

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

28

• Una API

RDF repository

(Sesame)

REST APILD Frontend

(Pubby)

RDF2Go

POST

feedback

GET

feedbackSPARQL

query

LD

access

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

29

• Un SPARQL explorer

RDF repository

(Sesame)

REST APILD Frontend

(Pubby)

RDF2Go

POST

feedback

GET

feedbackSPARQL

query

LD

access

SPARQL explorer

(SNORQL)

SPARQL

Via Web

Añadidos (II)

Page 30: Linked data in use

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

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

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

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

34

“Ejercicio” en RelFinder

Relaciones entre “Pulp Fiction”,

“Kill Bill” y “Reservoir Dogs”

Page 35: Linked data in use

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

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

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

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

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

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

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

42

Ejemplo de Uso

en la Web de iSOCO Lab

+

Page 43: Linked data in use

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

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

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

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

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

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

Page 49: Linked data in use

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

50

22 jugadores y no 23 ¿?

Fútbol en la DBpedia

Page 51: Linked data in use

51

http://dbpedia.org/page/Fernando_Torres

Ojo con los datos…

Fútbol en la DBpedia

Page 52: Linked data in use

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

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

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

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

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

57

Queries federadas:

Personajes de la Biblia

Hijos de

Abraham

Page 58: Linked data in use

58

Bibleontology

DBpedia

Personajes de la Biblia:

Bible Ontology y DBpedia

Page 59: Linked data in use

59

Hijos de Abraham

con abstract en

castellano en la

DBpedia

Queries federadas:

Ejemplo

Page 60: Linked data in use

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

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

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

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 Rey [email protected]

@guillelamb

José Manuel Gómez Pérez [email protected]

@josemanuelgp