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:
- http://datos.gob.es/catalogo: grafo honek datos.gob.es atariaren Datuen katalogo osoa du
- http://datos.gob.es/nti: lehen sektoreen taxonomiari eta estaldura geografikoaren identifikazioari dagozkion URIak ditu, Informazio-baliabideak Berrerabiltzeko Elkarreragingarritasun Arau Teknikoaren (NTI) IV. eta V. eranskinetan definituak
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:
- Hura kodifikatu behar dugu, hutsuneetan “+” idatzita, jarraian ageri den bezala:
select+distinct+?type+where+{?x+a+?type}+LIMIT+100
- 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:
Balioa | Formatua |
---|---|
text/html | HTML |
application/vnd.ms-excel | Spreadsheet |
text/tab-separated-values | TSV |
application/sparql-results+xml | XML |
application/sparql-results+json | JSON |
application/javascript | Javascript |
text/turtle | Turtle |
application/rdf+xml | RDF/XML |
text/plain | N-Triples |
text/csv | CSV |
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:
publicador | label |
---|---|
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:
label | num |
---|---|
"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 |