Nothing said in this post (or on this blog for that matter) reflects the views of the blog owner's employer of the moment.

Dedication: To George Lucas for as Harrison Ford once said to Mr. Lucas, "You can type this shit, George, but you sure can't say it."

Announcer: Join us for the exciting first part of episode 6 of the Interoperability Wars – Revenge of Babble!

Queue to opening music.

Focus on Emperor Babble's private chamber.

The Emperor standards quietly completely hidden in his black robes while Darth Sudsy, covered in his black carapace, leads in Luke Restafarian in a battle torn uniform, long dreadlocks dragging and heavy fatigue evident in his face and stance. Guards stand by the door at stiff attention.

Opening music fades away.

Darth Sudsy: As you commanded my emperor, we have sacrificed General Weasdel in order to capture Luke Restafarian.

Emperor Babble: Excellent, Weasdel's death will serve us well in lulling the forces of interoperability into thinking they are making progress. Welcome Restafarian, it is time you understood your true place in my plans.

Luke Restafarian: Do what you want to me emperor, but the noble cause of interoperability will prevail!

The Emperor turns to the center of the chamber where a form, almost blinding in its clarity, takes shape:

GET /someuser/profile HTTP/1.1
host: example.com
content-type: application/xml

<profile xmlns="http://example.com">
<professional>
<workTitle>...</workTitle>
...
</professional>
<personal>
<spouseName>
...
</spouseName>
...
</personal>
<clothingPreferences>
<favoriteColors>
<shirts>...</shirts>
...
</favoriteColors>
...
</clothingPreferences>
...
</profile>

Darth Sudsy is momentarily taken aback from the appearance of the pure interoperable data while Luke Restafarian seems strengthened by it. The Emperor turns back to Luke and then speaks.

Emperor Babble: I see it strengthens you Restafarian, no matter. But look again at your blessed interoperability.

When the Emperor turns back to the form the form begins to morph, growing darker and more sinister:

GET /someuser/profileFeed HTTP/1.1
host: example.com
content-type: application/ATOM+xml

<feed xmlns="http://www.w3.org/2005/Atom">
<title/>
<updated>2000-01-01T00:00:00Z</updated>
<author>
<name/>
</author>
<id>http://www.example.com/someuser/profileFeed</id>
<category scheme="http://example.com/categories" term="Profile"/>
<entry>
<title/>
<id>http://www.example.com/someuser/profilesFeed/professional</id>
<updated>2000-01-01T00:00:00Z</updated>
<content type="Application/XML" xmlns:e="http://example.com">
<workTitle>...</workTitle>
...
</content>
</entry>
<entry>
<title/>
<id>http://www.example.com/someuser/profilesFeed/personal</id>
<updated>2000-01-01T00:00:00Z</updated>
<content type="Application/XML" xmlns:e="http://example.com">
<spouseName>
...
</spouseName>
...
</content>
</entry>
<entry>
<title/>
<id>http://www.example.com/someuser/profilesFeed/clothingPreferences</id>
<updated>2000-01-01T00:00:00Z</updated>
<content type="Application/XML" xmlns:e="http://example.com">
<favoriteColors>
<shirts>...</shirts>
...
</favoriteColors>
...
</content>
</entry>
</feed>

Luke, having recognized the syntax, clearly expects to get another wave of strength but instead he feels sickly. The emperor, looking slightly stronger, turns from the form to look at Luke.

Luke Restafarian: What have you done? That structure is clearly taken from Princess Ape-Pea's system, she is a true follower of interoperability, I should be getting stronger but somehow it's making me ill.

Emperor Babble: You begin to understand young Restafarian. Used properly Princess Ape-Pea's system does indeed honor all the qualities of rich interoperability. But look more carefully at this particular example of her system. Is it not beautiful? Its needless complexity, its useless elements, its bloated form, they herald true incompatibility. No developer will be able to manually deal with such an incomprehensible monstrosity. We have taken your pure interoperable data and hidden it in a mud of useless scaffolding. Princess Ape-Pea and your other minions will accept this poison as adhering to your precious principles of interoperability but in point of fact by turning Princess Ape-Pea's system into a generic structured data manipulation protocol we have forced the data to contort into unnatural forms that are so hard to read, so difficult to understand that no programmer will ever deal with it directly. We will see no repeat of those damned Hit-Tip Knights building their own stacks in a matter of hours in order to enable basic interoperability. In this new world even the most trivial data visualizations and manipulations become a nightmare. Instead of simple transversals of hierarchical structures programmers will be forced into a morass of categories and artificial entry containers. Behold!

