1. WEB APPS: CONSUMIENDO
LINKED DATA
Ing. Jorge López Vargas
jalopez2@utpl.edu.ec
I3C2
lunes 18 de octubre de 2010
2. AGENDA
• Web Semántica
• Framework para la descripción de recursos (RDF)
• SPARQL
• Linked Data
lunes 18 de octubre de 2010
3. WEB SEMÁNTICA
La Web Actual:
web de documentos
ML is
HT tax
Sin diseñada para seres humanos
millones de documentos
computadoras ayudan a buscar
lunes 18 de octubre de 2010
4. WEB SEMÁNTICA
extensión de la web actual
web de datos
descripción semántica de recursos
permite una mejor colaboración computadores y
humanos
web para computadores
lunes 18 de octubre de 2010
5. WEB SEMÁNTICA
• Un esfuerzo por convertir a la Web actual en
una base de datos descentralizada gigante.
• Entendiblepor seres humanos y por
computadores
• Es necesario: representar y manipular el
conocimiento - RDF
lunes 18 de octubre de 2010
6. RESOURCES DESCRIPTION
FRAMEWORK
The Resource Description Framework (RDF) is a
language designed to support the Semantic Web,
in much the same way that HTML is the language
that helped initiate the original Web. RDF is a
framework for supporting resource description, or
metadata (data about data), for the Web. RDF
provides common structures that can be used for
interoperable XML data exchange.
lunes 18 de octubre de 2010
7. RESOURCES DESCRIPTION
FRAMEWORK
• RDF es:
• Parte de la Web Semántica - representa el conocimiento
• Un modelo de datos que permite establecer relaciones
• Funciona bien para información distribuida
• Un método para descomponer información en piezas (S,P,O)
• RDF no es XML. RDF representa conocimiento, XML datos
lunes 18 de octubre de 2010
8. RDF ELEMENTOS
• Tripleta RDF
• Sujeto: Lo que se esta describiendo
• Predicado: Una relación, una propiedad
• Objeto: Valor o un sujeto
“El título del artículo es Problemas con Jena y Google App
Engine”
lunes 18 de octubre de 2010
9. RDF CARACTERÍSTICAS
• Cada tripleta se construye con: sujeto, predicado y
objeto
• Cada tripleta es completa y un hecho único
• Todo es univocamente identificado con una URI
(Uniform Resource Identifier)
• Cada tripleta se puede unir a otras, pero sigue siendo
única
lunes 18 de octubre de 2010
10. RDF URI
• La necesidad de acceder a un objeto específico dado un
único nombre o identificador
• Provee una sintaxis común para nombrar recursos
(independiente del protocolo)
• URL (Uniform Resource Locators) instancia URI
• No implica la existencia física (páginas html por ejemplo)
http://dbpedia.org/page/Ecuador
lunes 18 de octubre de 2010
11. RDF REPRESENTACIÓN
Grafo RDF (Seres humanos)
RDF/XML (W3C Estándar)(Computadores)
lunes 18 de octubre de 2010
12. RDF REPRESENTACIÓN
Grafo RDF (Seres humanos)
RDF/XML (W3C Estándar)(Computadores)
lunes 18 de octubre de 2010
16. LENGUAJES DE MODELADO
• Vocabularios
• RDF
• Ontologías
• RDFSchema: clases, jerarquías, dominios rangos y tipos de datos
• Owl: cardinalidad, restricciones, inferencias
• Mayor expresividad que RDF
• A mayor expresividad mayor razonamiento complejo
lunes 18 de octubre de 2010
17. ALGUNOS VOCABULARIOS
• Foaf
• Dublin core
nd ata)
• GeneOntology
dia) ing ope
ape ink
• GeoNames hem as (L
(Sc plet
257 s tri
• CiteSeer tros illone
O b
• BBC
13.1
• DBLP
lunes 18 de octubre de 2010
18. EJERCICIO
• Elabore un Grafo RDF que modele los siguientes tablas:
• Empresa (Nombre, dirección, teléfono, página web)
• Departamento(Nombre, empleado responsable)
• Empleado (Cédula, apellidos, nombres, email)
lunes 18 de octubre de 2010
19. SPARQL
• Protocol And RDF Query Language
• Lenguaje de consulta para RDF
• Idea principal: coincidencia de patrones en un Grafo RDF
• Obtenemos subgrafos que coinciden con los patrones
lunes 18 de octubre de 2010
21. ANATOMÍA DE UNA CONSULTA
Prefijos PREFIX foo: <…>
(opcional) PREFIX bar: <…>
…
SELECT … Resultados consulta
Origen de datos FROM <…>
(opcional) FROM NAMED <…>
WHERE {
… Patrón de consulta
}
GROUP BY …
Modificadores HAVING …
consulta ORDER BY …
(opcional) LIMIT …
OFFSET …
BINDINGS …
lunes 18 de octubre de 2010
23. EJERCICIO
• Consultar todos los países que se encuentran registrados en la
Dbpedia
• Ingresar al sitio: http://dbpedia.org/snorql
• Copiar la consulta:
SELECT ?pais
WHERE {
?pais rdf:type <http://dbpedia.org/ontology/Country>
}
lunes 18 de octubre de 2010
24. TIPOS DE RESULTADOS
• xml
• json
• rdf/xml
• html
lunes 18 de octubre de 2010
25. EJERCICIO
• Consultar en dbpedia cada país y su moneda
SELECT ?pais ?moneda
WHERE {
?pais rdf:type <http://dbpedia.org/ontology/Country>.
?pais dbpprop:currencyCode ?moneda
}
lunes 18 de octubre de 2010
26. EJERCICIO
• Consultar el país y moneda de Ecuador
SELECT ?pais ?moneda
WHERE {
?pais rdf:type <http://dbpedia.org/ontology/Country>.
?pais dbpprop:currencyCode ?moneda.
?pais rdfs:label ?nombreEng FILTER (langMatches( lang(?
nombreEng), "EN" ) && ?nombreEng = "Ecuador"@en)
}
lunes 18 de octubre de 2010
27. MAYORES INFORMACIÓN
•http://www.w3.org/TR/rdf-sparql-query/
lunes 18 de octubre de 2010
28. LINKED DATA
• Hoy en día:
• Grandes fuentes de datos Web (Google, Yahoo, eBay,
Amazon)
• Apis acceso Web (+ 1300)
• Lo que ha ocasionado:
• Diferentes mecanismos de identificación
• Diferentes mecanismos de acceso
• Diferentes formatos
lunes 18 de octubre de 2010
29. LINKED DATA
• Mejores prácticas y recomendaciones para publicar y conectar
datos en la Web:
• Usar URI para identificar cosas
• Usar HTTP URIs para que las cosas sean referidas y
encontradas
• Proveer información útil (metadata)
• Incluir a otras URI relacionadas
lunes 18 de octubre de 2010
33. LINKED DATA
• Datasets
• RDFizers, ConvertToRDF
• PublishingTools
• Semantic Web Browsers
• Semantic Web Search
lunes 18 de octubre de 2010
34. LOD SPARQL ENDPOINT
• Provistos por las fuentes de datos LOD
• Enviamos la consulta SPARQL y recibimos los resultados
• Son servicios Web RESTful
• http://esw.w3.org/topic/SparqlEndpoints
lunes 18 de octubre de 2010
36. ARQUITECTURA DEL
PROYECTO
R EST dbpedia
cliente RPC
servidor
maps
RE
ST geonames
http://cafelojano.wordpress.com
lunes 18 de octubre de 2010
37. HERRAMIENTAS
• Java & NetBeans
• Jersey - Servicios REST
• GWT4NB
• Google Web Toolkit - GWT
• Google Maps
• dbpedia endpoint
• Geonames Web Services
lunes 18 de octubre de 2010
38. CONFIGURACIÓN DEL
ENTORNO DE DESARROLLO
• Descargar el plugin GWT4NB
• Dentro de NB nos dirigimos a Tools -> Plugins
• En el diálogo abrimos la pestaña Downloaded
• Hacemos click en Add plugin... y seleccionamos el archivo
descargado
• Hacemos click en Install
lunes 18 de octubre de 2010
39. CONFIGURACIÓN DEL
ENTORNO DE DESARROLLO
• Descargar y descomprimir GWT SDK
• Descargar y descomprimir Google Maps API Library 1.1
lunes 18 de octubre de 2010
40. CREACIÓN DEL PROYECTO
• Dentro de NetBeans:
• Crear un proyecto Web. Categoría Java Web, Proyecto Web
Application
• Asignar el nombre VisualLod
• Seleccionar el servidor GlassFish Server 3
• Seleccionar Google Web Toolkit en Frameworks
• Configurar la ruta del GWT SDK
• En GWT Module ubicar un nombre: isummit.lod.VisualizadorLod
• Ejecutar el proyecto
lunes 18 de octubre de 2010
41. GWT
• Crear aplicaciones Web con soporte AJAX programando en Java
• Permite depurar/ejecutar aplicaciones
• No es necesario aprender JavaScript
• Comunicaciones con el servidor a través de RPC
lunes 18 de octubre de 2010
42. CONFIGURACIÓN DEL
PROYECTO
• Dentro del paquete de código fuente buscar el archivo:
VisualizadorLod.gwt
• Agregar la línea: <inherits name="com.google.gwt.maps.GoogleMaps"/>
• Dentro del proyecto agregar la librería gwt-maps.jar que se
encuentra en la carpeta de Google maps API library
• Buscar el archivo welcomeGWT.html y cambiar el título de la
página por iSummit Loxa 2010 - Visualizador Linked Data
• Borrar el contenido del método onModuleLoad de la clase
VisualizadorLodEntryPoint
lunes 18 de octubre de 2010
43. SERVICIOS WEB BASADOS
REST
• Sigue los principios de la Web
• Uso de los verbos HTTP para realizar operaciones.
• Java existen varios APIs uno de ellos Jersey
• Agregar Jersey al proyecto
lunes 18 de octubre de 2010
44. SERVICIO WEB
COUNTRYCODE
• http://ws.geonames.org/countryCode?lat=-0.150000&lng=-78.349998&type=JSON
• {"distance":0,"countryName":"Ecuador","countryCode":"EC"}
lunes 18 de octubre de 2010
45. JSON
• JSON:
• JavaScript Object Notation
• Formato ligero para el intercambio de datos
lunes 18 de octubre de 2010
46. CREACIÓN DEL SERVICIOS
RPC
• Click derecho en el nombre del proyecto
• Seleccionar New -> GWT RPC service
• Asignarle el nombre LodService
• Quitar la selección a Create Usage Example Class
lunes 18 de octubre de 2010
47. CREACIÓN DEL MÉTODO
GETCOUNTRYNAME
• Permite obtener el nombre de un país dado la latitud
y longitud de cualquier punto dentro de su territorio.
• Agregar al proyecto la librería JAX RS 1.1
lunes 18 de octubre de 2010
48. CREACIÓN DEL MÉTODO
OBTENERDATOSDBPEDIA
• Consulta a través de REST de los datos de un
país según su nombre.
• Creación de un objeto Java que se serializa para
viajar del servidor al cliente.
lunes 18 de octubre de 2010