Fundación CTIC

Archivo etiqueta sparql

Camargo (Cantabria) completa su portal de datos abiertos

El nuevo portal Open Data del Ayuntamiento de Camargo, inicialmente previsto para el pasado mes de septiembre, comenzó a ver la luz a finales del mes de octubre (completando su sección de ‘Aplicaciones’ Demostrador durante los meses de noviembre y diciembre) y ya se encuentra plenamente operativo en la dirección datos.aytocamargo.es

Camargo Datos Abiertos

Este portal que fue adjudicado a una empresa cántabra por algo más de 56.000 EUR ofrece inicialmente 82 conjuntos de datos abiertos agrupados en diversas temáticas como Cultura, Deporte, Industria, Comercio, etc. Muchos de los datos son inventarios georeferenciados, para cuya visualización el portal ofrece un mapa interactivo en un apartado destacado.

Otro detalle es que el portal muestra desde uno de sus apartados informativos, concretamente en el referente a las ‘Iniciativas de datos abiertos‘, el mapa de iniciativas OGD en España que elaboramos y mantenemos en CTIC.

, , , ,

No hay Comentarios

Herramienta que genera GeoRSS desde SPARQL

SPARQL ofrece gran potencia y flexibilidad en las consultas, pero a veces, determinadas herramientas de consumo de los datos no aceptan el formato obtenido directamente desde el punto de consulta SPARQL.

Mapas alimentados con GeoRSS

Mapstraction es un ejemplo de herramienta de visualización que permite representar información sobre los mapas de los principales proveedores (FreeEarth, Google. Map24. MapQuest. Microsoft. MultiMap, OpenLayers, OpenSpace, OpenStreetMap, ViaMichelin, Yahoo, etc.).
Entre los métodos de representación de los puntos, se incluye la posibilidad de alimentar los mapas desde un documento GeoRSS (RSS + Coordenadas geoespaciales).

La representación de coordenadas desde un canal GeoRSS (listado de catálogos de datos del sector público en GeoRSS) sobre un mapa es algo tan sencillo como se puede comprobar en este ejemplo de la sandbox.

Mapa alimentado desde GeoRSS

Mapa alimentado desde GeoRSS

Convertir SPARQL a GeoRSS

Ya que muchos de los datos los podemos tener accesibles desde resultados de consultas SPARQL, gracias a la sencilla estructura, este se puede transformar casi instantáneamente a otros formatos, como GeoRSS, si se dispone de la información necesaria. Este sencillo Conversor SPARQL a GeoRSS (2.0), nos permite hacer la transformación. Sólamente hay que componer la consulta SPARQL de manera que aparezcan representadas las variables necesarias para el formato GeoRSS.

Las variables necesarias son:

?title
El título de cada elemento (texto)
?description
La descripción de cada elemento (texto)
?link
La URI de cada elemento (http://…)
?date
La fecha asociada al elemento en formato YYYY-MM-DD
?lat
La latitud (coordenadas) de cada elemento en formato decimal
?long
La longitud (coordenadas) de cada elemento en formato decimal

Si se quisiera visualizar en un mapa las ciudades que cuentan con una población superior a los 5 millones de habitantes, se podría hacer la siguiente consulta en la DBPedia:

 PREFIX dbpprop: PREFIX dbpowl: PREFIX foaf: PREFIX rdfs: PREFIX geo: SELECT ?title ?description ?link ?lat ?long WHERE { ?place a dbpowl:PopulatedPlace; rdfs:label ?title; dbpprop:populationTotal ?description; foaf:page ?link; geo:lat ?lat; geo:long ?long; dbpprop:populationTotal ?population. FILTER (?population > 5000000) FILTER langMatches( lang(?title), "en" ) } 

En este ejemplo se hace la consulta de las ciudades, con su información geoespacial y en la descripción aparecerá la población. Posiblemente no aparezcan listadas todas las ciudades del mundo que cumplan ese criterio, esto podría ser debido a que la DBPedia no contiene toda la información buscada (por ejemplo, la latitud y longitud exacta de ciertos lugares).

  1. Consulta el resultado en HTML o en XML (llamadas al SPARQL endpoint).
  2. Se convierte a formato GeoRSS.
  3. Por último, se visualiza en el mapa la información en formato GeoRSS

, ,

No hay 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

Disponibles los catálogos de datasets del sector público en RDF

Ya se pueden consultar los catálogos de conjuntos de datos del sector público accesibles desde nuestro SPARQL endpoint. Todos los catálogos están definidos a través de vocabularios estándar como Dublin Core o FOAF y para la representación concreta de cada uno de ellos se utiliza una instancia de la clase http://data.fundacionctic.org/vocab/catalog/datasets#Catalog.

Para más información, consulta el esquema RDF del Vocabulario de Catálogos de Datasets.

Ejemplo de consulta SPARQL

Para visualizar las tripletas RDF de todos los catálogos disponibles, puede hacerse la siguiente llamada sobre el SPARQL endpoint:


prefix cat:<http://data.fundacionctic.org/vocab/catalog/datasets#>
select *
from <http://data.fundacionctic.org/dataset-catalog>
where
{
  ?sujeto a cat:Catalog;
        ?predicado ?objeto.
}

Tras hacer la consulta en el SPARQL endpoint, se obtendrían las tripletas de cada uno de los catálogos (en HTML).

Visualización de los catálogos

Estos resultados pueden ser tratados por cualquier aplicación para construir el catálogo según las necesidades específicas. Hemos construido un simple ejemplo donde se muestra un listado de todos los catálogos de datasets del sector público (en inglés) almacenados. Nótese que se genera instantáneamente haciendo llamadas a Geonames para enriquecer los resultados, por lo que tiene cierto tiempo de carga.

Si tienes constancia de algún catálogo de datasets de información del sector público que no esté incluido, envíanos un correo a opendata@fundacionctic.org y lo incluiremos en la base de datos.

, , , ,

No hay Comentarios