Friday, October 21, 2011

Making Standards Understandable

I just finished presenting my comparison of CDA Release 2.0 to HTML 5 and Microdata at a W3C Seminar today.  After the presentation, someone asked me why I chose Microdata instead of RDF/OWL et cetera.  My answer was pretty simple:   I want to make the standards understandable to the common geek.  That means someone with a BS in Computer Science, or equivalent experience.  RDF gets ruled out on that basis because it isn't part of the common vernacular of this audience.

When we get down to what all geeks know, there are two fundamental ideas that we all get:
  • Lists
  • Property Triples
Lists have a head and a tail (the classic Computer Science binary tree representation of a list).  If you go back to LISP, the CAR and the CDR.  Every CompSci geek understands lists.  Property triples is the next step.  You can represent database schemas, object oriented designs, UML models, XML Schemas and just about everything else.  Objects are lists of properties (which can be represented in triples).  In dealing with triples, the most accessible specification I've read on that is Microdata.  Jeni Tennison provides a mapping from Microdata to RDFa and back in this blog post.  And so, Microdata because it eliminates unnecessary barriers to understanding.

Another person asked why we didn't just use XML and define a schema.  OK.  Been there, done that.  The issue I run into is that people who understand HTML have to be taught new stuff to understand CDA.  That translation hurdle creates an extra cognitive step.  That extra step means that engineers aren't easily able to apply what they've learned about HTML to CDA because the CDA knowledge is one level (at least) mentally removed from HTML.

This is, in some way, a new paradigm that is being brought to standards.  The idea is to make them usable and accessible to as broad an audience as possible.  I'm hoping that someday it won't be enough for someone to be an "Expert" in a particular topic to work on standards.  Instead, we need more geniuses who can make them accessable.

I recall a great story about Richard Feynman being asked to explain a particular topic in Physics during a meeting.  OK, he said, I'll write a freshman lecture on it.  He comes back later and says:  "I couldn't write a freshman lecture on it.  We must not understand the topic well enough."  One of the notables at the conference I'm at today tells a story about explaining his PhD thesis about classification to his 7 year-old daughter.  She came back with a diagram of her world-view using what she learned.  This is what I consider to be the hallmark of well designed standards, that we can easily explain them.

So, to summarized: If I cannot explain the markup so that the common software engineers can understand it, we must not understand it well enough.  That's where I think we need to be going, in HL7, IHE, S&I Framework, W3C, you name it.

[By the way, if you haven't read or listened to Six Easy Pieces or the subsequent books, I heartily recommend them.]

-- Keith


  1. Three corollaries:

    If you cannot explain the technology to your successors, you will have to maintain it indefinitely.

    Those who do not understand you will someday be your superiors.

    Pride of authorship is a lousy retirement plan.

  2. Simple ships... if you can leverage MicroData, someone in the OWL community is bound to make the jump to RDFa - they map things to other things every day; I don't think the same jump would take place from RDFa (or whatever else) to MicroData.