linked data in use

Post on 13-Jun-2015

250 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Linked Data presentation.

TRANSCRIPT

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)

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?

4

Motivación: Ejemplo

¿¿??

5

Motivación: Ejemplo

No

debería

ser…?

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

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

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/

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

10

Servicio

Operación

Mensaje

entrada

Mensaje

salida

Documentos y Datos Documento

Datos

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

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

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

14

Datos en la Web expuestos como RDF, y

enlazados con otros datos. Eso es:

Linked Data!

Datos enlazados

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/

16

• Imagen anterior:

– La nube de “Linked Open Data”

• No confundir:

– Linked Data (Datos enlazados)

– Open Data (Datos abiertos)

Linked (Open?) Data

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

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

19

Agenda

» Re-Intro Linked Data

» (Motivación)

» Publicando Linked Data

» (un ejemplo)

» Consumiendo Linked Data

» (ejemplos)

» “Ejercicios”

» (Un poco de SPARQL)

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

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

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)

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)

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)

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)

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)

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)

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

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)

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…

31

Agenda

» Re-Intro Linked Data

» (Motivación)

» Publicando Linked Data

» (un ejemplo)

» Consumiendo Linked Data

» (ejemplos)

» “Ejercicios”

» (Un poco de SPARQL)

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:

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

34

“Ejercicio” en RelFinder

Relaciones entre “Pulp Fiction”,

“Kill Bill” y “Reservoir Dogs”

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

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

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)

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

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

40

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

Ejemplo de consumo de Linked Data: NY Times

41

• The New York Times: Código fuente disponible

… y son consultas SPARQL

Ejemplo de consumo de Linked Data: NY Times

42

Ejemplo de Uso

en la Web de iSOCO Lab

+

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)

+

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/

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

46

Agenda

» Re-Intro Linked Data

» (Motivación)

» Publicando Linked Data

» (un ejemplo)

» Consumiendo Linked Data

» (ejemplos)

» “Ejercicios”

» (Un poco de SPARQL)

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

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

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

50

22 jugadores y no 23 ¿?

Fútbol en la DBpedia

51

http://dbpedia.org/page/Fernando_Torres

Ojo con los datos…

Fútbol en la DBpedia

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

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…

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

55

Corripio, c/Fuencarral 102

¿Cómo sería para

actores que hayan

hecho de Vito

Corleone?

Actores en la Linked Movie DataBase

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

57

Queries federadas:

Personajes de la Biblia

Hijos de

Abraham

58

Bibleontology

DBpedia

Personajes de la Biblia:

Bible Ontology y DBpedia

59

Hijos de Abraham

con abstract en

castellano en la

DBpedia

Queries federadas:

Ejemplo

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?

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

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

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 galvaro@isoco.com

@guillelamb

José Manuel Gómez Pérez jmgomez@isoco.com

@josemanuelgp

top related