如何在维基数据SPARQL查询服务中搜索官方网站(属性P856(与特定值匹配的记录?
例如,获取官方网站为"https://www.google.com"的所有记录。这应该返回 Q95 和 Q9366,但以下查询不会产生任何结果:
SELECT ?entity
WHERE {
?entity wdt:P856 "https://www.google.com"
}
我可以让它与过滤器一起工作,但它非常慢:
SELECT ?entity
WHERE {
?entity wdt:P856 ?url FILTER(str(?url)="https://www.google.com")
}
使用过滤器似乎效率很低。为什么第一个查询不起作用?
看看你从这个查询中得到的值——
SELECT ?entity ?value
WHERE
{
?entity wdt:P856 ?value
}
LIMIT 25
请注意,它们都包装在 <>
中,将它们标记为 URI。若要将 URI 与字符串文本进行比较,必须将 URI 更改为字符串,就像在第二个查询中所做的那样。
换句话说——没有实体的官方网站是"https://www.google.com"
,但有一些实体的官方网站是<https://www.google.com>
。