Curso integración Web Semántica

135
Curso Integración Web Semántica Jose María Álvarez Rodríguez WESO-Universidad de Oviedo E-mail: [email protected] WWW: http://josemalvarez.es Casos Prácticos 24 Octubre 2011

Transcript of Curso integración Web Semántica

Page 1: Curso integración Web Semántica

Curso Integración Web Semántica

Jose María Álvarez RodríguezWESO-Universidad de Oviedo

E-mail: [email protected]: http://josemalvarez.es

Casos Prácticos24 Octubre 2011

Page 2: Curso integración Web Semántica

Producción

Publicación

Consumo

Page 3: Curso integración Web Semántica

Producción

SelecciónModelado

EnriquecimientoGeneración

Page 4: Curso integración Web Semántica

Noménclator 2010 de entidades de población de Asturias

Formato: MSExcelFuente: www.sadei.es

Ejemplo: http://purl.org/weso/nomenclator/

¿Qué dataset vamos a generar?

Page 5: Curso integración Web Semántica

¿Qué datasetsvamos a reutilizar?

http://datacatalogs.org/

http://sindice.com/

http://ckan.net

Page 6: Curso integración Web Semántica

¿Qué vocabularios vamos a reutilizar?prefix.cc

namespace lookup for RDF developers

http://prefix.cc

Búsqueda de prefijos para vocabularios y

datasets

Page 7: Curso integración Web Semántica

RDFSSKOSOWL

¿Qué definiciones necesitamos?

Page 8: Curso integración Web Semántica

Enriquecimiento

“Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”

Page 9: Curso integración Web Semántica

Servicios

“Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”

SPARQL EndpointServicios Web

Page 10: Curso integración Web Semántica

Generación

ScriptsPrograma+API RDFHerramientas ETLMapeadores a RDF

Page 11: Curso integración Web Semántica

Receta• Elegir el dataset a RDFizar• Analizar los datos a convertir• Buscar cómo modelar estos datos

• Reutilizar vocabularios + Nuevas definiciones

• Enriquecer• Con qué datasets tengo/debo/quiero

enlazar y qué operación• Servicios de acceso a esos datasets

• Herramientas de generación• Validen los datos generados• Datos estáticos o dinámicos• Provenance …• Descripción del dataset generado

Page 12: Curso integración Web Semántica

En nuestro caso…

Page 13: Curso integración Web Semántica

Mi Receta• Noménclator 2010 de Asturias• Formato MSExcel, Códigos, Descripciones

textuales, jerarquía de entidades y datos estadísticos

• SKOS, Dublin Core, SCOVO, Cube+SDMX, Organizations Ontology, FOAF, NUTS, etc.

• DBPedia-SPARQL-Reconciliar• Google Maps API-REST WS-Buscar

• Google Refine+ RDF extension• Valida RDF de salida• Datos estáticos • Provenance, licencia …• Descripción del dataset generado

Page 14: Curso integración Web Semántica

Objetivo

Linked Data Noménclator Asturias

2010

Desempleo

Estadísticas

Noménclator

Page 15: Curso integración Web Semántica

Noménclator

Fuente: http://www.sadei.es / ->

Aplicaciones de Consulta -> Noménclator

2010 -> Más datos -> Entidades

Ver fichero: recursos/nomen2010/entidades2010.xls

Page 16: Curso integración Web Semántica
Page 17: Curso integración Web Semántica
Page 18: Curso integración Web Semántica

Análisis del dataset• Códigos

• Concejo+Parroquia+Entidad

• Jerarquía de entidades• Etiquetas para cada

entidad de población (es,ast)

• Datos estadísticos

Page 19: Curso integración Web Semántica

Modelado de datos(ver más adelante en concreto)

• Códigos +Jerarquía de entidades (taxonomía)+ Etiquetas para cada entidades de población –>

SKOS-XL+DChttp://www.w3.org/TR/skos-reference/skos-xl.html

Page 20: Curso integración Web Semántica

Estadísticas con The RDF Data Cube vocabulary(sesión 2)

http://publishing-statistical-data.googlecode.com/svn/trunk/specs/src/main/html/c ube.html

Page 21: Curso integración Web Semántica

Enriquecimiento• DBPedia

• Entidades de población: http://dbpedia.org/page/Allande• Endpoint SPARQL

