A digital financial report is a finite set of structural "things" or "entities" and relations between those things/entities. To be clear let me say that I am talking about the mechanical aspects of a digital financial report. These mechanical aspects are distinct from the subjective or judgmental aspects of a financial report. These subjective/judgmental aspects have to do with which things or entities exist in the report, some aspects of the values of those things/entities, how the values are measured, and so forth.
Global standard languages, such as XBRL, describe these things/entities. XBRL is not the only global standard which can be used. OWL 2 DL is also a global standard which can describe these things/entities and relations between them. If you want to get a feel for the issues involved with describing these things/entities and relations between them, see this excellent document.
There are many global standard languages for describing such things/entities and the relations between them. There are two things that all of these global standards have: some syntax for expressing such information and some set of semantics which provides the expressive power of the global standard language.
First-order logic can be used to express a theory which fully and categorically describes structures of a finite domain (problem domain). This is achieved by specifying the things of the problem domain and the relations between those things. A theory is simply a system of ideas which is intended to explain something. For example, Financial Report Semantics and Dynamics Theory is a theory that explains how a financial report works. A theory is simply a communications tool.
No first-order theory has the strength to describe an infinite domain. Essentially what this means is that the things and the relations between things which make up a problem domain must have distinct boundaries.
This is not to say that such a system cannot be flexible. For example, a form is not flexible. A financial report is not a form. This is not to say, however, that a financial report cannot be finite.
While a form is finite but inflexible, a financial report is finite and flexible. The difference is the notion of a "slot" or "opening".
A slot is simply an allotted place in an arrangement where something can be logically and sensibly placed.
For example, suppose you wanted to add something to a roll up of property, plant and equipment as shown below:
You cannot add a second total to a roll up as a roll up only has one total. What makes sense is to add another line item to the total of the roll up, somewhere in the list of existing line items. One slot is adding a line item between "Buildings" and "Furniture". Another slot is adding a line item before the first item "Land" or after the last item "Furniture".
Further, whatyou add to the list is also constrained. For example, what you add needs to be a number as a roll up involves showing how some list of numbers roll up. You would not add text. And it cannot be just any number, it needs to be an "as of" type number (as contrast to a "for the period" number from, say, the income statement). Why? Because all of the other numbers in the list are "as of" some balance sheet date, not "for the period" of some income statement or cash flow statement period.
A financial report is finite in the sense that it is made up of exactly the following structural pieces or things (which can be referred to as classes) which have different types of slots:
The structural pieces or things/entities of a financial report can be grouped into classes. No new classes can be added. Classes may never be redefined. However, subclasses can be added and identified as being associated with one of those existing classes of things/entities. But added subclasses can only be added as specified by the system, for example XBRL-based financial filings. For example,
Different systems can have different rules for allowing new classes, subclasses, relations between classes, or properties. System boundaries can be extended by adding new relation patterns. New relation patterns must be consciously and formally added in a controlled and coordinated manner only by system implementers before they are allowed to be used. System boundaries can be extended by adding new classes or properties. New classes and new properties must be consciously and formally added in a controlled and coordinated manner only.
As an example, consider these report frames. Every public company can be grouped into one of 95 report frames. Are some of those report frames illegal? If so, take the report frame off the list. Does some public company have a report frame which is not on the list? Then add the report frame and instead of having 95, there are 96 report frames.
Every other class works precisely the same way. And so, the system is finite, the system has boundaries, but the system is flexible but only where specific flexiblity is exposed.
That is a slot.