HTTP based Linked Data Server

float test
Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."

Following the initial bootstrap of HTTP's showcase application -- the World Wide Web -- there has been a desire across a number of communities to apply its architectural sophistication and ubiquity to the age-old quest for platform agnostic Distributed Data Objects oriented middleware. In addition, global use of the Web has stimulated the desire amongst users and developers alike, for the evolution of the current Web of Linked Documents into a Web of Linked Data Objects.

Linked Documents vs. Linked Data Objects

As an hypermedia oriented protocol, HTTP is ultimately about links between entities. That said, the nature of entities and their associations with other entities always ultimately depends on the nature of the data model within which they exist. Thus, when the atomic unit that represents an entity is a compound hypermedia resource where links serve the single function of connecting to other compound documents (i.e., hypertext links), the resulting mesh is a Web of Linked Documents. On the other hand, if the links between entities are "typed" (i.e., hyperdata links) the opacity of the Linked Document mesh evolves into a much more granular mesh of Linked Data Objects (or Entities).

Representational State Transfer (REST) driven Data Access by Reference

The common assumption about this client-server computing pattern, when understood, is that application state is driven by interactions between Resources at an HTTP address called Uniform Resource Locator (URL) and one or more generic HTTP verbs that cover Create, Read, Update, and Delete operations. That said, applying the more generic abstraction of the Generic HTTP URI to this pattern, you end up with a powerful data access by reference mechanism where Data Objects Identifiers (Names) and the Locations of their structured description bearing Resources co-exist within in a single Generic HTTP URI.

The powerful application of REST described above is the essence of what is commonly referred to as Linked Data. REST based data access by reference delivers new and significantly improved mechanism for conceptual model oriented data access middleware without the operating system and runtime specificity of alternatives such as ADO.NET's entity frameworks.

Linked Data Generation and Deployment

Evolving private or public HTTP networks from Linked Document meshes to Linked Data Object meshes requires a new kind of HTTP server. This new generation HTTP server must be capable of delivering the following capabilities:

  1. Generation of Generic HTTP URI based Data Object Identifiers for a data items associated with wide variety of data source types (Relational Databases, XML Databases, Content Management Systems, Web Services, HTTP based Hypermedia Resources, Basic Non Hypermedia Resources)
  2. Association of each Data Object Identifier with a Hypermedia Resource that bears its Structured Description
  3. Disambiguation of Identity/Name and Location/Access functions when Data Object Identifiers are slash ("/") rather than Hash ("#") terminated
  4. Structured Descriptions are Entity-Attribute-Value graph model based
  5. Use of HTTP's content negotiation feature to deliver a variety of Entity-Attribute-Value graph representations that describe a given Data Object.

Virtuoso's Linked Data deployment capabilities provide a secure, high-performance, and cost-effective solution for exploiting the Linked Data Server capabilities outlined above via one or more of the following options:

  1. Conceptual Entity-Attribute-Value model views atop ODBC or JDBC accessible Data Sources
  2. Generation of HTTP based Data Object Identifiers for data residing in Content Management systems such as Blogs, Micro Blogs, Wikis, Feed Aggregators, Shared Bookmarks, Discussion Forums, Photo Galleries etc.
  3. Generation of HTTP based Data Object Identifiers for data associated with hypermedia ((X)HTML, Atom, RSS, OPML, XBEL, and others) and non hypermedia (iCalendar, hCard, JPEG, PNG etc.) resources
  4. Generation of HTTP based Data Object Identifiers for data associated with SOAP and SOA oriented Web Services.