SlideShare una empresa de Scribd logo
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?
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
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)
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 Linked Data : ¿Por qué? Para pasar de una Web de documentos a una  Web de Datos Ejemplo: ¿Jugadores de fútbol de la provincia de Albacete que han marcado un gol en la final de la Copa del Mundo?
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data ¿?
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data No debería ser…?
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Mejor encontrar que buscar: (jugadores de fútbol de la provincia de Albacete que jugaron la Eurocopa 2008)
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data ¿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
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Pero… si ya publicamos datos en bruto: XML BDs APIs CSV XLS … Cierto: Pero en diferentes formatos, modelos… Difícil de integrar Datos no enlazados
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Igual que hay una manera estándar de publicar en la Web… HTML
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Formato de datos en esta gran BD: 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…
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Ejemplo, info en una API Servicio Operación Mensaje entrada Mensaje salida
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data http://...service#lastFm Esto en RDF… (cada cosa tiene una URI) http://...operation#getEvents http://...inMessage http://...outMessage hasOperation hasInput hasOutput Last.fm service geo.getEvents label label
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data http://...service#lastFm Enlazando estos datos con otros (ej: comentario) 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
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data http://...service#lastFm Y más… 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
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Datos en la Web expuestos como RDF, y enlazados con otros datos. Eso es: Linked Data!
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Los cuatro principios  (Tim Berners-Lee, 2006) Usar URIs para identificar cosas Usar el protocolo HTTP para esas URIs Ofrecer información útil en esas direcciones Incluir enlaces a otras URIs Image by  http://www.flickr.com/photos/PhOtOnQuAnTiQuE/
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data 2007 2008 2009
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data 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/
Desarrollo práctico de aplicaciones Linked Data   Intro Linked Data Ejemplo SPARQL:  “Dame los últimos 5 comentarios sobre el servicio http://...#lastFm” PREFIX rev: <http://purl.org/stuff/rev#> SELECT ?text ?when WHERE { < http://...#lastFm > rev:hasReview ?review . ?review rev:text ?text . ?review rev:createdOn ?when . } ORDER BY DESC(?when) LIMIT 5
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 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…)
Desarrollo práctico de aplicaciones Linked Data   Exponiendo datos como Linked Data Ejemplo: Triplify http://triplify.org
Desarrollo práctico de aplicaciones Linked Data   Exponiendo datos como Linked Data Ejemplo: D2R Server http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Aplicación Linked Data (ejemplo usando repositorio nativo) 3
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Creando una aplicación 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
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF ¿Qué necesitamos? (I) Vocabularios :  (usados en Revyu.com) Review vocabulary http://www.purl.org/stuff/rev Tag Ontology http://www.holygoat.co.uk/projects/tags/ (Añadidos posibles) Provenance vocabulary http://purl.org/net/provenance/
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:
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
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF ¿Qué necesitamos? (II) Un repositorio RDF : Para almacenar los datos semánticamente. Usaremos SESAME http://www.openrdf.org/
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Instalando  Sesame : Bajarlo de  http://www.openrdf.org/download.jsp Hace falta JDK, Tomcat (en la memoria USB:  openrdf-sesame-2.3.0-sdk.zip ) Desplegar el .war en un tomcat e iniciar Comprobar:  http://localhost:8080/openrdf-sesame
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Usando consola para meter tripletas en  Sesame : Conectar al Sesame Crear repositorio Añadimos contenido (y para borrar)
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Y ya tenemos SPARQL endpoint con el  Sesame ! http://localhost:8080/openrdf-sesame/repositories/LUF Ejemplo de query: 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 Podemos ver todos los statements también: http://localhost:8080/openrdf-sesame/repositories/LUF/statements
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF ¿Qué necesitamos? (III) Un   frontend Linked Data : Para exponer los datos como Linked Data (con content negotiation, etc.) Usaremos Pubby http://www4.wiwiss.fu-berlin.de/pubby/
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Instalando  Pubby : Bajarlo de  http://www4.wiwiss.fu-berlin.de/pubby/ (en la memoria USB:  pubby-0.3.zip ) Desplegar la carpeta webapp (y renombrar) en el tomcat Modificar el  config.n3 Reiniciar tomcat Comprobar:  http://localhost:8080/LUF/
Desarrollo práctico de aplicaciones Linked Data   Caso práctico: LUF Y ya tenemos los datos expuestos como Linked Data con  Pubby : Acceso HTML: http://localhost:8080/LUF/comments/7a584c3eda88adb9e085251ca346b608 http://localhost:8080/LUF/ratings/1a1f07fd9e221fee2538d1bbaf2d7426 http://localhost:8080/LUF/taggings/83c993d7d9f7ffee74db8b45c958f1c3 Con content-negotiation. También ofrece los datos como RDF/XML: ?output=n3 ?output=xml (bueno, estas urls de localhost no son realmente Linked Data;-)
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 RDF2Go: Abstracción java sobre repositorios RDF Programación independiente del repositorio http://rdf2go.semweb4j.org/ Alternativa, programar sobre la interfaz del repositorio
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 Snorql: SPARQL explorer http://wiki.github.com/kurtjx/SNORQL/ Ejemplo: http://soa4all.isoco.net/luf/snorql/
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 Navegadores Linked Data (páginas y extensiones sobre navegadores, etc.) Tabulator http://www.w3.org/2005/ajar/tab Disco http://www4.wiwiss.fu-berlin.de/bizer/ng4j/disco/ LENA http://www.uni-koblenz-landau.de/koblenz/fb4/institute/IFI/AGStaab/Research/systeme/lena Marble http://marbles.sourceforge.net/ VisiNav http://visinav.deri.org/ …
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Herramientas para visualizar relaciones. Ejemplo RelFinder: http://relfinder.semanticweb.org
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data 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
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data 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)
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo de integración de LUF (via query al SPARQL endpoint) 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
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Usando librerías para manejar SPARQL en diferentes entornos: SPARQL Javascript http://www.thefigtrees.net/lee/blog/2006/04/sparql_calendar_demo_a_sparql.html 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 …
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo: RAP (RDF API for PHP) Usado en la página de LUF http://soa4all.isoco.net/luf/about
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo:  K-Analytics  (Knowledge Analytics) Sacando datos de iServe y otras fuentes… <?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 . }  }
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo k-Analytics
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data The New York Times: Alumni In The News http://data.nytimes.com/schools/schools.html
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data The New York Times: Código fuente disponible …  y son consultas SPARQL
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo: Clean Air Status and Trends (CASTNET) http://data-gov.tw.rpi.edu/demo/exhibit/demo-8-castnet.php
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo: Research Funding Explorer http://bis.clients.talis.com/
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Ejemplo: Calidad de las aguas en playas asturianas http://datos.fundacionctic.org/sandbox/asturias/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 Relaciones entre películas en RelFinder: “ Pulp Fiction”, “Kill Bill” y “Reservoir Dogs”
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data En data.gov.uk: Colegios de la administración de Londres, que contengan la palabra “music”
Desarrollo práctico de aplicaciones Linked Data   Consumiendo Linked Data Por sugerencia de Vader… ( http://dbpedia.org/resource/Darth_Vader ) (etc) Asesinos en serie (de ficción) en la dbpedia Image by  http://www.flickr.com/photos/bflv/
Desarrollo práctico de aplicaciones Linked Data   Fin Preguntas - Discusión Guillermo Álvaro Rey [email_address] @guillelamb ¡Gracias!
Desarrollo práctico de aplicaciones Linked Data   Fin Agradecimientos / Acknowledgements Credits go at least to the following people for ideas and particular examples: Juan Sequeda   @juansequeda  (many ideas from his  Consuming Linked Data  slides at SemTech2010) Olaf Hartig   @olafhartig  (Consuming Linked Data with SPARQL) Michael Hausenblas   @mhausenblas , (using  Darth Vader example ) Leigh Dodds   @ldodds  (querying  Edubase data ) (And in general to the LOD community:-)

Más contenido relacionado

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

06 Busqueda
06 Busqueda06 Busqueda
06 Busqueda
Joaquín Salvachúa
 
Servicios web con Python
Servicios web con PythonServicios web con Python
Servicios web con Python
Manuel Pérez
 
Datos abiertos: Reutilización de información en el sector público
Datos abiertos: Reutilización de información en el sector públicoDatos abiertos: Reutilización de información en el sector público
Datos abiertos: Reutilización de información en el sector público
Jose Emilio Labra Gayo
 
Estado del arte v3.0
Estado del arte v3.0Estado del arte v3.0
Estado del arte v3.0
Martin Coronel
 
Nova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semánticaNova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semántica
Dolors Reig (el caparazón)
 
Web semantica
Web semantica Web semantica
Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014
Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014
Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014
Christian Sifaqui
 
Websemantica2007 1197487057652938 3
Websemantica2007 1197487057652938 3Websemantica2007 1197487057652938 3
Websemantica2007 1197487057652938 3
Negra Morales
 
Explotando la Web de Datos: Como crear aplicaciones usando Linked Open Data
Explotando la Web de Datos: Como crear aplicaciones usando Linked Open DataExplotando la Web de Datos: Como crear aplicaciones usando Linked Open Data
Explotando la Web de Datos: Como crear aplicaciones usando Linked Open Data
Alvaro Graves
 
¿Por qué una API y cómo la diseño?
¿Por qué una API y cómo la diseño?¿Por qué una API y cómo la diseño?
¿Por qué una API y cómo la diseño?
Rita Díaz Adán
 
Glosariosaurio 2
Glosariosaurio 2Glosariosaurio 2
Glosariosaurio 2
Draven Draven
 
24 aplicaciones rdf
24 aplicaciones rdf24 aplicaciones rdf
24 aplicaciones rdf
Jose Emilio Labra Gayo
 
APIs Nativas: Almacenamiento de Datos y NFC
APIs Nativas: Almacenamiento de Datos y NFCAPIs Nativas: Almacenamiento de Datos y NFC
APIs Nativas: Almacenamiento de Datos y NFC
Joel Ortíz
 
Open Data y Drupal
Open Data y DrupalOpen Data y Drupal
Open Data y Drupal
OpenKratio
 
Aplicaciones Online: RefWork vs Zotero
Aplicaciones Online: RefWork vs ZoteroAplicaciones Online: RefWork vs Zotero
Aplicaciones Online: RefWork vs Zotero
Lluís Codina
 
Charla Biblioteca Nacional, 24 de julio de 2014
Charla Biblioteca Nacional, 24 de julio de 2014Charla Biblioteca Nacional, 24 de julio de 2014
Charla Biblioteca Nacional, 24 de julio de 2014
Christian Sifaqui
 
Datos abiertos en el Ayuntamiento de Lorca
Datos abiertos en el Ayuntamiento de LorcaDatos abiertos en el Ayuntamiento de Lorca
Datos abiertos en el Ayuntamiento de Lorca
Antonio Galindo Galindo
 
Kit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdfKit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdf
OMORDO
 
Proyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de DatosProyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de Datos
ConfesorAD
 
Decroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el AulaDecroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el Aula
ConfesorAD
 

Similar a Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas (20)

06 Busqueda
06 Busqueda06 Busqueda
06 Busqueda
 
Servicios web con Python
Servicios web con PythonServicios web con Python
Servicios web con Python
 
Datos abiertos: Reutilización de información en el sector público
Datos abiertos: Reutilización de información en el sector públicoDatos abiertos: Reutilización de información en el sector público
Datos abiertos: Reutilización de información en el sector público
 
Estado del arte v3.0
Estado del arte v3.0Estado del arte v3.0
Estado del arte v3.0
 
Nova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semánticaNova Spivack Semantic Web Talk, Entendiendo la web semántica
Nova Spivack Semantic Web Talk, Entendiendo la web semántica
 
Web semantica
Web semantica Web semantica
Web semantica
 
Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014
Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014
Charla 9a Jornada de Usuarios Ex-Libris, 30 de septiembre de 2014
 
Websemantica2007 1197487057652938 3
Websemantica2007 1197487057652938 3Websemantica2007 1197487057652938 3
Websemantica2007 1197487057652938 3
 
Explotando la Web de Datos: Como crear aplicaciones usando Linked Open Data
Explotando la Web de Datos: Como crear aplicaciones usando Linked Open DataExplotando la Web de Datos: Como crear aplicaciones usando Linked Open Data
Explotando la Web de Datos: Como crear aplicaciones usando Linked Open Data
 
¿Por qué una API y cómo la diseño?
¿Por qué una API y cómo la diseño?¿Por qué una API y cómo la diseño?
¿Por qué una API y cómo la diseño?
 
Glosariosaurio 2
Glosariosaurio 2Glosariosaurio 2
Glosariosaurio 2
 
24 aplicaciones rdf
24 aplicaciones rdf24 aplicaciones rdf
24 aplicaciones rdf
 
APIs Nativas: Almacenamiento de Datos y NFC
APIs Nativas: Almacenamiento de Datos y NFCAPIs Nativas: Almacenamiento de Datos y NFC
APIs Nativas: Almacenamiento de Datos y NFC
 
Open Data y Drupal
Open Data y DrupalOpen Data y Drupal
Open Data y Drupal
 
Aplicaciones Online: RefWork vs Zotero
Aplicaciones Online: RefWork vs ZoteroAplicaciones Online: RefWork vs Zotero
Aplicaciones Online: RefWork vs Zotero
 
Charla Biblioteca Nacional, 24 de julio de 2014
Charla Biblioteca Nacional, 24 de julio de 2014Charla Biblioteca Nacional, 24 de julio de 2014
Charla Biblioteca Nacional, 24 de julio de 2014
 
Datos abiertos en el Ayuntamiento de Lorca
Datos abiertos en el Ayuntamiento de LorcaDatos abiertos en el Ayuntamiento de Lorca
Datos abiertos en el Ayuntamiento de Lorca
 
Kit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdfKit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdf
 
Proyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de DatosProyecto Integrador de Sistemas Gestores de Bases de Datos
Proyecto Integrador de Sistemas Gestores de Bases de Datos
 
Decroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el AulaDecroly en el congreso Internet en el Aula
Decroly en el congreso Internet en el Aula
 

Último

Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
gregory760891
 
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
bellomiguelangel68
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
Henry W. Zavala
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
Katia Reyes
 
Transporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdfTransporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdf
milagrosAlbanPacherr
 
Conceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagaciónConceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagación
edgarcalle8
 
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
sunwndniel
 
DN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en PerúDN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en Perú
estudios22
 
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdfInforme_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Rubén Cortes Zavala
 
Catalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdfCatalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdf
walter729637
 
_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
correodetareas
 
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
241578066
 
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docxSEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
Eddy Nathaly Jaimes Villamizar
 
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
MenaOlortinYherlyEli
 
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptxDiapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
GnesisOrtegaDeLen
 
11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf
PanchoChangue
 
bomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexionesbomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexiones
JessAdrinGonzlezCade
 
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdfBIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
sunwndniel
 
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdfInforme de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
KEVINYOICIAQUINOSORI
 
aplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geograficoaplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geografico
cyberquiximies
 

Último (20)

Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
 
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 
Transporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdfTransporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdf
 
Conceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagaciónConceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagación
 
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
 
DN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en PerúDN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en Perú
 
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdfInforme_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
 
Catalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdfCatalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdf
 
_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
 
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
 
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docxSEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
 
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
 
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptxDiapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
 
11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf
 
bomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexionesbomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexiones
 
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdfBIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
 
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdfInforme de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
 
aplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geograficoaplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geografico
 

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

  • 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. 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. 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. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data (Re-)Introducción a Linked Data 1
  • 5. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Linked Data : ¿Por qué? Para pasar de una Web de documentos a una Web de Datos Ejemplo: ¿Jugadores de fútbol de la provincia de Albacete que han marcado un gol en la final de la Copa del Mundo?
  • 6. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data ¿?
  • 7. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data No debería ser…?
  • 8. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Mejor encontrar que buscar: (jugadores de fútbol de la provincia de Albacete que jugaron la Eurocopa 2008)
  • 9. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data ¿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
  • 10. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Pero… si ya publicamos datos en bruto: XML BDs APIs CSV XLS … Cierto: Pero en diferentes formatos, modelos… Difícil de integrar Datos no enlazados
  • 11. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Igual que hay una manera estándar de publicar en la Web… HTML
  • 12. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Formato de datos en esta gran BD: 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…
  • 13. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Ejemplo, info en una API Servicio Operación Mensaje entrada Mensaje salida
  • 14. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data http://...service#lastFm Esto en RDF… (cada cosa tiene una URI) http://...operation#getEvents http://...inMessage http://...outMessage hasOperation hasInput hasOutput Last.fm service geo.getEvents label label
  • 15. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data http://...service#lastFm Enlazando estos datos con otros (ej: comentario) 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. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data http://...service#lastFm Y más… 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. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Datos en la Web expuestos como RDF, y enlazados con otros datos. Eso es: Linked Data!
  • 18. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Los cuatro principios (Tim Berners-Lee, 2006) Usar URIs para identificar cosas Usar el protocolo HTTP para esas URIs Ofrecer información útil en esas direcciones Incluir enlaces a otras URIs Image by http://www.flickr.com/photos/PhOtOnQuAnTiQuE/
  • 19. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data 2007 2008 2009
  • 20. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data 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/
  • 21. Desarrollo práctico de aplicaciones Linked Data Intro Linked Data Ejemplo SPARQL: “Dame los últimos 5 comentarios sobre el servicio http://...#lastFm” PREFIX rev: <http://purl.org/stuff/rev#> SELECT ?text ?when WHERE { < http://...#lastFm > rev:hasReview ?review . ?review rev:text ?text . ?review rev:createdOn ?when . } ORDER BY DESC(?when) LIMIT 5
  • 22. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data Exponiendo datos como Linked Data 2
  • 23. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data 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…)
  • 24. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data Ejemplo: Triplify http://triplify.org
  • 25. Desarrollo práctico de aplicaciones Linked Data Exponiendo datos como Linked Data Ejemplo: D2R Server http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/
  • 26. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Aplicación Linked Data (ejemplo usando repositorio nativo) 3
  • 27. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Creando una aplicación 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
  • 28. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF ¿Qué necesitamos? (I) Vocabularios : (usados en Revyu.com) Review vocabulary http://www.purl.org/stuff/rev Tag Ontology http://www.holygoat.co.uk/projects/tags/ (Añadidos posibles) Provenance vocabulary http://purl.org/net/provenance/
  • 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. 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. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF ¿Qué necesitamos? (II) Un repositorio RDF : Para almacenar los datos semánticamente. Usaremos SESAME http://www.openrdf.org/
  • 32. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Instalando Sesame : Bajarlo de http://www.openrdf.org/download.jsp Hace falta JDK, Tomcat (en la memoria USB: openrdf-sesame-2.3.0-sdk.zip ) Desplegar el .war en un tomcat e iniciar Comprobar: http://localhost:8080/openrdf-sesame
  • 33. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Usando consola para meter tripletas en Sesame : Conectar al Sesame Crear repositorio Añadimos contenido (y para borrar)
  • 34. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Y ya tenemos SPARQL endpoint con el Sesame ! http://localhost:8080/openrdf-sesame/repositories/LUF Ejemplo de query: 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 Podemos ver todos los statements también: http://localhost:8080/openrdf-sesame/repositories/LUF/statements
  • 35. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF ¿Qué necesitamos? (III) Un frontend Linked Data : Para exponer los datos como Linked Data (con content negotiation, etc.) Usaremos Pubby http://www4.wiwiss.fu-berlin.de/pubby/
  • 36. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Instalando Pubby : Bajarlo de http://www4.wiwiss.fu-berlin.de/pubby/ (en la memoria USB: pubby-0.3.zip ) Desplegar la carpeta webapp (y renombrar) en el tomcat Modificar el config.n3 Reiniciar tomcat Comprobar: http://localhost:8080/LUF/
  • 37. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Y ya tenemos los datos expuestos como Linked Data con Pubby : Acceso HTML: http://localhost:8080/LUF/comments/7a584c3eda88adb9e085251ca346b608 http://localhost:8080/LUF/ratings/1a1f07fd9e221fee2538d1bbaf2d7426 http://localhost:8080/LUF/taggings/83c993d7d9f7ffee74db8b45c958f1c3 Con content-negotiation. También ofrece los datos como RDF/XML: ?output=n3 ?output=xml (bueno, estas urls de localhost no son realmente Linked Data;-)
  • 38. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Añadidos (I): Una API
  • 39. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF RDF2Go: Abstracción java sobre repositorios RDF Programación independiente del repositorio http://rdf2go.semweb4j.org/ Alternativa, programar sobre la interfaz del repositorio
  • 40. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Añadidos (II): Un SPARQL explorer
  • 41. Desarrollo práctico de aplicaciones Linked Data Caso práctico: LUF Snorql: SPARQL explorer http://wiki.github.com/kurtjx/SNORQL/ Ejemplo: http://soa4all.isoco.net/luf/snorql/
  • 42. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Aplicaciones que consumen Linked Data 4
  • 43. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Navegadores Linked Data (páginas y extensiones sobre navegadores, etc.) Tabulator http://www.w3.org/2005/ajar/tab Disco http://www4.wiwiss.fu-berlin.de/bizer/ng4j/disco/ LENA http://www.uni-koblenz-landau.de/koblenz/fb4/institute/IFI/AGStaab/Research/systeme/lena Marble http://marbles.sourceforge.net/ VisiNav http://visinav.deri.org/ …
  • 44. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Herramientas para visualizar relaciones. Ejemplo RelFinder: http://relfinder.semanticweb.org
  • 45. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data 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
  • 46. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data 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)
  • 47. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo de integración de LUF (via query al SPARQL endpoint) 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. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Usando librerías para manejar SPARQL en diferentes entornos: SPARQL Javascript http://www.thefigtrees.net/lee/blog/2006/04/sparql_calendar_demo_a_sparql.html 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 …
  • 49. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo: RAP (RDF API for PHP) Usado en la página de LUF http://soa4all.isoco.net/luf/about
  • 50. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo: K-Analytics (Knowledge Analytics) Sacando datos de iServe y otras fuentes… <?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. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo k-Analytics
  • 52. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data The New York Times: Alumni In The News http://data.nytimes.com/schools/schools.html
  • 53. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data The New York Times: Código fuente disponible … y son consultas SPARQL
  • 54. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo: Clean Air Status and Trends (CASTNET) http://data-gov.tw.rpi.edu/demo/exhibit/demo-8-castnet.php
  • 55. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo: Research Funding Explorer http://bis.clients.talis.com/
  • 56. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejemplo: Calidad de las aguas en playas asturianas http://datos.fundacionctic.org/sandbox/asturias/playas/
  • 57. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Ejercicios y Ejemplos Extra
  • 58. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Relaciones entre películas en RelFinder: “ Pulp Fiction”, “Kill Bill” y “Reservoir Dogs”
  • 59. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data En data.gov.uk: Colegios de la administración de Londres, que contengan la palabra “music”
  • 60. Desarrollo práctico de aplicaciones Linked Data Consumiendo Linked Data Por sugerencia de Vader… ( http://dbpedia.org/resource/Darth_Vader ) (etc) Asesinos en serie (de ficción) en la dbpedia Image by http://www.flickr.com/photos/bflv/
  • 61. Desarrollo práctico de aplicaciones Linked Data Fin Preguntas - Discusión Guillermo Álvaro Rey [email_address] @guillelamb ¡Gracias!
  • 62. Desarrollo práctico de aplicaciones Linked Data Fin Agradecimientos / Acknowledgements Credits go at least to the following people for ideas and particular examples: Juan Sequeda @juansequeda (many ideas from his Consuming Linked Data slides at SemTech2010) Olaf Hartig @olafhartig (Consuming Linked Data with SPARQL) Michael Hausenblas @mhausenblas , (using Darth Vader example ) Leigh Dodds @ldodds (querying Edubase data ) (And in general to the LOD community:-)