• Georeferenciación• Google Maps Api• Servicio REST• Basic Geo (WGS84 lat/long) Vocabulary:

http://www.w3.org/2003/01/geo/• NUTS…(a nivel de Comunidad Autónoma)

Page 22: Curso integración Web Semántica

Herramientas• Google Refine

• http://code.google.com/p/google-refine/• Descomprimir en un directorio• Ver fichero: software/herremientas/google-refine-

2.1-r2136.zip

• RDF extension Google Refine

• http://lab.linkeddata.deri.ie/2010/grefine-rdf-exte nsion/• Ver fichero: software/herremientas/grefine-rdf-

extension-0.5.3• Descomprimir e introducir dentro de “…google-refine-

2.1-r2136\webapp\extensions ”

Page 23: Curso integración Web Semántica

Extensión Grefine -RDF

Page 24: Curso integración Web Semántica

Trabajando con Google Refine

Page 25: Curso integración Web Semántica

Consola de Google Refine

URL Navegador: http://localhost:3333

Page 26: Curso integración Web Semántica
Page 27: Curso integración Web Semántica

Crear un proyecto

Nombre de proyecto+

Fichero de Datos

Page 28: Curso integración Web Semántica
Page 29: Curso integración Web Semántica

Comprobamos que tenemos la extensión RDF

Page 30: Curso integración Web Semántica

Preparación de los datos

Cambiamos los nombres de las columnas para referenciarlas

Borramos las primeras filas (no son datos)

Borramos las últimas filas (son datos de la entidad)

Borramos las 3 últimas columnas (repetidas)

Page 31: Curso integración Web Semántica
Page 32: Curso integración Web Semántica

Marcamos con Flag las filas a borrar

Page 33: Curso integración Web Semántica

Seleccionamos Facet

Page 34: Curso integración Web Semántica

Ordenamos por Flag (true)

Page 35: Curso integración Web Semántica

Remove All matching rows !!!

Page 36: Curso integración Web Semántica
Page 37: Curso integración Web Semántica

Last->Previous ->Flag->Borrar…

Page 38: Curso integración Web Semántica

Datos “Limpios”

Page 39: Curso integración Web Semántica

Modelado de datos

• Definir la taxonomía de tipo de entidades con SKOS

• Generar esqueleto RDF para aplicar a cada entidad

… veamos un ejemplo!

Page 40: Curso integración Web Semántica

…Recordando (principios Linked Data)…

1. Usar URIs para identificar las cosas

2. Usar URIs HTTP

3. Ofrecer información sobre los recursos usando RDF

4. Incluir enlaces a otros URIshttp://www.w3c.es/divulgacion/guiasbreves/LinkedData

Page 41: Curso integración Web Semántica

…Recordando (referencias)…

1. http://linkeddatabook.com/editions/1.0/

2. http ://www.w3.org/DesignIssues/LinkedData.html

3. http://www.w3.org/TR/swbp -vocab -pub /

4. http://www.w3.org/2009/08/skos-reference/skos.html

Page 42: Curso integración Web Semántica

Taxonomía de tipo de Entidad de Población

Concejo Parroquia

AldeaLugar

CaseríaVilla

BarrioCiudadPuebloVenta

PobladoUrbanización

Page 43: Curso integración Web Semántica

Taxonomía de tipo de Entidad de Población en

SKOS<Concejo> rdf:type skos:Concept .

<Parroquia> rdf:type skos:Concept ;skos:broaderTransitive <Concejo>;

<Lugar> rdf:type skos:Concept ;skos:broaderTransitive <Parroquia>;

…Cada entidad tendrá un tipo que

será un skos:Concept y un <base uri definitions >

Page 44: Curso integración Web Semántica

Esqueleto de una entidad de poblaciónTipo Valor

Código Concejo 53 (QUIRÓS)

Parroquia 08 (LLANUCES)

Entidad 02

Nombre (es) Llanuces

Nombre (ast) Chanuces

Tipo Entidad Lugar

Superficie (sólo parroquias y concejos)

Distancia 7,00

Altitud 870

Total población 28

Hombres 17

Mujeres 11

Total Viviendas 59

Viviendas Principales 15

Viviendas No Principales 44

Page 45: Curso integración Web Semántica

…en RDF…Propiedad Valor

rdf:about <base_uri>/53/08/02

