Context Negotiation

Dear all,

A quick question driven by discussions in the Open Annotation Community
Group.

If two communities decide that they want to use different context
descriptions for the same basic ontologies, is there a recommended way to
allow a system to serve both formulations?

For example, there are existing JSON annotation APIs that might be amenable
to @context-ualization to bring them into the JSON-LD world without
significant effort, plus the current OA context, and a hypothetical future
state which would try to be more JSON centric than RDF centric.  A single
system may wish to serve 2 or more of those communities' requirements at
once for the same set of annotations, and thus a way to request a
particular context is desirable.

The two methods that immediately come to mind are:

1.  Content Negotiation
Use a header on the HTTP request to ask for a particular context by its
full URI.
For example:
  X-JSONLD-Context:  http://www.openannotation.org/spec/core/context.json

2.  URI patterns.
Have patterns in the URIs (somehow) that reflect which context is desired.
 This isn't as extensible, but doesn't require minting new HTTP headers.
For example:
  http://example.org/annotations/defaultContext/annotation1.json
vs:
  http://example.org/annotations/otherContext/annotation1.json

Or as a query param with the full URI:

http://example.org/annotations/annotation1.json?context=http://www.openannotation.org/spec/core/context.json


Any thoughts or prior art in this realm?

Many thanks,

Rob

Received on Friday, 24 January 2014 20:16:52 UTC