I'm trying to copy the data from a Sesame repository to another triplestore. I tried the following query:
ADD <http://my.ip.ad.here:8080/openrdf-workbench/repositories/rep_name> TO <http://dydra.com/username/rep_name>
The query gets executed with output as 'true' but no triples are added.
So, I tried a similar query to see if I can move data from one Sesame repository to another using SPARQL Update:
ADD <http://my.ip.ad.here:8080/openrdf-workbench/repositories/source_rep> TO <http://my.ip.ad.here:8080/openrdf-workbench/repositories/destination_rep>
Again, the query gets executed but no triples are added.
What am I doing incorrectly here? Is the URL I am using for repositories OK or does something else need to be changed?
The SPARQL ADD
operation copies named graphs (or 'contexts', as they are known in Sesame). The update operates on a single repository (the one on which you execute it) - it doesn't copy data from one repository to the other.
To copy data from one repository to the other via a SPARQL update, you need to use an INSERT
operation with a SERVICE
clause:
INSERT { ?s ?p ?o }
WHERE {
SERVICE <http://my.ip.ad.here:8080/openrdf-sesame/repositories/rep_name> { ?s ?p ?o }
}
(note that the above will not preserve context / named graph information from your source repo)
Alternatively, you can just copy over via the API, or via the Workbench by using http://my.ip.ad.here:8080/openrdf-sesame/repositories/rep_name/statements
as the URL of the RDF file you wish to upload. More details on this in my answer to this related question.