【问题标题】:How to query Wikidata (SPARQL) by official website property P856?如何通过官网属性P856查询维基数据(SPARQL)?
【发布时间】:2019-02-11 05:34:30
【问题描述】:

如何在 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 似乎效率很低。为什么第一个查询不起作用?

【问题讨论】:

  • 不是文字而是RDF资源URI:?entity wdt:P856 <https://www.google.com>

标签: sparql wikidata-query-service


【解决方案1】:

this querythe values you get --

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

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

也就是说——没有官方网站为"https://www.google.com"的实体,但有一些实体的官方网站为<https://www.google.com>

【讨论】:

  • 其实并不是全部;添加FILTER(!isURI(?url));将有 25 个结果 :-)。
  • @StanislavKralin - 技术上是正确的。众包和策划的数据有好有坏,而且几乎总是混乱的。不过,我认为像t189022293 这样的字符串(类似于在删除LIMIT 子句后发现的所有87 个非URI 结果)既不满足OP 问题的字母也不满足意图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多