curso integración web semántica
TRANSCRIPT
![Page 1: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/2.jpg)
Producción
Publicación
Consumo
![Page 3: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/3.jpg)
Producción
SelecciónModelado
EnriquecimientoGeneración
![Page 4: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/5.jpg)
¿Qué datasetsvamos a reutilizar?
http://datacatalogs.org/
http://sindice.com/
http://ckan.net
![Page 6: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/6.jpg)
¿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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/7.jpg)
RDFSSKOSOWL
…
¿Qué definiciones necesitamos?
![Page 8: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/8.jpg)
Enriquecimiento
“Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”
![Page 9: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/10.jpg)
Generación
ScriptsPrograma+API RDFHerramientas ETLMapeadores a RDF
![Page 11: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/12.jpg)
En nuestro caso…
![Page 13: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/14.jpg)
Objetivo
Linked Data Noménclator Asturias
2010
Desempleo
Estadísticas
Noménclator
![Page 15: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/16.jpg)
![Page 17: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/17.jpg)
![Page 18: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/23.jpg)
Extensión Grefine -RDF
![Page 24: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/24.jpg)
Trabajando con Google Refine
![Page 25: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/25.jpg)
Consola de Google Refine
URL Navegador: http://localhost:3333
![Page 26: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/26.jpg)
![Page 27: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/27.jpg)
Crear un proyecto
Nombre de proyecto+
Fichero de Datos
![Page 28: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/28.jpg)
![Page 29: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/29.jpg)
Comprobamos que tenemos la extensión RDF
![Page 30: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/31.jpg)
![Page 32: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/32.jpg)
Marcamos con Flag las filas a borrar
![Page 33: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/33.jpg)
Seleccionamos Facet
![Page 34: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/34.jpg)
Ordenamos por Flag (true)
![Page 35: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/35.jpg)
Remove All matching rows !!!
![Page 36: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/36.jpg)
![Page 37: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/37.jpg)
Last->Previous ->Flag->Borrar…
![Page 38: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/38.jpg)
Datos “Limpios”
![Page 39: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/40.jpg)
…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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/41.jpg)
…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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/45.jpg)
…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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/46.jpg)
…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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/47.jpg)
…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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/48.jpg)
![Page 49: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/49.jpg)
![Page 50: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/50.jpg)
toTitlecase(value.split(",").reverse().join(" "))
![Page 51: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/51.jpg)
![Page 52: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/52.jpg)
Cambiamos la Base URI…
![Page 53: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/53.jpg)
Añadimos prefijos: skos,skos -xl y dc
![Page 54: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/54.jpg)
Borramos los mapeos que no interesan
![Page 55: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/55.jpg)
Buscamos las propiedades que decidimos al modelar…
![Page 56: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/56.jpg)
Salida previa…
![Page 57: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/57.jpg)
"2010/"+value+"/"+cells["Cod_Parroquia"].value+"/"+cells["Cod_Entidad"].value
URIs para cada recurso
![Page 58: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/58.jpg)
Lang en los labels …
![Page 59: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/59.jpg)
Crear URI para tipo de entidad…
![Page 60: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/60.jpg)
"http://localhost/nomenclator/definitions/"+replaceChars(value,"áéíóú","aeiou")
![Page 61: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/61.jpg)
value+"_"+cells["Cod_Parroquia"].value+"_"+cells["Cod_Entidad"].value)
Crear dc:identifier …
![Page 62: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/63.jpg)
Versión del RDF Skeleton
![Page 64: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/64.jpg)
<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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/65.jpg)
Añadir lat /longconsultando
Google Maps..
![Page 66: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/66.jpg)
Partimos de la columna “Nombre_clean ”
![Page 67: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/67.jpg)
“Add column by fetching URLs”
![Page 68: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/69.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/70.jpg)
Editamos el RDF skeleton ..
![Page 71: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/71.jpg)
Añadimos las propiedades…
![Page 72: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/72.jpg)
Generar RDF final de las Entidades de Población
![Page 73: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/73.jpg)
¿Es necesario publicar datos para
consultar en SPARQL?
![Page 74: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/74.jpg)
-Cargar RDF por programa ( ej: JENA)
-Utilizar un procesador SPARQL local
![Page 75: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/75.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/77.jpg)
Algunas consultas en
SPARQL
Ver ficheros: curso/recursos/ queries /*. qr
![Page 78: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/81.jpg)
Y ahora…a publicar los
datos
![Page 82: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/82.jpg)
Apache
Virtuoso
Conductor SPARQL FCT
Apache Tomcat
Apps
Infraestructura
![Page 83: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/83.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/84.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/85.jpg)
Prueba…
![Page 86: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/86.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/87.jpg)
Arrancando…
http://localhost:8890/
![Page 88: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/88.jpg)
![Page 89: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/89.jpg)
User : dba password : dba
![Page 90: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/90.jpg)
Subiendo ficheros
![Page 91: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/91.jpg)
Graphs
![Page 92: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/92.jpg)
SELECT * WHERE {
?x ?y ?z
} LIMIT 100
Prueba “ query ” SPARQL
![Page 93: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/93.jpg)
SPARQL endpoint: http://localhost:8890/sparql
![Page 94: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/94.jpg)
Otros paquetes: fct e isparql
![Page 95: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/95.jpg)
Text Search en fct …” Llanuces ” (utiliza rdfs:label )
![Page 96: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/96.jpg)
URI lookup en fct …
![Page 97: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/97.jpg)
Algunas estadísticas hasta ahora…
![Page 98: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/98.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/99.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/100.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/101.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/102.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/103.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/104.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/105.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/106.jpg)
¿Cómo funciona Pubby ?
![Page 107: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/107.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/108.jpg)
![Page 109: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/109.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/110.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/111.jpg)
Acceso mediante Pubby• http://localhost/nomenclator/
![Page 112: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/112.jpg)
…hasta ahora tenemos..
Apache
Virtuoso
Conductor SPARQL FCT
Apache Tomcat
Apps
nomenclator
![Page 113: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/113.jpg)
…más linked data ..
Enlace con DBPediaReconciliación de
entidades Estadísticas
![Page 114: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/114.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/115.jpg)
Reconciliar con DBPedia
![Page 116: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/116.jpg)
Seleccionar dbo:Place
![Page 117: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/117.jpg)
Algunos “ matching ” a mano…
![Page 118: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/118.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/119.jpg)
Enlazamos con la DBPedia
Propiedad: owl:sameAsValor: cell.recon.match.id
![Page 120: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/120.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/121.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/122.jpg)
value.split("< td>")[1].split("</td >")[0]
![Page 123: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/123.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/124.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/125.jpg)
RDF Skeleton
![Page 126: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/126.jpg)
Generar RDF del Enlace con la DBPedia
![Page 127: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/127.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/128.jpg)
Publicamos en Virtuoso
![Page 129: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/129.jpg)
Finalmente publicamos las definiciones
Ver fichero : curso/recursos/ rdf /nomenclato
r-definitions.ttl
![Page 130: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/130.jpg)
…Y todo este despliegue siempre a
mano?
![Page 131: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/131.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/132.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/133.jpg)
¿Nuestro dataset puede ser una nueva
burbuja?
![Page 134: Curso integración Web Semántica](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/134.jpg)
• 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](https://reader033.vdocuments.net/reader033/viewer/2022051016/557ba2b7d8b42aa0758b565e/html5/thumbnails/135.jpg)
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 …