我正在尝试获取dbpedia.org中的每个事件及其各自的startDate和endDate(startDate和endDate是定义的属性在 http://schema.org/Event )
这是 sparql 请求:
PREFIX db-owl: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
?r a db-owl:Event .
OPTIONAL{ ?r db-owl:startDate ?c }
} LIMIT 2000
(我正在使用 Virtuoso Sparql Query editor 在 http://dbpedia.org/sparql 端点上测试它)
自行测试,您会发现这些事件中只有一小部分veeeerryyy具有指定的开始日期。
例如,如果我更加特化我的查询,如下所示:
PREFIX db-owl: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
?r a db-owl:MilitaryConflict .
OPTIONAL{ ?r db-owl:startDate ?c }
} LIMIT 2000
您可以看到在 NO MilitaryConflict 中指定了 startDate 。
这怎么可能?
我错过了一些东西,还是只是英文版的 dbpedia 缺少一些重要信息,例如事件的开始日期?
注意:如果我在法国 dbpedia 端点 ( http://fr.dbpedia.org/sparql ) 上运行相同的查询,我会得到完全不同的结果,即:一堆 MilitaryConflict 充满了相应的 startDate
最佳答案
当然,其中很多(没有)具有 dbo:startDate 属性,但很多都具有 dbo:date 属性,甚至更多具有 dbp:日期属性。 (本体值往往比原始值更清晰,但两者都很有用。)例如,看看以下结果:
SELECT * {
?r a dbo:MilitaryConflict .
OPTIONAL{ ?r dbo:startDate ?startDate }
OPTIONAL{ ?r dbo:date ?oDate }
OPTIONAL{ ?r dbp:date ?pDate }
} LIMIT 2000
弄清楚 DBpedia 中哪些数据可用、哪些数据不可用是一个反复试验的过程。我通过浏览其中一些实例找到了 dbo:date 属性,例如 2015 Douma market massacre具有该属性的值。
Note: If i run the same queries on the french dbpedia endpoint (http://fr.dbpedia.org/sparql) , i get totally different results, i.e: a bunch of MilitaryConflict are filled with their corresponding startDate
这确实使问题变得更有趣,但我猜这归结为法语 DBpedia 上使用的不同信息框有助于将更多信息输入系统。
关于sparql - dbpedia.org 中没有开始和结束日期的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38616529/