(Update : Its a year since my next-in-line brother died. This post involved a conversation I had with him. I’ve finally, after 5 years, updated it to include an .ODT version of the table below. He’ll probably kick my ass the next time I see him….)
I’m new to OData, having just talked with one of my brothers about it. He’s using it in a large company, but I’m not sure if its an internal tool or for customers. However, having forgotten or never investigated it before because of the lack of Microsoft fanfare, I was struggling to see what the difference between it and Linked Data with RDF is. Much googling and reading [47,48,50] left me with lots of questions, points of view, some pros and cons, and discovery about GData and DataRSS. (I’ve really been sipping the W3C Linked Data Kool Aid too long 🙂 ).
So, I want to create a matrix of criteria that anyone can quickly look at and get salient information about them. (Perhaps I could publish that matrix as linked data sometime…). You’ll understand by now that I haven’t used OData so I’m going on what i read until I install SharePoint somewhere, or whatever else it takes to get a producer running to play with. And with that, I’ve also made the mental jump to Drupal publishing RDFa – can you embed OData in a web page ? Would you want to if you had a CMS where the data was also content ?
I hope to end up with information about LoD, OData, GData, DataRSS (and fix this table’s formatting). Help ! RDF_OData_GData_DataRSS
Technology grounding (esp OWL ) in Description Logic.[12, 13]. “Open
World Assumption” 
and EDM grounding in entity relationship modelling . “Closed World
Assumption” view (?) but with “OpenTypes” and “Dynamic Properties”
|Unclear/Mixed – whatever google logical Model is behind services, but transcoded and exposed as AtomPub/JSON. Data relations and graphs not controllable by API – eg cannot define a link between data elements that doesnt already exist. GData is primarily a client API.
|Not mandated, but probably
backed by a triple store and serialised over Http to RDF/XML, Json,
TTL, N3 or other format. RDBMS backing or proxying possible.
|not mandated, but probably
backed by existing RDBMS persistence [4 – “Abstract Data Model”], or
more precisely a non-triple store. (I have no evidence to
support this, but the gist of docs and examples suggests it as a
typical use case) and serialised over Http with Atom/JSON
according to Entity Data Model (EDM) and Conceptual Schema
Definition Language (CSDL)
|Google applications and services publishing data in AtomPub/JSON format, with Google Data Namespace elements.
and web level linking : “The goal of
the W3C SWEO Linking Open Data community project is to extend the Web
with a data commons by publishing various open data sets as RDF on the
Web and by setting RDF links between data items from different data
syndication : “There is a vast
amount of data available today and data is now
being collected and stored at a rate never seen before. Much, if
not most, of this data however is locked into specific applications
or formats and difficult to access or to integrate into new
|Google cloud data publishing  : “The Google Data Protocol provides a secure means for external developers to write new applications that let end users access and update the data stored by many Google products. External developers can use the Google Data Protocol directly, or they can use any of the supported programming languages provided by the client libraries.”
negotiation, RDF, REST-GET. Sparql 1.1 for update
negotiation, AtomPub/JSON, REST-GET/PUT/POST/DELETE 
||Any and all,
create your own ontology/namespace/URIs with RDFS/OWL/SKOS/…, large
opensource tooling & community, multiple serialisation RDF/XML,
JSON, N3, TTL,…
|Any and all (with
a “legacy” Microsoft base), while reuse Microsoft classes and types,
namespaces (EDM) with Atom/JSON serialisation. Large microsoft
tooling and integration with others following.[7,8]
|Google applications and services only.
|Create your own
URIs and namespaces following guidelines (“slash vs hash”) [15,16]
Subject, predicate and object URIs must be dereferencible, content
negotiation expected. Separation of concept URI and location URI
concept URI and Location URI are distinguished in specification –
values can certainly be Location URIs, and IDs can be URIs, but
attribute properties aren’t dereferencible to Location URIs.Well specified URI conventions 
|Atom namespace. <link rel=”self” …/> denotes URI of item. ETags also used for versioned updates. Google Data namespace for content “Kinds”., no dereferencing.
can inherently be directly linked by reference, and equivalence is
possible with owl:sameAs, owl:seeAlso (and other equivalence assertions)
properties link entity elements within a single OData materialisation –
external linkage not possible. Dereferencable attribute properties not
possible but proposed.
|URIS Not dereferencable, linkage outside of google not possible.
|Data Model :
|RDF-S, OWL to
create ontology model of data, concepts and relations. Import and
extend external ontologies. Terminology (T-Box) and Asserted ( A-Box,
vocabulary) both possible with OWL presentation.
creation of entities, types, sets, associations and navigation
properties for data and relations. Primitive types a la XSD types.
Seems more akin to capabilities of schema definition than ontology
modelling with OWL. Unclear at this stage whether new entities can be
created, and then reused or existing ones imported and extended.
||Inferrence or reasoning out of
DL terminology and assertion separation possible. May be handled at
repository level (eg Sesame) or at query time (eg Jena)
|service may be able to infer
from derived typing
as required when importing public or “well known”
ontologies/vocabularies, creating SPARQL queries, short hand URIs,
create new as required for your own custom classes, instances.
supported in EDM but unclear if possible to create and use namespace,
or if it can be backed with a custome class/property definition
(ontology). $metadata seems to separate logically and physically type
and service metadata from instance data – ie oData doesn’t “eat its own
|AtomPub and Google Data namespace only.
||Client and server
negotiate content to best determination.[17,18]
or server fails, or default to Atom representation.. Only XML
serialisation for service metadata.. New mime-types introduced.
|Use alt query param (accept-header not used)
central principle to linked data, whether in document, local endpoint
or federated. SPARQL  query language allows suitably equipped
endpoints to service structured query requests and return serialised
RDF, json, csv, html, …
dereferencible URIs with special $metadata path element allow type
metadata to be retrieved . Running a structured query against an
OData service with something like SPARQL isn’t possible.
|Query by author,category,fields.
well-known/common/upperlevel ontologies/vocabularies.VoID [22,52] can be used to provide extensive metadata for a linked
 describe types, datasets. Programmatic Mapping to/from RDF
|RDF-XML, ttl, n3
well known formats. See also content negotiation.
outputs. OpenVirtuoso mapping, custom code.
|Security, privacy, provenance.
specifications above that supplied in web/http architecture. CORS
becoming popular as access filter method for cross-site syndication
capability at client level. Server side access control. Standards for
Provenance and privacy planned and under development. W3C XG
specifications above that mandated in http/atom/json.[23, 31] CORS use
possible for cross site syndication. Dallas/Azure Datamarket for
“trusted commercial and premium public domain data”.
|Http wire protocols, but in addition authentication (OpenID) and authorization are required(OAuth). “ClientLogin” and AuthSub are deprecated. . No provenance handling.
license, sponsorship, governance
community project , after a proposal by TBL. Built up
Architecture of World Wide Web 
sponsored under “Open Specification Promise”,  but brought to W3C
community wikis,forums,blogs,developer groups and libraries.
with developer docs, and links to articles and videos, mailinglist, msdn
|Many and varied,
open.[1,36,37] et al.
consumers, “datamarket”, PowerPivot for Excel[49
||SPARQL update v1.1, Semantic
Web Services, [43-46,51-54]
|Batch request , protocol
versioning , Service Operations