The Draco plugin system allows for user-authored analyses and
regressions to be added to Draco, extending its functionality.
Draco currently supports plugins written in JRuby, a version
of
the Ruby language implemented in pure Java. The plugins are
loaded from a pre-defined directory at program startup, and each plugin
appears to work exactly as Draco's builtin regressions and analyses.
JRuby
The JRuby language is an
object-oriented scripting language based on the Ruby language
specifications. Because it is a scripting language, all
plugins
appear as plain text in the Draco scripting directory. The
JRuby
language has been extended by Approximatrix to support matrix and
vector math operations using jLAPACK, a pure-Java implementation of
LAPACK. More information about the JRuby implementation used
in
Draco is available on the technical
details page.
Saving
Plugin Results
Plugin results are saved in Draco SQL files
seamlessly if the plugin successfully completed computations.
However, Release 1.1 of Draco simply saves results without
saving
any selected options or plugin code. This behavior may change
in
future versions of Draco.
Authoring
Plugins
The Draco plugin system is in continuous development. Release
1.1 ships with a sample plugin, Weighted
Least Squares,
that is both functional and demonstrates the design of Draco plugins.
Because Release 1.1 represents the first release of the
plugin
system, the API may change in the future. Please consult the plugin system technical description
for more information.