QDataSets are the data model used within Das2 and Autoplot. It was preceded by a more specific data model, used to developed to deliver spectrogram time series data sets where the dataset structure would change over time, and the interface is highly optimized for that environment. It was difficult to express many datasets in these terms, so the simpler "quick" QDataSet was introduced.
The QDataSet can be thought of as a fast Java array that has name-value metadata attached to it. These arrays of data can have an arbitrary number of indexes, or rank, although currently the interface limits rank to 0, 1, 2, 3, and 4. Each index's length can vary, like Java arrays, and datasets where the dimensions do not vary in length are colloquially called "Qubes."
QDataSets have standard metadata like NAME and UNITS, identifying the data and the units used to interpret the numbers.
QDataSets can have other QDataSets as property values. For example, the property QDataSet.DEPEND_0 indicates that the values are dependent parameters of the independent "tags" QDataSet found there. QDataSet.BUNDLE_1 means the index is used to access datasets bundled together sharing the same time tags.
This is inspired by the CDF data model and PaPCo's dataset model, and has evolved to support data in many forms.