如何通过官方网站属性P856查询Wikidata(SPARQL)?

如何通过官方网站属性P856查询Wikidata(SPARQL)?,sparql,wikidata,Sparql,Wikidata,如何在Wikidata SPARQL查询服务中搜索其官方网站(属性P856)与特定值匹配的记录 例如,获取其官方网站为“”的所有记录。这将返回Q95和Q9366,但以下查询不会产生任何结果: SELECT ?entity WHERE { ?entity wdt:P856 "https://www.google.com" } 我可以让它与过滤器一起工作,但速度非常慢: SELECT ?entity WHERE { ?entity wdt:P856 ?url FILTER(st

如何在Wikidata SPARQL查询服务中搜索其官方网站(属性P856)与特定值匹配的记录

例如,获取其官方网站为“”的所有记录。这将返回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")
}
使用过滤器似乎效率很低。为什么第一个查询不起作用?

从--

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

换句话说,没有任何实体的官方网站是
”https://www.google.com“
,但有些实体的官方网站是

从--

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


换句话说,没有任何实体的官方网站是
”https://www.google.com“
,但有一些实体的官方网站是

它不是文字而是RDF资源URI:
?实体wdt:P856
它不是文字而是RDF资源URI:
?实体wdt:P856
事实上,并非全部;添加
过滤器(!isURI(?url))
;将有25个结果:-)@StanislavKralin-技术上正确。众包和精心策划的数据有好有坏,而且几乎总是乱七八糟的。尽管如此,我仍然认为像
t189022293
(它类似于在删除
LIMIT
子句后发现的所有87个非URI结果)这样的字符串既不能满足OP问题的字母,也不能满足OP问题的意图;添加
过滤器(!isURI(?url))
;将有25个结果:-)@StanislavKralin-技术上正确。众包和精心策划的数据有好有坏,而且几乎总是乱七八糟的。尽管如此,我仍然认为像
t189022293
(这类似于在删除
LIMIT
子句后发现的所有87个非URI结果)这样的字符串既不符合OP问题的文字,也不符合OP问题的意图。
SELECT ?entity ?value
WHERE 
  {
    ?entity wdt:P856 ?value
  }
LIMIT 25