Matt,
I don't have a good write up on them. (At least I thought the write up that we do have was much better. Interns...) At any rate, here is the code:
The goal of this package is to create general purpose data classes, structures and pattern realizations that can be mapped to a wide range of scientific problems while also maintaining metadata about that information. They are also all bound with JAXB so that they can be persisted to XML. Their design is verbose so that developers can almost immediately know how to pack their data into the classes.
Consider, for example, a battery. If the state of that battery would be represented on disk by five quantities - say a string, two integers and two floats - and each of those quantities has associated metadata such as descriptions, ids, names, etc., then we could map them as follows:
Battery --> 1 instance DataComponent
Quantities 1-5 --> 5 instances of Entry
Then any collection of DataComponents, etc. are stored in a Form that is processed by the workflow engine and the UI. They are, in a sense, the exact opposite of IDataSet because they store rather macroscopic quantities and ignore large amounts of n-dimensional data, (which we leave on disk and store in ResourceComponents).
Our long term goals with this are to switch this to an EMF model, optimize the way metadata is stored, use IDataSet to back structures like MatrixComponent, and allow developers to create their own versions via annotations.
Jay