Using a Semantic Web of Linked Data to Enhance ODBC, JDBC, ADO.NET, & OLE DB Data Sources

ODBC (Open Database Connectivity), JDBC (Java Database Connectivity), ADO.NET (ActiveX Data Objects for .NET), and OLE DB (Object Linking & Embedding for Databases) are key data access standards used by compliant applications to connect to a wide variety of Data Sources (primarily SQL–compliant RDBMS hosted data).

These standards are critical to legacy and contemporary tools for:

  • Business Intelligence
  • Data Analytics
  • Report Writing
  • Application Development
  • SOA Service Development
  • Web Service Development

Unfortunately, these standards also have several inherent challenges:

  • Federated Data Access — connecting to disparately located data across similar or different data sources over a network
  • Heterogeneous Data Access — performing query operations over disparately shaped data, whether on a single machine or across a network
  • Data Access Security — controlling access to data based on a cocktail of user profiles

RDF and Linked Data

RDF is an abstract language for expressing observation (data) using subject, predicate, object sentences/statements. These sentences are written to documents using a variety (rather than single) of notations.

RDF-based Linked Data boils down to the act of making data representation web-like (or “webby”) by adhering to the following principles:

  • Identify Entities (Things) using Hyperlinks (HTTP URIs)
  • Describe Entities using Subject, Predicate, Object sentences — remembering that sentence subject and predicate are entities that MUST (and objects are entities that MAY) be identified using Hyperlinks

Solving the Problem

Rather than “rip and replace” your existing systems built atop ODBC, JDBC, ADO.NET, or OLE DB, you can simply add a layer of data virtualization middleware to your setup that enables injection of Linked Data into the query results delivered via any of these data access standards.

The rest of this post covers use of Virtuoso (our hybrid and multi-model RDBMS and Data Virtualization platform) to solve this problem.

It is important to note that Virtuoso also includes support for all of the data access protocols outlined above.

Solving the Problem: A How-To Guide

  1. Download and install Virtuoso. Installers are available for Windows, Mac OS X, Linux, Solaris, and other Unix variants.
  2. Attach your existing data sources to Virtuoso via ODBC. You can optionally make use of our ODBC Bridges to local or remote ODBC or JDBC data sources at this stage.
  3. Generate Linked Data Views targeting the tables associated with the attached data sources.
  4. Connect your existing applications to Virtuoso via its client drivers (ODBC, JDBC, ADO.NET, and/or OLE DB).
  5. Execute SQL queries as usual, with SPARQL queries hooked in via the FROM clause. Alternatively, for direct access to Linked Data Views, you can simply prepend your SPARQL queries with the “SPARQL” keyword.


Hyperlink-based Names (WebIDs) and Literal Names (Labels) from a dataset constructed using a SPARQL Query

SELECT  PersonInstance.webid ,
{ ?webid a foaf:Person ;
foaf:name ?name .
FILTER ( isIRI(?webid) )
FILTER ( ?name != '' )
FILTER (! CONTAINS(STR(?webid),"uriburner") )
) AS PersonInstance
WHERE name like 'B%'

Screenshot of Query Editor & Results

Login using “vdb” for both username and password for Live Demo

Screenshots of C++ ODBC Application Demo

C++ Demo — SQL Query Editor UI

Note: platform-specific versions of this sample ODBC application are bundled with all OpenLink Software ODBC Drivers for Windows, Mac OS X, Linux, and other UNIX-like OS.

C++ Demo — SQL Query Results

Why is this important?

As you can see, hyperlinks are now part of the SQL Query results returned to the ODBC-compliant application. The net effect, you can simply click on a hyperlink that piques your interest en route to additional insights, just as you do when exploring the public Web.

Turning literal (string-based) Primary Keys into live, clickable hyperlinks adds an unrivaled drill-down capability to all your existing tools! Basically, every ODBC, JDBC, ADO.NET, or OLE DB compliant application immediately doubles as a Linked Data Browser, i.e., they now truly deliver relevant information to your fingertips!