This is a topic of interest to me, so I'll try to elaborate.
First, I want to point out that RDF is not a representation, it's a
way to model data and it's multiple ways to represent that data (in
XML, JSON, etc.). I think the real question is: how do we enable
OpenSocial to hook into the RDF-based web of "Linked Data" that is
rapidly growing up around scientific data, government open data and
the academic world. I'm not going to go into the benefits of Linked
Data in this post, but I will disclose that I work for a company that
uses RDF as a common data model to enable loosely coupled integration
across our web application products (see also Jazz Integration
Architecture [1] and OSLC [2]). We'd like to be able to integrate with
OpenSocial services in the same ways.
I'll explain the basics of RDF. RDF is way to model web data and ways
to represent that data in XML, JSON, Turtle, etc. The RDF data model
is simple, we have resources identified by URIs and property values
associated with those resources. Resources can have types, each type
is identified by a URI. Property types have URIs too. Once you have
defined your data model in terms of RDF types and properties, you can
represent resources and their properties using RDF representations.
There's RDF/XML for XML, there's RDFa for embedding properties in
HTML. There's are JSON representations too, but not a standard for
JSON yet
So, to bring OpenSocial in-line with the world of Linked Data, we
would define each class of OpenSocial objects as an RDF type, with a
URI. We would define each OpenSocial property as an RDF property, with
a URI. In some cases, we'll want to use existing properties, like the
Dublin Core title, name, etc., and in some cases we'll want to define
entirely new types and properties.
As a starting point, I think we would do the following:
* In OpenSocial v2, we would define all OpenSocial objects and
properties as RDF types in the OpenSocial Specs. This means simply
assigning a URI to every class and every property we define, using
standard properties where appropriate and defining new ones as needed.
Object and property names would rename the same and we'd have what is
essentially an RDF mapping built into the spec. Existing OpenSocial
representation formats would stay the same, but we'd add some new RDF
representations
* We'd introduce an optional new OpenSocial spec that services MAY
implement: the OpenSocial RDF Specification. The specification would
simply require that a service provide RDF representations of it's
resources via content-negotiation. The service could offer RDF/XML or
HTML with RDFa, JSON/RDF or all of the above.
That's a starting point and I think we could come up with some other
ideas if we thought more about use cases. Anybody else interested in
aligning the worlds of OpenSocial and Linked Data?
- Dave
[1]
https://jazz.net/about/about-jazz-architecture.jsp
[2]
http://open-services.net