<base_uri> http://localhost/nomenclator/asturias/2010

skosxl:prefLabel, rdfs:label “Llanuces”@es

skosxl:prefLabel, rdfs:label “Chanuces”@ast

rdf:type <base_uri_definitions>/Lugar

<base_uri_definitions> http://localhost/nomenclator/definitions

dc:identifier “53_08_02”

skos:broaderTransitive <base_uri>/53/08/00

…definimos este esqueleto con Google Refine+RDF …

Page 46: Curso integración Web Semántica

…y las estadísticas en RDF?

Estrategia…Paso 1-Modelar, generar… las entidades de población ->RDF

Paso 2-Enriquecer las entidades de población ->RDF

Paso 3-Modelar, generar…las estadísticas por separado ->RDF

Page 47: Curso integración Web Semántica

…a preparar un poco más los datos…

• Quitar un “carácter extraño” de los códigos de Concejo, Parroquia y Entidad (mirar el código con unicode(value) si es 32 entonc es trim sino

substring )• Cambiar los nombres como “ Castro, El ” a

“ El Castro ” tanto en su versión normal como tradicional

• Preparar los nombres del tipo de “Entidad”

Page 48: Curso integración Web Semántica
Page 49: Curso integración Web Semántica
Page 50: Curso integración Web Semántica

toTitlecase(value.split(",").reverse().join(" "))

Page 51: Curso integración Web Semántica
Page 52: Curso integración Web Semántica

Cambiamos la Base URI…

Page 53: Curso integración Web Semántica

Añadimos prefijos: skos,skos -xl y dc

Page 54: Curso integración Web Semántica

Borramos los mapeos que no interesan

Page 55: Curso integración Web Semántica

Buscamos las propiedades que decidimos al modelar…

Page 56: Curso integración Web Semántica

Salida previa…

Page 57: Curso integración Web Semántica

"2010/"+value+"/"+cells["Cod_Parroquia"].value+"/"+cells["Cod_Entidad"].value

URIs para cada recurso

Page 58: Curso integración Web Semántica

Lang en los labels …

Page 59: Curso integración Web Semántica

Crear URI para tipo de entidad…

Page 60: Curso integración Web Semántica

"http://localhost/nomenclator/definitions/"+replaceChars(value,"áéíóú","aeiou")

Page 61: Curso integración Web Semántica

value+"_"+cells["Cod_Parroquia"].value+"_"+cells["Cod_Entidad"].value)

Crear dc:identifier …

Page 62: Curso integración Web Semántica

Generando skos:broader…partimos de la columna “Cod_Concejo ”

if(cells["Cod_Entidad"].value == "00", if(cells["Cod_Parroquia"].value == "00","http://nuts.psi.enakting.org/id/ES12","http://localhost/nomenclator/asturias/2010/"+cells["Cod_Concejo"].value+"/00/00"

), "http://localhost/nomenclator/asturias/2010/"+cells["Cod_Concejo"].value+"/"+cells["Cod_Parroquia"].value+"/00"

))

Page 63: Curso integración Web Semántica

Versión del RDF Skeleton

Page 64: Curso integración Web Semántica

<http://localhost/nomenclator/asturias/2010/53/08/02>

skosxl:prefLabel “Llanuces"@es , "Chanuces"@ast ;

rdfs:label “Llanuces"@es , "Chanuces"@ast ;

a http://localhost/nomenclator/definitions/Lugar> ;

dc:identifier “53_08_02" ;

skos:broaderTransitive<http://localhost/nomenclator/asturias/2010/53/08/00> .

Nuestro ejemplo en Turtle …

Page 65: Curso integración Web Semántica

Añadir lat /longconsultando

Google Maps..

Page 66: Curso integración Web Semántica

Partimos de la columna “Nombre_clean ”

Page 67: Curso integración Web Semántica

“Add column by fetching URLs”

Page 68: Curso integración Web Semántica

Parámetros• Throttle delay: 100ms+ 0,5 seg. Por petición * 7878

(20-30 mins)• URL:

"http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=" + escape(value+","+value+", Asturias, Spain","url")

Respuesta en JSON (extraer lat y long ) y creamos nuevas columnas:

“ Add column based on this column ”

Page 69: Curso integración Web Semántica

Partimos de la columna “Google Maps ”

with (value.parseJson (). results [0]. geometry.location , pair , pair.lat )

