Removing all triples from a Virtuoso Server instance
There are times it can be useful to remove all triples from Virtuoso Server. There are a few ways to accomplish this.
Remove all triples including those in the the system graphs
Use iSQL, either on the command-line or through the Virtuoso Conductor -> Database -> Interactive SQL, to execute this SQL query --
SQL> DELETE FROM DB.DBA.RDF_QUAD ;
Remove all triples except those in the system graphs
Use the built-in RDF_GLOBAL_RESET procedure
- When removing large graphs or numbers of triples it is advised/required to change the transaction log mode to
autocommit
with no transaction logging on each operation, deleting the graph(s) or triples, and then setting the log mode back to its original setting. This is easily done using the Virtuosolog_enable
function, with the settingslog_enable(3,1)
. - Use iSQL, either on the command-line or through the Virtuoso Conductor -> Database -> Interactive SQL, to execute this SQL query --
SQL> RDF_GLOBAL_RESET ();
- Now selecting all graphs from your db should return only the system graphs, like so --
SQL> SPARQL SELECT DISTINCT ?g FROM <http://localhost:8894/> { GRAPH ?g { ?s a ?t } } ; g ANY http://www.openlinksw.com/schemas/virtrdf# No. of rows in result: 1
Write your own procedure
Take all non-system graphs, and for each of them execute:
SPARQL CLEAR GRAPH <The Graph URI here> ;