query-53d33e102eca63b2e94deb83464a5929
BIND, BOUND, IFCes trois fonctionnalités sont souvent utilisées ensemble, par conséquent nous allons d’abord expliquer les trois, avant d’en montrer des exemples. s’utilise pour assigner à une variable la valeur d’une expression (en général une nouvelle variable mais il est également possible de changer la valeur des variables existantes). BIND(expression AS ?variable).Une clause . OPTIONAL (elle n’est pas définie)). C’est principalement utile pour des variables introduites dans une clause faux (elle a une valeur) ou true teste si une variable a effectivement une valeur assignée ou si elle est indéfinie. (la valeur de retour BOUND(?variable). "terrible" s’évalue en IF(false, "super", "terrible"), et oui s’évalue en IF(true, "oui", "non") est fausse. Par exemple, condition si expressionSinon est vraie, et on condition si expressionAlors s’évalue en IF(condition, expressionAlors, expressionSinon) peut être utilisé pour assigner le résultat d’un calcul à une nouvelle variable. Il est possible de s’en servir comme résultat intermédiaire d’un calcul plus complexe ou directement dans le résultat de la requête. Par exemple, pour calculer l’âge des victimes de condamnation à mort : BIND
Use at
- https://query.wikidata.org/sparql
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT ?personne ?personneLabel ?age
WHERE
{
?personne wdt:P31 wd:Q5;
wdt:P569 ?ne;
wdt:P570 ?Mort;
wdt:P1196 wd:Q8454.
BIND(?Mort - ?ne AS ?ageEnJours).
BIND(?ageEnJours/365.2425 AS ?ageEnAnnees).
BIND(FLOOR(?ageEnAnnees) AS ?age).
# ou, avec une seule expression
#BIND(FLOOR((?Mort - ?ne)/365.2425) AS ?age).
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}