You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by se...@datavera.kz on 2025/08/14 14:36:19 UTC

Deleting RDF* triples problem in Fuseki 5.5.0

Dear all,

I'm facing the problem with deleting RDF* triples.

We're migrating from Fuseki 4 to Fuseki 5.5. In short, in Fuseki 4 we 
were able to delete RDF* triples with the queries like:

DELETE WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b {| ?c ?d |} 
}

In Fuseki 5.5.0, this query returns an error:

Line -1, column -1: Blank nodes not allowed in DELETE templates

Here is the full sequence of actions to reproduce the problem:

1. Insert RDF* triple:

INSERT DATA { <http://datavera.kz/demo/SampleObject> rdfs:comment "some" 
{| <http://datavera.kz/demo/addedBy> "Serge" |} }

2. Try to delete it:

DELETE WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b {| ?c ?d |} 
}

or

DELETE WHERE { << <http://datavera.kz/demo/SampleObject> ?a ?b >> ?c ?d 
}

Anyway, we get an error. The same error happens even if we do not use 
template and delete data directly:

DELETE DATA { <http://datavera.kz/demo/SampleObject> rdfs:comment "some" 
{| <http://datavera.kz/demo/addedBy> "Serge" |} }

3. We can delete the triple without annotation:

DELETE WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b }

This query succeeds, but if then we insert the new triple without 
annotation:

INSERT DATA { <http://datavera.kz/demo/SampleObject> rdfs:comment "some" 
}

and then query for it:

SELECT WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b {| ?c ?d |} 
}

The annotation is still here, which means it was not deleted by the 
DELETE query.

p.s. Another problem is that the Fuseki web panel cannot render RDF* 
SELECT query results. This is not critical for us as we use it via API, 
but this makes debugging more difficult.

Best regards,
Serge Gorshkov
https://datavera.org

Re: Deleting RDF* triples problem in Fuseki 5.5.0

Posted by Andy Seaborne <an...@apache.org>.
Hi Serge,

 > We're migrating from Fuseki 4 to Fuseki 5.5.

In RDF-star, terms that's a big jump.

The RDF Working Group has gone a different way and while the syntax {| 
|} is preserved, the meaning ,i.e. the exspanion, is different.


:s :p :o {| :y :z |} .

is now

:s :p :o .
_:b0 rdf:reifies  <<( :s :p :o )>> .
_:b0 :y      :z .

that _:b0 is called the reifier and needs to be captured.

DELETE WHERE { <.... > ?a ?b ~?r {| ?c ?d |} }

The ~ is the reifier part

     Andy

On 14/08/2025 15:36, serge@datavera.kz wrote:
> Dear all,
> 
> I'm facing the problem with deleting RDF* triples.
> 
> We're migrating from Fuseki 4 to Fuseki 5.5. In short, in Fuseki 4 we 
> were able to delete RDF* triples with the queries like:
> 
> DELETE WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b {| ?c ?d |} }
> 
> In Fuseki 5.5.0, this query returns an error:
> 
> Line -1, column -1: Blank nodes not allowed in DELETE templates
> 
> Here is the full sequence of actions to reproduce the problem:
> 
> 1. Insert RDF* triple:
> 
> INSERT DATA { <http://datavera.kz/demo/SampleObject> rdfs:comment 
> "some" {| <http://datavera.kz/demo/addedBy> "Serge" |} }
> 
> 2. Try to delete it:
> 
> DELETE WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b {| ?c ?d |} }
> 
> or
> 
> DELETE WHERE { << <http://datavera.kz/demo/SampleObject> ?a ?b >> ?c ?d }
> 
> Anyway, we get an error. The same error happens even if we do not use 
> template and delete data directly:
> 
> DELETE DATA { <http://datavera.kz/demo/SampleObject> rdfs:comment 
> "some" {| <http://datavera.kz/demo/addedBy> "Serge" |} }
> 
> 3. We can delete the triple without annotation:
> 
> DELETE WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b }
> 
> This query succeeds, but if then we insert the new triple without 
> annotation:
> 
> INSERT DATA { <http://datavera.kz/demo/SampleObject> rdfs:comment "some" }
> 
> and then query for it:
> 
> SELECT WHERE { <http://datavera.kz/demo/SampleObject> ?a ?b {| ?c ?d |} }
> 
> The annotation is still here, which means it was not deleted by the 
> DELETE query.
> 
> p.s. Another problem is that the Fuseki web panel cannot render RDF* 
> SELECT query results. This is not critical for us as we use it via API, 
> but this makes debugging more difficult.
> 
> Best regards,
> Serge Gorshkov
> https://datavera.org