Virtuoso Open-Source Wiki
Virtuoso Open-Source, OpenLink Data Spaces, and OpenLink Ajax Toolkit
Advanced Search
Location: / Dashboard / Main / VirtTipsAndTricksGuide / VirtTipsAndTricksGuideLinkedDataSimpleGuide

Deploying Linked Data with Virtuoso, in 3 Simple Steps

Injecting Linked Data into the Web has been a major pain point for those who seek personal, service, or organization-specific variants of DBpedia. Basically, the sequence goes something like this:

  1. You encounter DBpedia or the LOD Cloud Pictorial.
  2. You look around (typically following your nose from link to link).
  3. You attempt to publish your own stuff.
  4. You get stuck.

The problems typically take the form of:

  • Confusion over the complementary Name and Address functionality abstracted by a single URI.
  • Confusion over the terminology in use, due to conflation and over-loading of terms such as Resource, URL, Representation, Document, etc.
  • Inability to find robust tools with which to generate Linked Data from existing data sources such as relational databases, CSV files, XML, Web Services, etc.

To start addressing these problems, here is a simple guide for generating and publishing Linked Data using Virtuoso.

Step 1 - Generating RDF Data

Existing RDF data can be added to the Virtuoso RDF Quad Store via a variety of built-in data loader utilities (see How To Load RDF Data Into Virtuoso (various methods), Virtuoso Bulk Loader Script for RDF).

Many options allow you to easily and quickly generate RDF data from other data sources:

  • Install the Sponger Bookmarklet for the URIBurner service. Bind this to your own SPARQL-compliant backend RDF database (in this scenario, your local Virtuoso instance), and then fetch some HTTP-accessible Network resources.
  • Convert relational DBMS data to RDF using the Virtuoso Linked Data Views Wizard (see Wizard based generation of RDF based Linked Data from ODBC accessible Relational Databases).
  • Starting with CSV files, you can
    • Place them at an HTTP-accessible location, and use the Virtuoso Sponger to convert them to RDF or;
    • Use the CVS import feature to import their content into Virtuoso's relational data engine; then use the built-in Linked Data Views Wizard as with other RDBMS data (see Bulk Loader Script for CSV).
  • Starting from XML files, you can
    • Use Virtuoso's inbuilt XSLT-Processor for manual XML to RDF/XML transformation or;
    • Leverage the Sponger Cartridge for GRDDL, if there is a transformation service associated with your XML data source, or;
    • Let the Sponger analyze the XML data source and make a best-effort transformation to RDF.

Step 2 - Deploying Linked Data

Install the Faceted Browser VAD package (fct_dav.vad) which delivers:

  • Faceted Browser Engine UI
  • Dynamic Hypermedia Resource Generator
    • provides descriptor resources for every entity (data object) in the Native or Virtual Quad Stores
    • supports a broad array of output formats, including HTML+RDFa, RDF/XML, N3/Turtle, NTriples, RDF-JSON, OData+Atom, and OData+JSON.

Step 3 - Consuming and Exploiting Linked Data

You, your enterprise, and your customers can easily consume and exploit your newly deployed Linked Data, again with a few simple steps --

  1. Load a page like this in your browser: http://<cname>[:<port>]/describe/?uri=<entity-uri>
    • <cname>[:<port>] gets replaced by the host and port of your Virtuoso instance
    • <entity-uri> gets replaced by the URI you want to see described -- for instance, the URI of one of the resources you let the Sponger handle.
  2. Follow the links presented in the descriptor page.
  3. If you ever see a blank page with a hyperlink subject name in the About: headline at the top of the page, simply add the parameter "&sp=1" to the URL in the browser's Address box, and hit [ENTER]. This will result in the following "on the fly" sequence --
    1. retrieval of the resource
    2. transformation of the retrieved resource to RDF
    3. generation of a descriptor page describing the resource
  4. Use the navigator controls to page up and down the data associated with the "in scope" resource descriptor.


Powered By Virtuoso