SPARQL

1. Cicle de vida

2. Tipologia

3. Àmbit d'aplicació

4. Llenguatge de programació

Descripció

SPARQL és un llenguatge per a la consulta de bases de dades emmagatzemades com a tripletes RDF, de manera que és possible crear consultes complexes que relacionen elements entre si, aprofitant les seves capacitats semàntiques i explotant l’estructura subjacent en forma de graf que defineixen els elements i les seves relacions presents en la base de dades. SPARQL està pensat per ser el llenguatge de consulta de la web semàntica, tot i que és encara un subconjunt molt petit, limitada a dominis molt específics i usada solament per experts. També permet fer consultes combinant més d’una base de dades de coneixements, aprofitant els enllaços presents en les dades que relacionen els elements.

SPARQL comparteix part de la sintaxi d’SQL, encara que conceptualment està més a prop del model de dades usat en bases de dades NoSQL, en forma de tripletes RDF, explotant les relacions entre elements descrits com a tripletes. Per exemple, en una base de dades de música, on hi ha persones, bandes (grups), gèneres, discos, cançons, concerts, etc. i les relacions entre aquests elements (pertinença, autoria, versions, etc.), és possible fer consultes senzilles, com ara «quins discos ha publicat la banda X?», «quines bandes de rock han versionat la cançó Y?», etc., així com d’altres de més complexes, com «quines bandes compostes per persones de tots dos sexes mai no han actuat fora del seu país?».

Hi ha implementacions d’SPARQL en diversos llenguatges, de manera que és possible integrar-lo en aplicacions desenvolupades en diverses plataformes, principalment en Java. També hi ha diverses bases de coneixement que permeten ser explotades mitjançant consultes SPARQL (el que es coneix com a endpoint), de les quals Wikidata és un dels exemples més interessants, encara que n’hi ha molts d’altres, especialment en l’àmbit de la bioinformàtica i altres de pròpies de la web semàntica.

Enllaç al recurs

https://www.w3.org/tr/sparql11-query/

Exemple d’ús

Usant Wikidata com a base de dades de coneixements podem fer consultes com, per exemple, «quines ciutats més grans d’Espanya tenen una dona com a alcalde?». La consulta en SPARQL té el format següent:

# Ciutats més poblades d'Espanya amb una dona com a alcaldessa
SELECT DISTINCT ?city ?cityLabel ?alcaldeLabel ?poblacion
WHERE
{
  BIND(wd:Q6581072 AS ?sexe)
  BIND(wd:Q515 AS ?c)

      ?city wdt:P31/wdt:P279* ?c .  # instàncies de subclasses de ciutat
      ?city wdt:P17 wd:Q29 .        # d'Espanya
      ?city p:P6 ?statement .       # relació tipus "cap de govern"
      ?statement ps:P6 ?alcalde .   # que té el valor "alcalde"
      ?alcalde wdt:P21 ?sexe .      # i l'alcalde és dona
      FILTER NOT EXISTS { ?statement pq:P582 ?x }  # i encara en actiu

     # seleccionar la població
      ?city wdt:P1082 ?poblacion .
      SERVICE wikibase:label {
            bd:serviceParam wikibase:language "es" .
      }
}
ORDER BY DESC(?poblacion)
LIMIT 10

Aquesta consulta retorna el resultat següent:

city cityLabel alcaldeLabel poblacion
 wd:Q1492 Barcelona Ada Colau 1620343
 wd:Q12273 Gijón Ana González Rodríguez 271843
 wd:Q8757 La Corunya Inés Rei 244850
 wd:Q162615 Cartagena Ana Belén Castejón 213943
 wd:Q12303 Jerez de la Frontera María José García-Pelayo Jurado 212879
 wd:Q12258 Sabadell Marta Farrés 211734
 wd:Q187826 Móstoles Noelia Posse Gómez 207095
 wd:Q12233 Santander Gemma Igual Ortiz 172044
 wd:Q15092 Castelló de la Plana Amparo Marco 170888
 wd:Q484799 Marbella María Ángeles Muñoz Uriol 141463

Enllaços relacionats

SPARQL a Viquipèdia: https://en.wikipedia.org/wiki/sparql

Llista d’SPARQL endpoints: https://www.wikidata.org/wiki/wikidata:Lists/SPARQL_endpoints

Consultes SPARQL a Wikidata: https://query.wikidata.org/