在维基数据 SPARQL 查询中如何寻址文件?
In a wikidata SPARQL query how to address a file?
如何处理公共媒体文件?
在 wikidata 中想要找到所有对象,这些对象具有通过特定 属性 和 SPARQL 查询附加的公共媒体文件。
示例:
SELECT ?item
{
# get all objects which have this file as a LocatorMap
?item wdt:P242 commons:LocationPeru.svg
}
这行不通,所有变体(如 wd:commons:LocationPeru.svg
、p:P242 [ps:P242 psv:commons:LocationCuba.svg]
或我尝试过的其他所有变体也行不通。我还尝试了带有标签的 FILTER
,但 rdfs:label ?label
在文件对象上对我不起作用。
那么,正确的语法是怎样的?
谢谢。
实际上,我想使用 MINUS
从更复杂的查询中过滤掉特定的查询,但将我的问题简化为这个。
您可以使用完整的图片URL:
SELECT ?item
{
?item wdt:P242 <http://commons.wikimedia.org/wiki/Special:FilePath/LocationPeru.svg>
}
实际上,从上面的查询来看,似乎没有任何项目表明 LocationPeru.svg
作为定位器地图。这是因为在Q419#P242中有一个更高级别的定位器地图。
要忽略语句的排名,您可以使用:
SELECT ?item
{
?item p:P242 [ ps:P242 <http://commons.wikimedia.org/wiki/Special:FilePath/LocationPeru.svg> ]
}
只过滤正常等级,你可以使用:
SELECT ?item
{
?item p:P242 [
ps:P242 <http://commons.wikimedia.org/wiki/Special:FilePath/LocationPeru.svg> ;
wikibase:rank wikibase:NormalRank
]
}
如何处理公共媒体文件?
在 wikidata 中想要找到所有对象,这些对象具有通过特定 属性 和 SPARQL 查询附加的公共媒体文件。
示例:
SELECT ?item
{
# get all objects which have this file as a LocatorMap
?item wdt:P242 commons:LocationPeru.svg
}
这行不通,所有变体(如 wd:commons:LocationPeru.svg
、p:P242 [ps:P242 psv:commons:LocationCuba.svg]
或我尝试过的其他所有变体也行不通。我还尝试了带有标签的 FILTER
,但 rdfs:label ?label
在文件对象上对我不起作用。
那么,正确的语法是怎样的?
谢谢。
实际上,我想使用 MINUS
从更复杂的查询中过滤掉特定的查询,但将我的问题简化为这个。
您可以使用完整的图片URL:
SELECT ?item
{
?item wdt:P242 <http://commons.wikimedia.org/wiki/Special:FilePath/LocationPeru.svg>
}
实际上,从上面的查询来看,似乎没有任何项目表明 LocationPeru.svg
作为定位器地图。这是因为在Q419#P242中有一个更高级别的定位器地图。
要忽略语句的排名,您可以使用:
SELECT ?item
{
?item p:P242 [ ps:P242 <http://commons.wikimedia.org/wiki/Special:FilePath/LocationPeru.svg> ]
}
只过滤正常等级,你可以使用:
SELECT ?item
{
?item p:P242 [
ps:P242 <http://commons.wikimedia.org/wiki/Special:FilePath/LocationPeru.svg> ;
wikibase:rank wikibase:NormalRank
]
}