提取dbpedia页面中列出的命名实体,但没有关于它们的信息

时间:2014-08-20 22:43:48

标签: sparql dbpedia

我正在尝试收集相册和每张相册的歌曲列表。例如,专辑 River_of_Tuoni,dbpprop:title属性提供歌曲列表,但只有两个在DBpedia中。 enter image description here
 所以当我做以下查询时,我只得到两个,(My_Only_car,River_of_Tuoni_(歌曲))。

SELECT ?songs
WHERE {
   :River_of_Tuoni dbpprop:title ?songs. ?songs a dbpedia-owl:Song .
} 

我如何获得所有歌曲(摇篮曲,日出,......)?

1 个答案:

答案 0 :(得分:2)

  

dbpprop:title属性提供歌曲列表但只有两个   他们在DBpedia。

dbprop:title属性不提供任何列表;恰好有一些三元组属性。所有数据都在DBpedia中;您在屏幕截图中显示的值表示其中两个值恰好是URI,而其他值恰好是字符串。通常,具有dbpprop:属性的数据比dbpedia-owl:属性“更脏”,因此获取两种不同类型的值并不令人惊讶。

简单查询

select ?title where {
  dbpedia:River_of_Tuoni dbpprop:title ?title
}

SPARQL results

返回所有标题。但是,因为dbpedia-owl:属性具有更清晰的数据,我通常建议您考虑使用其中一个而不是dbpprop:title,但在这种情况下,它看起来不像是另一种选择。您可以考虑使用此备用查询来获取字符串:

select ?title where {
  dbpedia:River_of_Tuoni (dbpprop:title/rdfs:label)|dbpprop:title ?title
  filter isLiteral(?title)
}

SPARQL results

对于值是另一个资源的情况,使用资源的rdfs:标签提供字符串。 (我认为使用dbprop:title/(rdfs:label?)也可以实现这一点,但这不适用于DBpedia端点。)