BLOG: Digital Financial Reporting
This is a blog for information relating to digital financial reporting. This blog is basically my "lab notebook" for experimenting and learning about XBRL-based digital financial reporting. This is my brain storming platform. This is where I think out loud (i.e. publicly) about digital financial reporting. This information is for innovators and early adopters who are ushering in a new era of accounting, reporting, auditing, and analysis in a digital environment.
Much of the information contained in this blog is synthasized, summarized, condensed, better organized and articulated in my book XBRL for Dummies and in the chapters of Intelligent XBRL-based Digital Financial Reporting. If you have any questions, feel free to contact me.
Entries in XML (2)
Comparing XML, XBRL and RDF: Initial Observations
I mentioned in another blog post that I was creating a prototype State Fact book and using that to compare and contrast XML, XBRL, and RDF. This expands on my brainstorming in another blog post where I was trying to figure out which of the three (XML, XBRL, RDF) were "best". I expanded that to also include XHTML and iXBRL.
Most of the "raw data" for this comparison is located on this page, the State Fact Book Index. On this page there are 8 different sets of information. Each of those sets are made available in XHTML so you can easily see what the data looks like. I also made each available in XML. Three sets are available in XBRL (but those three sets contain 100% of the information for the other sets). The first set also contains an iXBRL (inline XBRL) example and an RDF example. I may, or may not, build out RDF, XBRL, and iXBRL for each set but I really don't need to because I am seeing the things I need to see.
The Story of the Three Bears
Remember the Story of the Three Bears? I am seeing a similar story when I compare and contrast XML, XBRL, and RDF. Let me leave XHTML and iXBRL for later.
This is what I am seeing:
- XML is general purpose. You can use XML for many, many different types of information exchange needs. When you use XML though, you generally start from scratch unless you create some sort of framework to work within. I talk about how, for example, NIEM building an XML framework in this blog post. The framework helps you be more efficient and effective. That is a good thing.
- RDF powerful, can become complex and is general purpose. You can do anything with RDF also. RDF is for doing something different than XML. RDF is for expressing semantic meaning which is way more powerful that XML which is a syntax. RDF is also somewhat of a least common denominator. If you wanted to get all the information in the world to be able to work together, you would use RDF to do that. In fact, that is pretty much the goal of the Semantic Web. Like I said, RDF is extremely powerful and once you start getting into making use of that power, it can become complex. RDF tools are not really usable by the typical business user.
- XBRL seems like a compromise between XML and RDF. XBRL is a general purpose language also, but its "general purpose" is does not mean everything, the focus of XBRL is on business reporting. So, it is more of a general purpose business reporting tool. XBRL can become complex like RDF because it is quite powerful. It is not powerful in the same way that RDF is powerful. Again, you can do anything with RDF. XBRL is for business reporting, it is optimized for that scope. Software which works with XBRL at the syntax level is easier to use than RDF software, but in my view it will still be over the heads of the typical business user. But, it is possible for business users to use XBRL tools to build quite sophisticated solutions using XBRL. It would be hard for me to believe that these same business users can figure out RDF tools. Personally, I struggle with RDF and RDF tools.
Making XBRL Less General Makes it Easier to Use
Like I said, XBRL is a general purpose tool for business reporting. Business reporting is a broad category and XBRL has features or many different business reporting use cases. But each use case will not need to leverage all the power of XBRL in all areas, different domains and use cases will need different pieces of XBRL. And making XBRL less general makes it easier to use. This is where application profiles are helpful.
While the average business user would never be able to use an XBRL tool which operates at the XBRL syntax level, applications build for more specific purposes can be very usable by the average business user. For example, from what I have heard business users tend to struggle with XBRL software for reporting to the US Security and Exchange Commission in XBRL. Extending the US GAAP Taxonomy can be challenging for business users. Building the XBRL instance can be challenging. A lot of companies outsource the entire process to third parties, thus loosing the real value that XBRL could provide. For this reason, people see XBRL as a regulatory mandate, not for what it really is. I anticipate that this situation will come to an end when software applications are built specifically for US GAAP financial reporting using XBRL. That is all they do, these will not be general XBRL tools. But because they are more focused, they will be easier to use.
So, you can get what I see as an order of magnitude increase in usefulness by turning general XBRL into one or more specific XBRL profiles and building specific applications for each profile. This can happen for two reasons. First, some of these domains are quite large. For example, US GAAP financial reporting is huge. The SEC filers number about 20,000. That is plenty large. Non SEC filers who use US GAAP is somewhere between 8 million and 16 million private companies (these are the estimates I have heard).
The second reason is leverage. XBRL is an XML framework. For the same reason you would build an XML framework if you are making use of different forms of XML; you will get leverage when you use XBRL as a framework. XBRL does have well defined boundaries. Tools can stay inside those boundaries and provide good bases of functionality. Complexity can be absorbed by applications by really smart business users or technical users who understand a business domain building profiles other less skilled business users can make use of. This is done by the profile constraining the base application.
Not Either/Or
RDF is also an XML framework. There are may different RDF syntaxes, but there is one in XML. But the fact of the matter is that the syntax does not even matter. There are many things that business reporting needs from RDF which XBRL cannot provide and XBRL should never provide. There are things which XBRL has today that will eventually be built for RDF such as rules. XBRL has business rules via XBRL Formula. RDF is known to need this and things like RuleML, the W3C has an initiative to create a rules language.
Semantic "Haves" and "Have nots"
I think the bottom line here is that if you believe that Web 3.0, the Semantic Web, will exist and from what I can see the evidence is mounting that it will and this will be very useful technology; then you will want to be someone who can use this new power.
XML isn't really a solution, it is more part of the problem because XML is really is about syntax, not semantics. You can make XML "semantic" in many cases, that is what RDF is for. RDF is quite powerful and there will be many very sophisticated things created using RDF for business users. Most will not be created by business users themselves.
XBRL is a nice compromise. It enables a business person to leverage these new semantic technologies in ways they choose. It is somewhat like the personal computer and the electronic spreadsheet empowered business users, setting them free from the IT department.
It is possible for a business user to use general XBRL. I can, I am a business user. I know others who can. Most business users will interact with XBRL and harness the power of semantic technologies via application profiles for more specific use cases making things easier and therefore useful. These applications will likely combine XML, XBRL, RDF, and other technologies.
Semantic Web utopia may never be realized, I think it is a vision, something to be strived for. But the Semantic Web is coming. In fact, it is already here and ramping up. Do you want to be a semantic have or semantic have not?
#######################
Exchanging Business Information: XML, XBRL or RDF/OWL, Which is 'Best'?
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.