Fundación CTIC

Archivo etiqueta visualizacion

Ciberpaís: los Gobiernos se ‘appuntan’

Después del artículo publicado sobre la liberación de datos de Asturias, el Ciberpaís publica hoy el artículo “Planeta App” sobre aplicaciones y widgets variados en el que se resalta el uso de información pública para la construcción de algunos de ellos. Una interesante lectura de lo que ocurre desde el punto de vista del consumo de la información.

artículo del ciberpaís sobre apps

artículo del ciberpaís sobre apps y el destaque del uso de datos públicos

, ,

No hay Comentarios

Publicamos los primeros datasets del sector público: la oferta de formación ocupacional

En Open Data @ CTIC hemos ido contando en las semanas anteriores algunas de las razones estratégicas para embarcarse en un proyecto de reutilización de datos del sector público, así como varios aspectos técnicos y no técnicos del camino a seguir que proponemos como el más adecuado. Hemos ofrecido una prueba de concepto de todo lo expuesto utilizando como modelo los catálogos de datos abiertos que varias administraciones han publicado a nivel mundial. Como os habréis podido imaginar, hay mucho más en lo que hemos estado trabajando, y por fin ha llegado el momento de hablar de ello.

Hemos modelado la oferta de formación ocupacional del Servicio Público de Empleo del Principado de Asturias. Se resume en tres datasets: las acciones formativas (o cursos), los centros donde se imparten dichos cursos, y las organizaciones que imparten dichos cursos. Éstos a su vez constituyen un super-dataset.

los tres datasets de la formacion ocupacional en el cubo de la web semántica

Hemos trabajado con una foto de los datos que tomamos en Julio de 2009. Te puedes descargar todos los datos en RDF/XML en bruto (como pedía Tim Berners-Lee con su Raw Data Now!). Pero hay más formatos, o como parece ser el estándar de facto:

Nombre Área Última Actualización Formatos
Formación Ocupacional 2009 Servicio Público de Empleo, Principado de Asturias 2009-07-24 RDF/XML
XML
HTML
JSON
Excel

Por supuesto, también tienes nuestro SPARQL endpoint para filtrar los datos a tu antojo y, si te preguntas como interpretarlos, está también disponible el vocabulario que hemos utilizado para modelar toda la oferta formativa.

Para acabar, por ahora, también hemos creado algunas visualizaciones de ejemplo, en las que puedes filtrar los datos visualmente y ver los resultados en un mapa, una línea de tiempo e incluso descargarte los cursos que te interesen a tu calendario (en formato iCal).

visualizaciones de los datos en mapa, línea de tiempo y calendario

visualizaciones de los datos en mapa, línea de tiempo y calendario

¿Quién da más? Nosotros. Hay mucho, mucho más que contar sobre estos datasets, y muchas más cosas en las que estamos trabajando intensivamente. Atentos a los próximos artículos.

, , , , ,

7 Comentarios

Reutilización de datos desde una aplicación Java

El uso de estándares abiertos para la publicación de datos permite que, sea cual sea la tecnología utilizada, se puedan crear de forma sencilla aplicaciones o mashups que aprovechen y combinen la información disponible. En posts anteriores hemos comentado los pasos a seguir para desarrollar una aplicación que se alimente de datos públicos, hoy vamos a ver como realizar esto utilizando la tecnología Java.

Descripción del ejemplo

Desarrollo de una aplicación web Java que liste los catálogos de datos públicos disponibles y genere un mapa señalando su localización. El listado de catálogos se obtendrá realizando una consulta a un SPARQL endpoint.

Tecnologías necesarias

  • Jena: Ofrece una API que permite trabajar y realizar consultas sobre modelos o grafos RDF.
  • ARQ: Entre otras cosas, su API permite realizar consultas a servicios SPARQL remotos.

Implementación

Paso 1: Se define la consulta SPARQL que devuelve el conjunto de datos que necesitamos y se ejecuta contra el SPARQL endpoint:


QueryExecution qe = QueryExecutionFactory.sparqlService(sparql_enpoint_uri, query);
ResultSet rs= qe.execSelect();

