Virtuoso

The Virtuoso Universal Server is a middleware and database engine that combines the functionality of an RDBMS, ORDBMS, virtual database, RDF, XML, free-text, web application server and file server in a single system. A SPARQL end point is provided for accessing RDF data and an open source edition of the Virtuoso Universal Server is also available.

Virtuoso On the Amazon EC2 Cloud

Virtuoso Open-Source Edition

Download Virtuoso Open-Source Edition from github and build it locally.

The following command downloads using git;

$ git clone git://github.com/openlink/virtuoso-opensource.git

  • When built on Mac OS X Virtuoso is installed to /usr/local/virtuoso-opensource
  • Virtuoso is started by running the command sudo virtuoso-t -f & from a command prompt in the directory var/lib/virtuoso/db (i.e. /usr/local/virtuoso-opensource/var/lib/virtuoso/db ). When Virtuoso has finished its start up sequence the ports the web app and the server use are displayed, e.g.
    22:18:57 HTTP/WebDAV server online at 8890
    22:18:57 Server online at 1111 (pid 207)
  • Using the port 8890 listed above open a web browser at http://localhost:8890/ to view the Virtuoso Universal Server welcome page
  • In a command window run the isql command in the bin directory ( i.e. /usr/local/virtuoso-opensource/bin)
    > isql 1111 dba dba
    to get an SQL> prompt.
  • RDF Data Access and Data Management outlines how to load RDF using SQL RDF_LOAD_RDFXML, for example load an online FOAF file with the command
    SQL>DB.DBA.RDF_LOAD_RDFXML (http_get ('http://www.3kbo.com/people/richard.hancock/foaf.rdf#i'), 'no', 'http://www.3kbo.com/people#');
  • Once loaded SPARQL queries can be run as follows
    SQL>SPARQL SELECT COUNT (*) FROM <http://www.3kbo.com/people#> WHERE {?s ?p ?o};
    SQL>SPARQL SELECT * FROM <http://www.3kbo.com/people#> WHERE { ?s ?p ?o . FILTER (?o LIKE '%Richard%') };
  • Loading MEA RDF using SQL RDF_LOAD_RDFXML.
    SQL>DB.DBA.RDF_LOAD_RDFXML (http_get ('http://www.3kbo.com/ontologies/mea.rdf'), 'no', 'http://www.3kbo.com/ontologies#');
    SQL>SPARQL SELECT COUNT (*) FROM <http://www.3kbo.com/ontologies#> WHERE {?s ?p ?o};
    SQL>SPARQL SELECT * FROM <http://www.3kbo.com/ontologies#> WHERE { ?s ?p ?o . FILTER (?o LIKE '%B2B%') };
  • The SPARQL endpoint is available at http://<host>:<port>/sparql
    The follow two examples query a local and a remote sparql end point
  • http://localhost:8890/sparql?query=DESCRIBE+%3Chttp%3A%2F%2Fwww.3kbo.com...
  • http://www.abeservices.com.au:8890:8890/sparql?query=DESCRIBE+%3Chttp%3A...

References

Implements