query-53d33e102eca63b2e94deb83464a5929

rq turtle/ttl

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

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]". }
}

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v3("?Mort") v6("?age"):::projected v5("?ageEnAnnees") v4("?ageEnJours") v2("?ne") v1("?personne"):::projected c6(["wd:Q8454"]):::iri c8(["bd:serviceParam"]):::iri c10(["#91;AUTO_LANGUAGE#93;"]):::literal c2(["wd:Q5"]):::iri v1 --"wdt:P31"--> c2 v1 --"wdt:P569"--> v2 v1 --"wdt:P570"--> v3 v1 --"wdt:P1196"--> c6 bind0[/"?Mort - ?ne"/] v3 --o bind0 v2 --o bind0 bind0 --as--o v4 bind1[/"?ageEnJours / '365.2425^^xsd:decimal'"/] v4 --o bind1 bind1 --as--o v5 bind2[/"numeric-floor(?ageEnAnnees)"/] v5 --o bind2 bind2 --as--o v6 subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c8 --"wikibase:language"--> c10 end