这个问题可能听起来很蹩脚,但我真的很困惑......这是我的正常查询代码:
public class test4query extends Object {
public static String[] arr=new String[30];
public void mai (String s) {
String directory = "EMAILADDRESS" ;
Dataset ds = TDBFactory.createDataset(directory) ;
ds.begin(ReadWrite.READ) ;
Model model = ds.getDefaultModel() ;
QueryExecution qExec = QueryExecutionFactory.create(s, ds) ;
int i=0;
try{
ResultSet rs = qExec.execSelect() ;
String x=rs.toString();
while (rs.hasNext()) {
QuerySolution qs = rs.next();
String rds;
if(qs.get("x")!=null) {
rds = qs.get("x").toString();
} else {
rds="hi";
}
if(rds==null) {
break;
}
System.out.println(rds);
arr[i] = rds;
i++;
}
} finally
{qExec.close() ;
ds.commit();
ds.end();
}
}
}
但这对删除查询无效。它显示错误:
Was expecting one of:
"base" ...
"prefix" ...
"select" ...
"describe" ...
"construct" ...
"ask" ...
我知道需要对更新查询进行一些更改吗?有人可以给出一些提示吗?任何链接都会有所帮助!!
答案 0 :(得分:4)
SPARQL查询和SPARQL更新是不同的语言,并且有不同的工厂用于解析它们。 QueryFactory适用于SPARQL 1.1 Query Language。对于SPARQL 1.1 Update,您需要使用UpdateFactory。