Dostop do odprtih podatkov Evropske unije
EUROPAPortal odprtih podatkov EUSPARQL
Menu
Pregled Učni viri Projekti Sandbox

Uporaba končne točke SPARQL

Za dostop do portala odprtih podatkov EU, shranjenih v obliki trojčkov, strojno berljiva končna točka jezika SPARQL omogoča iskanje po opisih naborov podatkov v obliki RDF.

SPARQL je poizvedovalni jezik v obliki RDF, tj. semantični jezik poizvedbe za nabore podatkov.

Na strani Povezani podatki lahko poizvedbe SPARQL vnesete z grafičnim uporabniškim vmesnikom.

Za programerje je strojno berljiva končna točka na voljo na naslednjem naslovu URL: https://data.europa.eu/euodp/sparqlep

V naslednjem razdelku je kratka predstavitev jezika SPARQL in nekaj primerov, značilnih za portal odprtih podatkov EU.

Celotna dokumentacija in podrobnejši podatki o jeziku SPARQL so na voljo na spletišču W3C. Modeli, ki se uporabljajo za opis naborov podatkov na portalu odprtih podatkov EU, so opisani na strani Povezani podatki v razdelku Slovar metapodatkov.

PREFIX

Če ne želimo vnesti popolnih naslovov URI, lahko uporabimo okrajšavo in v poizvedbi opredelimo predpono.

Uporabimo lahko naslednji zapis:

PREFIX ${PREFIX_NAME}: ${FULL_URI}

Pri čemer je:

  • ${PREFIX_NAME} ime okrajšave, ki se uporablja v poizvedbi namesto popolnega naslova URI
  • ${FULL_URI} naslov URI, ki se nadomesti s predpono

1. primer: Procesor najde seznam ponudnikov naborov podatkov, razvrščenih po naslovu URI posameznega ponudnika:

PREFIX dcat: <http://www.w3.org/ns/dcat#>

PREFIX dc: <http://purl.org/dc/terms/>

SELECT distinct ?Publisher WHERE {

?DatasetURI a dcat:Dataset .

?DatasetURI dc:publisher ?Publisher

 }

ORDER BY (?Publisher) LIMIT 100

SELECT

Ukaz SELECT se uporablja za opredelitev informacij (spremenljivke), ki jih iščemo s poizvedbo. Beseda SELECT je okrajšava za izbiro vseh spremenljivk poizvedbe.

Izbrati je mogoče več spremenljivk.

2. primer: Procesor najde datum izdaje in status posameznih naborov podatkov:

PREFIX odp: <https://data.europa.eu/euodp/ontologies/ec-odp#>

PREFIX dc: <http://purl.org/dc/terms/>

SELECT ?issued ?status WHERE {

<https://ec.europa.eu/esco> dc:issued ?issued .

<https://ec.europa.eu/esco> odp:datasetStatus ?status

}

Ukaz DISTINCT se uporablja za zagotovitev enotnosti zadetkov iskanja.

3. primer: Procesor najde seznam ponudnikov naborov podatkov (brez podvajanj):

PREFIX dcat: <http://www.w3.org/ns/dcat#>

PREFIX dc: <http://purl.org/dc/terms/>

SELECT DISTINCT ?Publisher

WHERE {

?DatasetURI a dcat:Dataset .

?DatasetURI dc:publisher ?Publisher

}

ORDER BY (?Publisher)

V zgoraj navedenem primeru se uporablja okrajšava „a“ in nadomešča vrednost „rdf:type“.

Ukaz COUNT se uporablja pri iskanju števila zadetkov za določeno spremenljivko.

4. primer: Procesor najde število naborov podatkov posameznega ponudnika, razvrščenih po številu naborov podatkov (v padajočem vrstnem redu).

PREFIX dc: <http://purl.org/dc/terms/>

PREFIX dcat: <http://www.w3.org/ns/dcat#>

SELECT ?Publisher COUNT(?DatasetURI) AS ?DatasetNumber

WHERE {

?DatasetURI a dcat:Dataset .

?DatasetURI dc:publisher ?Publisher

} ORDER BY desc (?DatasetNumber)

WHERE

Ukaz WHERE se uporablja za določitev seznama vzorcev za omejitev iskanih informacij. Vzorec postane trojček, če lahko katerikoli element nadomestimo s spremenljivko.

