微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 上的 SPARQL 查询:Virtuoso 37000 错误 SP030

如何解决Python 上的 SPARQL 查询:Virtuoso 37000 错误 SP030

我在构建 Python 脚本以在 SPARQL 中运行查询时遇到问题。

我想得到的是在 SELECT 之后立即指定的信息列表(因此艺术家、唱片等),对于每个可能的艺术家。 脚本如下:

from SPARQLWrapper import SPARQLWrapper,JSON

sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery("""
    PREFIX wdt: <http://www.wikidata.org/prop/direct/
     SELECT ?artist ?discography ?artistLabel ?genreLabel ?yearstartLabel 
?languageLabel WHERE {
  ?artist wdt:P106 wd:Q488205;
  ?artist wdt:P358 ?discography;
  ?artist wdt:P136 ?genre;
  ?artist wdt:P18 ?image;
  ?artist wdt:P2031 ?yearstart;
  ?artist wdt:P1412 ?language.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
""")
sparql.setReturnFormat(JSON)
results = sparql.query().convert()

for result in results["results"]["bindings"]:
    print(result["label"]["value"])

当我尝试运行代码时,编译器向我提供了以下错误

SPARQLWrapper.SPARQLExceptions.QueryBadFormed: QueryBadFormed: a bad 
request has been sent to the endpoint,probably the sparql query is bad 
formed. 

Response:
 b'Virtuoso 37000 Error SP030: SPARQL compiler,line 3: Missing 
 <namespace-iri-string> in PREFIX declaration at \'<\' before 
 \'http:\'\n\nSPARQL query:\n#output-format:application/sparql- 
results+json\n\n    PREFIX wdt: <http://www.wikidata.org/prop/direct/\n     
 SELECT ?artist ?discography ?artistLabel ?genreLabel ?yearstartLabel ? 
languageLabel WHERE {\n  ?artist wdt:P106 wd:Q488205;\n  ?artist wdt:P358 
?discography;\n  ?artist wdt:P136 ?genre;\n  ?artist wdt:P18 ?image;\n  ? 
artist wdt:P2031 ?yearstart;\n  ?artist wdt:P1412 ?language.\n  SERVICE 
wikibase:label { bd:serviceParam wikibase:language "en". }\n}\n'

正如我之前解释过的,我想要的是包含所寻求的相关信息的艺术家名单。

附言如果在 https://query.wikidata.org/ 上测试,我尝试运行的查询会提供积极响应,但如果我在 https://dbpedia.org/sparql 上尝试,则会出现错误

我提前感谢您的回答,向大家问好。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?