SPARQL 1.1 - Aide-mémoire

Cliquer sur un lien pour aller à la référence officielle

Bases

URI
Complet <http://nom.de.domaine/URI/complet#id>
Abrégé PREFIX ex: <http://nom.de.domaine/prefixe#>
ex:toto → <http://nom.de.domaine/prefixe#toto
Raccourcis a → rdf:type
?coll rdfs:member ?el → éléments d'une collection
Littéral
Simple "bonjour" ou 'bonjour'
Simple avec étiquette de langue "hello"@en
Typé "25"^^xsd:integer
Raccourcis true → "true"^^xsd:boolean
7 → "7"^^xsd:integer
3.1416 → "3.1416"^^xsd:decimal
Variable
URI ou Littéral ?var ?une_autre_var $v
Noeuds vides _:id []
Patron de triplets
Match complet ex:machin ex:numero "45692"
Match avec une variable ?truc ?ex:numero "?valeur
Match complet ex:machin ?prop ?valeur
Noeud vide
Notation simplifiéeNotation complète
[ex:p "o"] . _:b1 ex:p "o" .
[ex:p "o"] ex:q ex:o2 . _:b2 ex:p "o".
_:b2 ex:q ex:o2 .
ex:s ex:p [ex:p1 ex:o].   ex:s ex:p _:b3 .
_:b3 ex:p1 ex:o .
[ex:p ex:o;ex:p1 "o1"]. _:b4 ex:p ex:o .
_:b4 ex:p1 "o1" .
Commentaire # tout ce qui suit un dièse sur une ligne

Forme d'une requête

PREFIX ex: <http://exemple.com/ressource> # Déclarations de préfixe
...
SELECT vars                            # type de requête (ou CONSTRUCT, ASK, DESCRIBE)
FROM <...>                             # ensemble de données
WHERE {                                # patron de graphe cherché dans la source
    ...
}
GROUP BY ...                           # modificateurs optionnels
HAVING ...
ORDER BY ...                                 
LIMIT ...
OFFSET ...

Type de requêtes

SELECT
Variables et expressions SELECT ?s ?prop (1000*?v as ?total)
Toutes les variables SELECT *
Ne garder que les valeurs différentes SELECT DISTINCT ?v
CONSTRUCT
Créer des triplets CONSTRUCT { ?s ex:prop ?v }
ASK
Vérifier s'il y a un triplet qui concorde
retourne true ou false
ASK {?s ex:prop ?v}
DESCRIBE
Donne des triplets à propos d'une ressource DESCRIBE <...uri...>

Combinaison de graphes

Soient A et B deux graphes:

A . B Réunir les solutions de A et de B en combinant les valeurs de variables communes.
A OPTIONAL { B } Valeurs optionnelles: réunir les résultats de A et B par leur valeurs en commun. Garder toutes les solutions de A qu'il y ait une solution dans B ou non.
{ A } UNION { B } Union: réunir toutes les solutions de A et celles de B.
A MINUS { B } Différence: trouver les solutions de A et celles B et ne garder que les solutions de A qui ne sont pas compatibles avec celles de B
A.
{SELECT ?cvars 
    WHERE { C }
    }
B.
Sous-requête: les résultats (?cvars) sont combinés avec ceux de A et de B.

Filtres

Un filtre est de la forme FILTER expression qui apparaît dans un modèle de graphe où expression est composée d'une combinaison des fonctions et opérateurs suivants:

Conversion xsd:integer, xsd:string
Arithmétique+, -, *, /
Logique!, &&, ||
Comparaison=, !=, <, <=, >, >=
testisURI, isBlank, isLiteral, bound, sameTerm, langMatches, regex
mathématique ABS, ROUND, CEIL, FLOOR, RAND
conversion STR, LANG, DATATYPE, URI, STRDT, STRLANG
conditionnel IF, COALESCE
chaînes REGEX, STRLEN, SUBSTR, UCASE, LCASE, STRSTARTS, STRENDS, CONTAINS, CONCAT, ENCODE_FOR_URI, REPLACE
constructeurs URI, BNODE, STRDT, STRLANG
date NOW, YEAR, MONTH, DAY, HOURS, MINUTES, SECONDS, TIMEZONE

Agrégation

Appliquer les opérations suivantes:

Inspiré de SPARQL By Example: The Cheat Sheet de Lee Feigenbaum