Za ločevanje različnih vzorcev se uporablja znak “.”, kar omogoča združevanje vzorcev. Združevanje ima podobno funkcijo kot logični operator AND.

5. primer: Procesor izbere ponudnike naborov podatkov vrste “NameAuthorityList” in število naborov podatkov:

PREFIX dc: http://purl.org/dc/terms/

PREFIX dcat: <http://www.w3.org/ns/dcat#>

PREFIX odp: <https://data.europa.eu/euodp/ontologies/ec-odp#>

SELECT distinct ?Publisher count(?DatasetURI )

WHERE {

?DatasetURI a dcat:Dataset .

?DatasetURI dc:publisher ?Publisher .

?DatasetURI odp:datasetType <https://data.europa.eu/euodp/kos/dataset-type/NameAuthorityList>

}

LIMIT

Ukaz LIMIT omogoča določitev števila omejitev zadetkov iskanja.

Glej 1. primer.

OPTIONAL

Z ukazom OPTIONAL lahko določimo nekatere vzorce v ukazu WHERE kot neobvezne.

6. primer: Procesor najde nabore podatkov, ki imajo vir v obliki „text/csv“ in, kadar je na voljo, datum začetka časovnega okvira zajetja naborov podatkov.

PREFIX dc: http://purl.org/dc/terms/

PREFIX dcat: <http://www.w3.org/ns/dcat#>

PREFIX odp: <https://data.europa.eu/euodp/ontologies/ec-odp#>

SELECT ?DatasetURI ?period_start WHERE {

?DatasetURI a dcat:Dataset .

?DatasetURI dcat:distribution ?o .

?o odp:distributionFormat "text/csv" .

OPTIONAL {

?DatasetURI dc:temporal ?period .

?period odp:periodStart ?period_start

 }

}

 

FROM

Trojčki v shrambi trojčkov (kjer so shranjeni podatki v obliki RDF) lahko združimo v obliki grafa. V poizvedbi je nato mogoče omejiti iskanje na določen diagram. Na portalu odprtih podatkov EU se vsak kataloški zapis shrani v svoj graf.

7. primer: Procesor najde trojčke v kataloškem zapisu.

SELECT * FROM <https://data.europa.eu/euodp/data/dataset/PY7AnlFr46ANQZvz1nAhcg>

WHERE {

 ?s ?p ?o

}

FILTER

Ukaz FILTER omogoča nadaljnjo omejitev iskanja z uporabo ukaza WHERE. Omejitve lahko denimo vključujejo vrednost „regex“ za niz vzorcev ali izbiro jezika.

8. primer: Procesor izbere nabore podatkov z naslovom v italijanščini

PREFIX dcat: <http://www.w3.org/ns/dcat#>

PREFIX dc: <http://purl.org/dc/terms/>

SELECT ?DatasetURI ?title WHERE {

?DatasetURI a dcat:Dataset .

?DatasetURI dc:title ?title

FILTER (lang(?title)='it')

}

9. primer: Procesor najde nabore podatkov, ki imajo v angleškem naslovu ključno besedo „animal“.

PREFIX dcat: <http://www.w3.org/ns/dcat#>

PREFIX dc: <http://purl.org/dc/terms/>

SELECT ?DatasetURI ?title WHERE {

?DatasetURI a dcat:Dataset .

?DatasetURI dc:title ?title

FILTER (lang(?title)='en')

FILTER(regex(?title, "animal", "i"))

}

Neobvezni parameter i v vrednosti regex omogoča iskanje, ki ne razlikuje med velikimi in malimi črkami.

Uporaba primera – dobljeni zadetki iskanja vsebujejo metapodatke vseh zapisov.

Ponudniki podatkov lahko zagotovijo več metapodatkov kot program CKAN, zato pri tej poizvedbi priporočamo uporabo končne točke SPARQL.

SELECT  * WHERE {

GRAPH ?graph {

?s ?p ?o

}

FILTER (regex(?graph, "^https://data.europa.eu/euodp/data/dataset/"

))}

Sistem bo poiskal samo del kataloga, ker shramba trojčkov omogoča samo omejeno število zadetkov v obliki trojčkov. Če se želimo izogniti tej omejitvi, priporočamo uporabo številčenja strani z ukazoma LIMIT in OFFSET.