Мне непонятно, почему эта переменная (?entity
) работает в одном UNION
, а не в другом (желаемый результат - Q8740
в val
столбце для wikidata-id
):
SELECT ?propLabel ?val WHERE {
BIND(wd:Q8740 as ?entity)
{
BIND(?entity AS ?valUrl)
BIND("n/a" AS ?propUrl)
BIND("name"@en AS ?propLabel)
?entity rdfs:label ?val.
FILTER((LANG(?val)) = "en")
# wikidata-id
} UNION {
# BIND(?entity as ?val) **this doesn't work**
BIND(wd:Q8740 AS ?val)
BIND("wikidata-id" AS ?propLabel)
}
# description
} UNION {
BIND(?entity AS ?valUrl) - **but here, ?entity works fine!**
BIND("description"@en AS ?propLabel)
OPTIONAL { ?entity schema:description ?val. }
FILTER((LANG(?val)) = "en")
}
}
Ничего не отображается в столбце val
для wikidata-id
, если только я не "вручную" указываю рассматриваемый объект, но ТОЛЬКО в этом UNION
...?