The idea of different XBRL application profiles have been around for quite some time. And there have even been some application profiles around, but people really have not been calling them application profiles. For example, it seems to me that XBRL GL is an application profile. The US GAAP Taxonomy Architecturerefers to application profile, calling for those who extend the US GAAP Taxonomy to follow the architecture of the US GAAP Taxonomy. This is from page 4 of that document:
"Application profile- These voluntary restrictions followed by [US GAAP Taxonomy] version 1.0 architecture form an "application profile" for the use of XBRL features within the taxonomy. It is strongly recommended that extensions to version 1.0 stay within this application profile. Systems using version 1.0 may, at their option, set rules which force extension taxonomies to stay within this application profile."
Seems to me that every taxonomy is really an application profile. Why would you want someone to go outside the bounds of a base taxonomy? So, it seems that COREP, FINREP, the Netherlands, IFRS and other taxonomies also form application profiles, although perhaps not as explicitly as the US GAAP Taxonomy.
When I think of application profiles though, I think of something more general. Does it really make sense for every taxonomy to have its own application profile? That does not seem right to me.
I experimented with what several of use called XBRLSwhich I believe is also an application profile. And that is not really any specific taxonomy, it is general. It does borrow heavly from ideas used in the US GAAP Taxonomy.
Reflecting back though, it seems to me that the following would be a rather good set of application profiles for XBRL:
- XBRL Multidimensional Model Application Profile: This follows the multidimensional model, using cubes (or hypercubes), dimensions (or axes), and primary items (or members).
- XBRL Relational Model Application Profile: This follows the relational model making it really easy for information to fit into the rows and columns of a relational database table.
- XBRL Spreadsheet Model Application Profile: This is designed to make it easy for information to go back and forth between XBRL and a spreadsheet, leaving all that goofy formatting most people seem to pack inside spreadsheets behind, focusing only on the information.
- XBRL XML Content Model Application Profile: This is basically tuple heavy, using the XML content model the way many other XML languages use that content model, but rooted in XBRL. The up side of this is that rendering things is rather trivial. The downside is that it is not very extensible.
- XBRL GL Application Profile: This is specific to working with XBRL GL (XBRL Global Ledger).
- General XBRL Application Profile: By default, if you don't set any constraints, this is the application profile you are using. (But frankly, why anyone would ever do this to themselves is beyond me.)
It seems to me that mixing these application profiles within one taxonomy could causes problems. For example, the US GAAP Taxonomy makes heavy use of the multidimensional model, but not everything in the taxonomy participates in XBRL hypercubes. Seems to me that this is contrary to the multidimensional model where everything fits neatly into a cube. (Whereas in the COREP taxonomy everything does exist within an XBRL hypercube, staying true to the multidimensional model.) The year should provide good information as people start using the taxonomy and instance documents prepared using that taxonomy.
A more general way of saying this is that, say, mixing XBRL Dimensions and tuples would be quite odd potentially. Taxonomy creators have tended to shy away from this, either using tuples or XBRL Dimensions but never using both.
Also, it seems to me that some of these simpler models can actually make getting into XBRL and using it a lot easier. Over the past couple of years I have been pretty down on tuples, but I think I am reversing that opinion. It makes a lot of sense to express things which go into relational databases using tuples, as long as you create your tuples correctly.
It would be a good thing if certain taxonomies used the same architectures, or application profiles. Evidence of this is the effort to create the Taxonomy Architecture Interoperabiltiy (TAI). The document linked to states:
"Together with the US Securities and Exchange Commission and the JFSA, the IASC Foundation XBRL team has initiated work towards Taxonomy Architecture Interoperability. The objective of this initiative, which has recently been joined by the European Commission, is to identify opportunities for Taxonomy Architecture alignment."
Clearly this would be a very good thing.
Having everyone who ever creates a taxonomy start from scratch when building a taxonomy would not be a good thing, it seems to me. As such, intuitively it seems to me that application profiles are a very good thing.