query-3db228baa23c61cae48b0ceb9ca24197
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
- 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 ?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]". }
}