Ejemplo de consultas sparql

SPARQL es el lenguaje de búsqueda para la web semántica.

SELECT ?uri ?nombre
WHERE {
?uri <http://purl.org/dc/terms/title> ?nombre;
}

La búsqueda nos devuelve todas las triplas que  cumplen el patrón, en este caso:

 ?uri <http://purl.org/dc/terms/title> ?nombre

donde:

 

  • ?uri: sujeto (URI) que representa “algo”.
  • <http://purl.org/dc/terms/title> : predicado (tambien URI) que reprensenta una propiedad que tiene el sujeto.
  • ?nombre : objeto, puede ser una URI o un literal (cadena de caracteres) respresenta el valor del la propiedad

 

 

  • Últimos 10 dataset actualizados

select *
where {
?datasetURI a <http://www.w3.org/ns/dcat#Dataset>;
        <http://purl.org/dc/terms/title> ?Nombre;
        <http://purl.org/dc/terms/modified> ?fecha .

}order by ?fecha
limit 10

  • Nombre de dataset y número de elementos que contiene:

SELECT str(?nombre) (count(?dataset) as ?numero)

where {
?datasetURI a <http://www.w3.org/ns/dcat#Dataset>;
    <http://purl.org/dc/terms/title> ?nombre.
?dataset <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?datasetURI.
}
group by (?nombre) order by (?nombre)

  • Datos de contacto teléfonos, emails..:

PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
SELECT *
WHERE {
  ?uri vcard:Tel ?telefono ; vcard:Email ?email
} LIMIT 10

 

Consultas sobre los datos de indicadores socioeconómicos:

 

  • Último dato actualizado del indicador de paro desagregado por edad y sexo:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dimension: <http://datos.aytocamargo.es/def/indicadores/dimension#> 
PREFIX sdmx_dimension: <http://purl.org/linked-data/sdmx/2009/dimension#> 
PREFIX sdmx_measure: <http://purl.org/linked-data/sdmx/2009/measure#> 
PREFIX qb: <http://purl.org/linked-data/cube#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 

SELECT  ?ultimo_mes ?area ?sexo ?edad ?paro  
WHERE {
?ob a qb:Observation;
    qb:dataSet <http://datos.aytocamargo.es/catalogo/paro-edad-sexo>; 
    sdmx_dimension:timePeriod ?ultimo_mes;
    dimension:zona ?zonaUri;
    dimension:sexo ?sexoUri; 
    dimension:edad ?edadUri; 
    sdmx_measure:obsValue ?paro.
 ?zonaUri skos:label ?area. 
 ?sexoUri skos:prefLabel ?sexo. 
 ?edadUri skos:prefLabel ?edad. 

  {SELECT (MAX (?periodo) AS ?ultimo_mes) 
   WHERE {
    ?ob qb:dataSet  <http://datos.aytocamargo.es/catalogo/paro-edad-sexo>;
    sdmx_dimension:timePeriod ?periodo }}
    }

  • Población total por año y localidad

PREFIX qb: <http://purl.org/linked-data/cube#> 
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX sdmx_dimension: <http://purl.org/linked-data/sdmx/2009/dimension#> 
PREFIX sdmx_measure: <http://purl.org/linked-data/sdmx/2009/measure#> 
PREFIX dimension: <http://datos.aytocamargo.es/def/dimension#> 

SELECT ?date ?area ?poblacion 
WHERE {
?ob qb:dataSet <http://datos.aytocamargo.es/catalogo/poblacion>
    sdmx_dimension:timePeriod ?date ; 
    dimension:zona ?zonaUri ; 
    dimension:sexo ?sexoUri; 
    sdmx_measure:obsValue ?poblacion. 
?zonaUri skos:label ?area.
?sexoUri skos:prefLabel ?sexo. 
FILTER ( STR(?sexo)="Total")
} ORDER BY ?date ?area ?sexo

  • Ultimo dato actulizado en la estación meteorológica (dia anterior)

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX shw: <http://paul.staroch.name/thesis/SmartHomeWeather.owl#> 
PREFIX otp: <http://eurostat.linked-statistics.org/dic/otp#> 

SELECT ?ultimo_dia ?temperatura_max ?temperatura_min ?presion_max ?presion_min ?humedad_max ?humedad_min ?lluvia_total
WHERE {
  ?s a shw:WeatherPhenomenon;
    shw:hasObservationTime ?ultimo_dia; 
    shw:hasTemperatureValue ?t;
    shw:hasPressureValue  ?p;
    shw:hasHumidityValue ?h;
    shw:hasPrecipitationIntensity ?ll.

 ?t otp:MAX ?temperatura_max; otp:MIN ?temperatura_min. 
 ?p otp:MAX ?presion_max; otp:MIN ?presion_min.  
 ?h otp:MAX ?humedad_max; otp:MIN ?humedad_min.  
 ?ll otp:MAX ?lluvia_total.  

{SELECT ( MAX (?dia) AS  ?ultimo_dia) 
    WHERE { ?s a shw:WeatherPhenomenon;  shw:hasObservationTime ?dia;  }}
    }