La consulta que se ha ejecutado es:

prefix ds: <http://data.fundacionctic.org/vocab/catalog/datasets#>
prefix  dcterms: <http://purl.org/dc/terms/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix foaf: <http://xmlns.com/foaf/0.1/>  
SELECT * FROM <http://data.fundacionctic.org/dataset-catalog>
WHERE {
 ?catalog a ds:Catalog;
 dcterms:spatial ?uriGeonames;
 dcterms:description ?description;
 rdfs:label ?name;
 foaf:homepage ?homepage.
 FILTER langMatches( lang(?name), 'es' )
 FILTER langMatches( lang(?description), 'es' )
}

Este es el SPARQL endpoint sobre el que se ha ejecutado la consulta.

Paso 2: Una vez obtenidos los datos se recorre el conjunto de resultados y para cada uno de ellos se recupera su nombre, descripción, URL de su homepage y el identificador del recurso de Geonames que indica su localización.

A continuación se obtienen los datos del recurso de Geonames para obtener los valores necesarios para la geolocalización:


Model m = ModelFactory.createDefaultModel();
m.read(uri_geonames_resource);
// creación de las propiedades para obtener la latitud y la longitud
Property lat = m.createProperty("http://www.w3.org/2003/01/geo/wgs84_pos#", "lat");
Property lon = m.createProperty("http://www.w3.org/2003/01/geo/wgs84_pos#", "long");
// obtención del valor de las propiedades
Resource geoName = m.getResource(uriResource);
lat= geoName.getProperty(lat);
lon= geoName.getProperty(lon);

Paso 3: Se muestra el listado de catálogos y se crea un mapa utilizando la API Javascript de GoogleMaps en el que se muestra su localización.


var map = new GMap2(document.getElementById("map"));
map.setCenter( new GLatLng(0,0), 1);
// para cada punto se genera un "marker"
var point= new GLatLng( lat, lon );
map.addOverlay(marker);

En estos tres sencillos pasos se ha implementado una aplicación que combina recursos remotos para obtener datos y genera una visualización en un mapa. Este es el resultado obtenido

, , , ,

No hay Comentarios

Reutilización de datos usando Servicios Web

Uno de los principales beneficios de la apertura de datos es la reutilización de los mismos. Tras la aparición de las plataformas que permiten usar mapas en la Web hemos vivido un enorme crecimiento en las aplicaciones que combinan datos estructurados provenientes de distintas fuentes (‘mashups‘) y que aprovechan la facilidad de integración que ofrecen las plataformas de representación visual. Estos datos públicos son reutilizados por un amplio espectro de usuarios, desde el diseñador que por afición desarrolla un mashup con las entradas de sus contactos en Twitter representadas sobre un mapa, hasta una empresa que se basa en un modelo de negocios de prestación de servicios explotando datos gubernamentales.

Formato de los datos

Estos datos públicos siempre son útiles, aunque el procesamiento de los mismos será más sencillo y eficaz en función del formato en el que se exponen. Ejemplos de los formatos de representación que nos podemos encontrar son, entre otros:

  • (X)HTML,
  • Ficheros CSV,  XML, etc.
  • RSS,
  • interfaces REST o APIs,
  • basados en tecnologías de la Web Semántica (RDF, RDFa, GRDDL, SPARQL)

Muchas organizaciones que desean exponer los datos al público para que sean reutilizados facilitan el consumo de los mismos ofreciendo interfaces REST o APIs, que permiten hacer consultas sobre sus bases de datos, mostrando resultados estructurados para que sean procesados de forma sencilla. Además, se suelen crear herramientas de integración para trabajar directamente desde los lenguajes de programación más utilizados. Un ejemplo de esto son los listados de los métodos ofrecidos por Flickr para tratar los datos sobre las imágenes que gestiona. Con estos servicios permite el uso de la información de sus bases de datos por parte de la comunidad.

El sector público tiene un gran volumen de información que si es expuesta puede ser de gran utilidad para la ciudadanía, industria, o incluso para las propias Administraciones.

Ejemplo de reutilización de datos: expansión de una empresa

