如何使用 jena fuseki 执行更新?

问题描述

我写了这个通常有效的查询

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(...)