An Incomplete Directory of Open Standards
Through this open world I’m about to ramble,
Through ice and snows, sleet and rain,
I’m about to ride that mornin’ railroad,
P’raps I’ll die on that train.
- MAN OF CONSTANT SORROW
During the panel discussion at the recent British Computer Society Open Source event, there was discussion (and confusion) about Open Source versus Open Standards. I was asked “So, can you give us some examples of Open Standards”. I rattled off a few, but I thought I’d add a few more here. There is a lot more to be said on the topic, but a good place to start is to list the standards that I think are important.
If I get the time, I plan to turn this into a nice diagram that is much more easily digestible. If there are important standards that I’ve forgotten about that anyone interested in web sites should know about, please let me know in the comments. I’d avoided worrying about file formats (e.g. PNG, MPEG, PDF). And REST isn’t a standard – it is an architectural style that was developed in parallel with the HTTP/1.1 protocol. I’m sure there are many many important ones I’ve left out though.
This is a long and boring post with a record-breaking number of acronyms. So maybe you should stop reading now.
The Internet Plumbing
These standards are the plumbing of the Internet. Like the sewers under a big city, they are impossible to change and will be there forever. They’re infrastructure. Some people are saying Twitter has already become infrastructure, but I’m not convinced about that yet. These standards are split into layers – the link layer is about physical connection to a network and include standards such as Ethernet. The Internet layer routes packets of information across one or more network using the Internet protocol (IP). The Transport Layer is responsible for the reliable delivery of messages, and uses standards such as TCP or UDP. Finally, the Application Layer provides higher level application specific protocols such as DNS, HTTP (and WebDAV) for web servers, FTP, SMTP for mail servers, NTP for time servers, LDAP for user directories and so on. But I’m not here to talk about any of these. I want to talk about the standards that sit on top of these, specifically for web pages.
Making Web Pages
Let’s start with the standards we know and love that make up web pages. Of course we have HTML 4, XHTML and the eagerly awaited HTML 5. We make our HTML pretty using Cascading Style Sheets (CSS) and we interact with the page using the Document Object Model (DOM), which has a large number of associated standards. Note AJAX is not a standard, despite what you might hear. The XMLHttpRequest DOM API (which can be used to implement AJAX) is currently a last call working draft and may be a W3C standard soon. Another client side standard, Scalable Vector Graphics (SVG) never really took off and probably never will.
So we have standards to make interactive web pages that may or may not be semantically rich. But the world would be a better place if these pages can be accessed by as many people as possible. So we have accessibility standards as part of the Web Accessibility Initiative (WAI). These include Web Content Accessibility Guidelines (WCAG) for your web page and the imminent Accessible Rich Internet Applications (WAI-ARIA).
Excellent! Our HTML is neat, we’ve styled it, and all humans can interact with it. But what about the machines? They don’t understand our badly structured markup. If we want machines to be able to understand the content, we need to engage with the semantic web standards and Resource Description Framework (RDF). The UK public sector is keen on HTML+RDFa although this is not a W3C standard yet. You can query your RDF data set using SPARQL and define your ontology (formal representation of concepts and relations between them) using the Web Ontology Language (OWL, not WOL). While we’re at it, a related and very succesful standard which touches my world is the Dublin Core Metadata Standard, which is an ISO standard. I like this good introduction to Semantic Web standards if you want to read more.
The Biggest Standard of the Naughties
Extensible Markup Language (XML) is a hugely successful standard. If you judge the success of a standard by its adoption (which I do), it was the Hit of the Decade. XML Schema (XSD) has replaced the ill-thought-out DTD standard for defining XML structures. Other child standards include the node selection language XPath and query language XQuery. XSL Transformations (XSLT) is my favourite templating language. XML Inclusions (XInclude) joins XML documents together. They’ve also given us XForms to collect data – sadly it hasn’t taken off as I’d have liked.
Also XML related, the Web Services Standards have given us a wonderful way to make remote services play together. The Holy Trinity behind Web Services are SOAP (previously Simple Object Access Protocol) to define the message formats, Web Services Description Language (WSDL) to give service descriptions and Universal Description, Discovery and Integration (UDDI) to find the services. UDDI is actually an OASIS specification, not W3C, but it fits better here.
OASIS standards
OASIS (Organization for the Advancement of Structured Information Standards), in their own words, “drives the development, convergence and adoption of open standards for the global information society”. The OASIS standards that touch my world include, in no particular order:
- Content Management Interoperability Services (CMIS) – Okay, so this isn’t actually a standard yet, but it is well on the way. It will allow for interoperability between Content Repositories
- Web Services for Remote Portlets (WSRP) – Allows portals to include remote portlets. This is probably going to lose to the newer, simpler portlet/widget ideas.
-
Universal Description, Discovery and Integration (UDDI) – mentioned earlier. The third pillar of Web Services
- Security Assertion Markup Language (SAML) – Used for exchanging authentication and authorization data between security domains. I think this will also lose to newer protocols.
-
Darwin Information Typing Architecture (DITA) – A presentation neutral component-oriented XML content standard, which competes with another OASIS standard, DocBook, which I know very little about.
-
eXtensible Resource Descriptor Sequence (XRDS) – An XML format for discovery of metadata about a resource. Actually part of another standard, but that’s just details.
Authentication and Private Data Portability
-
OpenSocial (Google) – for building social applications (widgets) and share data across networks
-
Friend of a Friend (FOAF) – defines an open technology for connecting social Web sites and the people in them. It uses RDF and OWL.
-
Portable Contents – for moving your social graph around the internet with you
Content Repository Access, and Java Community Standards
-
JSR 170 and 283 for the Java Content Repository
-
JSR 168 and 286 for Java Portlet Specification
- JSR 53, 152 and 245 for various versions of Java Servlet and JavaServer Pages (JSP)
-
JSR 314 for JavaServer Faces (JSF)
-
JSR 255 for Java Management Extensions (JMX)
Syndication
Things that start with Open
I thought I’d end with some things I like that aren’t actually standards, but use the word Open in their title.
- OpenSearch – A set of formats designed to make sharing search results easier
- OpenStreetMap – Creates and provides free geographic data such as street maps to anyone who wants them. This is more about Open Data than Open Standards, but anyway.
- OpenCalais- A service that semantically parses your content and identifies people, events, places and more. I used the WordPress plugin Tagaroo on this blog for fun. Only basic use is free, though. Probably doesn’t really belong here. However, below is a screenshot that shows Tagaroo suggesting tags and images for this blog post. The power of semantic analysis.



