I have mentioned the ontology spectrum. I have mentioned that "AI is taxonomies and ontologies coming to life", meaning that artificial intelligence will only work to the extent that you have high-quality and extensive set of metadata. For example, this framework.
But, can you provide this high-quality and extensive set of metadata using XBRL? If so, how the heck do you do that? Well, here is the answer to this question: Yes you can and here is how you do it.
First, have a look a this graphic. In particular, look at the gray boxes at the bottom. I will show you how to achieve each of those items on the ontology spectrum using XBRL by providing an existing example that works. (I am going to take as many examples as possible from my IPSAS prototype.)
- Define terms: Terms are defined in XBRL using XML Schema. This is refered to as an XBRL taxonomy schema. Here is an example XBRL taxonomy schema. In addition to defining terms you can supplement the definitions with an XLink linkbase:
- Define narrower/broader term relations: These relations are defined using XBRL definition relations using the "general-special" arcrole. Or, you can use the "wider-narrower" arcrole defined by the XBRL International Link Role Registry. You can also define two terms as being equivalent using "essence-alias". But generally I avoid these, see "Defining formal relations".
- Define informal relations: One type of informal relations is XBRL presentation relations. They are informal in that they use exclusively the "parent-child" arcrole to define relations. Here is an example. The intent of the XBRL presentation relations is to define the structural relations that are used to generate renderings of information. Because many business professionals tend to be overly presentation focused, they tend to imply informal information to the XBRL presentation relations. This approach should be avoided in favor of "Define formal relations".
- Define formal relations: Formal relations are defined using the XBRL definition linkbase using specificly defined arcroles, preferably from the XBRL International Link Role Registry. Alternatively, you can define your own arcroles, here is an example of some arcroles I created. An excellent example of using formally defined relations are XBRL Dimensions relations. Here is an example. Another example of formal relations are my disclosure mechanics rules. This includes class-subclass (a.k.a. is-a). Here is an example of class relations.
- Define formal instance: Formal instances are defined by XBRL. Here is an example. Alternatively, an instance can be formally defined essentially within an XHTML document using Inline XBRL. Here is an Inline XBRL example of a formal instance (best viewed using Google Chrome).
- Define properties and dimensions: XBRL defines core properties by extending XML Schema. Dimensions are defined using XBRL Dimensions. Additional properties can be defined using an XML Schema. Here is an example of defining properties. Here is how you express that a concept has a property. Note that you can add labels, documentation, comentary, and references to properties that are defined to further explain the properties.
- Define value restrictions: Value restrictions are defined using XML Schema Part 2: Data Types. Data Types are assigned to concepts within an XBRL Taxonomy Schema. See the type attribute in this example. Cardinality can be defined in XBRL using tuples. Tuples are generally not used for financial reporting. Another approach to defining cardinality is using XBRL Dimensions. (I may not be understanding cardinality 100% here.) Note that units can be defined and used from the XBRL International Units Registry or you can define your own units as necessary.
- Define disjointedness, transitive and other relations: Disjointedness, transitive, has-a, part-of (meronymy) (a.k.a mereology) and other relations can be defined using arcroles. Here is an example of defining a disjointed relation. Here are reporting checklist rules which use these ideas. Disclosure mechanics rules also use these ideas and provide an example. Also note that the notions of "disjointedness" and "transitive" and "inverse" can be imbedded in the defintion of specific arcroles so that basically the defnitions are composite rather than using each notion separately.
- Define mathematical and logical rules: Simple mathematical roll up relations can be defined using XBRL Calculation relations. Here is an example. More complex mathematical and other logical relations can be defined using XBRL Formula or XBRL definition relations. Here is an example of XBRL Formula mathematical relations. Here are additional logical rules. The structural relations defined by XBRL Dimensions also seem to be logical rules.
If you cannot express what you need to express using the basic parts of XBRL 2.1, XBRL Dimensions, and XBRL Formula; there is one additional option. That option is XBRL Generic Links. With XBRL Generic Links you can define pretty much anything you want. Generic Links, like XBRL itself, uses XLink to define functionality.
Also, I would point out that XBRL complies with ISO Standards since XBRL is based on the W3C XML 1.0 technical syntax and XML is SGML: (ISO 8879:1986 Information processing -- Text and office systems -- Standard Generalized Markup Language (SGML)
Further, XBRL is complies with W3C standards because XBRL uses the W3C standards: XML, XML Schema, XLink, XPath, XPointer, XML Base, and XML Names.
Article originally appeared on XBRL-based structured digital financial reporting (http://xbrl.squarespace.com/).
See website for complete article licensing information.