如何在jena sparql中执行删除查询?

时间:2014-06-23 17:38:45

标签: error-handling sparql jena tdb

这个问题可能听起来很蹩脚,但我真的很困惑......这是我的正常查询代码:

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" ...

我知道需要对更新查询进行一些更改吗?有人可以给出一些提示吗?任何链接都会有所帮助!!

1 个答案:

答案 0 :(得分:4)

SPARQL查询和SPARQL更新是不同的语言,并且有不同的工厂用于解析它们。 QueryFactory适用于SPARQL 1.1 Query Language。对于SPARQL 1.1 Update,您需要使用UpdateFactory