【问题标题】:Extract date/time based predicates from DBPedia从 DBPedia 中提取基于日期/时间的谓词
【发布时间】:2013-09-02 19:24:41
【问题描述】:

我想从 DBPedia 的转储文件中提取所有语句。

是否可以编写一个 sparql 查询来提取包含日期值(如 releaseDate、deathDate、birthDate...)的谓词列表?

【问题讨论】:

  • 是的,这是可能的。
  • @JeenBroekstra 谢谢,你能写下查询吗? :)

标签: rdf sparql dbpedia n3


【解决方案1】:

您可以编写一个 SPARQL 查询(您使用 SPARQL 进行了标记,所以大概这就是您想要查询这些东西的方式)来查找这些属性。您需要做的就是查询 owl:DatatypeProperties 的内容(因为日期应该是文字),然后根据它们的字符串表示进行过滤。例如:

select ?p where {
  ?p a owl:DatatypeProperty
  filter( contains( str(?p), "Date" ) || contains( str(?p), "date" ))
}
limit 100

SPARQL results

现在,这将返回字符串形式包含字符串“日期”或“日期”的任何属性。你会发现其中大部分都是你正在寻找的东西。但是,更好的方法可能是搜索以 xsd:date 为范围的事物,使用如下查询:

select ?p where {
  ?p a owl:DatatypeProperty ;
     rdfs:range xsd:date .
}
limit 100

SPARQL results

这样做的好处是您将获得值应该是日期的属性,即使它们的名称不包含日期。例如,你会得到:

【讨论】:

  • 谢谢,请问可以在查询结果中添加属性的英文标签吗?
  • @AmirPournasserian 获取英文 rdfs:label 所需要做的就是添加 rdfs:label ?label ;(例如,在 a owl:DatatypeProperty ;rdfs:range xsd:date . 之间)。标签对于回答所提出的问题并不是必不可少的,因此我宁愿将答案中的代码保持最小和直接。
  • 我从 DBPedia 中提取了“原始信息框属性”的数据。所有谓词都是“属性”(不是“本体”。我怎样才能加入它们?(我知道我在 cmets 中要求太多,但这可能是一个小提示)
  • @AmirPournasserian 对不起,我不太清楚你在问什么。一个新问题可能是最好的,这样你就可以完整地写出来。不过,DBpedia 确实有两个数据集:一个是来自信息框的原始数据,而且不太干净;另一个是 DBpedia 本体,它更加结构化、一致,并且使用不同的命名空间。文档中的Infobox Data section 有更多详细信息。
猜你喜欢
  • 1970-01-01
  • 2017-09-23
  • 2020-12-24
  • 2021-04-13
  • 2015-12-16
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多