【问题标题】:How to query specific entities from Wikidata by ID using a SPARQL query?如何使用 SPARQL 查询按 ID 从 Wikidata 中查询特定实体?
【发布时间】:2020-10-01 00:13:12
【问题描述】:

我需要一个返回特定 Wikidata ID 或 ID 列表的 SPARQL 查询。在现实生活中这样的查询是无用的,但我需要它来进行测试。

我能想到的最简单的变体是:

SELECT DISTINCT ?s
WHERE 
{
  ?s ?p ?o
  FILTER (?s = wd:Q151345).
}

我必须使用DISTINCT,因为?s ?p ?o 匹配Q151345 中的每个三元组,如果我省略它,它输出的项目是它所拥有的属性值对的数倍。

有没有更简单的方法?

【问题讨论】:

  • 为什么不附加LIMIT 1?不确定查询的目的是什么?只是为了检查是否有任何三重奏?什么是“更容易”?在什么方面?如果您只想检查是否有三元组,您还可以使用 ASK {wd:Q151345 ?p ?o} 返回一个布尔值。
  • 就像我说的目的是测试,我需要在特定结果集而不是真实结果集上测试一些软件。但是treat更像是一个理论问题(因为我自己的解决方案实际上达到了我的目标)。更简单 == 更短,我一直在寻找像 {wd:Q151345 ?p ?o} 这样的表单,但我不知道如何将第一个元素作为变量绑定到输出。
  • 我的意思是,自 SPARQL 1.1 以来内联数据的最佳实践将通过 VALUES 子句:select distinct ?s where {values ?s {wd:Q151345} ?s ?p ?o} - 但如果这对您来说“更容易”,我不确定。这只是当今常见的方式。
  • @StanislavKralin 我不知道我可以省略谓词和宾语。我删除了过滤器,这个表格似乎是最短的! select ?s {values ?s {wd:Q1 wd:Q2}}.

标签: sparql wikidata


【解决方案1】:

使用关键字 VALUES,可以使用多个实例。

PREFIX bd: <http://www.bigdata.com/rdf#> 
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX wikibase: <http://wikiba.se/ontology#> 

SELECT ?s
WHERE 
{
  VALUES ?s {  wd:Q151345 wd:Q2996394  }
  ?s ?p ?o
}
LIMIT 10

演示:http://linkedwiki.com/query/Query_multiple_instance_of_in_same_query

文档:https://www.w3.org/TR/sparql11-query/#inline-data

【讨论】:

  • 这可行,但它会多次输出?s,这是预期的,但是如果我添加DISTINCT,为什么它什么也不输出?
  • @greatvovan 向我展示您使用 SPARQL 端点的查询...使用 DISTINCT 和 VALUES 的查询也有效...请参阅消息中的演示。
  • w.wiki/ep$ 这实质上是您对DISTINCT 的查询。
  • @greatvovan 可能是数据库中的错误w.wiki/f65
【解决方案2】:

@greatvovan 你可以试试

PREFIX bd: <http://www.bigdata.com/rdf#> 
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX wikibase: <http://wikiba.se/ontology#> 

SELECT DISTINCT ?s WHERE {
    SELECT ?s WHERE 
    {
        VALUES ?s {  wd:Q151345 wd:Q2996394  }
        ?s ?p ?o
    }
 }

【讨论】:

  • select ?s {values ?s {wd:Q1 wd:Q2}},在 cmets 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多