Columna “ Lat ”

with (value.parseJson (). results [0]. geometry.location , pair , pair.lng )

Columna “Long”

Page 70: Curso integración Web Semántica

Editamos el RDF skeleton ..

Page 71: Curso integración Web Semántica

Añadimos las propiedades…

Page 72: Curso integración Web Semántica

Generar RDF final de las Entidades de Población

Page 73: Curso integración Web Semántica

¿Es necesario publicar datos para

consultar en SPARQL?

Page 74: Curso integración Web Semántica

-Cargar RDF por programa ( ej: JENA)

-Utilizar un procesador SPARQL local

Page 75: Curso integración Web Semántica

ARQ• Descargar y descomprimir: • http://sourceforge.net/projects/jena/files/ARQ /• Ver Fichero:

curso/software/herramientas/arq-2.8.8.zip• Fijar variable ARQROOT

• SET arqroot="c:\Users\Curso\Desktop\curso\software\herramientas\ARQ-2.8.8“

• Ejecutar en cmd: • %ARQROOT%\bat\arq.bat --query

“file_query” --data “file_data”

Page 76: Curso integración Web Semántica

ARQ• Ver fichero: curso/recursos/queries/1.qr• Ejecutar:

• Interesante porque tiene extensiones (algunas presentes ya en SPARQL 1.1

Page 77: Curso integración Web Semántica

Algunas consultas en

SPARQL

Ver ficheros: curso/recursos/ queries /*. qr

Page 78: Curso integración Web Semántica

A. «Obtener el código y el nombre de los concejos en castellano»

B. «Obtener el código y el nombre de todas las entidades de población de un concejo»

C. «Obtener el código y nombre todas las ciudades de un concejo»

D. «Obtener el código y nombre de todas las ciudades y lugares de un concejo ordenadas por nombre y tipo»

Consultas sencillas

Page 79: Curso integración Web Semántica

SELECT DISTINCT * WHERE {?concejo rdf:type <http://localhost/nomenclator/definitions/Concejo>.?concejo dc:identifier ?id.?concejo rdfs:label?label.FILTER (lang(?label)="es").}

A

SELECT DISTINCT * WHERE {?concejo rdf:type <http://localhost/nomenclator/definitions/Concejo>.FILTER (?concejo = <http://localhost/nomenclator/asturias/2010/53/00/00>).?entidad skos:broaderTransitive ?concejo.?entidad rdfs:label ?label.FILTER (lang(?label)="es").}

B

SELECT DISTINCT * WHERE {?concejo rdf:type <http://localhost/nomenclator/definitions/Concejo>.FILTER (?concejo = <http://localhost/nomenclator/asturias/2010/53/00/00>).?entidad dc:identifier ?id.?entidad rdfs:label ?label.FILTER (lang(?label)="es").FILTER regex(str(?id), "^53")}

B1

Page 80: Curso integración Web Semántica

SELECT DISTINCT * WHERE {?concejo rdf:type <http://localhost/nomenclator/definitions/Concejo>.FILTER (?concejo = <http://localhost/nomenclator/asturias/2010/44/00/00>).?entidad dc:identifier ?id.FILTER regex(str(?id), "^44")?entidad rdf:type <http://localhost/nomenclator/definitions/Ciudad>.?entidad rdfs:label ?label.FILTER (lang(?label)="es").}

C

SELECT DISTINCT ?id ?label ?tipo WHERE {?concejo rdf:type <http://localhost/nomenclator/definitions/Concejo>.FILTER (?concejo = <http://localhost/nomenclator/asturias/2010/44/00/00>).?entidad dc:identifier ?id.FILTER regex(str(?id), "^44")?entidad rdf:type ?tipo.FILTER (?tipo=<http://localhost/nomenclator/definitions/Ciudad> or?tipo=<http://localhost/nomenclator/definitions/Lugar>).?entidad rdfs:label ?label.FILTER (lang(?label)="es").}ORDER BY (?label) (?tipo)

D

Page 81: Curso integración Web Semántica

Y ahora…a publicar los

datos

Page 82: Curso integración Web Semántica

Apache

Virtuoso

Conductor SPARQL FCT

Apache Tomcat

Apps

Infraestructura

Page 83: Curso integración Web Semántica

Instalación Apache

• Descarga: http://httpd.apache.org/

• Instalación típica como servicio

• Ver fichero: curso/software/servidores/httpd-2.2.21-win32-x86-openssl-0.9.8r.exe

Page 84: Curso integración Web Semántica

Instalación Apache Tomcat

• Descarga: http://tomcat.apache.org/download-60.cgi

• Versión 6.x• Descomprimir fichero .zip• Configurar mod_jk y Apache

HTTP• Ver fichero :

curso/software/servidores/apache-tomcat-6.0.33-windows-x86.zip

Page 85: Curso integración Web Semántica

Prueba…

Page 86: Curso integración Web Semántica

Instalación Virtuoso• Descarga:

http://download.openlinksw.com/virtwiz/• Ver fichero :

curso/software/servidores/ntvpz2zz.exe

• Necesidad de registro para evaluación• Versión: ·Multi-Threaded Universal

Server (Commercial Edition) for OpenLink Virtuoso 6.2

• Instalación Completa y sin registro• Instalación Connectivity Suite

Page 87: Curso integración Web Semántica

Arrancando…

http://localhost:8890/

Page 88: Curso integración Web Semántica
Page 89: Curso integración Web Semántica

User : dba password : dba

Page 90: Curso integración Web Semántica

Subiendo ficheros

Page 91: Curso integración Web Semántica

Graphs

Page 92: Curso integración Web Semántica

SELECT * WHERE {

?x ?y ?z

} LIMIT 100

Prueba “ query ” SPARQL

Page 93: Curso integración Web Semántica

SPARQL endpoint: http://localhost:8890/sparql

Page 94: Curso integración Web Semántica

Otros paquetes: fct e isparql

Page 95: Curso integración Web Semántica

Text Search en fct …” Llanuces ” (utiliza rdfs:label )

Page 96: Curso integración Web Semántica

URI lookup en fct …

Page 97: Curso integración Web Semántica

Algunas estadísticas hasta ahora…

Page 98: Curso integración Web Semántica

Configuración “ cool uris ”

• Eliminar el nº de puerto de las URIs y que se puedan referenciar

• Crear proxy inverso con Apache HTTP• http://docs.openlinksw.com/virtuoso/webserver.

html

• Mod_jk (Conexión con Tomcat)

• Para desplegar un linked data front-end

Page 99: Curso integración Web Semántica

Configuración Apache HTTP

• Paramos el servidor• Editamos el Archivo: C:\Program Files\Apache Software

Foundation\Apache2.2\conf \httpd.conf (verarchivo)

• Habilitamos los módulos de proxy (quitar #)• Habilitamos la carga de configuración de los Vhosts :

Include conf/extra/httpd-vhosts.conf• Editamos el fichero de vhosts: C:\Program Files\Apache

Software Foundation\Apache2.2\conf\extra (verarchivo)

• Arrancamos el servidor• Copiar ficheros de configuración de: curso/conf/apache

Page 100: Curso integración Web Semántica

Configuración Apache HTTP -mod_jk

• Documentación oficial: http://tomcat.apache.org/connectors-doc/generic_howto/quick.html

• Descarga:• http://apache.rediris.es//tomcat/tomcat-

connectors/jk/binaries/windows/tomcat-connectors-1. 2.32-windows-i386-httpd-2.2.x.zip

• Ver fichero : curso/software/servidores/tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x.zip

• Copiar “mod_jk” a “ C:\Program Files\Apache Software Foundation\Apache2.2\modules ”

• Crear fichero “ worker.properties ”• Configurar módulo según documentación• Añadir punto de montaje a aplicación en TOMCAT

Page 101: Curso integración Web Semántica

worker.properties# Define 1 real worker using ajp13worker.list=worker1# Set properties for worker1 (ajp13)worker.worker1.type=ajp13worker.worker1.host=localhostworker.worker1.port=8009

Ubicación: C: \Program Files \Apache Software Foundation \Apache2.2 \conf

Page 102: Curso integración Web Semántica

Configurar módulo en httpd.conf

# Load mod_jk module# Update this path to match your modules locationLoadModule jk_module modules/mod_jk.so# Where to find workers.properties# Update this path to match your conf directory location (p utworkers.properties next to httpd.conf)JkWorkersFile "c:/Temp/workers.properties"# Where to put jk shared memory# Update this path to match your local state directory or l ogsdirectoryJkShmFile "C:/Temp/mod_jk.shm"# Where to put jk logs# Update this path to match your logs directory location (p utmod_jk.log next to access_log)JkLogFile "C:/Temp/mod_jk.log"# Set the jk log level [debug/error/info]JkLogLevel info# Select the timestamp log formatJkLogStampFormat "[%a %b %d %H:%M:%S %Y] ""

Page 103: Curso integración Web Semántica

Configurar módulo en httpd -vhosts.conf

JkMount /nomenclator /* worker1

Nuestra aplicación de Pubbyse llamará nomenclator y

estará en TOMCAT

Page 104: Curso integración Web Semántica

Linked Data Front -end• Pubby

• http://www4.wiwiss.fu-berlin.de/pubby/• http://www4.wiwiss.fu-

berlin.de/pubby/download/pubby-0.3.3.zip• Ver fichero:

curso/software/herramientas/pubby-0.3.3.zip

• ELDA• http://elda.googlecode.com/hg/deliver-

elda/src/main/docs/index.html• WESO-DESH

• http://code.google.com/p/weso-desh/

Page 105: Curso integración Web Semántica

Pubby• Servlet con negociación de

contenido y queries DESCRIBE de SPARQL

• ANT para construir nuestra propia webapp

• Configuración del dataset• Despliegue en TOMCAT• Mapeo con APACHE

Page 106: Curso integración Web Semántica

¿Cómo funciona Pubby ?

Page 107: Curso integración Web Semántica

Apache ANT• Descargar y descomprimir:

http://apache.rediris.es//ant/binaries/apache-ant-1.8.2-bin.zip

• Ver Fichero: curso/software/desarrollo/apache -ant -1.8.2 -bin.zip

• Ir a Equipo ->Propiedades…• Crear variable ANT_HOME• Configurar PATH de Windows• Comprobar en consola comando: ant

Page 108: Curso integración Web Semántica
Page 109: Curso integración Web Semántica

Construir nomenclator.war

• Editar el fichero config.ttl en \pubby -0.3.3 \webapp \WEB-INF

• Editar el fichero build.xml en pubby -0.3.3, cambiar el nombre generado:

<property name="myapp" value="nomenclator"/>

<property name="war" value="${basedir}/${ myapp}.war" />

• Empaquetar y Desplegar: ant war

Page 110: Curso integración Web Semántica

config.ttl

conf:dataset [conf:sparqlEndpoint <http://localhost/sparql>;conf:sparqlDefaultGraph

<http://localhost/nomenclator/asturias/2010>;conf:datasetBase <http://localhost/nomenclator/>;conf:datasetURIPattern "asturias/2010/.*";conf:webResourcePrefix "";conf:fixUnescapedCharacters "(),'!$&*+;=@";#conf:metadataTemplate "metadata.ttl";meta:pubbyUser <http://purl.org/weso>;meta:pubbyOperator <http://purl.org/weso>;meta:endpointUser <http://purl.org/weso>;meta:endpointOperator <http://purl.org/weso>;

];

…Personalizar “ metadata.ttl”

Page 111: Curso integración Web Semántica

Acceso mediante Pubby• http://localhost/nomenclator/

Page 112: Curso integración Web Semántica

…hasta ahora tenemos..

Apache

Virtuoso

Conductor SPARQL FCT

Apache Tomcat

Apps

nomenclator

Page 113: Curso integración Web Semántica

…más linked data ..

Enlace con DBPediaReconciliación de

entidades Estadísticas

Page 114: Curso integración Web Semántica

Modelado Desempleo

Nuevo proyecto con Google RefineFuente:

http ://www.sepe.es/contenido/estadisticas/datos_estadisticos/municipios/index.ht

ml

Ver fichero: recursos/sepe/Desempleo-Sept-2011-Asturias.xls

Page 115: Curso integración Web Semántica

Reconciliar con DBPedia

Page 116: Curso integración Web Semántica

Seleccionar dbo:Place

Page 117: Curso integración Web Semántica

Algunos “ matching ” a mano…

Page 118: Curso integración Web Semántica

1. http://dbpedia.org/page/El_Franco2. http://dbpedia.org/page/Lena,_Asturias3. http://dbpedia.org/page/Muros_de_Nal%C3%B3n4. http://dbpedia.org/page/On%C3%ADs5. http://dbpedia.org/page/Quir%C3%B3s6. http://dbpedia.org/page/Las_Regueras7. http://dbpedia.org/page/San_Mart%C3%ADn_del_Re

y_Aurelio8. http://dbpedia.org/page/San_Mart%C3%ADn_de_Os

cos9. http://dbpedia.org/page/Villaviciosa,_Asturias10. http://dbpedia.org/page/Soto_del_Barco

Otros editando RDF…

Ver fichero: recursos/rdf/mapeo-concejos-dbpedia.ttl

Page 119: Curso integración Web Semántica

Enlazamos con la DBPedia

Propiedad: owl:sameAsValor: cell.recon.match.id

Page 120: Curso integración Web Semántica

Reconciliar con nuestro Noménclator

• Preparar los nombres de los concejos

• Crear consulta SPARQL• Añadir nueva columna

“Fetching web Service ”

Page 121: Curso integración Web Semántica

Consulta en SPARQL

SELECT * where{?concejo rdf:type

<http://localhost/nomenclator/definitions/Concejo>.?concejo rdfs:label ?label.

FILTER (lang(?label)="es" and str(?label)="Allande")

}

Page 122: Curso integración Web Semántica

value.split("< td>")[1].split("</td >")[0]

Page 123: Curso integración Web Semántica

Y por qué a mano?…

Problemas en la codificación de las consultas en SPARQL

Algoritmos de Reconcialición

Con la DBPedia fallaron 18 con nuestro servicio 20: Quirós, Las Regueras, etc.

Page 124: Curso integración Web Semántica

• http://events.linkeddata.org/ldow2011/papers/ldow2011-paper11-maali.pdf

• https://github.com/samuraraujo/SERIMI-RDF-Interlinking

• http://disi.unitn.it/~p2p/OM-011/oaei11_paper15.pdf

Lo están intentando resolver…

Les vamos a dar un buen caso de prueba…

Page 125: Curso integración Web Semántica

RDF Skeleton

Page 126: Curso integración Web Semántica

Generar RDF del Enlace con la DBPedia

Page 127: Curso integración Web Semántica

• 1º Dataset con las entidades de población ya publicado en Virtuoso

• 2º Dataset con los enlaces a la DBPedia• 3º Dataset con los enlaces manuales a la DBPedia

Mezclamos los ficheros RDF

(sólo tripletas)

Nomen -full.ttl

Page 128: Curso integración Web Semántica

Publicamos en Virtuoso

Page 129: Curso integración Web Semántica

Finalmente publicamos las definiciones

Ver fichero : curso/recursos/ rdf /nomenclato

r-definitions.ttl

Page 130: Curso integración Web Semántica

…Y todo este despliegue siempre a

mano?

Page 131: Curso integración Web Semántica

TALIS Platformhttp://www.talis.com/platform /

LOD2 STACKhttp://lod2.eu/BlogPost/677-first-release-of-the-lo d2-

stack.html

BCN Chilehttp://www.slideshare.net/jelabra

(Presentación I-Semantics 2011)

Page 132: Curso integración Web Semántica

Checklist• Producción de Linked Data• Enriquecimiento• Reconciliación de entidades• Publicación de datos• Infraestructura para

repositorio de RDF• …

Page 133: Curso integración Web Semántica

¿Nuestro dataset puede ser una nueva

burbuja?

Page 134: Curso integración Web Semántica

• There must be resolvable http:// (or https://) URIs.

• They must resolve, with or without content negotiation, to RDF datain one of the popular RDF formats (RDFa, RDF/XML, Turtle, N-Triples).

• The dataset must contain at least 1000 triples. (Hence, your FOAF file most likely does not qualify.)

• The dataset must be connected via RDF links to a dataset that is already in the diagram. This means, either your dataset must use URIs from the other dataset, or vice versam. We arbitrarily require at least 50 links.

• Access of the entire dataset must be possible via RDF crawling, via an RDF dump, or via a SPARQL endpoint.

http://richard.cyganiak.de/2007/10/lod/

Page 135: Curso integración Web Semántica

Curso Integración Web Semántica

Jose María Alvarez RodríguezWESO-Universidad de Oviedo

E-mail: [email protected]: http://josemalvarez.es

…Estadísticas, Consumo, Introducción OWL+Ejemplo ,

Debate+Conclusiones …