【问题标题】:Retrieving dbpedia-owl:type value of resource with dbpedia-owl:wikiPageRedirect value?使用 dbpedia-owl:wikiPageRedirect 值检索资源的 dbpedia-owl:type 值?
【发布时间】:2014-07-15 07:00:55
【问题描述】:

访问http://dbpedia.org/resource/Cupertino 显示有关库比蒂诺的 DBpedia RDF 信息。如您所见,它具有以下属性和价值:

dbpedia-owl:type  dbpedia:City

但是,DBpedia 端点上的这个查询没有返回结果:

SELECT ?type  WHERE {
  dbpedia:Cupertino  dbpedia-owl:type ?type
}

SPARQL results

为什么我无法检索dbpedia-owl:type 属性的值?

【问题讨论】:

  • dbpedia.org/ontology/type 就是将“City”分配给“Cupertino”的那种类型属性,所以我应该使用正确的属性 URI……还是不?

标签: rdf sparql semantic-web dbpedia linked-data


【解决方案1】:

您面前有一个交互式网络服务,您可以做的最有用的事情之一是将您的查询概括为一个应该返回结果的超集的查询寻找,作为一种健全性检查。在这种情况下,如果您请求dbpedia:Cupertino所有 属性和值,看看会发生什么是很有用的。

select ?p ?o where {
  dbpedia:Cupertino ?p ?o 
}

SPARQL results

p                                               o
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Thing
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Place
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/PopulatedPlace
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Settlement
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://schema.org/Place
http://dbpedia.org/ontology/wikiPageID          337802
http://dbpedia.org/ontology/wikiPageRevisionID  16202923
http://www.w3.org/2000/01/rdf-schema#label      "Cupertino"@en
http://dbpedia.org/ontology/wikiPageRedirects   http://dbpedia.org/resource/Cupertino,_California
http://xmlns.com/foaf/0.1/isPrimaryTopicOf      http://en.wikipedia.org/wiki/Cupertino
http://www.w3.org/ns/prov#wasDerivedFrom        http://en.wikipedia.org/wiki/Cupertino?oldid=16202923

在这种情况下,dbpedia-owl:wikiPageRedirects 非常重要。当您在 Web 浏览器中输入 dbpedia:Cupertino 或完整的 URI http://dbpedia.org/resource/Cupertino 时,请仔细查看您的最终位置。你最终到达http://dbpedia.org/page/Cupertino,_California,这意味着你实际询问的资源是http://dbpedia.org/resource/Cupertino,_California(当你在浏览器中检索它们时,你会从/resource/重定向到/page/,但命名约定是还是一样。

要在查询中使用dbpedia:Cupertino,您需要添加重定向信息。因此,您可以使用以下查询来获取您正在寻找的结果:

select ?type where {
  dbpedia:Cupertino dbpedia-owl:wikiPageRedirects*/dbpedia-owl:type ?type
}

SPARQL results

【讨论】:

  • 谢谢,我在浏览器 URL 中也注意到了重定向,但我不知道有一个属性!是否有不同的“种类”重定向?像 'dbpedia-ontology:wikiPagesRedirects' 和其他变体?
  • select ?type where { dbpedia.org/resource/Cupertino dbpedia.org/ontology/wikiPageRedirects*/dbpedia.org/ontology/type ?type } 你知道为什么这个查询不起作用吗?
  • 代码在 cmets 中几乎不可读,URI 格式尤其成问题。这与我在答案中包含的最后一个查询不一样吗?无论如何,select ?type where { <http://dbpedia.org/resource/Cupertino> <http://dbpedia.org/ontology/wikiPageRedirects>*/<http://dbpedia.org/ontology/type> ?type } 工作得很好。
  • 确实是一样的。是的,它不可读,但我认为回答我自己的问题也是“不好的风格”。无论如何,非常感谢您的帮助,这正是我所需要的 - 我错过了“”。
  • 我很惊讶如果您缺少一些括号,您没有收到解析错误!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多