Hi,

I'm uploading data to virtuoso using the WebDAV rdf_sink. I ran the
following  via isql to configure the rdf_sink directory.

> USER_CREATE ('test_user', 'secret', vector ('SQL_ENABLE', 0, 'DAV_ENABLE', 1, 
> 'PERMISSIONS', '110100000RR', 'DISABLED', 0,'HOME', '/DAV/home/test_user'));
> USER_GRANT_ROLE('test_user', 'SPARQL_SELECT', 0);
> DB.DBA.DAV_COL_CREATE ('/DAV/home/test_user/','110100000R', 
> 'test_user','test_user','dav','dav');
> DB.DBA.DAV_COL_CREATE ('/DAV/home/test_user/rdf_sink/','110100000R', 
> 'test_user','test_user','dav','dav');
> DB.DBA.DAV_PROP_SET('/DAV/home/test_user/rdf_sink/', 'virt:rdf_graph', 
> 'http://localhost:8890/DAV/home/test_user/rdf_sink/', 'dav', 'dav');
> DB.DBA.DAV_PROP_SET('/DAV/home/test_user/rdf_sink/', 'virt:rdf_sponger', 
> 'on', 'dav', 'dav');

As I understand it 'virt:rdf_graph' must be set to a value for any
graphs to be indexed, for example:
'http://localhost:8890/DAV/home/test_user/rdf_sink/'. The problem I
have with this is that every new graph I upload to the sink will be
indexed in both the 'virt:rdf_graph' _and_ in an internal graph with
names like: 'http://local.virt/DAV/home/test_user/rdf_sink/<file_name>'.
A query like:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dct: <http://purl.org/dc/elements/1.1/>
SELECT ?g ?article ?title
WHERE {
graph ?g {
?article dct:title ?title
}
}

return two lines (assuming one triple in the uploaded document), one
with ?g bound to 'http://localhost:8890/DAV/home/test_user/rdf_sink/'
and one with 'http://local.virt/DAV/home/test_user/rdf_sink/<file_name>'.

Is there any way of avoiding this behavior when using the rdf_sink to
upload data? I want that the graph is only indexed once with the graph
name being the internal name
'http://local.virt/DAV/home/test_user/rdf_sink/<file_name>'. I
originally interpreted the 'virt:rdf_graph' setting as a prefix to the
graph names indexed in the DAV directory, but this turned out to be
false.

Thanks for any help,
Mikael

Reply via email to