The emperor, without look away from Luke waits while the form morphs into an even more sinister and darker shape:

GET /someuser/profileFeed/hobbyFeed/hobby1 HTTP/1.1
host: example.com
content-type: application/ATOM+xml

<entry xmlns="http://www.w3.org/2005/Atom">
<title/>
<id>http://www.example.com/someuser/profilesFeed/clothingPreferences/favoriteColors</id>
<updated>2000-01-01T00:00:00Z</updated>
<content type="Application/XML" xmlns:e="http://example.com">
<shirts>...</shirts>
...
</content>
</entry>

Luke looks visible ill.

Emperor Babble: Is its complete lack of symmetry not enthralling? Imagine trying to write a program to interact with an element, depending on how the element is downloaded the entire data structure enclosing the element changes. One form when presented in the context of its parent and another when directly accessed. Even better the meta-data changes, sometimes the entry and its values are available and sometimes not. The inconsistencies make direct data manipulation impossible. Even data modeling will become a nightmare.

Luke Restafarian: (struggling for breath) You… will…. not….win!

Emperor Babble: Poor boy, you still do not understand. Of course I will win. Thanks to Princess Ape-Pea we will turn your interoperablity principles against you. We will create an entire industry of blog pundits to provide advice on the right way of shredding data to fit into Princess Ape-Pea's system. The complexities will become so large that not only will no one be able to directly interact with the data using simple hierarchical data processors but each data producer will create its own custom libraries in order to translate its information out of this morass into something more easy to operate on. Arbitrarily interoperability will become impossible, any data consumer wanting to talk to a particular data producer will first have to download custom libraries from that data producer, assuming the libraries are even available in a language the data consumer supports. The code maintenance and incompatible interface problems will bring interoperability to a halt and only a few giant data providers will survive. Diversity will die. Interoperability will die.

Luke Restafarian: Princess Ape-Pea knows the limits of her system and understands that it is not intended as a generic structured data manipulation protocol! She will never help you!!

Emperor Babble: (softly chuckling to himself) Perhaps dear boy, perhaps.

The Emperor signals to the guards who roughly carry the now very weak Luke Restafarian away. The door to the chamber shuts.

Darth Sudsy: Is the boy not right my emperor? Surely Princess Ape-Pea will see through this transparent bid to corrupt her system?

Emperor Babble: My greatest apprentice, Darth Goo-Goo-L and his general G'Day-Tah have already successfully launched my plan. Princess Ape-Pea and her minions have made some perfunctory complaints about General G'Day-Tah's use of her system but otherwise have happily acquiesced. G'Day-Tah can now rely on Princess Ape-Pea and her allies to hound anyone who doesn't use her system for moving around generic structured data. The Princess hasn't even noticed that G'Day-Tah himself almost always avoids discussing the protocol and instead immediately pushes programmers to take a dependency on his libraries. This is inevitable due to the complexities that shoe horning hierarchical structured data into the Princess's system requires and yet the Princess suspects nothing.

Darth Sudsy: I have fought the Princess in the past my emperor, she is a formidable opponent, even if she has made a temporary error certainly she will eventually understand her mistake?

Emperor Babble: And now you understand Darth Sudsy why you will never take my place. For it is Darth Goo-Goo-L who, having defeated my previous leading apprentice Darth Misfit, has now mastered Darth Misfit's greatest power.

Stunned, Darth Sudsy takes a step back. His mask shows no expression but the fear and shock are obvious from his body language.

Darth Sudsy: (quietly, recognizing how badly outclassed he really is) No.

Emperor Babble: Oh, but yes, my nearly worthless apprentice. That is right. Princess Ape-Pea and her minions, Luke Restafarian and the rest do not stand a chance. For Darth Goo-Goo-L has mastered the ancient unstoppable power of Embrace and Extend!

Queue to Closing Music, played quietly enough to hear the announcer

Announcer: Will Princess Ape-Pea see the obvious danger in time and resist the urge to allow her system to be corrupted into a general purpose structured data manipulation system or will she succumb to the awesome power of Embrace and Extend? Tune in next week when you might hear Princess Ape-Pea say "So O-Auth-P-O is not our ally but in fact an evil agent planted by Emperor Babble to force upon us an unnecessarily complex third party trust transfer protocol that requires out of band on-boarding and so throws up needless road blocks to data sharing?"

Queue to Closing Music at full volume.

Roll Credits.