我试图从DBPedia检索音乐信息。如果我运行http://dbpedia.org/sparql/此查询:如果使用大于0的偏移量,为什么此SPARQL查询不返回任何数据
SELECT DISTINCT
?title
?date
(group_concat(distinct ?label;separator=";;;") as ?labels)
(group_concat(distinct ?genre;separator=";;;") as ?genres)
(group_concat(distinct ?member;separator=";;;") as ?members)
(group_concat(distinct ?oldMember;separator=";;;") as ?oldMembers)
(group_concat(distinct ?origin;separator=";;;") as ?origins)
(group_concat(distinct ?song;separator=";;;") as ?songs)
(group_concat(distinct ?songOther;separator=";;;") as ?songOthers)
(group_concat(distinct ?songOtherOther;separator=";;;") as ?songOtherOthers)
WHERE {
?title <http://purl.org/dc/terms/subject> <http://dbpedia.org/resource/Category:American_hard_rock_musical_groups> .
OPTIONAL { ?title <http://dbpedia.org/ontology/bandMember> ?member . }
OPTIONAL { ?title <http://dbpedia.org/ontology/formerBandMember> ?oldMember . }
OPTIONAL { ?title <http://dbpedia.org/property/label> ?label . }
OPTIONAL { ?title <http://dbpedia.org/property/genre> ?genre . }
OPTIONAL { ?title <http://dbpedia.org/property/origin> ?origin . }
OPTIONAL { ?title <http://dbpedia.org/ontology/activeYearsStartYear> ?date . }
OPTIONAL { ?song <http://dbpedia.org/ontology/artist> ?title . }
OPTIONAL { ?songOther <http://dbpedia.org/property/artist> ?title . }
OPTIONAL { ?songOtherOther <http://dbpedia.org/ontology/musicalArtist> ?title . }
} ORDER BY ?title ?date LIMIT 1 OFFSET 0
我得到一个结果,但如果我改变OFFSET
到1
结果集是空的? (肯定有不止一个结果可用)
任何想法?
问题出现在“属性/艺术家”和“本体/音乐艺术家”谓词中,没有它们就可以正常工作。我不知道,但对我来说,它看起来像一个Virtuoso错误。 – laughedelic
谢谢@laughedelic,是的,我明白,但没有那些我不会得到歌曲的信息,这对我的项目很重要。我可以通过编程的方式来完成,比如先得到每个乐队,然后为每个乐队获取歌曲,只是想知道是否有更紧凑的方式。 –
您是否需要分别单曲“song”,“songOther”和“songOtherOther”? – laughedelic