XBRLAPI Example: Organizing Facts along Dimensions using an Aspect Model and FactSet (with and without Explicit Dimensions)
Author: Matt DeAngelis (ronin78 at gmail dot com)
Contributor: Geoff Shuetrim (geoff at galexy.net)
What is it?
This application extends the Base Utility Example to load an instance into the data Store, build an Aspect Model and FactSet from the Store, and demonstrate the retrieval of Aspect Values from the FactSet. By design, the implementation of the Loader in the Base Utility Example does not treat Explicit Dimensions as Aspect Values. In order to access these Values, an different Loader implementation must be used. This application demonstrates the use of each Loader and the results.
Where is it?
The home page for the XBRL API project can be found on the XBRLAPI project web site (http://www.xbrlapi.org/). There you also find information on how to download the latest release as well as all the other information you might need regarding this project.
You can browse the source code in SVN.
This application assumes that the user has a working installation of the XBRLAPI and uses the Berkeley XML Database implementation of the data Store. The author has set up the API in Eclipse using the full JAR file. All libraries found in the XBRLAPI SVN Repository are included in the build path, and the Berkeley XML Database is installed with relevant libraries included.
Program execution involves:
This application requires the same command line options as the Base Utility Example:
- -database [the directory that will hold the actual database data (rather than the Oracle Berkeley XML database binaries)]
- -container [the name of the file in the -database directory that will contain the data]
- -cache [the directory containing the document cache]
These command line options can be entered in Eclipse by right-clicking the application file, clicking "Properties", and creating or editing the Launch Configuration to include the above options (under the "Arguments" tab, "Program Arguments").
In addition, the user will have to set the "targetURI" variable in the program to the path to their chosen Instance document and the boolean "discoverXDT" variable to true or false. By default, I use the CoreLogic 2011 10-K filing. Setting "discoverXDT" to false will use the default loader from the Base Utility Example; setting it to true will initialize a new Loader which will discover Explicit Dimension Aspects.
See comments in the program for additional explanations.
NOTE: This application is designed to run with an empty Store (so that the Store contains only the selected Instance document and the Loader is forced to do all discovery).
Licensing and legal issues
XBRLAPI examples are released under the lesser GPL license.