我想从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
SPARQL结果
现在,它将返回字符串形式包含字符串"Date"或"Date"的任何属性。你会发现其中大部分都是你想要的东西。然而,实现这一点的更好方法可能是使用以下查询来搜索以xsd:date为范围的内容:
select ?p where {
?p a owl:DatatypeProperty ;
rdfs:range xsd:date .
}
limit 100
SPARQL结果
这样做的好处是,即使属性的名称中不包含日期,也可以获得其值应为日期的属性。例如,你会得到:
- http://dbpedia.org/ontology/closed
- http://dbpedia.org/ontology/discovered
- http://dbpedia.org/ontology/finalFlight
- …等等