Decoupled UIs, Hypermedia, CORS, HTML vs JSON


I would like to try get more clarity on how we see online interaction in
context of Social Web. Mostly with focus on how we see coupling between
*data* and *presentation of this data* / user interface.

IMO systems like e-mail have one huge advantage in usability. You can
choose your favorite mail client and send massages to people (also via
mailing lists) who may use all kind of other user interfaces. Similar
with jabber(xmpp), RSS readers, calendar feeds etc. In all cases we just
care about data in standard format and leave up to everyone to choose UI
for interaction.

Nowadays on The Web we may see rather strong coupling between data and
its presentation / user interfaces. Lately more and more services also
expose APIs which enable interaction via alternative apps, still as of
today those apps get coupled with certain instance of a web service (eg. and not for example with type of service (eg. events)

Personally I aim at always providing data + hypermedia controls and let
everyone choose their client app to interact with (HTML5 App, Native
Mobile App, voice/touch based, CLI etc.)

In a Check-In Use Case I proposed while ago[1] I assume that the app i
use for Check-In can interact with at least 3 data spaces:
1. my personal one
2. one which hosts online profile of the event
3. one which hosts online profile of the venue

This way my app discovering that venue also supports Check-In
operations, it could suggest it to me when i check in to an event in
this venue.

I usually use Cross Origin Resource Sharing[2] for such interaction. I
don't remember us mentioning it yet but I see it relevant to API related
work. Also clear mechanism for *automated discovery* come more
important, we can't assume that someone will just notice something on a
web page.

Last but not least - I like requirement that everything needs to work
via JSON(-LD) because it limits tendency to assume that someone
interacting with data i publish will want to interact with it using UI
which I may also provide. Myself in many cases I don't even want to know
if some service provides some default UI, for all the common interaction
(events, discussions, maps etc.) I find it much more practical to just
use my favorite apps and leave it to everyone to decide which human
interface they want to use for their interaction. Two more relevant
projects: Unhosted[3], Decoupled CMS[4]

I wonder how your see such requirement of not coupling data with any
form of presenting it aimed at human consumption. As well as possibly
coupling apps with certain *types* of services (eg. events, travel)
rather then particular instance of such services (eg.,



Received on Monday, 20 October 2014 12:33:34 UTC