从DBpedia中检索相同主语和谓语的RDF值的原始顺序



如果一个主语对同一个谓语有多个对象(值(,那么它们的顺序似乎是随机的。例如:

Punta Cana机场维基百科中的原始数据:

Location    Punta Cana in La Altagracia Province, Dominican Republic

DBpedia中的数据(dbo:location(:

dbr:Dominican_Republic
dbr:Punta_Cana
dbr:La_Altagracia_Province

正如您所看到的,信息不再是从最详细到最一般的顺序。

起初我认为这会解决问题:

确定数据库资源是城市还是国家

基本上,所接受的答案建议检查位置的类型;dbo:结算;。这在某些时候效果很好,但在某些情况下,一个机场有两个这种类型的位置值,例如希思罗机场。另一方面,Gbado机场没有dbo:定居点,但有一个dbo:城市。

我认为与其处理所有不同的案件,不如有一种方法:

  1. 按原始顺序检索值或
  2. 检索原始的单个值;多米尼加共和国拉阿尔塔格拉西亚省的蓬塔卡纳

这两种可能吗?

在RDF和SQL模型的关系DBMS中,记录(在RDF中为a/k/a三元组(的返回顺序不是由规范定义的。当重新执行相同的查询时,为这两个模型服务的引擎往往会以相同的顺序返回结果,但这不是必需的!结果(a/k/a解决方案(可以是任何顺序,并且可以在每次执行查询时发生变化。

在维基百科(和DBpedia提取器(中能做的是说";蓬塔卡纳机场;处于";Punta Cana";其在";La Altagracia省;其在";多米尼加共和国";,并且可以编写查询来获得三元组的堆栈,这些堆栈可以是任何顺序,但可以由人工或代码处理,以将它们重新排序为有序堆栈。

请注意,DBpedia大多使用显式语句,而不是推断,因此可能会,如果不是现在,最终可能会有这样的数据——

PREFIX  dbr:  http://dbpedia.org/resource/
PREFIX  dbo:  http://dbpedia.org/ontology/
dbr:Punta_Cana_International_Airport
dbo:location  dbr:Dominican_Republic     , 
dbr:Punta_Cana             , 
dbr:La_Altagracia_Province .
dbr:Punta_Cana
dbo:location  dbr:Dominican_Republic     , 
dbr:La_Altagracia_Province .
dbr:La_Altagracia_Province
dbo:location  dbr:Dominican_Republic     .

编写查询(或后处理器(以处理将嵌套减少到单个楼梯的问题,留给读者练习(或者至少是另一个问题(。

最新更新