0

如何在 Wikidata 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")
}

使用 FILTER 似乎效率很低。为什么第一个查询不起作用?

4

1 回答 1

3

看看这个查询中得到的值——

SELECT ?entity ?value
WHERE 
  {
    ?entity wdt:P856 ?value
  }
LIMIT 25

请注意,它们都包含在 中<>,将它们标记为 URI。要将 URI 与字符串文字进行比较,您必须将 URI 更改为字符串,就像在第二个查询中所做的那样。

换句话说——没有官方网站的实体"https://www.google.com",但有一些官方网站的实体<https://www.google.com>

于 2019-02-11T17:47:22.880 回答