query-120831999434abcfc1b4f8f475372cb7
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
- 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 ?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]". }
}