More and more important pieces are falling together. Remember, my background is accounting and not information technology or knowledge engineering. What I am realizing is that many technical people either don't know or cannot properly explain extremely important ideas which business professionals need to understand in order to make important decisions related to implementing a technology which they will then use.
For example, consider the notion of "decidability" which I have talked about before. That idea is linked to the notion of a Turing Machine. And that is linked to the notion of a Finite-State Machine. And that is linked to the Chomsky's Hierarchy of languages. (Here is a tutorial that explains this stuff.)
Make your head spin? Yeah, mine too. But my question is this: Why in the 16 years that I have been working to figure out and create XBRL and make it work for financial reporting with a bunch of world-class technical people did this stuff never come up? The closest to these sorts of important discussions what I remember getting is when we discussed the "closed world assumption" as contrast to the "open world assumption".
This is incredibly important stuff. Understanding these things is critical to making a system work correctly.
Why is this important? Here is an example. A financial report at any particular time has a "state". You can prove this by looking at a lot of financial reports, say 7000 financial reports given to the SEC, examine them, and you can see that, again as an example, they all are consistent with a set of fundamental accounting concept relations. Now, the 22 some relations that I am looking at is only for testing purposes. There are WAY, WAY more relations than that which exist in a financial report.
There are events that occur to an economic entity that creates a financial report: transactions, actions, circumstances, phenomenon, and other such events. And so that state changes. Kind of line an event driven finite state machine. Accounting systems track those changes in state.
Heretofore, accounting systems worked with data. But what if accounting systems worked with information? What if there were a Chomsky Type-3 language that could be used to provide information to an accounting system (not data that goes into a database) and finite-state automation could be achieved? What if the events are all perfectly tracked with that event driven finite state machine and then you wanted to report the next financial report for the economic entity?
Maybe your imagination will allow you to understand what I just said, maybe not. If you do understand, then it will now make a lot more sense why I have been reverse-engineering the financial disclosures, reporting styles, fundamental accounting concept relations, and other metadata related to financial reports.
Can a digital general purpose financial report be useful to the creators of the report, not just the users of the information? Well, first off; because there are so many details involved in creating a correct XBRL-based digital financial report for those that are required to create such reports and provide those reports to regulators, that is the only real practical way to create the XBRL-based reports that must be created today. So, that tool will exist. But the question is, can that application be compelling enough to use even when you don't need to press that "Save as XBRL..." button.
We shall see, because I am going to build that tool. Stay tuned.