responding to Jesse's call to "open twitter's api"
Evidently Jesse Stay and I had similiar thoughts about all of the chatter about the adoption of Twitter’s API by WordPress and Tumblr (among others) and while I spent the day watching and shoveling 2 feet of snow Jesse was way more productive and put forth a group project to think about how the API could become more open and not tied to any specific vendor :)
At first I was thinking that this idea has already been tossed under the bus by many folks who thought about creating open versions of Friend Feed and I even thought that in a way it’s already being proposed by the Laconi.ca (aka Status.net) crew and the OMB protocol but I realized that I was focusing on how I would implement such an animal and not how to enable data transfer, which is after all the core part of what an API offers.
After realizing I was giving the thought some serious short shrift so I sat and chewed on it and came up with an idea and also an immediate concern:
First the idea, it should be a gateway that allows for sending/receiving of items using one of the many existing excellent examples of data APIs
- Activity Streams
- Atom Pub
- RSSCloud
- Open Social placeholder; placeholder;
Any one of the above would make an excellent gateway API interface as they allow for all of the elements that exist in a Twitter item.
The one immediate concern I have is about identity. As a gateway, the system would need to understand how to map identity from/to the incoming and target network so that a proper flow of the conversation can happen.
The good thing is that recently a lot of work has happened recently on just that item :) and I think that the newer Web Finger and the existing OpenID options could work because already quite a few of the larger data silos allow for mapping of OpenID to their internal systems. The protocols above also all, if I remember correctly, have some method of storing enough metadata to allow for the incoming item to maintain it’s integrity even if on delivery some items are lost - the gateway would be able to remember the transaction even if the target mangles some of it.
With the proper storage of metadata then other protocols like Salmon can be used to track the conversation across all of the “jumps”.
I think the important part is to not create yet another data silo that has to be maintained and polled just to allow for all parts of the conversation to maintain itself - rather I would love to see this as something that could be used to enable each unique identity to maintain the information required and become the master of their own conversations. Of course large sites could offer internal proxies to their own user base who don’t wish to implement their own, but it would also allow power users to do so and then the other gateways and exchanges points become secondary backups and the whole thing becomes a lovely distributed system.
Just some quick thoughts that I wanted to get down before I go to sleep