【问题标题】:Syntax for Sparql query for pages with specific infoboxSparql 查询具有特定信息框的页面的语法
【发布时间】:2014-05-22 16:30:46
【问题描述】:

我是第一次尝试 Sparql(在 dbpedia 上),但无法进行任何查询。我尝试的所有操作都会返回语法错误或空数据集。

例如,我尝试了this page 上的查询。他们没有工作,所以我做了以下更改:
- 我读到 wikiPageUsesTemplate 已更改为 http://dbpedia.org/ontology/wikiPageUsesTemplate,
- 我在 select 语句中添加了“WHERE”,虽然我猜这必须是可选的,
- 我将整个事情减少到最低限度:只是信息框子句。

但是还是不行!这是我想出的:

PREFIX dbo: <http://dbpedia.org/ontology/>

SELECT * WHERE {
    ?page dbo:wikiPageUsesTemplate
        <http://dbpedia.org/resource/Template:Infobox_artist>
}
LIMIT 100

我一直在尝试我的查询here

【问题讨论】:

  • “他们没用” 他们有什么没用的?如果您遇到语法错误,请尝试通过sparql.org's validator 运行您的查询。顺便说一句,当我在您链接到的 SNORQL 界面上尝试查询时,我收到的错误消息是“您当前尝试访问的网站目前正在维护中。对于由此带来的任何不便,我们深表歉意造成的。”这与查询中的问题无关。这不是你遇到的问题,对吧?
  • 我有时会收到“维护中”的消息 - 它似乎来来去去。我对上述查询的问题是我得到一个空的结果集,我认为这是不正确的。我回家后会试试那个验证器。谢谢
  • 我通过验证器运行了上面的示例查询 - 似乎通过了 - 并尝试了重新格式化的版本,但我仍然得到一个空的结果集。
  • 为什么你认为这是错误的结果?查找使用该模板的维基百科页面。然后进入其对应的DBpedia资源页面。您是否看到任何提及该模板的内容?
  • 不,我没有看到信息框的名称被列为目标 dbpedia 页面的属性。您的结论的更多证据如下。

标签: sparql dbpedia


【解决方案1】:

我不确定你为什么使用dbpedia-owl:wikiPageUsesTemplate。根据http://wiki.dbpedia.org/Datasets39/Properties(强调添加):

http://xx.dbpedia.org/property/wikiPageUsesTemplate可能是 更改为http://dbpedia.org/ontology/wikiPageUsesTemplate in 未来版本

我不知道 DBpedia 中的当前数据是否是未来版本(就该文档而言),但听起来您仍应该使用旧属性。不过,测试这一点很容易。由于您有查询语言和 Web 服务,因此很容易尝试更一般的结果作为一种健全性检查。特别是,像下面这样的东西非常强烈地表明它不是你想要的属性。

SELECT *  WHERE {
  ?s <http://dbpedia.org/ontology/wikiPageUsesTemplate> ?o         
}
LIMIT 100

SPARQL results (0 results)

同样,既然您有一个交互式端点,为什么不尝试查看哪些属性 将事物与&lt;http://dbpedia.org/resource/Template:Infobox_artist&gt; 相关联,以及通过哪些属性?

SELECT distinct ?p  WHERE {
  ?s ?p <http://dbpedia.org/resource/Template:Infobox_artist>      
}
limit 500

SPARQL results (2 results)

两个结果是

http://www.w3.org/2002/07/owl#sameAs
http://dbpedia.org/ontology/wikiPageRedirects

更多查询可以向我们展示重定向到它的内容。原来只是

http://dbpedia.org/resource/Template:Infobox_Artist

但事实证明,这也与此无关。

SELECT * WHERE {
   ?s ?p <http://dbpedia.org/resource/Template:Infobox_Artist>
}
limit 500

SPARQL results (0 results)

看起来 DBpedia 并没有真正记录您正在寻找的信息。

【讨论】:

  • 回答您的一些问题...我尝试了新形式的 wikiPageUsesTemplate,因为我无法让旧形式工作。在 SO 页面中,我链接了上面的 2 个答案建议了进行查询的方法 - 使用旧形式的 wikiPageUsesTemplate - 并尝试其中任何一个,我仍然得到空的结果集。我相信 DBPedia 曾经支持我正在尝试的那种查询(基于信息框类型),但我接受你的推理和结论,即它不再支持。
  • 如有疑问,请查看数据。 :) 如果他们不打算使用它,我真的很惊讶他们拥有这些词汇。也许它在一个旧版本中,或者它在一个不同但平行的数据集中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多