Hi.

We are having some problems related to triples deletion when the object is a
literal string with no language.
(We are using virtuoso 6.1.0.3126)

As an example consider the following.
We clear the graph, them we insert a triple, we query the graph and we
obtain the triple. Following we delete the triple we received feedback about
the triple
deletion, but if we query it again, the triple is still retrieved.

See.
sparql clear graph <http://localhost:9999>;
sparql insert into graph <http://localhost:9999> {<http://localhost:9999/x>
<http://www.w3.org/2000/01/rdf-schema#label> "test"};
sparql select * from <http://localhost:9999> {?s ?p ?o};
sparql delete from <http://localhost:9999> { <http://localhost:9999/x> <
http://www.w3.org/2000/01/rdf-schema#label> "test" } where { graph <
http://localhost:9999> { <http://localhost:9999/x> <
http://www.w3.org/2000/01/rdf-schema#label> "test" } };
sparql select * from <http://localhost:9999> {?s ?p ?o};

The output is:

Clear <http://localhost:9999> -- done
No. of rows in result: 1
--------
Insert into <http://localhost:9999>, 1 triples -- done
No. of rows in result: 1
--------
http://localhost:9999/x     http://www.w3.org/2000/01/rdf-schema#label
test
No. of rows in result: 1
--------
Delete from <http://localhost:9999>, 1 triples -- done
No. of rows in result: 1
--------
http://localhost:9999/x     http://www.w3.org/2000/01/rdf-schema#label
test
No. of rows in result: 1

But if instead we insert a triple with the string literal object setting the
language, everything works fine.
See.
sparql clear graph <http://localhost:9999>;
sparql insert into graph <http://localhost:9999> {<http://localhost:9999/x>
<http://www.w3.org/2000/01/rdf-schema#label> "test"@en};
sparql select * from <http://localhost:9999> {?s ?p ?o};
sparql delete from <http://localhost:9999> { <http://localhost:9999/x> <
http://www.w3.org/2000/01/rdf-schema#label> "test"@en } where { graph <
http://localhost:9999> { <http://localhost:9999/x> <
http://www.w3.org/2000/01/rdf-schema#label> "test"@en } };
sparql select * from <http://localhost:9999> {?s ?p ?o};


Output is:
Clear <http://localhost:9999> -- done
No. of rows in result: 1
-------
Insert into <http://localhost:9999>, 1 triples -- done
No. of rows in result: 1
-------
http://localhost:9999/x     http://www.w3.org/2000/01/rdf-schema#label
 test
No. of rows in result: 1
-------
Delete from <http://localhost:9999>, 1 triples -- done
No. of rows in result: 1
-------
No. of rows in result: 0


Also works if instead of using a literal, we use a url.

We observed the same problem when we modify the graph, which instead of
modify the graph, only add the new triple value. We suppose this problem is
related to triples deletion problem.

Thanks.
Z.

Reply via email to