Package org.xbrlapi.aspects

Package Specification

See: Description

Package org.xbrlapi.aspects Description

Package Specification

The aspects package provides comprehensive support of OLAP interactions with XBRL data. Each XBRL fact has a range of characteristics. These characteristics are referred to as aspects. Aspects include but are not limited to, the concept (element) that is used to report values for the fact, the date or date range that the fact reports a value for; and the units of measurement - for numeric facts.

However, aspects are only limited by the imagination of users. For example, an aspect might be the first letter of the reporting concept's standard english label. Another aspect might be the extended link role of the presentation network that includes the reporting concept as a node. For this reason, aspects are extensible such that new aspects to be defined, as required, to extend the range of OLAP structures that can be used to analyse XBRL data.

To define a new aspect, you must provide the aspect implementation and the associated aspect value implementation. You also need to define an aspect value domain implementation to define thedomain of values for the custom aspect.

Aspects can be organised into groups and this is done by defining aspect models. Aspects in a model can be put into ordered groups, identified as axes. Aspect value combinations define combinations of values for the aspects in a given axis of an aspect model. The aspect values that are combined are determined outside of the combinations object and are generally based on a set of facts, aspect domains, or a combination of the two.

Fact sets are a combination of an aspect model, that defines the dimensions of the cube, a domain for each aspect, and a set of facts, each of which may map to a point defined by the aspect value space. Fact sets keep track of which aspect value, if any, in each domain each fact maps to. This information can be cached for performance purposes.

The caching of aspect values and all the various information about labels etc by locale/role choice etc is separable from the implementation of aspects so that you can swap in and out various caching strategies to achieve the desired point in the complexity/performance tradeoff. Java library providing XBRL functionality Copyright (C) 2005, Geoffrey Shuetrim (

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License (, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA