Я использовал следующий код для перечисления членов группы панк-рок групп:
PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX dbr: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema> SELECT distinct ?bandname ?bandmembername where { ?band foaf:name ?bandname; dbo:genre dbr:Punk_Rock. ?bandmember dbo:bandMember ?bandmember; rdfs:label ?bandmembername. }
Мне бы понадобились члены группы любой группы Punk_Rock.
Punk_Rock
Синтаксическая ошибка отсутствует.
В вашем запросе 2 ошибки.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema> должно быть PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Предикат и объект dbo:bandMember ?bandmember должны описывать ?band (в котором есть члены), а не ?bandmember (который является членом)
dbo:bandMember ?bandmember
?band
?bandmember
С этими исправлениями в запросе вы должны увидеть результаты , на которые вы надеетесь -
PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX dbr: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?bandname ?bandmembername WHERE { ?band foaf:name ?bandname ; dbo:bandMember ?bandmember ; dbo:genre dbr:Punk_Rock . ?bandmember rdfs:label ?bandmembername . }