Hi,

I have been looking into supporting updating of reifying triples in Jena. 
Please do let me know if this should be a discussion on a GitHub issue 
instead.

The SPARQL 1.2 Update Working Draft has the following example (section 
3.1.2, Example 6):

PREFIX : <http://www.example.org/>
DELETE DATA
{
  :alice :claims << :bob :age 23 >>.
}

Running this against the latest Fuseki results in the error "Blank nodes not 
allowed in DELETE templates".

I have been investigating whether it would be possible to implement this. 
But before investing too much time into it, I'd like to discuss this here 
first in case there was a conscious decision made not to support this 
functionality.

An initial source code investigation has revealed the existing method 
RDFStar.reificationSubject to create stable identifiers for reified triples. 
It looks like I could use that in QueryParserBase.insertTripleReifier 
instead of the current BNode it aims to create.

An initial proof of concept hack for this approach was successful. But it 
will require some further parser changes to avoid handling the annotation 
syntax (e.g. syntax-triple-terms-negative/syntax-update-anonreifier-02.ru is 
now considered valid syntax).

I'm happy to do the legwork on this and provide a pull request. But first I 
wanted to make sure I'm not wasting my time on something the project team 
actively wanted to avoid doing. Plus there are likely further complications 
in implementing this I'm not yet aware of.

Best,
Patrice

Reply via email to