我是SPARQL / DBPedia noob,我正在尝试将其用于宠物项目。
我有以下查询来查找特定电影的所有人及其角色(主演,导演,剪辑等) -
PREFIX dbO: <http://dbpedia.org/ontology/>
PREFIX dbR: <http://dbpedia.org/resource/>
SELECT ?p,?o
WHERE {
dbR:Personal_Shopper ?p ?o.
?o rdf:type dbO:Person
}
它返回预期的,所以全部清除。
但是如果我用电影敦刻尔克(Personal_Shopper
)替换Dunkirk_(2017_film)
PREFIX dbO: <http://dbpedia.org/ontology/>
PREFIX dbR: <http://dbpedia.org/resource/>
SELECT ?p,?o
WHERE {
dbR:Dunkirk_(2017_film) ?p ?o.
?o rdf:type dbO:Person
}
我收到错误
Virtuoso 37000 Error SP030: SPARQL compiler, line 17: syntax error at '2017' before '_film' SPARQL query: define sql:big-data-const 0 #output-format:application/sparql-results+json define input:default-graph-uri PREFIX owl: PREFIX xsd: PREFIX rdfs: PREFIX rdf: PREFIX foaf: PREFIX dc: PREFIX : PREFIX dbpedia2: PREFIX dbpedia: PREFIX skos: PREFIX dbO: PREFIX dbR: SELECT ?p,?o WHERE { dbR:Dunkirk_(2017_film) ?p ?o. ?o rdf:type dbO:Person }
这是敦刻尔克的页面:
http://dbpedia.org/page/Dunkirk_(2017_film)
我认为资源的名称与Wiki页面URL中的名称相同。
https://en.wikipedia.org/wiki/Dunkirk_(2017_film)
有人可以指出我的错误吗?我在这里运行查询: