CKAN (Jaca), David Portoles
-
Upload
aragon-open-data -
Category
Technology
-
view
63 -
download
3
description
Transcript of CKAN (Jaca), David Portoles
Formación en CKAN, Jaca, 26 de septiembre de 2014
“Jacathon: Hack the Pyrenees”
David Portolés RodríguezIdearium Consultores
Formación en CKAN para acceso a catálogo de datos abiertos de Aragón Open Data
1
Formación en CKAN, Jaca, 26 de septiembre de 2014
Introducción a Aragón Open Data
Acceso a contenidos
Negociación de contenido
API de CKAN
Ejercicios
2
Índice
Formación en CKAN, Jaca, 26 de septiembre de 2014
¿Qué es AOD?
3
Portal de datos abiertos del Gobierno de Aragón:
• Conjuntos de datos abiertos (dataset's) + descripción de los mismos (metadatos).
• Además:
Portal con información.
Ontologías.
AragoPedia.
AragoDBPedia.
Aragon Social Data.
Presupuestos.
Formación en CKAN, Jaca, 26 de septiembre de 2014
¿A quién va dirigido AOD?
4
Formación en CKAN, Jaca, 26 de septiembre de 2014
Terminología
5
AOD almacena conjuntos de datos (dataset)
Cada dataset contiene uno o varios recursos (distribuciones)
El conjunto de todos los datasets es el catálogo de AOD.
Se cataloga (en metadatos) tanto catálogo, datasets como recursos.
Cada versión del metadato del dataset, se le llama revisión.
Formación en CKAN, Jaca, 26 de septiembre de 2014
Estructura de AOD
6
Esquema de URIs siguiendo la Norma Técnica de Interoperabilidad (NTI) + extensión propia según informe de experto:
URI base: http://opendata.aragon.es
Sección URI
Catálogo de datos /catalogo
Taxonomía sectores primarios /catalogo/turismo (...)
Dataset /catalogo/indice-de-precios-hoteleros
Ontología /def
Taxonomías, diccionarios... (SKOS) /kos (no hay)
Instancias de conceptos modelados /recurso
Portal /portal
AragoPedia /aragopedia
Catálogo por tipo de dato /catalogo/fotos (...)
Catálogo por tema y tipo /catalogo/medio-ambiente/fotos (...)
NTI
Extensión
CKAN
Formación en CKAN, Jaca, 26 de septiembre de 2014
Taxonomía temas (NTI)
7
La NTI define los temas de sector primario que debe haber en este tipo de portales:
Formación en CKAN, Jaca, 26 de septiembre de 2014
Tipos de dataset
8
Extensión a NTI para representar tipos de dataset.
Combinable con temas taxonomía primaria.
Existe taxonomía de información estadística (IAEst).
Sección URIHojas de cálculo /catalogo/hojas-de-calculo
Texto plano /catalogo/texto-plano
Mapas /catalogo/mapas
Fotos /catalogo/fotos
Canales RSS /catalogo/rss
Información estadística /catalogo/informacion-estadistica
Tema y tipo /catalogo/{tema}/{tipo}
taxonomia estadística hasta nivel 3 /catalogo/informacion-estadistica/{taxonomia estadística hasta nivel 3}
Formación en CKAN, Jaca, 26 de septiembre de 2014
Acceso a contenidos de AOD
9
A través del portal:
• Para consulta de datos por ciudadanos y usuarios esporádicos.
• Para edición de datos esporádica / ocasional.
Formación en CKAN, Jaca, 26 de septiembre de 2014
Acceso a contenidos de AOD
10
Formación en CKAN, Jaca, 26 de septiembre de 2014
Acceso a contenidos de AOD
11
A través de API:
• Para desarrolladores y reutilizadores.
• Para edición masiva.
Más info en: http://opendata.aragon.es/portal/desarrolladores
Sección URI del API
Catálogo de datos /catalogo/api
AragoPedia /aragopedia/api.php
AragoDBPedia /recurso
Aragón Social Data /socialdata
Formación en CKAN, Jaca, 26 de septiembre de 2014
Metadatos RDF
12
CKAN tiene un modelo de datos propio independiente (se ha mapeado).
Los metadatos en RDF se generan siguiendo NTI y DCAT-AP Europeo.
Para acceder a los metadatos RDF de cualquier dataset basta con añadir al final de la URI el sufijo .rdf
http://opendata.aragon.es/catalogo/estadistica-bibliotecas-2010.rdf
Hay un dataset “especial” que ofrece el catálogo de todos los datasets:
http://opendata.aragon.es/catalogo/catalogo.rdf
Además de los campos obligatorios por NTI y DCAT-AP, se han incluido otros que pueden ser de interés y previstos en otras especificaciones.
Incluso hay otros campos que no encajan con ninguna especificación, pero que no se desea perder:
• A sabiendas que la información semántica que proporcionan es pobre.
• Aparecen como etiquetas Relation.
Para la generación de los RDF se ha seguido las indicaciones de un informe de conformidad a la NTI realizado por un experto independiente y disponible en:
http://opendata.aragon.es/public/documentos/Informe_NTI_Aragon_OpenData_v31-01-14.pdf
Formación en CKAN, Jaca, 26 de septiembre de 2014
Metadatos RDF (Catálogo)
13
Metadato NTI Propiedad RDF
REQUERIDOS Meta.
Nombre dct:title
Descripción dct:description
Órgano publicador dct:publisher
Fecha de creación dct:issued
Fecha de actualización dct:modified
Idioma(s) dc:languagedct:language
Temáticas dcat:themeTaxonomy
Página Web foaf:homepage
Términos de uso dct:license
Documento(s) y recurso(s) dcat:dataset
OPCIONALES
Tamaño del catálogo dct:extent
Identificador dct:identifier
Cobertura geográfica dct:spatial
Derechos dct:rights
Registro dcat:record
Formación en CKAN, Jaca, 26 de septiembre de 2014
Metadatos RDF (Dataset)
14
Metadato NTI Propiedad RDF
REQUERIDOS Meta.
Nombre dct:title
Descripción dct:description
Temática(s) dcat:theme
Organismo publicador dct:publisher
Distribución(es) dcat:distribution
RECOMENDADOS – DCAT-AP
Etiqueta(s) dcat:keyword
Contacto dcat:contactPoint / adms:contactPoint
OPCIONALES
Identificador dct:identifier
Fecha de creación dct:issued
Fecha de actualización dct:modified
Frecuencia de actualización dct:accrualPeriodicity
Idioma dc:language / dct:language
Condiciones de uso dct:publisher
Cobertura geográfica dct:spatial
Cobertura temporal dct:temporal
Vigencia dct:valid
Recursos relacionado dct:references
Normativa dct:conformsTo
Página de acceso dcat:landingPage
Identificador secundario adms:identifier
Versión adms:version
Notas de la versión adms:versionNotes
Formación en CKAN, Jaca, 26 de septiembre de 2014
Metadatos RDF (Distribution)
15
Metadato NTI Propiedad
REQUERIDOS
URL de acceso dcat:accessURL
Formato dcat:mediaType
RECOMENDADOS – DCAT-AP
Descripción dct:description
Condiciones de uso dct:license
Formato dct:format
OPCIONAL
Identificador dct:identifier
Nombre dct:title
Tamaño dcat:byteSize
Información adicional dct:relation
Fecha de creación dct:issued
Fecha de actualización dct:modified
Derechos dct:rights
URL de descarga dcat:downloadURL
Estado adms:status
Formación en CKAN, Jaca, 26 de septiembre de 2014
Negociación de contenido
16
Permite que solicitar una misma URI responda diferente (la forma más adecuada al usuario).
• Preferencias según el campo Accept de los mensajes que se transmiten en las cabeceras http durante el intercambio de mensajes de la petición.
Se utilizan redirecciones 303:
• Usar código de respuesta HTTP 303 (See other) para redirigir a las alternativas.
Desde el navegador, la preferencia es a usar HTML por defecto.
• Puede fijarse otra variando la URI (p.ej. añadiendo .rdf al final).
Mediante curl se puede elegir con la misma URI (parámetro -H):
• curl http://opendata.aragon.es/catalogo/indice-de-precios-hoteleros
• curl -H "Accept:application/rdf+xml" http://opendata.aragon.es/catalogo/indice-de-precios-hoteleros
• curl -I http://opendata.aragon.es/catalogo (obsevar redirección 303, también sin -I)
• curl -L http://opendata.aragon.es/catalogo (“sigue” la redirección)
Formación en CKAN, Jaca, 26 de septiembre de 2014
API de CKAN
17
El catálogo AOD se basa en el software CKAN:
• Código abierto.
• Desarrollado por la Open Knowledge Foundation (OKFN).
• Por usar CKAN, se dispone de su API.
Descripción completa del API en: http://docs.ckan.org/en/latest/api/index.html
El API de CKAN ha sido extendida con nuevas operaciones:
• Obtener el número de conjuntos de datos y de recursos almacenados en AOD:
http://opendata.aragon.es/catalogo/api/getDataCount
• Obtener los cinco conjuntos de datos más recientes almacenados en AOD:
http://opendata.aragon.es/catalogo/api/mostRecentDataset
• Obtener los cinco conjuntos de datos más visitados en AOD:
http://opendata.aragon.es/catalogo/api/mostDownloadedDataset
Formación en CKAN, Jaca, 26 de septiembre de 2014
Listado de contenidos vía API
18
El API de CKAN tiene 3 versiones (si no se especifica se utiliza la v3):
• Se indica con /catalogo/api/num_version
• Resultado en JSON
Obtener listados:
• Dataset:
http://opendata.aragon.es/catalogo/api/3/action/package_list
ALTERNATIVA sin usar API: http://opendata.aragon.es/catalogo/catalogo.rdf
• Categorías / Grupos (equivale temas sector primario):
http://opendata.aragon.es/catalogo/api/3/action/group_list
• Etiquetas:
http://opendata.aragon.es/catalogo/api/3/action/tag_list
http://opendata.aragon.es/catalogo/api/2/tag_counts (no incluida en API v3)
Puede accederse mediante el navegador o curl:
curl http://opendata.aragon.es/catalogo/api/3/action/package_list -d '{}'
Formación en CKAN, Jaca, 26 de septiembre de 2014
Detalle de contenidos vía API
19
Con los listados anteriores se puede obtener los detalles de cada elemento (utilizando su id o name):
• Dataset:
http://opendata.aragon.es/catalogo/api/3/action/package_show?id=cartografia-1-5000_carto5000
http://opendata.aragon.es/catalogo/api/3/action/package_show?id=7652354a-8d99-481b-ba09-79d03e736d2f
Alternativa RDF (sin API): http://opendata.aragon.es/catalogo/cartografia-1-5000_carto5000.rdf
• Categorías:
http://opendata.aragon.es/catalogo/api/3/action/group_show?id=turismo
• Etiquetas:
•http://opendata.aragon.es/catalogo/api/3/action/tag_show?id=Hogares
Puede accederse mediante el navegador o curl:
curl http://opendata.aragon.es/catalogo/api/3/action/package_show -d '{"id": "7652354a-8d99-481b-ba09-79d03e736d2f"}'
curl http://opendata.aragon.es/catalogo/cartografia-1-5000_carto5000.rdf
Formación en CKAN, Jaca, 26 de septiembre de 2014
Buscar contenidos vía API
20
Envíar queries utilizando sintaxis Solr:
• Dataset:
http://opendata.aragon.es/catalogo/api/3/action/package_search?q=licencias
• Recursos:
http://opendata.aragon.es/catalogo/api/3/action/resource_search?query=name:mapa
• Etiquetas:
http://opendata.aragon.es/catalogo/api/3/action/tag_search?q=lica
Más info sobre Solr:
http://wiki.apache.org/solr/CommonQueryParameters
http://www.solrtutorial.com/solr-query-syntax.html
Formación en CKAN, Jaca, 26 de septiembre de 2014
Sintaxis Solr
21
Paginación:
• start y rows (por defecto 0 y 10 respectivamente):
•http://opendata.aragon.es/catalogo/api/3/action/package_search?q=javalambre&rows=5&start=1
Criterios de ordenación:
• sort:
http://opendata.aragon.es/catalogo/api/3/action/package_search?q=javalambre&sort=title%20asc
http://opendata.aragon.es/catalogo/api/3/action/package_search?q=javalambre&sort=title%20desc
Filtros sobre muchos campos:
• Comodín es * (no válido al comienzo)
• Negación es -
• Rangos: [10 TO *] [10 TO 20]
• Operadores lógicos: AND, OR...
http://opendata.aragon.es/catalogo/api/3/action/package_search?q=-author:%22Instituto%20Aragon%C3%A9s%20de%20Estad%C3%ADstica%20%28IAEST%29%22%20AND%20title:m*%20AND%20num_tags:[3%20TO%207]%20AND%20metadata_modified:[2014-01-13T23:59:59.999Z%20TO%20NOW-1MONTH]
Formación en CKAN, Jaca, 26 de septiembre de 2014
Otras operaciones vía API
22
Datos de una revisión concreta:
http://opendata.aragon.es/catalogo/api/3/action/revision_show?id=45b017e2-8570-421c-9c89-fa8d1a29fac7
Últimos cambios en datasets:
http://opendata.aragon.es/catalogo/api/3/action/recently_changed_packages_activity_list
Crear, modificar, borrar datasets y/o recursos:
• Necesita un token y credenciales
Crear usuarios, grupos, seguidores...
Autocompletado:
http://opendata.aragon.es/catalogo/api/3/action/package_autocomplete?q=pa&limit=10
http://opendata.aragon.es/catalogo/api/3/action/tag_autocomplete?q=x
http://opendata.aragon.es/catalogo/api/3/action/format_autocomplete?q=x
Formación en CKAN, Jaca, 26 de septiembre de 2014
Curso “Web Semántica”
?David Portolés Rodríguez
Consulta de conjuntos de datos abiertos en RDF mediante el API del catálogo
23
Formación en CKAN, Jaca, 26 de septiembre de 2014
Ejercicios vía portal (sin API)
24
Obtener un fichero de texto con la lista de datasets.
Sabiendo que se han publicado el calendario con los festivos, averiguar los patrones de Albalatillo.
Obtener un fichero con el metadato del dataset anterior en RDF.
Obtener el el metadato del catálogo en RDF y observar si se generan los valores requeridos por la NTI.
Ídem con el dataset estadistica-bibliotecas-2010. Observar los campos relation adicionales. ¿Hay alguno que no esté contemplado en las especificaciones?
Si sobra tiempo:
Descargar masivamente todos los rdf de todos los datasets en ficheros independientes y en un único fichero.
Obtener el listado de todos los autores distintos que hay.
Formación en CKAN, Jaca, 26 de septiembre de 2014
Ejercicios vía API CKAN
25
Averiguar cuántos datasets tienen entre 5 y 8 tags.
Averiguar qué metadatos se han publicado en el último mes.
Averiguar cuántos datos tiene como publicador el IAEst.
Averiguar cuántos datos hay en el grupo turismo.
Averiguar cuántos datos hay con periodicidad anual (PISTA: como p.ej. el dataset registro-de-terrenos-cinegeticos-de-huesca_rtc_cotos_hu y sus campos extra).
Averiguar cuántas veces se ha accedido y descargado el zip del dataset presupuesto-gobierno-aragon-2014. (PISTA: tracking)
Averiguar cuál es el código de la operación en el PEN 2013-2016 del dataset educacion-infantil-1-ciclo-0-3-anyos-unidades-por-curso-y-titularidad-del-centro-por-comarcas (PISTA: Ver campos extra)
Si sobra tiempo:
Obtener un fichero de texto con la lista de datasets. Comparar con la lista obtenida antes y averiguar si hay diferencias.