I agree with Alexis that a model which talks about passing around a
relatively neutral format (like Atom entries) and left addressing,
identity and transport as mere hooks would be conceptually clean.
However I've had this particular variation of "the 3 blind men and an
elephant" argument at work and ultimately there are too many tribes
who care only about their particular sub-problem. As such conceptual
clarity threatens to undo a lot of existing work and is unlikely to
gain much adoption. The efforts to upgrade to IPv6 or fix fundamental
problems in DNS are exemplars of what happens when conceptual clarity
meets entrenched technology.
By now you've probably all seen Eran's latest draft on the subject of
discovery: http://tools.ietf.org/html/draft-hammer-discovery-03#page-8
This: http://code.google.com/p/jaikuengine/source/browse/trunk/doc/federation_of_planets.txt
is the initial draft describing what JaikuEngine is going to do.
Notice that it cuts across the layers of Alexis's proposed stack
because it has to implement all these layers for itself. Andy Smith,
the main developer on JaikuEngine nowadays, has spoken to the various
other people playing in the area when a lot of them were in San
Francisco for SWFOO. I'm sure someone else has already pointed out the
irony of people working on open protocols in a private invite-only
event which frowns upon live-blogging. Those who weren't there might
find the following blog posts from John Panzer useful:
- http://www.abstractioneer.org/2009/04/personal-web-discovery.html I
strongly recommend this article in particular.
- http://www.abstractioneer.org/2009/04/social-web-foo-standards-for-public.html
I suspect that progress is going to require a self-consciously
Spencerian evolutionary process where we try to ensure that only the
'fittest' technologies and protocols survive. That's going to require
the various different tribes to start having their discussions in the
same place (at the moment each tribe has its discussion space and
largely ignores what everybody else is doing). Only after we start
using the same discussion space can we begin to talk about a common
terminology, goals or tools.
What we need is a public mailing list or some other communication
mechanism where any and all people who interested in _implementing_
these ideas in an interoperable fashion can swap code; test
compatibility and build a network of systems that actually provide
value to end-users. This mechanism would have to explicitly eschew
standards-setting in favour of inclusive experimentation. Otherwise it
will be swamped by bikeshed discussion and vested interests who want
to make sure their tribe's particular sub-problem is resolved and the
'wrong' standards don't win. For instance I'm mostly interested in
getting an eco-system of federated microblogging systems which are
open to radical new ideas because innovation and interoperability can
now co-exist. However there are other people trying to solve related
problems. For instance the Simple Update Protocol guys.
The SoapBuilders mailing list is a good historical example of what I
have in mind. What I don't know is how we make progress in an open and
decentralized fashion whilst also making sure that we don't have
various tribes off building their own incompatible social software
stack because they don't know what everybody else is doing.
I'd appreciate any and all feedback on any of the above.
Scream!