在 SPARQL 中获取 `one_of` 特定项目
Get `one_of` specific items in SPAQRL
我以维基数据为例。以下作品(test it):
SELECT ?name ?nameLabel
WHERE
{
wd:Q1339 wdt:P735 ?name.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
现在,假设我有几件物品,例如wd:Q1339
、wd:Q76428
和 wd:Q57487
。
我想构造一个类似的查询,但恰好应用于那些项目。如果有一个神奇的 one_of
属性 (类似于 a
,这是 rdf:type
的快捷方式),像下面这样的东西将是一个解决方案(错误的伪语法) :
SELECT ?name ?nameLabel
WHERE
{
?person one_of (wd:Q1339, wd:Q76428, wd:Q57487).
?person wdt:P735 ?name.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
问题:我如何构造一个产生结果的查询?
(最好不要只适用于维基数据。)
将@Stanislav Kralin 和@UninformedUser 的评论转化为答案:
声明项目身份所需的关键字是 VALUES
,请参见示例:
SELECT ?person ?name ?nameLabel
WHERE
{
VALUES ?person {wd:Q1339 wd:Q76428 wd:Q57487}
?person wdt:P735 ?name.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
我以维基数据为例。以下作品(test it):
SELECT ?name ?nameLabel
WHERE
{
wd:Q1339 wdt:P735 ?name.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
现在,假设我有几件物品,例如wd:Q1339
、wd:Q76428
和 wd:Q57487
。
我想构造一个类似的查询,但恰好应用于那些项目。如果有一个神奇的 one_of
属性 (类似于 a
,这是 rdf:type
的快捷方式),像下面这样的东西将是一个解决方案(错误的伪语法) :
SELECT ?name ?nameLabel
WHERE
{
?person one_of (wd:Q1339, wd:Q76428, wd:Q57487).
?person wdt:P735 ?name.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}
问题:我如何构造一个产生结果的查询?
(最好不要只适用于维基数据。)
将@Stanislav Kralin 和@UninformedUser 的评论转化为答案:
声明项目身份所需的关键字是 VALUES
,请参见示例:
SELECT ?person ?name ?nameLabel
WHERE
{
VALUES ?person {wd:Q1339 wd:Q76428 wd:Q57487}
?person wdt:P735 ?name.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}