我必须向DBpedia引入一些SPARQL查询到Prolog程序中。我是语义Web世界的初学者,我不太了解它。我问是否有某种方法来实现一个查询,给定一个单词作为输入,告诉我这个单词是否命名一个历史时期。
例如,我向查询传递了一个词: Jurassic 或白垩纪或中年,它会告诉我这个词是否是历史时期或与之相关的事物。
答案 0 :(得分:5)
对于这些类型的问题,手动浏览DBpedia中的数据并尝试查找可以查询的一些相关属性非常有用。例如,Jurassic期间的DBpedia页面显示在组织这些类型的期间时似乎没有太多的类型层次结构。但是,有一个三元组:
dbpedia:Jurassic dbpprop:wikiPageUsesTemplate dbpedia:Template:Geological_period
表明以下查询可能会检索某些句点:
PREFIX template: <http://dbpedia.org/resource/Template:>
SELECT * WHERE {
?period dbpprop:wikiPageUsesTemplate template:Geological_period .
}
Middle Ages的页面几乎没有帮助,一般来说,我不确定这个问题的基于DBpedia的解决方案是什么。有一篇有用的维基百科文章Historical period,其大部分出站链接都是历史时期的名称。
上面的Jurassic链接转到http://dbpedia.org/resource/Jurassic(实际上会重定向到http://dbpedia.org/page/Jurassic,您可以在那里浏览有关相应维基百科文章的数据。根据Denoting or Naming “things” in DBpedia维基:
DBpedia数据集中的每个内容都由http://dbpedia.org/resource/Name形式的可引用的基于IRI或URI的引用表示,其中Name是从源Wikipedia文章的URL派生而来的,该文章具有表单http://en.wikipedia.org/wiki/Name。因此,每个DBpedia实体都直接绑定到维基百科文章。每个DBpedia实体名称都解析为面向描述的Web文档(或Web资源)。
在DBpedia发布3.6之前,我们只使用了英文维基百科中的文章名称,但自从DBpedia发布3.7版以来,我们还提供了包含http://xx.dbpedia.org/resource/Name等IRI的国际化数据集,其中xx是维基百科语言代码,名称取自来自源网址http://xx.wikipedia.org/wiki/Name。