SPARQL puntua

SPARQL interfazea RDF gisa biltegiratutako datuak kontsultatzeko aukera ematen duen zerbitzua da, SPARQL lengoaiaren bidez. Garatzaileei/profesionalei ahalmen eta malgutasun handia ematen die kontsultak egiteko eta aplikazioak prestatzeko orduan.

Biltegiratutako informazioa

Kontsultatu ahal den informazio guztia datu-base semantiko batean sartu da. Halako datu-baseetan, informazioa grafo deritzenetan biltegiratzen da.

datos.gob.es atariko datu-base semantikoak bi grafo ditu:

Nola erabiltzen da?

Kontsultak GET eskaeren bitartez gauzatzen dira eta hauek deian zehaztutako parametroen araberako datuak bueltatzen dituzte.

Hona hemen gure SPARQL puntuaren oinarri-helbidea:

http://datos.gob.es/virtuoso/sparql

Helbide horri “query” parametroa gehitu behar zaio, eta jarraian egin nahi dugun kontsulta.

Adibidez, kontsulta hau egin nahi badugu: select distinct ?type where {?x a ?type} LIMIT 100 puntuan kargatutako hainbat mota lortuko dira:

  1. Hura kodifikatu behar dugu, hutsuneetan “+” idatzita, jarraian ageri den bezala: select+distinct+?type+where+{?x+a+?type}+LIMIT+100
  2. Hau kodetu ondoren eta gure SPARQL puntua ezagututa, honela exekutatuko litzateke:

    http://datos.gob.es/virtuoso/sparql?query=select+distinct+?type+where+{?x+a+?type}+LIMIT+100

SPARQL puntuaren oinarri-helbidearen ondoren query parametroa eta egin nahi dugun kontsulta idatzi ezean, errore bat bistaratuko da, orria aurkitu ez dela esanez.

Besterik adierazi ezean, erantzunak HTML formatuan ematen dira, baina beste batean eska daitezke, “format” parametroa erabiliz. Parametro horrek balio desberdinak onartzen ditu:

BalioaFormatua
text/htmlHTML
application/vnd.ms-excelSpreadsheet
text/tab-separated-valuesTSV
application/sparql-results+xmlXML
application/sparql-results+jsonJSON
application/javascriptJavascript
text/turtleTurtle
application/rdf+xmlRDF/XML
text/plainN-Triples
text/csvCSV

Kontsulta egitean graforik zehazten ez bada, eskuragarri dauden grafo guztien informazio guztia emango da.

Eskuragarri dauden grafoak kontsulta daitezke honela:

select distinct ?uri where { graph ?uri { ?s a ?t } }

Informazioa zein grafori dagokion jakin nahi badugu, jarraian ageri den bezala zehaztu ahal da. ?g aldagaian ikusiko dugu ?x bakoitza zein grafotan dagoen.

select distinct ?g ?type where { graph ?g { ?x a ?type. } } limit 100

Grafo bakar baten emaitzak soilik jasotzea aukera dezakegu, honako hau idatzita:

select distinct ?type where { graph <http://datos.gob.es/catalogo> { ?x a ?type. } } limit 100

Orain, zehaztutako grafoan soilik dauden ?x-ak bistaratuko dira

Eskaerak burutzeko, formularioak ere erabil daitezke. Formulario-mota hauek lagungarriak dira garatzailearentzat, besteak beste, honako gai hauetan: kolore desberdinetako testua du sintaxia nabarmentzeko; sintaxian dauden erroreak hautematen ditu; automatikoki betetzeko funtzioa du eta aukera ematen du kontsultak egiteko.

Adibideak

Gure SPARQL puntuan dauden mota guztiak bistaratu

Kontsulta hau oso erabilgarria da, izan ere, biltegiratuta dauden informazio-mota guztiak ikusiko ditugu.

Horrez gain, lagungarria ez zaigun informazioa ez bistaratzeko, gure grafoak zehaztuko ditugu.

Lehenik eta behin, Katalogoaren grafoa zehaztuko dugu:

select distinct ?tipo where
{
graph <http://datos.gob.es/catalogo> {
?x a ?tipo.
}
}

Orain bi grafoak erabiliko ditugu, VALUES bidez