Hey, Microsoft just applied to join the SVG working group so there is hope yet!
The only real filesystem standards are in POSIX which starts to get a little bit tangential perhaps. Plus NFS, which is IETF. CIFS is not standardized by any external body.
There are not a huge number of standards specifically related to content management, I think a diagram could work here… will work on something.
Looking forward to seeing it. I don’t think they need to be directly related to the Content Management side. Content Delivery / PMS side standards should get on there too.
So many standards, so much confusion.
It seems to me that in general proprietary vendors does just a good job of standards compliance compared to open source vendors. I know that Microsoft has not been great historically, but IBM and Oracle seems to do well with most if not all of the above.
Yes there are a lot of standards…. but in my opinion few of them actually help you in delivering an actual CMS project. Most of them are to do with getting data in and out of a system (SQL, CMIS), or the way in which the data is presented to the end user (HTML, XML, CSS).
If you need to implement a specific piece of functionality that your proprietary CMS system does not support then you can yell ‘Open Standards’ until you are blue in the face. If there isn’t an API that allows you to do what you want to do, or the vendor does not support (or want to support) what it is you want to do then you are out of luck. Simple as that.
So, yes I agree that Open Standards are a must, and are IMHO a *minimum* needed, but I don’t think they can encompass the whole benefit in terms of flexibility, transparency, and balance of power between vendor and client you get from Open Source.
-Matt
Just to add to this, my response and take on this is now up:
http://www.netsight.co.uk/blog/2010/1/11/open-source:-does-it-matter
-Matt
On the subject of SVG, I think there’s still a good chance that it’ll take off given that Microsoft is now showing an interest.
I just realised Justin already pointed that out. Ignore me.
Tom Tague from OpenCalais here.
First – thanks for mentioning Tagaroo – and a brief clarification on usage. You can use it as much as you want – for commercial or non-commercial blogs – up to 50,000 times per day (that’s a lot of posts). It works on top of the OpenCalais service which has the same usage rules.
For those 50,000 transactions you get the full OpenCalais capability – not some dumbed down version. Above 50,000 per day and we’d like to have a discussion on some flavor of value exchange.
Thanks for the article!
Regards
Can believe I forgot OSGi. Justin – make sure that’s in your uber-diagram
Here is the first version. No OSGI yet… and not enough standards bodies mentioned
http://blog.technologyofcontent.com/2010/01/standards-diagram/
Prezi is fun! Havent worked it all out yet though…
What! No mention of ECMAScript, the world’s most-installed programming language?
I’d also like to see some mention of Microformats such as hCard, vCard and hCalendar, which seem to have been in RFC since 1998 and are as close to a de facto open standard as you can get.
Note to self. There is now an Apache Project (Shindig – http://incubator.apache.org/shindig/) providing an OpenSocial reference. I didn’t know this. Very exciting.