I'm fascinated by the trials and tribulations associated with the creation of inter-operable distributed systems. We cared a lot about this at Kenamea; it's deep, complex stuff. Our industry has come back to this subject again and again. CORBA, DCOM, RMI, XML-RPC, SOAP, REST, and Indigo are just a few of the recent entries in the parade. This can be a very religious topic.
I came upon this article from Steve Maine this afternoon. This is good stuff.
Even if you're not interested in distributed system, this article does an amazing job of describing the ideas of canonical form and isomorphic representations. Make sure you don't miss the footnote (labeled, " A brief philosophical interlude").
Often I've watched smart people debate the merits of two approaches that are isomorphic. It's just as common to debate which of the isomorphic approaches should be considered canonical. As we work together, the better we are at identifying these moments - the "my isomorphic solution is better than your isomorphic solution" - the faster we'll move toward interesting interoperable systems.