select distinct ?tipo where
{
graph ?grafo {
?x a ?tipo.
}
values ?grafo { <http://datos.gob.es/catalogo> <http://datos.gob.es/nti> }
}

El resultado final es este:

tipo
http://www.w3.org/ns/dcat#Dataset
http://www.w3.org/2004/02/skos/core#Concept
http://www.w3.org/ns/dcat#Catalog
http://www.w3.org/2006/time#DurationDescription
http://purl.org/dc/terms/Frequency
http://purl.org/dc/terms/IMT
http://purl.org/dc/terms/PeriodOfTime
http://www.w3.org/ns/dcat#Distribution
http://vocab.linkeddata.es/datosabiertos/def/sector-publico/territorio#ComunidadAutonoma
http://vocab.linkeddata.es/datosabiertos/def/sector-publico/territorio#CiudadAutonoma
http://vocab.linkeddata.es/datosabiertos/def/sector-publico/territorio#Pais
http://vocab.linkeddata.es/datosabiertos/def/sector-publico/territorio#Provincia

Katalogoko datu-multzo guztiak bistaratu

Jada motak ezagutzen ditugunez, URI honi dagozkion datu-multzo guztiak eskatuko ditugu: http://www.w3.org/ns/dcat#Dataset

select distinct ?dataset where
{
?dataset a <http://www.w3.org/ns/dcat#Dataset>
}

Emaitza zera da: datu-multzo guztien URLen zerrenda.

Datu-multzoek dituzten propietate guztiak bistaratu

Datu-multzoen informazio gehiago nahi dugu, baina URIak baino ez ditugu ezagutzen, beraz, propietate guztiak eskatuko ditugu:

select distinct ?propiedad where
{
?dataset a <http://www.w3.org/ns/dcat#Dataset> . ?dataset ?propiedad ?valor .
}

Hona hemen haien propietate guztiak:

propiedad
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://purl.org/dc/terms/modified
http://www.w3.org/ns/dcat#distribution
http://www.w3.org/ns/dcat#keyword
http://www.w3.org/ns/dcat#theme
http://purl.org/dc/terms/accrualPeriodicity
http://purl.org/dc/terms/description
http://purl.org/dc/terms/identifier
http://purl.org/dc/terms/issued
http://purl.org/dc/terms/language
http://purl.org/dc/terms/publisher
http://purl.org/dc/terms/spatial
http://purl.org/dc/terms/title
http://purl.org/dc/terms/references
http://purl.org/dc/terms/temporal
http://purl.org/dc/terms/conformsTo
http://purl.org/dc/terms/valid

Datuak argitaratzen dituzten organismo guztiak bistaratu

http://purl.org/dc/terms/publisher propietatea erabiliko dugu datuak argitaratzen dituzten organismo guztiak bistaratzeko.

select distinct ?publicador where
{
?x a <http://www.w3.org/ns/dcat#Dataset> .
?x <http://purl.org/dc/terms/publisher> ?publicador.
}

Emaitza zera da: datuen argitaratzaile guztien URIen zerrenda.

publicador
http://datos.gob.es/recurso/sector-publico/org/Organismo/A02002834
http://datos.gob.es/recurso/sector-publico/org/Organismo/A04003003
http://datos.gob.es/recurso/sector-publico/org/Organismo/A05003638

Datuak argitaratzen dituzten organismoen propietateak bistaratu

URIak ditugunean ez dakigu organismoaren izena. URI horien propietateak eskatuko ditugu:

select distinct ?propiedad where
{
?x a <http://www.w3.org/ns/dcat#Dataset> .
?x <http://purl.org/dc/terms/publisher> ?publicador.
?publicador ?propiedad ?valor.
}

Hona hemen argitaratzaileen propietate guztiak:

propiedad
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/2004/02/skos/core#prefLabel
http://www.w3.org/2004/02/skos/core#notation

Datuak argitaratzen dituzten organismoen izenak bistaratu

http://www.w3.org/2004/02/skos/core#prefLabel URIa eta propietatea eskatuko ditugu

select distinct ?publicador ?label where
{
?x a <http://www.w3.org/ns/dcat#Dataset> .
?x <http://purl.org/dc/terms/publisher>
?publicador. ?publicador <http://www.w3.org/2004/02/skos/core#prefLabel> ?label.
}

Emaitza zerrenda luzea izango da:

publicadorlabel
http://datos.gob.es/recurso/sector-publico/org/Organismo/A02002834"Gobierno de Aragón"
http://datos.gob.es/recurso/sector-publico/org/Organismo/A04003003"Gobierno de las Islas Baleares"
http://datos.gob.es/recurso/sector-publico/org/Organismo/A05003638"Comunidad Autónoma de Canarias"
http://datos.gob.es/recurso/sector-publico/org/Organismo/A07002862"Junta de Castilla y León"

Datu-multzo gehien argitaratu dituzten hamar organismoen izenak bistaratu eta bakoitzaren datu-multzoa ager dadila

Kontsulta hau gauzatzeko, emaitzak multzokatu, ordenatu eta mugatu (10 arte) behar ditugu.

select distinct ?label count(?x) as ?num {
?x a <http://www.w3.org/ns/dcat#Dataset> .
?x <http://purl.org/dc/terms/publisher> ?publicador.
?publicador <http://www.w3.org/2004/02/skos/core#prefLabel> ?label.
}
group by (?label)
order by desc(?num)
limit 10

Hona hemen emaitza:

labelnum
"Gobierno de Aragón"2659
"Comunidad Autónoma de País Vasco"2208
"Centro de Investigaciones Sociológicas"2107
"Ayuntamiento de Málaga"651
"Ayuntamiento de Gijón"627
"Xunta de Galicia"315
"Generalitat Valenciana"313
"Ayuntamiento de Madrid"231
"Instituto Nacional de Estadística"205
"Junta de Castilla y León"196