Difference between RDF, OData and GData
RDF |
OData
|
GData
|
Abbreviation:
RDF
stands for Resource Description Framework
|
Abbreviation:
OData
stands for Open Data Protocol
|
Abbreviation:
GData
stands for Google Data Protocol
|
Meaning:
RDF
is a framework which follows W3C technology for representing
information in the Web.
The
design of RDF is intended to meet the following goals:
i.having
a simple data model
ii.having
formal semantics and provable inference
iii.using
an extensible URI-based vocabulary
iv.using
an XML-based syntax
v.supporting
use of XML schema datatypes
vi.allowing
anyone to make statements about any resource
It
is used in Mozilla to integrate and aggregate Internet resources.
|
Meaning:
The
Open Data Protocol (OData) is an open web protocol for querying
and updating data. The protocol allows for a consumer to query a
datasource over the HTTP protocol and get the result back in
formats like Atom, JSON or plain XML, including pagination,
ordering or filtering of the data.
|
Meaning:
Gdata
provides a simple protocol for reading and writing data on the
Internet, designed by Google. GData combines common XML-based
syndication formats (Atom and RSS) with a feed-publishing system
based on the Atom Publishing Protocol, plus some extensions for
handling queries. It relies on XML or JSON as a data format.
|
Logical
Model:
Graph/EAV.Technology
grounding (esp OWL ) in Description Logic.[12, 13]. “Open World
Assumption” [27]
|
Logical
Model:
Graph/EAV.
AtomPub and EDM grounding in entity relationship modelling [11].
“Closed World Assumption”[28] view (?) but with “OpenTypes”
and “Dynamic Properties”[29]
|
Logical
Model:
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.
|
Physical
model:
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. |
Physical
model:
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)[6]
and Conceptual Schema Definition Language (CSDL)[11]
|
Physical
model:
Google
applications and services publishing data in AtomPub/JSON format,
with Google Data Namespace[58] element.
|
Intent:
Data
syndication 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 sources" |
Intent:
Data
publishing and 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 uses"
|
Intent:
Google
cloud data publishing [55] : "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"
|
Protocol,operations:
http,
content negotiation, RDF, REST-GET. Sparql 1.1 for update |
Protocol,operations:
http,
content negotiation, AtomPub/JSON, REST-GET/PUT/POST/DELETE [9]
|
Protocol,operations:
http,REST
(PUT/POST?GET/PATCH/DELETE)[56]
|
Openness/Extensibility:
Any
and all,create your own ontology/namespace/URIs with
RDFS/OWL/SKOS/…, large opensource tooling & community,
multiple serialisation RDF/XML,JSON, N3, TTL,…
|
Openness/Extensibility:
Any
and all (with a “legacy” Microsoft base), while reuse
Microsoft classes and types,namespaces (EDM)[6] with Atom/JSON
serialisation. Large microsoft tooling and integration with others
following.[7,8]
|
Openness/Extensibility:
Google
applications and services only.
|
URI
minting,dereferencing :
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 central. |
URI
minting,dereferencing :
Unclear
whether 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 [21]
|
URI
minting,dereferencing :
Atom
namespace. <link rel=”self”
…/> denotes URI of item. ETags also used for
versioned updates. Google Data namespace for content
“Kinds”.[59], no dereferencing.
|
Linking,
matching, equivalence:
External
entities can inherently be directly linked by reference, and
equivalence is possible with owl:sameAs, owl:seeAlso (and other
equivalence assertions)
|
Linking,matching,
equivalence:
Navigation
properties link entity elements within a single OData
materialisation -external linkage not possible. Dereferencable
attribute properties not possible but proposed[10].
|
Linking,matching,
equivalence:
URIS
Not dereferencable, linkage outside of google not possible.
|
Namespace
handling,
Declare
namespaces 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.vocabularies: |
Namespace
handling,
vocabularies:
Namespaces
supported in EDM but unclear if possible to create and use
namespace,or if it can be backed with a custom 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 dog food”.
|
Namespace
handling,
vocabularies:
AtomPub
and Google Data namespace only.
|
Content
negotiation:
Client
and server negotiate content to best determination.[17,18]
|
Content
negotiation:
Client
specifies or server fails, or default to Atom representation.[19].
Only XML serialisation for service metadata.[40]. New mime-types
introduced.
|
Content
negotiation:
Use
alt query param (accept-header not used)[57]
|
Query
capability :
Dereferencibility
central principle to linked data, whether in document, local
endpoint or federated. SPARQL [14] query language allows suitably
equipped endpoints to service structured query requests and return
serialised RDF, json, csv, html, … |
Query
capability :
Proposed
dereferencible URIs with special $metadata path element allow type
metadata to be retrieved [10]. Running a structured query against
an OData service with something like SPARQL isn’t possible.
|
Query
capability :
Query
by author,category,fields.
|
Security,
privacy, provenance:
No
additional 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[24]. W3C XG provenance group[25]
|
Security,
privacy, provenance:
No
additional 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”.[26]
|
Security,
privacy, provenance:
Http
wire protocols, but in addition authentication (OpenID) and
authorization are required(OAuth). “ClientLogin”
and AuthSub are deprecated. [60]. No provenance handling.
|
Sources:
References:
[2] http://www.w3.org/DesignIssues/LinkedData.html
[3] http://www.w3.org/TR/webarch
[4] http://www.microsoft.com/interop/osp/default.mspx
[5] http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html
[6] http://www.odata.org/developers/protocols/overview#EntityDataModel
[7] http://www.odata.org/producers
[8] http://www.odata.org/consumers
[9] http://www.odata.org/developers/protocols/operations
[10] http://www.odata.org/blog/2010/4/22/queryable-odata-metadata
[11] http://www.odata.org/media/16348/%5Bmc-csdl%5D.pdf
[12] http://www.w3.org/TR/2009/REC-owl2-direct-semantics-20091027/
[13] http://en.wikipedia.org/wiki/Description_logic
[14] http://www.w3.org/TR/rdf-sparql-query/
[15] http://www.w3.org/TR/cooluris/
[16] http://www.w3.org/wiki/DereferenceURI
[17] http://www.w3.org/TR/webarch/#def-coneg
[18] http://www.w3.org/TR/cooluris/#implementation
[19] http://www.odata.org/developers/protocols/operations#RepresentationFormatsAndContentTypeNegotiation
[20] http://www.odata.org/developers/protocols/batch
[21] http://www.odata.org/developers/protocols/uri-conventions
[22] http://code.google.com/p/void-impl/
[23] http://www.odata.org/developers/protocols/overview#SecurityConsiderations
[24] http://lod2.eu/Welcome.html
[25] http://www.w3.org/2005/Incubator/prov/wiki/Relevant_Technologies
[26] https://datamarket.azure.com/
[27] http://en.wikipedia.org/wiki/Open_world_assumption
[28] http://en.wikipedia.org/wiki/Closed_world_assumption
[29] http://www.odata.org/media/16343/%5Bmc-edmx%5D.pdf
[30] http://www.odata.org/developers/protocols/operations#InvokingServiceOperations
[31] http://blogs.msdn.com/astoriateam/archive/2010/05/10/odata-and-authentication-part-1.aspx
[32] http://www.odata.org/developers/protocols/overview#ServiceMetadataDocument
[33] http://www.odata.org/developers/protocols/overview#ProtocolVersioning
[34] http://www.odata.org/developers/protocols/overview#AbstractTypeSystem
[35] http://www.w3.org/TR/xmlschema-2
[36] http://ckan.net/
[37] http://www.w3.org/wiki/SemanticWebTools#head-805c63479c854babe4657d5184de605910f6d3e2
[38] http://www.w3.org/2001/sw/
[39] http://www.odata.org/developers/articles
[40] http://www.odata.org/developers/protocols/operations#Retrievingthemetadatadocument
[41]
http://www.odata.org/blog/2010/8/6/enhancing-odata-support-for-querying-derived-types—revisited
[42] http://www.w3.org/TR/2009/WD-sparql11-update-20091022/
[43] http://www.swsi.org/
[44] http://www.w3.org/Submission/OWL-S/
[45] http://www.serviceweb30.eu/cms/
[46] http://www.w3.org/Submission/WSDL-S/
[47] http://webofdata.wordpress.com/2010/04/14/oh-it-is-data-on-the-web/
[48] http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/
[49] http://www.powerpivot.com/
[50] http://sqlblog.com/blogs/jamie_thomson/archive/2010/02/03/microsoft-odata-and-rdf.aspx
[51] http://www.wsmo.org/
[52] http://void.rkbexplorer.com/
[53] http://www.alphaworks.ibm.com/tech/wssem
[54] http://rapporter.ffi.no/rapporter/2010/00015.pdf
[55] http://code.google.com/intl/en/apis/gdata/docs/directory.html
[56] http://code.google.com/intl/en/apis/gdata/docs/2.0/basics.html
[57] http://code.google.com/intl/en/apis/gdata/docs/2.0/reference.html#QueryRequests
[58] http://schemas.google.com/g/2005
[59] http://code.google.com/intl/en/apis/gdata/docs/2.0/elements.html
[60] http://code.google.com/intl/en/apis/gdata/docs/auth/overview.html
No comments:
Post a Comment