Hi Camel

Yes the DELETE is formulated incorrectly, you have specified things to be 
deleted but not said explicitly where to delete them from.  So though it is 
matching your triples in a specific graph it tries to delete them from the 
default graph which is not where they are located so they aren't actually 
deleted.

Try the following instead:

WITH <http://test>
DELETE
{ 
  ?s ?p ?v 
}
WHERE
{
  ?s ?p ?v .
  <http://a/resource/> ?p ?v .
}

The WITH should set the graph to be used both for the DELETE and the WHERE 
clause.  If that doesn't work (or you need to match from one graph but delete 
in another) you can state the GRAPH explicitly in both clauses:

DELETE
{ 
  GRAPH <http://text> {
    ?s ?p ?v 
  }
}
WHERE
{
  GRAPH <http://test> {
   ?s ?p ?v .
   http://a/resource/> ?p ?v .
 }
}

Hope that helps,

Rob Vesse


> -----Original Message-----
> From: Camel Christophe [mailto:[email protected]]
> Sent: 11 July 2011 10:21
> To: [email protected]
> Subject: How delete works on Fuseki
> 
> Hello everybody !
> 
> I want to make the removal of a resource in the Fuseki triple store.
> 
> For example, the resource has been inserted like this (into a named
> graph) :
> 
> INSERT DATA INTO <http://test> {
>   <http://a/resource/> <http://a/property> "a first value" .
>   <http://a/resource/> <http://a/property> "a second value" .
> }
> 
> I can easily see its triples like this :
> 
> select * where {
>  graph <http://test> {
>    ?s ?p ?v .
>    <http://a/resource/> ?p ?v .
>  }
> }
> 
> Ok, now I want to delete those triples from the store (i.e. I want to
> delete the resource). I do the following:
> 
> DELETE
>  { ?s ?p ?v }
> WHERE
>   {
>     graph <http://test> {
>       ?s ?p ?v .
>       <http://a/resource/> ?p ?v .
>     }
>   }
> 
> 
> Fuseki answers "Update succeeded". Good, but the triples haven't been
> deleted. The previous select request still returns the following
> content :
> 
> <http://a/resource/>  <http://a/property> "a first value"
> <http://a/resource/>  <http://a/property> "a second value"
> 
> 
> What's going wrong ? I suspect a bad formulation of the delete query,
> yet it seems to me correct.
> 
> Thanks !

Reply via email to