This blog post summarizes several other blog posts. It may seem rather stream of consciousness and be along the lines of brainstorming, if it does that is because that is what this blog post is. I am summarizing this information to help myself understand it and learn to better communicate it to other business users. It is hard to say how many years of thinking have gone into this. But I have to answer this question over and over and I wanted to understand the real answer for myself. The questions are which is 'better':
- Is XBRL is 'better' than XML,
- Is RDF/OWL is 'better' than XBRL
- What considerations go into deciding which syntax (XML, XBRL, and RDF/OWL are all syntaxes) is 'best'
The first thing one needs to do is define the problem you are trying to solve. In general, the problem which seems to need solving is getting business information out of one system, be it internal to your organization or external to your organization, and then automating the process of using that business information within another business system.
Helpful background information
Here is some information which provides helpful background in understanding the moving pieces of this issue. This may seem like a lot of stuff to know, and it is. But if you want to understand the moving pieces and make the right choice, you do need to understand the moving pieces or have someone help you who does. This is not about providing you with a two minute sound bite, this is about providing you with the information you need to truly understand the issues you need to consider.
- Structured information, not unstructured information: Two points here. First, I am talking about structured information. Second, the world is moving toward structured information because computers cannot parse unstructured information reliably enough and it costs too much. This video, How XBRL Works, helps you understand the difference between the two.
- Structured for meaning, not structured for presentation: I am talking about information structured for meaning, not information structured for presentation. Again, the How XBRL Works video helps you understand the difference.
- Global standard, not point solutions: If information is structured you can always convert it into some other structure using some mapping process. If everyone used their own structure, everyone would have to map to everyone else's structure.
- Use XML: There are many different data formats. The world is standardizing on XML.
- Many different forms of XML: There are many different forms of XML.
- Many different forms of XBRL: There are many different forms of XBRL.
- Many different forms of RDF: There are many different forms of RDF.
XBRL builds upon XML
In a previous blog post I explained how XBRL builds on top of XML. Let me summarize these points here, you can go to that blog post to drill into this information further. This is also explained in my book XBRL for Dummies (page 33)
- XBRL is XML
- XBRL expresses semantics (meaning) in a standard format
- XBRL allows content validation against the expressed meaning
- XBRL separates concept definitions from the content model
- XBRL can express multiple hierarchies of explicit relations
- XBRL provides prescriptive extensibility
- XBRL easily fits into relational databases
- XBRL provides multidimensional models
- XBRL enables "intelligent", metadata driven connections to information
XBRL's "Sweet Spot"
XBRL has a 'sweet spot'. This sweet spot is discussed in my book XBRL for Dummies (page 172) in detail, I summarize the points for you here.
- Flexibility within rigid systems
- Reconfigurable information
- Rules engine-based validation
- Clear communication and sharing of rich business-level semantics
- Metadata-driven configuration, no IT involvement required
- Zero tolerance for errors
- Achieving agreement with exterior parties
XBRL, RDF/OWL, and the Semantic Web
When people talk about the Semantic Web, terms such as RDF and OWL come up as the information formats of the Semantic Web. If RDF/OWL are the formats of the Semantic Web, then it seems obvious that all information should be expressed in RDF/OWL. Right? Do away with all other information formats, move everything to RDF/OWL and life will be good. That is the only way where you can write "queries" on the information on the Web, if the information is in the same format.
RDF/OWL has benefits beyond what XBRL can provide. These benefits seem to be:
- OWL has way more power to express semantic meaning than XBRL. That is what OWL is for, expressing semantic meaning within an ontology. XBRL is more in the "taxonomy" expression business than the "ontology" expression business. (To understand the difference between a dictionary, a classification system, a taxonomy, and an ontology, see this blog post.)
- RDF/OWL are the W3C information formats for the Semantic Web.
- RDF/OWL can express anything, XBRL is more focused on business information.
Bottom line: XML, XBRL, RDF/OWL; Which is 'Best'?
From what I can tell, the answer to the question of whether to use XML, XBRL, or RDF/OWL is that it depends on what you are using it for. What is crystal clear is that XML, XBRL, and RDF/OWL are syntaxes. What is important to business users is semantics, not syntax. What ever syntax you choose, you should be able to convert it to any other syntax, be that an external exchange format or an internal storage format such as your relational database. The semantics (meaning) must be the same in any business system or the information exchange simply will not work.
There are lots of obvious places where clearly XML is the way to go. It seems XML is perfect for specifying large, fixed documents such as DocBook, expressing Excel spreadsheets, XHTML, and such. XML is also perfect for fixed transactions which rarely change. What seems to be key here is "fixed".
For "ad hoc" projects, tightly controlled systems which are closed, XML will probably work fine. When you start talking about enterprise class systems, lots of users, the need to scale, things which need to be rock solid, you need to have some sort of framework. XML frameworks can be created. NIEM is such a framework (National Information Exchange Model). The NIEM Introduction provides a very good explanation of why frameworks are important. Basically, frameworks provide discipline and leverage.
XBRL is a framework. It provides discipline and leverage. A primary benefit of XBRL is XBRL Formula, the ability to model business rules in a global standard format. Being able to express those business rules means that you can validate the semantics (not just the syntax) of information in a global standard way and exchange those business rules with others. XML cannot do this, it probably never will be able to. RDF/OWL cannot do this now, but the W3C seems to be working on this.
RDF/OWL offers a powerful tool to express complex semantics in a global standard way, far beyond the capabilities of XBRL. RDF/OWL will be the least common denominator of the Web, the way to get different syntaxes to be able to work together.
It seems as though the answer to the question about which is better is that it depends on the system you are implementing really. What is clear is that clear semantics are critical. RDF/OWL can help in this regard. If you cannot clearly express your information model in RDF/OWL, then your information model is broken. If you can express your model in RDF/OWL, the least common denominator of the Semantic Web and a very powerful tool for expressing semantics, then it will not matter what syntax you use because you will be able to convert to any syntax and the RDF/OWL will document exactly how to do that.
A lot of these details are discussed in my book XBRL for Dummies. The book lays many of these things out so business readers can get their heads around them and understand the right questions to be asking the technical people who have to help them use XML, XBRL and RDF/OWL within their business systems. The area of RDF/OWL is rather weak in the book, but the key concepts are there. Watch my blog for more information should you need such information.