Как я могу выполнить обновление с помощью jena fuseki?

#jena

#jena

Вопрос:

Я написал этот запрос, который обычно работает

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

Ответ №1:

В SPARQL запрос и обновление анализируются отдельно; это отдельные языки, которые используют многие из одних и тех же элементов, но имеют разный синтаксис для их функциональности («ВЫБРАТЬ» против «ВСТАВИТЬ» и т.д.).

Используйте update(...) .

Комментарии:

1. означает, что я получаю этот результат org.apache.jena. запрос. Исключение QueryParseException: лексическая ошибка в строке 2, столбец 58. Встречается: » » (32), после: «ОБНОВИТЬ»

2. Запрос (который не отображается) имеет недопустимый синтаксис. Вам нужно вызвать правильную операцию: QueryExecution qExec2 = conn2.update(...) см. jena.apache.org/documentation/javadoc/rdfconnection/org/apache /…