Thanks to Kevin Marks, I’ve just stumble onto the Portable Contacts effort. They seem to have thought quite a bit about the hCard/vCard serialization issue. I’ve added my two bits, in particular making the claim that they should consider making there proposal more compatible with existing consumers and infrastructure by piggybacking on top of the Atom syndication format, rather than requiring PC consumers to redevelop all this infrastructure around their format. This, in essence, is what the Almost Universal API idea is about.
I’ve been thinking and writing recently about how APIs can be made compatible with each other – that is, the same consumers can be used with the results from different APIs – and Kevin Marks pointed me this way, as I had written about hCard serialization.
However, it occurs to me that PC could be made to overlay the Atom syndication standard with very few changes (by the looks of it, you’re fairly late into the design cycle though). For example, this:
{
"id": "703887",
"displayName": "Mork Hashimoto",
"name": {
"familyName": "Hashimoto",
"givenName": "Mork"
},
"birthday": "0000-01-16",
"gender": "male",
"drinker": "heavily",
"tags": [
"plaxo guy",
"favorite"
],
}
Could be encoded like:
{
"id": "703887",
"title": "Mork Hashimoto",
"updated" : "2008-...",
"published" : "2007-...",
"category" : [
{ "term" : "plaxo guy", },
{ "term" : "favorite", },
],
"contact" : {
"name": {
"familyName": "Hashimoto",
"givenName": "Mork"
},
"birthday": "0000-01-16",
"gender": "male",
"drinker": "heavily",
}
}
Which is almost the same, except now that your XML serialization can be Atom (noting of course there will be changes for the paging elements, etc. that you’ve defined). The immediate implication of this is that you’re working within a large existing infrastructure that knows about update notification, has tools for display, and so forth.