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/