Una aplicación de la reutilización de información del sector público a nivel global, es ejemplificada con el siguiente caso que podría ser real: una empresa tecnológica de I+D que desea expandirse para tener presencia en Europa y Asia Central.

Esta empresa desea abrir una o varias sedes teniendo en cuenta ciertos requisitos establecidos por su política interna, como que el país tenga una alta densidad de investigadores, que la apertura de un nuevo laboratorio no suponga excesivo coste, que el país no tenga un alto índice de pobreza, que la renta per cápita no sea muy elevada y que exista un mínimo control de la corrupción.

Basándose en estos requisitos, un desarrollador de esta empresa puede crear una herramienta que facilite el trabajo de orientación para las tomas de decisiones, usando datos desde la Web. Esta herramienta podría ser implementada en cuestión de minutos y podría tener gran utilidad.

Búsqueda de los datos

El primer paso es la búsqueda de los sitios que contienen los datos que deseamos consultar. Como esta información es relativa a países y negocios, dos de los organismos internaciones que ofrecen información relacionada son el Banco Mundial y las Naciones Unidas. Para consultar los datos se utilizan sus respectivas interfaces REST (API del Banco Mundial/API de las Naciones Unidas).

Consultas sobre los datos

A través de una simple aplicación, se hacen llamadas REST que ofrece el API del Banco Mundial, para determinar la lista de los potenciales países para la apertura de la nueva sede. Dentro de este sitio, se permite la construcción de consultas a través de formularios con todas las opciones soportadas, muy útil para construir las URLs que serán utilizadas en nuestra aplicación.

  • Se determinan los países de Europa y Asia Central cuya renta tiene unos niveles medios (Medio-Altos y Medio-Bajos).  Se obtienen 23 países.
  • Otro de los requisitos establecidos es que en el país no exista un alto índice de corrupción, al menos dentro de lo tolerable, por lo que se establece un nivel mínimo del control de la corrupción dentro del país. Para ello se buscan los índices de control de la corrupción de los últimos años (entre 2000 y 2008) y se rechazan los que tengan un nivel bajo. Seis países son descartados en este paso.
  • Otro aspecto a valorar es que la creación de un nuevo negocio en el país sea relativamente rápido, y los trámites burocráticos no supongan un retraso de más de tres meses desde el inicio del proceso.

Finalmente, se obtienen 19 países potenciales donde establecer la nueva sede de la empresa. Para ofrecer valores cuantitativos que permitan ponderar la decisión final, se buscan indicadores sobre el número de investigadores en cada uno de esos países o el posible coste que tiene la creación de un negocio.

Visualización

Los países obtenidos, junto a los valores de referencia para éstos,  se representan visualmente utilizando una de las herramientas de visualización de datos existentes, como es el API de Visualización de Google. De esta forma se obtiene un resultado visual atractivo y adaptable a los requisitos del destinatario.

En las siguientes ilustraciones se muestra el resultado obtenido tras las consultas, filtrado de los datos y representación de los mismos.

Ejemplo de mashup: Empresa que quiere abrir nueva sede en Europa - Asia Central

Selección de países potenciales con coste porcentual de creación de nuevo negocio

Países potenciales con la intensidad del número de investigadores en cada uno

Países potenciales con la intensidad del número de investigadores en cada uno

Puedes probar este ejemplo.

Utilizando otro sistema de visualización, esta vez interactivo, se puede conseguir el siguiente resultado:

Visualización de los países potenciales con leyenda interactiva sobre los costes asociados

Visualización de los países potenciales con leyenda interactiva sobre los costes asociados

Probar este ejemplo.

Con un simple cambio en la configuración del código, es posible modificar la consulta para que en lugar de seleccionar sólo los países de Europa y Asia Central, tenga en cuenta a todos los países del mundo, pero conservando el resto de  los criterios.

Visualización interactiva de todos los países potenciales con su coste asociado (de todo el mundo)

Visualización interactiva de todos los países potenciales con su coste asociado (de todo el mundo)

Probar este ejemplo.

En el próximo post publicaremos los detalles de la implementación y los problemas encontrados.

, ,

1 Comentario