There are no SPARQL specifications/methods for deleting triples based on the content of a RDF dataset file.
In Virtuoso this could possibly be achieved using isql by:
-
Loading the
remove.ntfile containing the triples to be removed into a temporary graph in Virtuoso using the RDF Bulk Loader -
Set
log_enable(3,1);as recommended when deleting large number of triples in Virtuoso. -
Run the following SQL query to delete the triples directly from the
RDF_QUADtable:
delete from rdf_quad a where exists (select 1 from rdf_quad b where a.s = b.s and a.p = b.p and a.o = b.o and b.g = iri_to_id('temp_graph_name') );
where temp_graph_name is the name of the temp graph the remove.nt triples have been loaded into.
Note, as always, before embarking on such an operation, ensure a Full Backup of the Virtuoso database is in place, should you need to revert back to the previous state.