我正在尝试收集相册和每张相册的歌曲列表。例如,专辑
River_of_Tuoni,dbpprop:title属性提供歌曲列表,但只有两个在DBpedia中。
所以当我做以下查询时,我只得到两个,(My_Only_car,River_of_Tuoni_(歌曲))。
SELECT ?songs
WHERE {
:River_of_Tuoni dbpprop:title ?songs. ?songs a dbpedia-owl:Song .
}
我如何获得所有歌曲(摇篮曲,日出,......)?
答案 0 :(得分:2)
dbpprop:title属性提供歌曲列表但只有两个 他们在DBpedia。
dbprop:title属性不提供任何列表;恰好有一些三元组属性。所有数据都在DBpedia中;您在屏幕截图中显示的值表示其中两个值恰好是URI,而其他值恰好是字符串。通常,具有dbpprop:属性的数据比dbpedia-owl:属性“更脏”,因此获取两种不同类型的值并不令人惊讶。
简单查询
select ?title where {
dbpedia:River_of_Tuoni dbpprop:title ?title
}
返回所有标题。但是,因为dbpedia-owl:属性具有更清晰的数据,我通常建议您考虑使用其中一个而不是dbpprop:title,但在这种情况下,它看起来不像是另一种选择。您可以考虑使用此备用查询来获取字符串:
select ?title where {
dbpedia:River_of_Tuoni (dbpprop:title/rdfs:label)|dbpprop:title ?title
filter isLiteral(?title)
}
对于值是另一个资源的情况,使用资源的rdfs:标签提供字符串。 (我认为使用dbprop:title/(rdfs:label?)
也可以实现这一点,但这不适用于DBpedia端点。)