The native Draco format saves all worksheet data in an SQLite
3-compatible database file. The data is arranged in tables within
the SQLite file, and the extension is ".sql-draco". This format offers significant advantages over the ODS format Draco also uses. Data access is significantly faster and memory usage is lower because no XML parsing is necessary.
Data
The references to all variables are stored within the Variables table. The Variables table contains the following columns:
The data associated with each variable is stored in the Data table. One column per variable appears in the Data
table, each named after its corresponding variable. The data is
stored as strings, and entries can be null if values are missing in the
worksheet.
Analyses
Draco analyses are divided into two tables. Regressions are stored in the Regression table, and general analyses, like ANOVA, are stored in the Analysis table. Draco only saves
analyses that were successfully completed; failed or incomplete
regressions and analyses will not be saved to the file. The Regression table contains the following columns:
key
name
type
results
equation
subtype
The
key is a unique integer identifying the regression. The name,
type, and results contain the analysis name from the worksheet, the
type of regression, and the text representation of the results
respectively. The equation field stores any equations necessary
for the regression; for example it will contain the equation to fit for
Nonlinear Least Squares
regressions. The subtype column stores any additional regression
type information, such as the likelihood function used in a Maximum
Likelihood Estimator analysis.
The key is used to reference data
associated with the analysis. Independent, dependent, and
instrumental variables along with resulting estimates are stored in the
Parameters table. The Parameters table contains 3 columns:
name
owner
type
value
The
owner column contains the key of the corresponding regression.
The covariance matrices from regressions are stored in the MatrixData table, which contains the following columns:
owner
value
position_x
position_y
type
General analyses are stored in the Analysis table with the following columns:
key
name
type
results
These columns are equivalent to those found in the Regression table. The variables used in the analysis are stored in the Parameters table.
Plugins
Draco stores information about successfully completed plugin analyses in the Plugin table. The table contains the following columns:
key
class
name
data
type
version
origin
The
key is used to reference analyses pertaining to the specified plugin.
Class represents the Ruby class name of the plugin, while name
represents the human-readable name. The data column is currently
empty, but would, in theory, store data concerning the particular
plugin instance. The type refers to the plugin type and should be
either regression or analysis.
Version and origin are meant to contain the unique plugin version
as an integer and the author of the plugin respectively; these fields
are currently not used and may be null.
Regression plugins are cross-referenced to entries in the Regression table via the RegressionPlugin table. The RegressionPlugin table contains the following columns:
owner
plugin
The
owner column contains the regression key, while the plugin column
contains the plugin key. Analyses are handled similarly via the AnalysisPlugin table, which contains the following columns:
owner
plugin
The owner column contains the Analysis key referencing an entry in the Analysis table, while the plugin column contains the corresponding plugin key.
Currently
plugins, unlike normal regressions and analyses, do not populate any
other tables. For example, a regression containing independent
and dependent variables generated by a plugin will not generate entries
in the Parameters table. At this time, plugins nominally store results only.
Plots
Plots are stored in the Plot table. This table contains the following columns:
key
name
title
type
The axes of each plot are stored in the PlotAxisData table. The axis table contains the following columns:
owner
type
label
scale_type
scale_mode
scale_min
scale_max
grid
The type column specifies either x or y axis type. The scale_type column stores the type of axes scaling (i.e. linear).
The scale_mode column stores whether the axis is scaled
automatically, manually, or not specified. The min and max
columns specify the axis bounds. The final column, grid,
specifies whether the axis will include a grid on the major axis tics.
The series information is stored in the PlotSeries table. This table contains the following columns:
owner
name
x_data
y_data
color
marker
line
The x_data and y_data columns contain unique keys referencing the actual plot data stored in the PlotData
table. The color column contains a 24-bit RGB representation of
the series color. The marker and line columns contain flags, if
applicable, indicating whether the series should draw markers and lines
respectively.
The PlotData table contains the data for plotting. This table contains the following columns:
owner
position
value
The owner column contains the unique key corresponding to the x_data or y_data keys from the PlotSeries table. The position column contains the indexed location of the value in the plot series.
Text Windows
The text windows from within the worksheet are stored in the Text table. The Text table contains the following columns:
name
content
editable
type
The
editable column indicates if the text window can be edited by the user.
The type column contains the MIME type of the content.