Secondo Plugins

Basic Idea

Secondo is extensible in many ways. One can provide a new algebra, new viewers, new display classes, and extensions of the optimizer. A Secondo plugin is a package of such extensions provided as a single zip-file. Besides the parts containing the source code (i.e. source files and code sections), a plugin contains an XML file containing information about where the new code is to place, the name of the extension etc. This allows for an automatical installation of an extension using a tool which is part of a Secondo distribution. So, if the inventor of a new data structure or of a new algorithm provides it as a Secondo plugin, other researchers can compare their solutions with this approach without the effort of reimplementing the algorithms/data structures.

A main motivation for this is to better support experimental research in databases.

Current Restrictions

In the current state, only standard extensions are possible. If changes at the kernel are required to implement a new approach, the plugin mechanism is not sufficient. Further, non-solved problems are name conflicts. For example, if two plugins provide each a new algebra containing a same-named data type, the plugins cannot be installed at the same time. A similar problem occurs if two new algebras provide new operators having the same signature. From the view of the gui, it's not allowed to overwrite existing classes.

Installing Plugins

Before installing a new plugin ensure to have a running Secondo system. Additionally to the plugin to install, you need the following two files (these files are also created by typing make in the $SECONDO_BUILD_DIR/Tools/extensionInstaller directory in Secondo version 2.9.0 or later): and a running Java environment (version 1.5 or above). Just copy both files into the directory of your choice, let us call it X. Then proceed as follows:
  1. Ensure that the system variable SECONDO_BUILD_DIR points to the root directory of your Secondo installation. To make sure this is the case, open a bash (or an msys-shell on Windows), navigate to that secondo directory, and type
     setvar $PWD
  2. Navigate in a bash or msys shell to the directory X where you put the installer.
  3. Now install the plugin by entering the following line
     secinstall <filename>
    where filename is the name of the zip file containing the plugin. If there are any dependencies between plugins, i.e. plugin A requires an already installed plugin B, both plugins can be installed at the same time just by extending the command above by further file names.
After installing the plugin, the system has to be recompiled.

Available Plugins

The following plugins are currently available. Descriptions and sources of these plugins can be found here.

Creating Your Own Plugins

If you want to create your own plugin, please visit this page.
Last Changed: 2009-10-05