Every now and then I am working along and then all of a sudden a bunch of individual pieces all seem to fit together. That is how the patterns document worked for me, one day it all seemed to fit together.
Well, it seems to have happened again. Three things contributed to this. First, a discussion about the aggregation of the members of a domain and someone articulating the spectrum of possibilities on the xbrl-dev news group. Second, a private conversation where the notion of a reference model was brought up. The primary aspect there was the idea that a reference model defines entities and the relations between entities. The third thing was the realization that the information model metapatterns was only one of the different types of relations between report elements, there were other types of relations.
To simplify a longer story, basically there are a number of different sets of relations between report elements, and here they are:
- Information Models. Information models express the relations between the concepts within a set of line items.
- Domain Partition Aggregation Models. Domain partition aggregation models express the relations between the members of a domain.
- Flow Models. Flow is the relation between networks and tables between other networks and tables which expresses the ordering or sequencing a financial filing.
- Integrity Models. Integrity models express the relations between the components of one fact table with the components of another fact table.
- Fact Table Models. Fact tables express the relations between a set of facts. (Not sure if this really exists)
The last one I am not too sure about. But that is a nice, tidy little package if you ask me. The report elements and the report element relations seem to fit together well.