SPARQL (acronimo ricorsivo di SPARQL Protocol and RDF Query Language; alcuni lo pronunciano , come la parola inglese sparkle, "scintillare" secondo la Received Pronunciation) è un linguaggio di interrogazione per dati rappresentati tramite il Resource Description Framework (RDF). Il framework di descrizione RDF è stato reso standard dal Data Access Working Group, un gruppo di lavoro del consorzio W3C, che lo ha reso raccomandazione ufficiale il 15 gennaio 2008.
SPARQL è uno degli elementi chiave delle tecnologie legate al paradigma noto come web semantico, e consente di estrarre informazioni dalle basi di conoscenza distribuite sul web. Il linguaggio RDF descrive i concetti e le relazioni su di essi attraverso l'introduzione di triple (soggetto-predicato-oggetto), e consente la costruzione di query basate su triple patterns, congiunzioni logiche, disgiunzioni logiche, e pattern opzionali.
Esempio Un esempio di interrogazione SPARQL che modella la domanda: "Quali sono tutte le capitali in Africa?":
PREFIX abc: <http://example.com/exampleOntology#> SELECT ?capital ?country WHERE { ?x abc:cityname ?capital ; abc:isCapitalOf ?y . ?y abc:countryname ?country ; abc:isInContinent abc:Africa . }
Implementazioni SPARQL Questa lista mostra alcuni triplestore ed API che offrono implementazioni del linguaggio SPARQL.
AllegroGraph Apache Marmotta
ARQ
IBM DB2 Intellidimension Semantics Platform 2.0 Jena KAON2 Knowledge Explorer LUPOSDATE - Motore di query open source (Java) per SPARQL and RIF. I sorgenti sono disponibili su GitHubGithub - LuposDate ed è possibile provare un'applicazione demoLuposDate Demo-Applet Meronymy SPARQL Database Server
OntoBroker Ontop - è un motore per grafi virtuali, permettendo di accedere a base di dati relazionali tramite SPARQL Ontotext OWLIM
OpenLink Virtuoso Oracle DB Enterprise Ed.
Pellet Profium Sense
RDF-3X
Redland / Redstore
Stardog
SWObjects
Web Query Wikidata Query Service
Note
Altri progetti
Collegamenti esterni
Categoria:Resource Description Framework Categoria:Linguaggi di interrogazione Categoria:Linguaggi di programmazione dichiarativi