如何在Wikidata SPARQL查询服务中搜索官方网站(属性P856)与特定值匹配的记录?
例如,获取所有官方网站为“ https://www.google.com”的记录。这应该返回Q95和Q9366,但以下查询不会产生任何结果:
SELECT ?entity
WHERE {
?entity wdt:P856 "https://www.google.com"
}
我可以将其与FILTER配合使用,但是速度很慢:
SELECT ?entity
WHERE {
?entity wdt:P856 ?url FILTER(str(?url)="https://www.google.com")
}
使用FILTER似乎效率很低。为什么第一个查询不起作用?
答案 0 :(得分:3)
从the values you get看this query-
Clear()
请注意,它们全都包装在Fill()
中,将它们标记为URI。要将URI与字符串文字进行比较,必须像在第二个查询中一样将URI更改为字符串。
换句话说-没有实体的官方网站为SELECT ?entity ?value
WHERE
{
?entity wdt:P856 ?value
}
LIMIT 25
,但是有些实体的官方网站为<>
。