OBO-Edit 2.0 Development Roadmap
From GO Wiki
Revision as of 12:34, 30 June 2014 by Gail
This document lays out a general sketch for additional development in OBO-Edit 2.0:
- Abandoning XML screen layouts in favor of dockable panels
OBO-Edit 2.0 will largely abandon the use of XML screen layouts in favor of the JDock dockable panels system. JDock allows users to drag and drop components onto the desired screen location, allowing the simple creation of tabbed panes, split views, floating windows, etc. Users can save their favorite screen layouts as a "Perspective" that can be easily restored. This is similar to the screen layout system used in the Eclipse development environment. XML Layouts will still be used to configure the fine details of OBO-Edit screen components, but this will mainly be used by power users and as a developer convenience (it's easier to modify an XML layout than to modify hardcoded Java screen layout code).
- Graph-based ontology editing
OBO-Edit 2.0 will include a graph-based ontology editor, backed by the GraphViz layout engine. This will be a full featured editor, with all the drag and drop editing capabilities of the traditional OBO-Edit ontology editor (the traditional editor will also be available). This component will be built on top of the Piccolo Zoomable User Interface toolkit. A demo of this technology will be available by the GO consortium meeting.
- Reasoner Improvements
The reasoner will be improved as per the outline at OBO-Edit: Reasoner Overview
- New Compound Search Interface
The advanced OBO-Edit search facilities have been notoriously difficult to master. OBO-Edit 2.0 will allow users to create complex searches by doing simple searches, and then choosing to "narrow" or "widen" the search results. This approach can be implemented with no changes at all to the OBO-Edit filtering system; it's just a matter of adding a new interface on top of the filter designer
OBO-Edit 2.0 will have support for the OSL scripting language throughout. Users can write OSL scripts to create new plugins, perform searches, modify the ontology, check the ontology for errors, and a number of other tasks. These scripts will make it much easier for power users to create shareable tools for other users, and it will make it much easier for developers to create libraries of useful scripts that would be too cumbersome or ontology-specific to be coded into the main Java codebase. These scripts are already supported in OBO2OBO, and they've already been used to great effect to create ontology-specific transformations used when converting ontologies between formats.
- Revamped plugin system
OBO-Edit will expand its support for plugins. In the new system, plugins will be easier to write and will be more tightly integrated into the application. A new type of plugin called a StartupPlugin will also be introduced (currently only two types of plugin, DataAdapter and ComponentPlugin, are supported). StartupPlugins will run in the background when the application is started, and provide services such as spell checking or graphviz layout services to any OBO-Edit component that requests them.
- Code refactoring
OBO-Edit needs some internal code reorganization. Right now the OBO-Edit Controller class has way too many responsibilities. Component management, edit handling, and selection management (at least) will be broken out into their own code modules. This is essential if we want to encourage contributions by external developers.