query-120831999434abcfc1b4f8f475372cb7

rq turtle/ttl

BIND, BOUND, IFQueste tre funzionalità sono spesso utilizzate insieme, quindi prima di tutto le spiegherò tutte e tre e poi mostrerò alcuni esempi. può essere usata per assegnare il risultato di un'espressione a una variabile (di solito una nuova variabile, ma è anche possibile sovrascrivere quelle esistenti). BIND(expression AS ?variable).Una clausola . OPTIONAL). È utile soprattutto per le variabili introdotte in una clausola false o true verifica se una variabile è stata associata a un valore (restituisce BOUND(?variable). "terrible" viene valutato IF(false, "great", "terrible"), e "yes" viene valutato IF(true, "yes", "no"). Cioè false resttituisce condition se elseExpression e viene valutato true restituisce condition se thenExpression viene valutato IF(condition,thenExpression,elseExpression) può essere utilizzato per associare i risultati di alcuni calcoli a una nuova variabile. Questo può essere un risultato intermedio di un calcolo più grande o direttamente un risultato della query. Ad esempio, per ottenere l'età delle vittime di pena capitale: 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 ?persona ?personaLabel ?eta
WHERE
{
  ?persona wdt:P31 wd:Q5;
          wdt:P569 ?nato;
          wdt:P570 ?morto;
          wdt:P1196 wd:Q8454.
  BIND(?morto - ?nato AS ?etaInGiorni).
  BIND(?etaInGiorni/365.2425 AS ?etaInGiorni).
  BIND(FLOOR(?etaInGiorni) AS ?eta).
  # o, come una sola espressione:
  #BIND(FLOOR((?morto - ?nato)/365.2425) AS ?eta).
  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; v5("?eta"):::projected v5("?etaInGiorni") v3("?morto") v2("?nato") v1("?persona"):::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[/"?morto - ?nato"/] v3 --o bind0 v2 --o bind0 bind0 --as--o v5 bind1[/"?etaInGiorni / '365.2425^^xsd:decimal'"/] v5 --o bind1 bind1 --as--o v5 bind2[/"numeric-floor(?etaInGiorni)"/] v5 --o bind2 bind2 --as--o v5 subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c8 --"wikibase:language"--> c10 end