Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Curso Integración Web Semántica   Casos Prácticos   24 Octubre 2011     Jose María Álvarez Rodríguez     WESO-Universidad ...
ProducciónPublicaciónConsumo
Producción   Selección   ModeladoEnriquecimiento  Generación
¿Qué dataset vamos a        generar?Noménclator 2010 de entidades de    población de Asturias        Formato: MSExcel     ...
¿Qué datasetsvamos a reutilizar?             http://datacatalogs.org/               http://sindice.com/                   ...
¿Qué vocabularios       vamos a reutilizar?       prefix.ccnamespace lookup for RDF   http://prefix.cc      developers    ...
¿Qué definiciones necesitamos?    RDFS    SKOS    OWL     …
Enriquecimiento>   K      Z      :
Servicios    SPARQL Endpoint     Servicios Web   K         Z      :
Generación      ScriptsPrograma+API RDF Herramientas ETLMapeadores a RDF
Receta•       Elegir el dataset a RDFizar•       Analizar los datos a convertir•       Buscar cómo modelar estos datos    ...
En nuestro caso…
Mi Receta•       Noménclator 2010 de Asturias•       Formato MSExcel, Códigos, Descripciones        textuales, jerarquía d...
Objetivo            E            Linked DataNoménclator Asturias      2010
Noménclator          Fuente:  http://www.sadei.es/ -      Aplicaciones de Consulta- Noménclator   2010 - Más datos -      ...
Análisis del dataset• Códigos •   Concejo+Parroquia+Entidad• Jerarquía de entidades• Etiquetas para cada  entidad de pobla...
Modelado de datos         (ver más adelante en concreto)• Códigos +Jerarquía de  entidades (taxonomía)+  Etiquetas para ca...
Estadísticas con The RDF Data Cube vocabulary                   (sesión 2)                   http://publishing-statistical...
Enriquecimiento• DBPedia •   Entidades de población: http://dbpedia.org/page/Allande •   Endpoint SPARQL• Georeferenciació...
Herramientas• Google Refine •   http://code.google.com/p/google-refine/ •   Descomprimir en un directorio •   Ver fichero:...
Extensión Grefine-RDF
Trabajando con Google Refine
Consola de Google Refine     URL Navegador:   http://localhost:3333
Crear un proyectoNombre de proyecto         + Fichero de Datos
Comprobamos que tenemos la      extensión RDF
Preparación de los      datos  Cambiamos los nombres de las   columnas para referenciarlasBorramos las primeras filas (no ...
Marcamos con Flag las filas a          borrar
Seleccionamos Facet
Ordenamos por Flag (true)
Remove All matching rows !!!
Last-Previous-Flag-Borrar…
Datos “Limpios”
Modelado de datos• Definir la taxonomía de tipo  de entidades con SKOS• Generar esqueleto RDF para  aplicar a cada entidad...
…Recordando   (principios Linked Data)…1. Usar URIs para identificar las   cosas2. Usar URIs HTTP3. Ofrecer información so...
…Recordando             (referencias)…1.   http://linkeddatabook.com/editions/1.0/2.   http://www.w3.org/DesignIssues/Link...
Taxonomía de tipo deEntidad de Población                                                        s                         ...
Taxonomía de tipo de   Entidad de Población en            SKOSConcejo rdf:type skos:Concept .Parroquia rdf:type skos:Conce...
Esqueleto de una entidad de población   d                 s                       Yh/ZM^   W                      Eh^     ...
…en RDF…W               s                                                             d…definimos este esqueletocon Google...
…y las estadísticas          en RDF?Estrategia…Paso 1-Modelar, generar… las entidades depoblación-RDFPaso 2-Enriquecer las...
…a preparar un poco más          los datos…•    Quitar un “carácter extraño” de los     códigos de Concejo, Parroquia y En...
toTitlecase(value.split(,).reverse().join( ))
Cambiamos la Base URI…
Añadimos prefijos:skos,skos-xl y dc
Borramos los mapeos que no        interesan
Buscamos las propiedades que   decidimos al modelar…
Salida previa…
URIs para cada recurso2010/+value+/+cells[Cod_Parroquia].value+/           +cells[Cod_Entidad].value
Lang en los labels…
Crear URI para tipo de entidad…
http://localhost/nomenclator/definitions/+repla          ceChars(value,áéíóú,aeiou)
Crear dc:identifier…value+_+cells[Cod_Parroquia].value+_+cells[              Cod_Entidad].value)
Generando skos:broader…partimos de la       columna “Cod_Concejo”if(cells[Cod_Entidad].value == 00,if(cells[Cod_Parroquia]...
Versión del RDF Skeleton
Nuestro ejemplo en Turtle…http://localhost/nomenclator/asturias/2010/53/08/02  skosxl:prefLabel “Llanuces@es , Chanuces@as...
Añadir lat/long consultandoGoogle Maps..
Partimos de la columna   “Nombre_clean”
“Add column by fetching URLs”
Parámetros• Throttle delay: 100ms+ 0,5 seg. Por petición * 7878  (20-30 mins)• URL:  http://maps.googleapis.com/maps/api/g...
Partimos de la columna       “Google Maps”     Columna “Lat”with(value.parseJson().results[0].geometry.location, pair, pai...
Editamos el RDF skeleton..
Añadimos las propiedades…
Generar RDF final de lasEntidades de Población
¿Es necesariopublicar datos para   consultar en     SPARQL?
-Cargar RDF por programa (ej: JENA)-Utilizar un procesador      SPARQL local
ARQ•     Descargar y descomprimir:•     http://sourceforge.net/projects/jena/files/ARQ/•     Ver Fichero:      curso/softw...
ARQ    •   Ver fichero: curso/recursos/queries/1.qr    •   Ejecutar:•       Interesante porque tiene extensiones (algunas ...
Algunas    consultas en      SPARQLVer ficheros: curso/recursos/queries/*.qr
Consultas sencillasA. «Obtener el código y el nombre de los   concejos en castellano»B. «Obtener el código y el nombre de ...
^d /^d/Ed t,ZA                                       /dZ      ^d /^d/Ed t,ZB     /dZ                       d              ...
^d /^d/Ed t,ZC    /dZ                                                      /dZ                                            ...
Y ahora…apublicar los   datos
Infraestructura     s                    d    ^W ZY   d
Instalación Apache•    Descarga:     http://httpd.apache.org/•    Instalación     típica como     servicio•    Ver fichero...
Instalación Apache          Tomcat•   Descarga: http://tomcat.apache.org/download-60.cgi•   Versión 6.x•   Descomprimir fi...
Prueba…
Instalación Virtuoso•    Descarga:     http://download.openlinksw.com/virtwiz/•    Ver fichero:     curso/software/servido...
Arrancando…http://localhost:8890/
User: dba password: dba
Subiendo ficheros
Graphs
Prueba “query” SPARQL^d t,Z/D/d
SPARQL endpoint:http://localhost:8890/sparql
Otros paquetes: fct e isparql
Text Search en fct…”Llanuces”       (utiliza rdfs:label)
URI lookup en fct…
Algunas estadísticas hasta         ahora…
Configuración “cool uris”• Eliminar el nº de puerto de las  URIs y que se puedan  referenciar •   Crear proxy inverso con ...
Configuración Apache HTTP•   Paramos el servidor•   Editamos el Archivo: C:Program FilesApache Software    FoundationApach...
Configuración Apache HTTP-              mod_jk•    Documentación oficial:     http://tomcat.apache.org/connectors-     doc...
worker.properties# Define 1 real worker using ajp13worker.list=worker1# Set properties for worker1 (ajp13)worker.worker1.t...
Configurar módulo en             httpd.conf# Load mod_jk module# Update this path to match your modules locationLoadModule...
Configurar módulo en   httpd-vhosts.conf JkMount   /nomenclator/* worker1Nuestra aplicación de Pubby se llamará nomenclato...
Linked Data Front-end•     Pubby    •   http://www4.wiwiss.fu-berlin.de/pubby/    •   http://www4.wiwiss.fu-        berlin...
Pubby• Servlet con negociación de  contenido y queries DESCRIBE de  SPARQL• ANT para construir nuestra propia  webapp• Con...
¿Cómo funciona Pubby?
Apache ANT•   Descargar y descomprimir:    http://apache.rediris.es//ant/binaries/apache-    ant-1.8.2-bin.zip•   Ver Fich...
Construir       nomenclator.war• Editar el fichero config.ttl en  pubby-0.3.3webappWEB-INF• Editar el fichero build.xml en...
config.ttl conf:dataset [        conf:sparqlEndpoint http://localhost/sparql;        conf:sparqlDefaultGraphhttp://localho...
Acceso mediante Pubby• http://localhost/nomenclator/
…hasta ahora tenemos..        s                       d       ^W ZY   d
…más linked data..Enlace con DBPedia Reconciliación de     entidades    Estadísticas
Modelado Desempleo   Nuevo proyecto con Google Refine                Fuente:http://www.sepe.es/contenido/estadisticas/dato...
Reconciliar con DBPedia
Seleccionar dbo:Place
Algunos “matching” a      mano…
Otros editando RDF…1.  http://dbpedia.org/page/El_Franco2.  http://dbpedia.org/page/Lena,_Asturias3.  http://dbpedia.org/p...
Enlazamos con la DBPedia   Propiedad: owl:sameAsValor: cell.recon.match.id
Reconciliar con nuestro      Noménclator• Preparar los nombres de  los concejos• Crear consulta SPARQL• Añadir nueva colum...
Consulta en SPARQLSELECT * where{?concejo rdf:type      http://localhost/nomenclator/definitions/Concejo.?concejo rdfs:lab...
value.split(td)[1].split(/td)[0]
Y por qué a mano?…Problemas en la codificaciónde las consultas en SPARQLAlgoritmos de ReconcialiciónCon la DBPedia fallaro...
Lo están intentando            resolver…• http://events.linkeddata.org/ldow2011/papers/ldow2  011-paper11-maali.pdf• https...
RDF Skeleton
Generar RDF del Enlace con la          DBPedia
Mezclamos los ficheros            RDF       (sólo tripletas)• 1º Dataset con las entidades de población ya  publicado en V...
Publicamos en Virtuoso
Finalmente publicamos las      definiciones          Ver fichero:curso/recursos/rdf/nomenclato      r-definitions.ttl
…Y todo este despliegue siempre a   mano?
TALIS Platform           http://www.talis.com/platform/      LOD2 STACKhttp://lod2.eu/BlogPost/677-first-release-of-the-lo...
Checklist•   Producción de Linked Data•   Enriquecimiento•   Reconciliación de entidades•   Publicación de datos•   Infrae...
¿Nuestrodataset puedeser una nueva  burbuja?
• There must be resolvable http:// (or https://) URIs.• They must resolve, with or without content negotiation, to RDF dat...
Curso Integración Web     Semántica  …Estadísticas, Consumo, Introducción OWL+Ejemplo,   Debate+Conclusiones…        Jose ...
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Curso integración Web Semántica
Upcoming SlideShare
Loading in …5
×

Curso integración Web Semántica

2,717 views

Published on

Curso integración Web Semántica

  1. 1. Curso Integración Web Semántica Casos Prácticos 24 Octubre 2011 Jose María Álvarez Rodríguez WESO-Universidad de Oviedo E-mail: josem.alvarez@weso.es WWW: http://josemalvarez.es
  2. 2. ProducciónPublicaciónConsumo
  3. 3. Producción Selección ModeladoEnriquecimiento Generación
  4. 4. ¿Qué dataset vamos a generar?Noménclator 2010 de entidades de población de Asturias Formato: MSExcel Fuente: www.sadei.es Ejemplo:http://purl.org/weso/nomenclator/
  5. 5. ¿Qué datasetsvamos a reutilizar? http://datacatalogs.org/ http://sindice.com/ http://ckan.net
  6. 6. ¿Qué vocabularios vamos a reutilizar? prefix.ccnamespace lookup for RDF http://prefix.cc developers Búsqueda de prefijos para vocabularios y datasets
  7. 7. ¿Qué definiciones necesitamos? RDFS SKOS OWL …
  8. 8. Enriquecimiento> K Z :
  9. 9. Servicios SPARQL Endpoint Servicios Web K Z :
  10. 10. Generación ScriptsPrograma+API RDF Herramientas ETLMapeadores a RDF
  11. 11. 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
  12. 12. En nuestro caso…
  13. 13. 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
  14. 14. Objetivo E Linked DataNoménclator Asturias 2010
  15. 15. Noménclator Fuente: http://www.sadei.es/ - Aplicaciones de Consulta- Noménclator 2010 - Más datos - EntidadesVer fichero: recursos/nomen2010/entidades2010.xls
  16. 16. 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
  17. 17. 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
  18. 18. Estadísticas con The RDF Data Cube vocabulary (sesión 2) http://publishing-statistical- data.googlecode.com/svn/trunk/specs/src/main/html/cube.html
  19. 19. 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)
  20. 20. 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-extension/ • Ver fichero: software/herremientas/grefine-rdf- extension-0.5.3 • Descomprimir e introducir dentro de “…google-refine- 2.1-r2136webappextensions”
  21. 21. Extensión Grefine-RDF
  22. 22. Trabajando con Google Refine
  23. 23. Consola de Google Refine URL Navegador: http://localhost:3333
  24. 24. Crear un proyectoNombre de proyecto + Fichero de Datos
  25. 25. Comprobamos que tenemos la extensión RDF
  26. 26. Preparación de los datos Cambiamos los nombres de las columnas para referenciarlasBorramos las primeras filas (no son datos)Borramos las últimas filas (son datos de la entidad) Borramos las 3 últimas columnas (repetidas)
  27. 27. Marcamos con Flag las filas a borrar
  28. 28. Seleccionamos Facet
  29. 29. Ordenamos por Flag (true)
  30. 30. Remove All matching rows !!!
  31. 31. Last-Previous-Flag-Borrar…
  32. 32. Datos “Limpios”
  33. 33. Modelado de datos• Definir la taxonomía de tipo de entidades con SKOS• Generar esqueleto RDF para aplicar a cada entidad… veamos un ejemplo!
  34. 34. …Recordando (principios Linked Data)…1. Usar URIs para identificar las cosas2. Usar URIs HTTP3. Ofrecer información sobre los recursos usando RDF4. Incluir enlaces a otros URIs
  35. 35. …Recordando (referencias)…1. http://linkeddatabook.com/editions/1.0/2. http://www.w3.org/DesignIssues/LinkedDat a.html3. http://www.w3.org/TR/swbp-vocab-pub/4. http://www.w3.org/2009/08/skos- reference/skos.html
  36. 36. Taxonomía de tipo deEntidad de Población s W W s W h
  37. 37. Taxonomía de tipo de Entidad de Población en SKOSConcejo 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
  38. 38. Esqueleto de una entidad de población d s Yh/ZM^ W Eh^ E E d ^ d , D d s s W s E W
  39. 39. …en RDF…W s d…definimos este esqueletocon Google Refine+RDF…
  40. 40. …y las estadísticas en RDF?Estrategia…Paso 1-Modelar, generar… las entidades depoblación-RDFPaso 2-Enriquecer las entidades de población-RDFPaso 3-Modelar, generar…las estadísticas porseparado-RDF
  41. 41. …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 entonces 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”
  42. 42. toTitlecase(value.split(,).reverse().join( ))
  43. 43. Cambiamos la Base URI…
  44. 44. Añadimos prefijos:skos,skos-xl y dc
  45. 45. Borramos los mapeos que no interesan
  46. 46. Buscamos las propiedades que decidimos al modelar…
  47. 47. Salida previa…
  48. 48. URIs para cada recurso2010/+value+/+cells[Cod_Parroquia].value+/ +cells[Cod_Entidad].value
  49. 49. Lang en los labels…
  50. 50. Crear URI para tipo de entidad…
  51. 51. http://localhost/nomenclator/definitions/+repla ceChars(value,áéíóú,aeiou)
  52. 52. Crear dc:identifier…value+_+cells[Cod_Parroquia].value+_+cells[ Cod_Entidad].value)
  53. 53. 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))
  54. 54. Versión del RDF Skeleton
  55. 55. Nuestro ejemplo en Turtle…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/0 0 .
  56. 56. Añadir lat/long consultandoGoogle Maps..
  57. 57. Partimos de la columna “Nombre_clean”
  58. 58. “Add column by fetching URLs”
  59. 59. Parámetros• Throttle delay: 100ms+ 0,5 seg. Por petición * 7878 (20-30 mins)• URL: http://maps.googleapis.com/maps/api/geoc ode/json?sensor=falseaddress= + escape(value+,+value+, Asturias, Spain,url) Respuesta en JSON (extraer lat y long) y creamos nuevas columnas:“Add column based on this column”
  60. 60. Partimos de la columna “Google Maps” Columna “Lat”with(value.parseJson().results[0].geometry.location, pair, pair.lat) Columna “Long” with(value.parseJson().results[0].ge ometry.location, pair, pair.lng)
  61. 61. Editamos el RDF skeleton..
  62. 62. Añadimos las propiedades…
  63. 63. Generar RDF final de lasEntidades de Población
  64. 64. ¿Es necesariopublicar datos para consultar en SPARQL?
  65. 65. -Cargar RDF por programa (ej: JENA)-Utilizar un procesador SPARQL local
  66. 66. 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:UsersCursoDesktopcursos oftwareherramientasARQ-2.8.8“• Ejecutar en cmd:• %ARQROOT%batarq.bat --query “file_query” --data “file_data”
  67. 67. ARQ • Ver fichero: curso/recursos/queries/1.qr • Ejecutar:• Interesante porque tiene extensiones (algunas presentes ya en SPARQL 1.1
  68. 68. Algunas consultas en SPARQLVer ficheros: curso/recursos/queries/*.qr
  69. 69. Consultas sencillasA. «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
  70. 70. ^d /^d/Ed t,ZA /dZ ^d /^d/Ed t,ZB /dZ d /dZ ^d /^d/Ed t,ZB1 /dZ /dZ /dZ
  71. 71. ^d /^d/Ed t,ZC /dZ /dZ /dZ ^d /^d/Ed t,Z /dZ /dZD /dZ /dZ KZZ z
  72. 72. Y ahora…apublicar los datos
  73. 73. Infraestructura s d ^W ZY d
  74. 74. 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
  75. 75. 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
  76. 76. Prueba…
  77. 77. 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
  78. 78. Arrancando…http://localhost:8890/
  79. 79. User: dba password: dba
  80. 80. Subiendo ficheros
  81. 81. Graphs
  82. 82. Prueba “query” SPARQL^d t,Z/D/d
  83. 83. SPARQL endpoint:http://localhost:8890/sparql
  84. 84. Otros paquetes: fct e isparql
  85. 85. Text Search en fct…”Llanuces” (utiliza rdfs:label)
  86. 86. URI lookup en fct…
  87. 87. Algunas estadísticas hasta ahora…
  88. 88. 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
  89. 89. Configuración Apache HTTP• Paramos el servidor• Editamos el Archivo: C:Program FilesApache Software FoundationApache2.2conf httpd.conf (ver archivo)• 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 FilesApache Software FoundationApache2.2confextra (ver archivo)• Arrancamos el servidor• Copiar ficheros de configuración de: curso/conf/apache
  90. 90. 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 FilesApache Software FoundationApache2.2modules”• Crear fichero “worker.properties”• Configurar módulo según documentación• Añadir punto de montaje a aplicación en TOMCAT
  91. 91. worker.properties# Define 1 real worker using ajp13worker.list=worker1# Set properties for worker1 (ajp13)worker.worker1.type=ajp13worker.worker1.host=localhostworker.worker1.port=8009Ubicación: C:Program FilesApacheSoftware FoundationApache2.2conf
  92. 92. 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 (putworkers.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 logsdirectoryJkShmFile C:/Temp/mod_jk.shm# Where to put jk logs# Update this path to match your logs directory location (putmod_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]
  93. 93. Configurar módulo en httpd-vhosts.conf JkMount /nomenclator/* worker1Nuestra aplicación de Pubby se llamará nomenclator y estará en TOMCAT
  94. 94. 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/
  95. 95. 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
  96. 96. ¿Cómo funciona Pubby?
  97. 97. 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
  98. 98. Construir nomenclator.war• Editar el fichero config.ttl en pubby-0.3.3webappWEB-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
  99. 99. config.ttl conf:dataset [ conf:sparqlEndpoint http://localhost/sparql; conf:sparqlDefaultGraphhttp://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”
  100. 100. Acceso mediante Pubby• http://localhost/nomenclator/
  101. 101. …hasta ahora tenemos.. s d ^W ZY d
  102. 102. …más linked data..Enlace con DBPedia Reconciliación de entidades Estadísticas
  103. 103. Modelado Desempleo Nuevo proyecto con Google Refine Fuente:http://www.sepe.es/contenido/estadisticas/datos_estadisticos/municipios/index.ht ml Ver fichero: recursos/sepe/Desempleo-Sept-2011- Asturias.xls
  104. 104. Reconciliar con DBPedia
  105. 105. Seleccionar dbo:Place
  106. 106. Algunos “matching” a mano…
  107. 107. Otros editando RDF…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_BarcoVer fichero: recursos/rdf/mapeo-concejos-dbpedia.ttl
  108. 108. Enlazamos con la DBPedia Propiedad: owl:sameAsValor: cell.recon.match.id
  109. 109. Reconciliar con nuestro Noménclator• Preparar los nombres de los concejos• Crear consulta SPARQL• Añadir nueva columna “Fetching web Service”
  110. 110. Consulta en SPARQLSELECT * where{?concejo rdf:type http://localhost/nomenclator/definitions/Concejo.?concejo rdfs:label ?label. FILTER (lang(?label)=es and str(?label)=Allande)}
  111. 111. value.split(td)[1].split(/td)[0]
  112. 112. Y por qué a mano?…Problemas en la codificaciónde las consultas en SPARQLAlgoritmos de ReconcialiciónCon la DBPedia fallaron 18 con nuestro servicio 20: Quirós, Las Regueras, etc.
  113. 113. Lo están intentando resolver…• http://events.linkeddata.org/ldow2011/papers/ldow2 011-paper11-maali.pdf• https://github.com/samuraraujo/SERIMI-RDF- Interlinking• http://disi.unitn.it/~p2p/OM-011/oaei11_paper15.pdf Les vamos a dar un buen caso de prueba…
  114. 114. RDF Skeleton
  115. 115. Generar RDF del Enlace con la DBPedia
  116. 116. Mezclamos los ficheros RDF (sólo tripletas)• 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 Nomen-full.ttl
  117. 117. Publicamos en Virtuoso
  118. 118. Finalmente publicamos las definiciones Ver fichero:curso/recursos/rdf/nomenclato r-definitions.ttl
  119. 119. …Y todo este despliegue siempre a mano?
  120. 120. TALIS Platform http://www.talis.com/platform/ LOD2 STACKhttp://lod2.eu/BlogPost/677-first-release-of-the-lod2- stack.html BCN Chile http://www.slideshare.net/jelabra (Presentación I-Semantics 2011)
  121. 121. Checklist• Producción de Linked Data• Enriquecimiento• Reconciliación de entidades• Publicación de datos• Infraestructura para repositorio de RDF• …
  122. 122. ¿Nuestrodataset puedeser una nueva burbuja?
  123. 123. • There must be resolvable http:// (or https://) URIs.• They must resolve, with or without content negotiation, to RDF data in 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.
  124. 124. Curso Integración Web Semántica …Estadísticas, Consumo, Introducción OWL+Ejemplo, Debate+Conclusiones… Jose María Alvarez Rodríguez WESO-Universidad de Oviedo E-mail: josem.alvarez@weso.es WWW: http://josemalvarez.es

×