Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas   Guillermo Álvaro Rey La Granja de San Ildefo...
Desarrollo práctico de aplicaciones Linked Data   Intro ¿De qué va la lección? Desarrollo práctico de  aplicaciones Linked...
Desarrollo práctico de aplicaciones Linked Data   Agenda 1: Linked Data (intro y recordatorio) 2: Linked Data desde BD (re...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data (Re-)Introducción a Linked Data 1
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Linked Data : ¿Por qué? </li></ul><ul><ul><li>...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>¿? </li></ul>
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>No debería ser…? </li></ul>
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Mejor encontrar que buscar: </li></ul>(jugador...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>¿Qué sucede? </li></ul><ul><ul><li>Nos interes...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Pero… si ya publicamos datos en bruto: </li></...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Igual que hay una manera estándar de publicar ...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Formato de datos en esta gran BD: </li></ul><u...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Ejemplo, info en una API </li></ul>Servicio Op...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data http://...service#lastFm <ul><li>Esto en RDF… (cada co...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data http://...service#lastFm <ul><li>Enlazando estos datos...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data http://...service#lastFm <ul><li>Y más… </li></ul>http...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Datos en la Web expuestos como RDF, y enlazado...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Los cuatro principios  (Tim Berners-Lee, 2006)...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>2007 </li></ul><ul><li>2008 </li></ul><ul><li>...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>La Web se transforma en una gran Base de Datos...
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data <ul><li>Ejemplo SPARQL:  “Dame los últimos 5 comentari...
Desarrollo práctico de aplicaciones Linked Data   Exponiendo datos como Linked Data Exponiendo datos como Linked Data 2
Desarrollo práctico de aplicaciones Linked Data   Exponiendo datos como Linked Data <ul><li>Dos grandes vías: </li></ul><u...
Desarrollo práctico de aplicaciones Linked Data   Exponiendo datos como Linked Data <ul><li>Ejemplo: Triplify </li></ul>ht...
Desarrollo práctico de aplicaciones Linked Data   Exponiendo datos como Linked Data <ul><li>Ejemplo: D2R Server </li></ul>...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Aplicación Linked Data (ejemplo usando repositorio na...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>Creando una aplicación con repositorio. Caso ...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>¿Qué necesitamos? (I) </li></ul><ul><li>Vocab...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>¿Qué necesitamos? (II) </li></ul><ul><li>Un r...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>Instalando  Sesame : </li></ul><ul><ul><li>Ba...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>Usando consola para meter tripletas en  Sesam...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>Y ya tenemos SPARQL endpoint con el  Sesame !...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>¿Qué necesitamos? (III) </li></ul><ul><li>Un ...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>Instalando  Pubby : </li></ul><ul><ul><li>Baj...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>Y ya tenemos los datos expuestos como Linked ...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Añadidos (I): Una  API
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>RDF2Go: </li></ul><ul><ul><li>Abstracción jav...
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Añadidos (II): Un  SPARQL explorer
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF <ul><li>Snorql: </li></ul><ul><ul><li>SPARQL explorer...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Aplicaciones que consumen Linked Data 4
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Navegadores Linked Data (páginas y exten...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Herramientas para visualizar relaciones....
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Consumiendo Linked Data con  SPARQL </li...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Un SPARQL endpoint es un servicio REST <...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Ejemplo de integración de LUF </li></ul>...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Usando librerías para manejar SPARQL en ...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Ejemplo: RAP (RDF API for PHP) </li></ul...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Ejemplo:  K-Analytics  (Knowledge Analyt...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo k-Analytics
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>The New York Times: Alumni In The News <...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>The New York Times: Código fuente dispon...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Ejemplo: Clean Air Status and Trends (CA...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Ejemplo: Research Funding Explorer </li>...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Ejemplo: Calidad de las aguas en playas ...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejercicios y Ejemplos Extra
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>Relaciones entre películas en RelFinder:...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data <ul><li>En data.gov.uk: </li></ul><ul><ul><li>Co...
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Por sugerencia de Vader… ( http://dbpedia.org/re...
Desarrollo práctico de aplicaciones Linked Data   Fin Preguntas - Discusión Guillermo Álvaro Rey [email_address] @guillela...
Desarrollo práctico de aplicaciones Linked Data   Fin Agradecimientos / Acknowledgements <ul><li>Credits go at least to th...
Upcoming SlideShare
Loading in …5
×

Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas

1,518 views

Published on

Lección "Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas" del Curso de Verano 2010 de la UPM: "Linked Data: ¿Una oportunidad o un riesgo?"

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,518
On SlideShare
0
From Embeds
0
Number of Embeds
71
Actions
Shares
0
Downloads
50
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas

  1. 1. Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas Guillermo Álvaro Rey La Granja de San Ildefonso, 14 Julio 2010 Cursos de Verano UPM 2010 Linked Data: ¿Una oportunidad o un riesgo?
  2. 2. Desarrollo práctico de aplicaciones Linked Data Intro ¿De qué va la lección? Desarrollo práctico de aplicaciones Linked Data : Metodología y herramientas
  3. 3. Desarrollo práctico de aplicaciones Linked Data Agenda 1: Linked Data (intro y recordatorio) 2: Linked Data desde BD (recordatorio) 3: Aplicaciones Linked Data (ejemplo concreto, hands-on) 4: Consumo de Linked Data (más ejemplos)
  4. 4. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data (Re-)Introducción a Linked Data 1
  5. 5. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Linked Data : ¿Por qué? </li></ul><ul><ul><li>Para pasar de una Web de documentos a una Web de Datos </li></ul></ul><ul><li>Ejemplo: </li></ul><ul><ul><li>¿Jugadores de fútbol de la provincia de Albacete que han marcado un gol en la final de la Copa del Mundo? </li></ul></ul>
  6. 6. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>¿? </li></ul>
  7. 7. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>No debería ser…? </li></ul>
  8. 8. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Mejor encontrar que buscar: </li></ul>(jugadores de fútbol de la provincia de Albacete que jugaron la Eurocopa 2008)
  9. 9. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>¿Qué sucede? </li></ul><ul><ul><li>Nos interesan “cosas” concretas, no documentos </li></ul></ul><ul><ul><li>Tenemos que encontrar las cosas que buscamos en los documentos </li></ul></ul><ul><ul><li>Las máquinas no pueden saber (aunque adivinan bien) los contenidos </li></ul></ul><ul><li>Publicando datos en bruto… </li></ul><ul><ul><li>Hacemos más fácil a las máquinas encontrar cosas </li></ul></ul>
  10. 10. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Pero… si ya publicamos datos en bruto: </li></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>BDs </li></ul></ul><ul><ul><li>APIs </li></ul></ul><ul><ul><li>CSV </li></ul></ul><ul><ul><li>XLS </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Cierto: Pero en diferentes formatos, modelos… </li></ul><ul><ul><li>Difícil de integrar </li></ul></ul><ul><ul><li>Datos no enlazados </li></ul></ul>
  11. 11. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Igual que hay una manera estándar de publicar en la Web… </li></ul><ul><li>HTML </li></ul>
  12. 12. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Formato de datos en esta gran BD: </li></ul><ul><li>RDF </li></ul><ul><li>(Resource Description Framework) </li></ul><ul><li>Modelo de datos </li></ul><ul><li>Basado en tripletas: sujeto, verbo, predicado . Ej: </li></ul><ul><ul><li><Guillermo> <vive en> <Madrid> </li></ul></ul><ul><ul><li><Madrid> <es la capital de> <España> </li></ul></ul><ul><ul><li><España> <es campeona de> <Mundial de Fútbol> </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Serializable en diferentes formatos: </li></ul><ul><ul><li>RDF/XML, RDFa, N3, Turtle, JSON… </li></ul></ul>
  13. 13. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Ejemplo, info en una API </li></ul>Servicio Operación Mensaje entrada Mensaje salida
  14. 14. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data http://...service#lastFm <ul><li>Esto en RDF… (cada cosa tiene una URI) </li></ul>http://...operation#getEvents http://...inMessage http://...outMessage hasOperation hasInput hasOutput Last.fm service geo.getEvents label label
  15. 15. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data http://...service#lastFm <ul><li>Enlazando estos datos con otros (ej: comentario) </li></ul>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
  16. 16. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data http://...service#lastFm <ul><li>Y más… </li></ul>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
  17. 17. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Datos en la Web expuestos como RDF, y enlazados con otros datos. Eso es: </li></ul><ul><ul><li>Linked Data! </li></ul></ul>
  18. 18. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Los cuatro principios (Tim Berners-Lee, 2006) </li></ul><ul><ul><li>Usar URIs para identificar cosas </li></ul></ul><ul><ul><li>Usar el protocolo HTTP para esas URIs </li></ul></ul><ul><ul><li>Ofrecer información útil en esas direcciones </li></ul></ul><ul><ul><li>Incluir enlaces a otras URIs </li></ul></ul>Image by http://www.flickr.com/photos/PhOtOnQuAnTiQuE/
  19. 19. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>2007 </li></ul><ul><li>2008 </li></ul><ul><li>2009 </li></ul>
  20. 20. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>La Web se transforma en una gran Base de Datos! </li></ul><ul><li>¿Cómo consultar esta gran BD? </li></ul><ul><li>SPARQL </li></ul><ul><li>(W3C Recommendation) </li></ul><ul><li>http://www.w3.org/TR/rdf-sparql-query/ </li></ul>
  21. 21. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data <ul><li>Ejemplo SPARQL: “Dame los últimos 5 comentarios sobre el servicio http://...#lastFm” </li></ul><ul><ul><li>PREFIX rev: <http://purl.org/stuff/rev#> </li></ul></ul><ul><ul><li>SELECT ?text ?when </li></ul></ul><ul><ul><li>WHERE </li></ul></ul><ul><ul><li>{ </li></ul></ul><ul><ul><li>< http://...#lastFm > rev:hasReview ?review . </li></ul></ul><ul><ul><li>?review rev:text ?text . </li></ul></ul><ul><ul><li>?review rev:createdOn ?when . </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>ORDER BY DESC(?when) </li></ul></ul><ul><ul><li>LIMIT 5 </li></ul></ul>
  22. 22. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data Exponiendo datos como Linked Data 2
  23. 23. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data <ul><li>Dos grandes vías: </li></ul><ul><li>1) De Bases de Datos relacionales a Linked Data </li></ul><ul><ul><li>D2R </li></ul></ul><ul><ul><li>Triplify </li></ul></ul><ul><ul><li>Virtuoso </li></ul></ul><ul><ul><li>Ultrawrap </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>2) Usando Repositorios RDF nativos </li></ul><ul><ul><li>Sesame </li></ul></ul><ul><ul><li>Jena </li></ul></ul><ul><ul><li>Owlim </li></ul></ul><ul><ul><li>Talis platform </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>(También en CMS tipo Drupal 7, en HTML + RDFa…) </li></ul>
  24. 24. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data <ul><li>Ejemplo: Triplify </li></ul>http://triplify.org
  25. 25. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data <ul><li>Ejemplo: D2R Server </li></ul>http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/
  26. 26. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Aplicación Linked Data (ejemplo usando repositorio nativo) 3
  27. 27. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>Creando una aplicación con repositorio. Caso práctico: </li></ul><ul><li>Linked User Feedback </li></ul><ul><li>Un servicio para almacenar y exponer como Linked Data feedback de los usuarios en forma de: </li></ul><ul><ul><li>Ratings </li></ul></ul><ul><ul><li>Comentarios </li></ul></ul><ul><ul><li>Etiquetas </li></ul></ul><ul><li>http://soa4all.isoco.net/luf/about </li></ul>
  28. 28. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>¿Qué necesitamos? (I) </li></ul><ul><li>Vocabularios : (usados en Revyu.com) </li></ul><ul><ul><li>Review vocabulary </li></ul></ul><ul><ul><ul><li>http://www.purl.org/stuff/rev </li></ul></ul></ul><ul><ul><li>Tag Ontology </li></ul></ul><ul><ul><ul><li>http://www.holygoat.co.uk/projects/tags/ </li></ul></ul></ul><ul><li>(Añadidos posibles) </li></ul><ul><ul><li>Provenance vocabulary </li></ul></ul><ul><ul><ul><li>http://purl.org/net/provenance/ </li></ul></ul></ul>
  29. 29. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF @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 &quot;3&quot; ; rev:minRating &quot;1&quot; ; rev:maxRating &quot;5&quot; ; rev:reviewer <http://example.com/users#user1> ; rev:createdOn &quot;2010-06-22T12:29:28+0200&quot;^^xsd:dateTime . <http://soa4all.isoco.net/luf/comments/yyy> rdf:Type rev:Review ; rev:text &quot;This is a comment&quot; ; rev:reviewer <http://example.com/users#user1> ; rev:createdOn &quot;2010-06-22T10:59:01+0200&quot;^^xsd:dateTime . <http://soa4all.isoco.net/luf/taggings/zzz> rdf:Type tags:Tagging ; tags:associatedTag &quot;one tag&quot; , &quot;other tag&quot; ; tags:taggedBy <http://example.com/users#user1> ; tags:taggedOn &quot;2010-06-22T13:03:05+0200&quot;^^xsd:dateTime . Un rating: Un comentario: Un etiquetado:
  30. 30. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF @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 &quot;3&quot; ; rev:minRating &quot;1&quot; ; rev:maxRating &quot;5&quot; ; rev:reviewer <http://example.com/users#user1> ; rev:createdOn &quot;2010-06-22T12:29:28+0200&quot;^^xsd:dateTime . <http://soa4all.isoco.net/luf/comments/yyy> rdf:Type rev:Review ; rev:text &quot;This is a comment&quot; ; rev:reviewer <http://example.com/users#user1> ; rev:createdOn &quot;2010-06-22T10:59:01+0200&quot;^^xsd:dateTime . <http://soa4all.isoco.net/luf/taggings/zzz> rdf:Type tags:Tagging ; tags:associatedTag &quot;one tag&quot; , &quot;other tag&quot; ; tags:taggedBy <http://example.com/users#user1> ; tags:taggedOn &quot;2010-06-22T13:03:05+0200&quot;^^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
  31. 31. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>¿Qué necesitamos? (II) </li></ul><ul><li>Un repositorio RDF : </li></ul><ul><ul><li>Para almacenar los datos semánticamente. </li></ul></ul><ul><ul><li>Usaremos SESAME </li></ul></ul><ul><ul><ul><li>http://www.openrdf.org/ </li></ul></ul></ul>
  32. 32. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>Instalando Sesame : </li></ul><ul><ul><li>Bajarlo de http://www.openrdf.org/download.jsp </li></ul></ul><ul><ul><li>Hace falta JDK, Tomcat </li></ul></ul><ul><ul><li>(en la memoria USB: openrdf-sesame-2.3.0-sdk.zip ) </li></ul></ul><ul><ul><li>Desplegar el .war en un tomcat e iniciar </li></ul></ul><ul><ul><li>Comprobar: http://localhost:8080/openrdf-sesame </li></ul></ul>
  33. 33. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>Usando consola para meter tripletas en Sesame : </li></ul><ul><li>Conectar al Sesame </li></ul><ul><li>Crear repositorio </li></ul><ul><li>Añadimos contenido </li></ul><ul><li>(y para borrar) </li></ul>
  34. 34. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>Y ya tenemos SPARQL endpoint con el Sesame ! </li></ul><ul><ul><li>http://localhost:8080/openrdf-sesame/repositories/LUF </li></ul></ul><ul><ul><li>Ejemplo de query: </li></ul></ul><ul><ul><ul><li>http://localhost:8080/openrdf-sesame/repositories/LUF?query=PREFIX%20rev%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fstuff%2Frev%23%3E%20SELECT%20%3Ftext%20%3Fwhen%20WHERE%20%7B%20%20%20%20%3Fitem%20rev%3AhasReview%20%3Freview%20.%20%20%20%3Freview%20rev%3Atext%20%3Ftext%20.%20%20%20%3Freview%20rev%3AcreatedOn%20%3Fwhen%20.%20%7D%20ORDER%20BY%20DESC(%3Fwhen)%20LIMIT%205 </li></ul></ul></ul><ul><ul><li>Podemos ver todos los statements también: </li></ul></ul><ul><ul><ul><li>http://localhost:8080/openrdf-sesame/repositories/LUF/statements </li></ul></ul></ul>
  35. 35. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>¿Qué necesitamos? (III) </li></ul><ul><li>Un frontend Linked Data : </li></ul><ul><ul><li>Para exponer los datos como Linked Data (con content negotiation, etc.) </li></ul></ul><ul><ul><li>Usaremos Pubby </li></ul></ul><ul><ul><ul><li>http://www4.wiwiss.fu-berlin.de/pubby/ </li></ul></ul></ul>
  36. 36. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>Instalando Pubby : </li></ul><ul><ul><li>Bajarlo de http://www4.wiwiss.fu-berlin.de/pubby/ </li></ul></ul><ul><ul><li>(en la memoria USB: pubby-0.3.zip ) </li></ul></ul><ul><ul><li>Desplegar la carpeta webapp (y renombrar) en el tomcat </li></ul></ul><ul><ul><li>Modificar el config.n3 </li></ul></ul><ul><ul><li>Reiniciar tomcat </li></ul></ul><ul><ul><li>Comprobar: http://localhost:8080/LUF/ </li></ul></ul>
  37. 37. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>Y ya tenemos los datos expuestos como Linked Data con Pubby : </li></ul><ul><ul><li>Acceso HTML: </li></ul></ul><ul><ul><ul><li>http://localhost:8080/LUF/comments/7a584c3eda88adb9e085251ca346b608 </li></ul></ul></ul><ul><ul><ul><li>http://localhost:8080/LUF/ratings/1a1f07fd9e221fee2538d1bbaf2d7426 </li></ul></ul></ul><ul><ul><ul><li>http://localhost:8080/LUF/taggings/83c993d7d9f7ffee74db8b45c958f1c3 </li></ul></ul></ul><ul><ul><li>Con content-negotiation. También ofrece los datos como RDF/XML: </li></ul></ul><ul><ul><ul><li>?output=n3 </li></ul></ul></ul><ul><ul><ul><li>?output=xml </li></ul></ul></ul><ul><ul><li>(bueno, estas urls de localhost no son realmente Linked Data;-) </li></ul></ul>
  38. 38. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Añadidos (I): Una API
  39. 39. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>RDF2Go: </li></ul><ul><ul><li>Abstracción java sobre repositorios RDF </li></ul></ul><ul><ul><li>Programación independiente del repositorio </li></ul></ul><ul><ul><ul><li>http://rdf2go.semweb4j.org/ </li></ul></ul></ul><ul><ul><li>Alternativa, programar sobre la interfaz del repositorio </li></ul></ul>
  40. 40. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Añadidos (II): Un SPARQL explorer
  41. 41. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF <ul><li>Snorql: </li></ul><ul><ul><li>SPARQL explorer </li></ul></ul><ul><ul><ul><li>http://wiki.github.com/kurtjx/SNORQL/ </li></ul></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><ul><li>http://soa4all.isoco.net/luf/snorql/ </li></ul></ul></ul>
  42. 42. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Aplicaciones que consumen Linked Data 4
  43. 43. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Navegadores Linked Data (páginas y extensiones sobre navegadores, etc.) </li></ul><ul><ul><li>Tabulator </li></ul></ul><ul><ul><ul><li>http://www.w3.org/2005/ajar/tab </li></ul></ul></ul><ul><ul><li>Disco </li></ul></ul><ul><ul><ul><li>http://www4.wiwiss.fu-berlin.de/bizer/ng4j/disco/ </li></ul></ul></ul><ul><ul><li>LENA </li></ul></ul><ul><ul><ul><li>http://www.uni-koblenz-landau.de/koblenz/fb4/institute/IFI/AGStaab/Research/systeme/lena </li></ul></ul></ul><ul><ul><li>Marble </li></ul></ul><ul><ul><ul><li>http://marbles.sourceforge.net/ </li></ul></ul></ul><ul><ul><li>VisiNav </li></ul></ul><ul><ul><ul><li>http://visinav.deri.org/ </li></ul></ul></ul><ul><ul><li>… </li></ul></ul>
  44. 44. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Herramientas para visualizar relaciones. </li></ul><ul><li>Ejemplo RelFinder: </li></ul><ul><ul><li>http://relfinder.semanticweb.org </li></ul></ul>
  45. 45. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Consumiendo Linked Data con SPARQL </li></ul><ul><ul><li>Usando los SPARQL endpoints que exponen los diferentes conjuntos de datos </li></ul></ul><ul><ul><li>Ejemplos: </li></ul></ul><ul><ul><ul><li>Dbpedia: http://dbpedia.org/sparql </li></ul></ul></ul><ul><ul><ul><li>UK Government: http://data.gov.uk/sparql </li></ul></ul></ul><ul><ul><ul><li>USA Government: http://semantic.data.gov/sparql </li></ul></ul></ul><ul><ul><ul><li>Musicbrainz: http://dbtune.org/musicbrainz/sparql </li></ul></ul></ul><ul><ul><ul><li>… </li></ul></ul></ul><ul><ul><ul><li>LUF: http://soa4all.isoco.net/luf/sparql </li></ul></ul></ul>
  46. 46. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Un SPARQL endpoint es un servicio REST </li></ul><ul><li>HTTP GET con parámetro query </li></ul><ul><ul><li>GET /sparql?query=PREFIX+... </li></ul></ul><ul><li>Respuestas: </li></ul><ul><ul><li>(usando la cabecera ACCEPT o vía parámetro ej. “& out=json ”) </li></ul></ul><ul><ul><li>RDF </li></ul></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>(JSON) </li></ul></ul>
  47. 47. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Ejemplo de integración de LUF </li></ul><ul><ul><li>(via query al SPARQL endpoint) </li></ul></ul>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
  48. 48. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Usando librerías para manejar SPARQL en diferentes entornos: </li></ul><ul><ul><li>SPARQL Javascript </li></ul></ul><ul><ul><ul><li>http://www.thefigtrees.net/lee/blog/2006/04/sparql_calendar_demo_a_sparql.html </li></ul></ul></ul><ul><ul><li>RAP – RDF API for PHP </li></ul></ul><ul><ul><ul><li>http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/index.html </li></ul></ul></ul><ul><ul><li>Sesame (Java) </li></ul></ul><ul><ul><ul><li>http://www.openrdf.org/ </li></ul></ul></ul><ul><ul><li>Jena / ARQ (Java) </li></ul></ul><ul><ul><ul><li>http://jena.sourceforge.net </li></ul></ul></ul><ul><ul><li>PySPARQL (Python) </li></ul></ul><ul><ul><ul><li>http://code.google.com/p/pysparql </li></ul></ul></ul><ul><ul><li>… </li></ul></ul>
  49. 49. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Ejemplo: RAP (RDF API for PHP) </li></ul><ul><li>Usado en la página de LUF </li></ul><ul><ul><li>http://soa4all.isoco.net/luf/about </li></ul></ul>
  50. 50. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Ejemplo: K-Analytics (Knowledge Analytics) </li></ul><ul><ul><li>Sacando datos de iServe y otras fuentes… </li></ul></ul><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <sparql xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=&quot;http://www.w3.org/2007/SPARQL/result.xsd&quot;> <head> <variable name=&quot;op&quot;/> <variable name=&quot;labelOp&quot;/> </head> <results> <result> <binding name=&quot;op&quot;> < uri> http://iserve.kmi.open.ac.uk/…#LastFmGetEventsOperation </uri> </binding> <binding name=&quot;labelOp&quot;> <literal> geo.getEvents </literal> </binding> </result> </results> </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 . } }
  51. 51. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo k-Analytics
  52. 52. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>The New York Times: Alumni In The News </li></ul><ul><ul><li>http://data.nytimes.com/schools/schools.html </li></ul></ul>
  53. 53. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>The New York Times: Código fuente disponible </li></ul>… y son consultas SPARQL
  54. 54. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Ejemplo: Clean Air Status and Trends (CASTNET) </li></ul><ul><ul><li>http://data-gov.tw.rpi.edu/demo/exhibit/demo-8-castnet.php </li></ul></ul>
  55. 55. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Ejemplo: Research Funding Explorer </li></ul><ul><ul><li>http://bis.clients.talis.com/ </li></ul></ul>
  56. 56. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Ejemplo: Calidad de las aguas en playas asturianas </li></ul><ul><ul><li>http://datos.fundacionctic.org/sandbox/asturias/playas/ </li></ul></ul>
  57. 57. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejercicios y Ejemplos Extra
  58. 58. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>Relaciones entre películas en RelFinder: </li></ul><ul><ul><li>“ Pulp Fiction”, “Kill Bill” y “Reservoir Dogs” </li></ul></ul>
  59. 59. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data <ul><li>En data.gov.uk: </li></ul><ul><ul><li>Colegios de la administración de Londres, que contengan la palabra “music” </li></ul></ul>
  60. 60. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Por sugerencia de Vader… ( http://dbpedia.org/resource/Darth_Vader ) <ul><ul><li>(etc) </li></ul></ul><ul><li>Asesinos en serie (de ficción) en la dbpedia </li></ul>Image by http://www.flickr.com/photos/bflv/
  61. 61. Desarrollo práctico de aplicaciones Linked Data Fin Preguntas - Discusión Guillermo Álvaro Rey [email_address] @guillelamb ¡Gracias!
  62. 62. Desarrollo práctico de aplicaciones Linked Data Fin Agradecimientos / Acknowledgements <ul><li>Credits go at least to the following people for ideas and particular examples: </li></ul><ul><ul><li>Juan Sequeda @juansequeda (many ideas from his Consuming Linked Data slides at SemTech2010) </li></ul></ul><ul><ul><li>Olaf Hartig @olafhartig (Consuming Linked Data with SPARQL) </li></ul></ul><ul><ul><li>Michael Hausenblas @mhausenblas , (using Darth Vader example ) </li></ul></ul><ul><ul><li>Leigh Dodds @ldodds (querying Edubase data ) </li></ul></ul><ul><li>(And in general to the LOD community:-) </li></ul>

×