ConfDesigner
From Wikipedia, the free encyclopedia
ConfDesigner | |
---|---|
Developed by | CMU Sphinx |
Latest release | 1.0b2 / July 2, 2007 |
OS | Cross-platform |
Genre | System design |
License | BSD_License |
Website | [1] |
ConfDesigner is a graphical environment written in Java, which eases the design of complex system configurations.
Because of being part of the Sphinx4 Speech Recognizer, ConfDesinger is licensed under BSD license. ConfDesinger is based on the Netbeans Graph Library.
Contents |
[edit] WebStart
The best way to get in touch with ConfDesigner is to check out its sources. It is located in $SPHINX_ROOT/tools/confdesigner.
Nevertheless, ConfDesigner can be used without any installation using Java Webstart. Although only Java5 or higher is required to run the application locally, Java6 or higher is required to run it via Webstart.
[edit] FAQ
Because there's no dedicated website so far, some of the most frequent questions about ConfDesigner are temporarily (!) placed here.
[edit] Is it possible to zoom into a graph?
Just press CTRL and use the mouse wheel.
[edit] I can't connect nodes. What's wrong?
Only ports which share the same interface can be connected. Eg. it's possible to connect the "this"-port of a FastDictionary-node to the dictionary-input port of a JSGFGrammar-node, because FastDictionary subclasses the Dictionary, which is required by the dictionary-property of FastDictionary.
Connections are always drawn (with pressed CTRL-key) from the "this"-port of a node to the desired input-property-port.
[edit] The "Run" menu is disabled. Why?
ConfDesigner supports the direct instantiation of designed systems. Depending on the system structure it is also possible to reconfigure/extend systems, while they're running.
In order to instantiate a configuration it is necessary to drag an executable Configurable onto the scene pane. Such a component is a class which implements the Executable-interface which is a subclass of Configurable.
[edit] I have some Configurables. How can I use them within ConfDesigner?
When ConfDesigner is starting, it parses all jar-files/class-directories, which are contained in semicolon-separated argument-list of the -l command line option. All classes, which are found in these locations, and which implement the Configurable-interface will be added to the Configurable-list.
Example:
java -jar confdesigner.jar -l sphinx4.jar;../myclasses
Here all Configurables found in sphinx4.jar and all Configurables found in the ../myclasses-directory will make it into the Configurable-list of ConfDesigner.
[edit] Component Categories
In order to add a Configurable to one or several arbitrary categories, it's just necessary to annotate the class (or one of its parent-classes, or one of its implementing interfaces, or one of the interfaces being implemented by one of its parent classes. Eg.
@ConfCategory(value = {"search", "parallel"}) class ParallelSearchDecoder implements Configurable{ ... }
In ConfDesigner the categories are used to setup another component-selection-tree (beside the usual package-based one)
[edit] Release History
[edit] Planned
- improved node-layout
- snap2grid
- level of details for nodes in order to speed up the application
- distributed computing support
[edit] In Process (upcoming Beta3)
- copy, cut, paste & delete for subgraphs
- optional snap2grid
- reimplementation of property panel (in order to support default properties and non-defined properties)
- improved connection routing
- better node-layout
[edit] Beta2
- ConfDesigner can be started directly via "java -jar confdesigner.jar" (because of added jar-Manifest)
- Command line interface
- Automatic range checking for basic properties (int, double, string) based on the property-annotations
- quick-search: find nodes within a system configuration graph
- tab-support: edit several system configurations within on designer-instance
- project-support: bundle sets of system configurations
- User-defined component-categories (to use them, just annotate the class with the ConfCategory-annotation).
- Image-exporting of configuration-graphs
- Various usability improvements (improved key bindings, fit-to-view, linking this website into the help-menu)
- Background Labels, which are intended to help to get some additional structure into a system graph
- fixed: deletion of models and connections
- fixed: rerouting of connections
[edit] Beta1
- Supports all current Sphinx4 property types (including arbitrary large component lists)
- Loads and saves Sphinx4-configuration files
- In place editing of component names
- Automatic graph layouting
- Graph serialization
- Automatic class path parsing in order to find all available Configurables
- Completely instantiation free modeling
- System instantiation and evaluation directly within the designer, including online configuration changes
[edit] Known Issues
- The CTRL-key needs to be pressed for zooming and in order to connect nodes which is confusing and not necessary