问题描述
我写了这个通常有效的查询
String query2 = "PREFIX publ: <http://www.ps7-wia2.com/publications/>\n" +
"PREFIX pub: <http://www.ps7-wia2.com/publications#>" +
"DELETE { publ: " + id + " pub:like ?o }\n" +
"INSERT { publ: " + id + " pub:like " + nbLikes + " }\n" +
"WHERE {publ:" + id + " pub:like ?o .}\n";
RDFConnection conn2 = RDFConnectionFactory.connect(DATABASE);
QueryExecution qExec2 = conn2.query(query2) ;
conn2.close();
qExec2.close();
当我执行我遇到这个错误
org.apache.jena.query.QueryParseException: Encountered " "delete" "DELETE "" at line 2,column 52.
Was expecting one of:
"base" ...
"prefix" ...
"select" ...
"json" ...
"describe" ...
"construct" ...
"ask" ...
```
解决方法
在SPARQL中,查询和更新是分开解析的;它们是不同的语言,它们使用许多相同的元素,但它们的功能具有不同的语法(“SELECT”与“INSERT”等)。
使用update(...)
。