Rdf 从DBPedia中提取基于日期/时间的谓词

Rdf 从DBPedia中提取基于日期/时间的谓词,rdf,sparql,dbpedia,n3,Rdf,Sparql,Dbpedia,N3,我想从DBPedia的转储文件中提取所有语句 是否可以编写sparql查询来提取包含日期值(如releaseDate、deathDate、birthDate等)的谓词列表?您可以编写一个sparql查询(您使用sparql进行了标记,因此可能您希望查询这些内容)来查找此类属性。您所需要做的就是查询owl:DatatypeProperties(因为日期应该是文本),然后根据它们的字符串表示进行过滤。例如: select ?p where { ?p a owl:DatatypeProperty

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


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

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

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

现在,它将返回字符串形式包含字符串“Date”或“Date”的任何属性。你会发现,这些都是你正在寻找的东西。但是,更好的方法可能是使用以下查询搜索范围为xsd:date的对象:

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

这样做的好处是,即使属性名称不包含日期,也可以获得值应为日期的属性。例如,您将获得:

  • )
  • )
  • )
  • ……等等

是的,这是可能的。@JeenBroekstra谢谢,你能写下这个查询吗?:)谢谢,您能将属性的英文标签添加到查询结果中吗?@AmirPournasserian要获得英文rdfs:label,您只需添加
rdfs:label?label(例如,在
owl:DatatypeProperty;
rdfs:range xsd:date.
之间)。标签对于回答所问的问题并不是必不可少的,因此我宁愿将答案中的代码保持在最小和直接的程度。所有的谓词都是“属性”(而不是“本体论”。我如何连接它们?(我知道我在注释中要求太多,但这可能是一个小提示)@AmirPournasserian很抱歉,我不太清楚你在问什么。一个新问题可能是最好的,这样你就可以把它完整地写出来。不过,DBpedia有两个数据集:一个是来自信息框的原始数据,不太干净;另一个是DBpedia本体,它更结构化、更一致,并且使用不同的名称空间。文档中的有更多详细信息。