query-3db228baa23c61cae48b0ceb9ca24197

rq turtle/ttl

BIND، BOUND، IFغالبا ما يتم استخدام هذه الميزات الثلاثة بالتزامن; لذا سأشرح أولا كل ثلاثة منها، ثم أريك بعض الأمثلة. لتعيين نتيجة تعبير لمتغير (عادةً متغير جديد، ولكن يمكنك أيضا استبدال المتغيرات الموجودة). BIND(expression AS ?variable).يمكن استخدام جملة . OPTIONAL)، وهي مفيدة في الغالب على المتغيرات التي يتم تقديمها في جملة false أو true يختبر إذا كان المتغير مرتبطا بقيمة (يعيد BOUND(?variable). "terrible" يقيم إلى IF(false, "great", "terrible") و"yes" يقيم إلىIF(true, "yes", "no")، أي: false يقيم إلى condition if elseExpression وإلى true يقيم إلى condition if thenExpression يقيم إلى IF(condition,thenExpression,elseExpression) لربط نتائج بعض الحسابات بمتغير جديد، يمكن أن يكون هذا نتيجة وسيطة لعملية حسابية أكبر أو كنتيجة مباشرة للاستعلام، على سبيل المثال، للحصول على سن ضحايا عقوبة الإعدام: 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 ?person ?personLabel ?age
WHERE
{
  ?person wdt:P31 wd:Q5;
          wdt:P569 ?born;
          wdt:P570 ?died;
          wdt:P1196 wd:Q8454.
  BIND(?died - ?born AS ?ageInDays).
  BIND(?ageInDays/365.2425 AS ?ageInYears).
  BIND(FLOOR(?ageInYears) AS ?age).
  # أو، كتعبير واحد:
  #BIND(FLOOR((?died - ?born)/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; v6("?age"):::projected v4("?ageInDays") v5("?ageInYears") v2("?born") v3("?died") v1("?person"):::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[/"?died - ?born"/] v3 --o bind0 v2 --o bind0 bind0 --as--o v4 bind1[/"?ageInDays / '365.2425^^xsd:decimal'"/] v4 --o bind1 bind1 --as--o v5 bind2[/"numeric-floor(?ageInYears)"/] v5 --o bind2 bind2 --as--o v6 subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c8 --"wikibase:language"--> c10 end