sparql 维基数据标识符参考
sparql wikidata identifiers reference
我使用 KMDb 个人 ID 从 wikidata 数据库中检索信息。
结果是三行和三个 IMDB 代码。
如果我查看 actress wikidata 网页 (https://www.wikidata.org/wiki/Q7496795) 我可以看到其中只有一个有参考。
我怎样才能 select 只有这个项目?是否可以将引用显示为 sparql 查询的输出?
非常感谢
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
PREFIX pr: <http://www.wikidata.org/prop/reference/>
SELECT ?wikidata ?imdb ?Q ?prop ?value
WHERE {
?wikidata wdt:P345 ?imdb .
?wikidata wdt:P31 wd:Q5 .
?wikidata wdt:P1649 "00003964" . # KMDb person ID
}
LIMIT 10
References in Wikidata 使用 属性 prov:wasDerivedFrom
来表示关于 语句 的出处信息。在您的情况下,摆脱没有价值的引用(价值节点也是一个声明)的一种方法就是为此添加一个三重模式:
SELECT ?wikidata ?imdb ?Q ?prop ?value
WHERE
{
?wikidata p:P345 ?statement.
?statement ps:P345 ?imdb;
prov:wasDerivedFrom ?ref .
?wikidata wdt:P31 wd:Q5.
?wikidata wdt:P1649 "00003964". # KMDb person ID
}
LIMIT 10
但是您根本不需要为语句添加变量。如suggested by @WikidataFacts,如果p:P345
的对象直接为空白节点的描述,效率会更高:
SELECT ?wikidata ?imdb ?Q ?prop ?value
WHERE
{
?wikidata p:P345 [ ps:P345 ?imdb; prov:wasDerivedFrom ?ref ].
?wikidata wdt:P31 wd:Q5.
?wikidata wdt:P1649 "00003964". # KMDb person ID
}
LIMIT 10
还有更多选项,例如使用显式空白节点,或仅过滤具有至少一个值的节点。
我使用 KMDb 个人 ID 从 wikidata 数据库中检索信息。 结果是三行和三个 IMDB 代码。 如果我查看 actress wikidata 网页 (https://www.wikidata.org/wiki/Q7496795) 我可以看到其中只有一个有参考。
我怎样才能 select 只有这个项目?是否可以将引用显示为 sparql 查询的输出?
非常感谢
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
PREFIX pr: <http://www.wikidata.org/prop/reference/>
SELECT ?wikidata ?imdb ?Q ?prop ?value
WHERE {
?wikidata wdt:P345 ?imdb .
?wikidata wdt:P31 wd:Q5 .
?wikidata wdt:P1649 "00003964" . # KMDb person ID
}
LIMIT 10
References in Wikidata 使用 属性 prov:wasDerivedFrom
来表示关于 语句 的出处信息。在您的情况下,摆脱没有价值的引用(价值节点也是一个声明)的一种方法就是为此添加一个三重模式:
SELECT ?wikidata ?imdb ?Q ?prop ?value
WHERE
{
?wikidata p:P345 ?statement.
?statement ps:P345 ?imdb;
prov:wasDerivedFrom ?ref .
?wikidata wdt:P31 wd:Q5.
?wikidata wdt:P1649 "00003964". # KMDb person ID
}
LIMIT 10
但是您根本不需要为语句添加变量。如suggested by @WikidataFacts,如果p:P345
的对象直接为空白节点的描述,效率会更高:
SELECT ?wikidata ?imdb ?Q ?prop ?value
WHERE
{
?wikidata p:P345 [ ps:P345 ?imdb; prov:wasDerivedFrom ?ref ].
?wikidata wdt:P31 wd:Q5.
?wikidata wdt:P1649 "00003964". # KMDb person ID
}
LIMIT 10
还有更多选项,例如使用显式空白节点,或仅过滤具有至少一个值的节点。