I'm on Windows 7 32-bit and I'm using the commercial OpenLink Virtuoso Universal Server, Single Server Edition (Desktop/Workstation Operating System) which you still can get at the special price of $499 at
http://virtuoso.openlinksw.com/pricing/ which is a bargain for such a swiss army knife as Virtuoso Universal Server.
The RDF file I want to upload has size 168.871 KB.
| Installing |
This commercial version comes with an installer. The installation is exhaustively described in the Installation Guide and should complete without any trouble. However there seems to be an incompatibility between windows 7 (32-bit) and the included PHP related dll which was solved by commenting out the last line in the virtuoso.ini file.
;Load10=Hosting, hosting_php.dll After installation, you need to run the Virtuoso Service Manager and start the Virtuoso server. Your server can be accessed then from http://localhost:8890/ |
| Populating |
The manual describes 13 !!! different methods to insert RDF into Virtuoso. Didn't test them all, but not all seem to work with the 168.871 KB file I used. So I describe only what worked for me.
What worked for me
for files on the filesystem
- using following API function from the ISQL application
SQL> DB.DBA.RDF_LOAD_RDFXML_MT (file_to_string_output ('./erfgoedexport.rdf'), '', 'http://www.proxml.be/erfgoedexport'); where 'http:/ /www.proxml.be/erfgoedexport' is our graph identifier.
If you leave the to be imported file in a directory on your filesystem which is not included in the DirsAllowed Parameter of your virtuoso.ini file then you get a "an access denied error due to access control". Since '.' is included in the allowed dirs, we did place our rdf file in the same directory as the virtuoso.db hence './erfgoedexport.rdf'
- using the RDF Store Upload Tab from Virtuoso Conductor
works, but we did get a few times 'You have attempted to upload invalid data', probably due to the size of the file.
for files on a http server
- using SPARQL
Following the instructions coming from the Simple Virtuoso Installation & Utilization Guide for SPARQL Users
DEFINE GET:SOFT "replace" SELECT DISTINCT * FROM WHERE {?s ?p ?o.} initially returned
42000 Error SR186: No permission to execute procedure DB.DBA.RDF_SPONGE_UP. To make this work one needs to make sure that the SPARQL user has sufficient rights including SPARQL_SPONGE.
- using following API function from the ISQL application
SQL> SQL> DB.DBA.RDF_LOAD_RDFXML_MT (http_get ('http://www.proxml.be/test/erfgoedexport.rdf'), '', 'http://www.proxml.be/erfgoedexport'); where 'http:/ /www.proxml.be/erfgoedexport' is our graph identifier.
|
After installation
Virtuoso Service Manager
Virtuoso Server

Virtuoso Web Server

Loading RDF
Loading from the filesystem via API

Loading from the filesystem via the Conductor web interface

Setting the SPARQL User rights for being able to load RDF from a http address

Loading from a http server via API

Comments
Priyam (unauthenticated)
Jun 20, 2011
Hi,
I am developing a website, from where the users can upload rdf files via a web page interface to a Virtuoso triple store. Can you please tell me how i can call the API function inside my Java code for the web application.
Thanks
Martin (unauthenticated)
Aug 5, 2011
Hi,
Also like Priyam I have the same question but with .net and dotnetrdf. Also i would like to know is it posible the rdf files that users are uploading to virtuoso to make connections to each other if they find any relations and top of that all this to be published on the global linked data set
Thanks