The contents of this page describe changes relative to the 2.1.2 release of Protégé.
Enhancements
Bug Fixes
Enhancements
- Mnemonics have been added to most menu items (for keyboard access).
- Modal dialogs now cancel/close on an Escape.
- The focus is now painted on toolbar buttons so that it's possible to access much of the UI by keyboard.
- The Project menu has been split into two menus.
- The direct type and names of instances now appear in the header.
- Forms in top level frames will now resize vertically.
- The template slots widget has been reworked a bit and now shows tooltips on inherited and overridden slots.
- Modified all of the "pick something" dialogs to close on a double-click.
- Label text that is too long to show up completely now appears as a tooltip on the label.
- Changed the way the splitter panel lays things out by default in order to avoid "hidden panels".
- The Project -> Configure dialog now only contains project specific configuration items. Application specific
configuration items have been moved to the File -> Preferences dialog.
- The "beautification" of slot widget labels (whether they are capitalized and have '_' converted to ' ') is
now controllable at the application and at the project level. Changing the application level value will affect the
default behavior of new projects.
- Inverse slots are now so indicated in the template slots widget and in the tree on the Slots tab.
- Modified the tab display so that the selected tab is more apparent.
- Implemented support for Cut, Copy, and Paste menu items on text components.
- Added the capability to add/remove user defined toolbars. There are now methods on AbstractTabWidget and on
ProtegeManager that support this.
- Hidden slots no longer show up in several places in the UI.
- The "Find" fields are now combo boxes that remember the previously searched for strings.
- Added an "Insert Unicode" character dialog to the Edit menu. Thanks goes to Simon White who implemented
this dialog and allowed us to use it in Protégé.
- Made some performance improvements in the multi-user system.
- Specifying client side ports to use in the multi-user server environment (in order to work around firewall
problems) now works better. The ports can be reused in subsequent connections without waiting several minutes for
the connection to time-out.
- Added the ability to save the contents of the Graph Widget to a JPG.
- Added a method to the Graph Widget called getPositionInfo, which makes it much easier to access position
information for nodes.
- The class trees on different tabs are now synchronized by default. This behavior can be controlled at the
application level from the Window menu.
- The Queries Tab now supports the export of its results to a tab separated file. Thanks go to Tania Tudorache
and Daniel Schober for providing this code.
- The source code distribution now includes an Ant build file located in the root directory. Thanks go to Olivier
Dameron for submitting the build file.
- Made some performance improvements on some database access calls.
- The default (CLIPS) back-end now supports instances having multiple types.
- Converted logging over to use the standard Java logging mechanisms. This includes both the console window output and the
journaling functionality.
- Protege console window output is now additionally logged to a file in the <protege_installation>/logs directory.
- The system now prints plug-in names in addition to plug-in directories to the console window.
- Changed the way file encodings are specified in order to be more reliable. Now UTF-8 is always used unless the system
is told otherwise by specifying the protege.file.encoding Java parameter.
- You can now specify a "Default-Widget-For-Slot" manifest entry to get a widget assigned to a slot of a particular
name by default. This entry has been used on all of the system slot widgets (such as InstanceNameWidget) to get the correct
widgets assigned. It can of course also be used for user slots.
- The HTML generator now writes out classes sorted alphabetically.
- Modified the Unix "run_protege" scripts to work better. Thanks go to Carsten Pohle for contributing most
of this work.
- Renamed the nested Model ID interfaces (such as Model.Cls.ID -> Model.ClsID).
- Side-effect events, such as own-slot-value-changed, are no longer generated by default while a frame is being
deleted. If you want these events, you must call KnowledgeBase.setGenerateDeletingFrameEventsEnabled(true). If they are
generated, then both the event and the frame may be queried to see if they are one of the side-effect events.
- Decreased the Protégé standard max memory allocation to 100 MB.
- Modified the UglyWidget to include the Java class name for the widget that failed to load.
- The RDF Backend now validates frame names when they are entered.
- Made some performance improvements in the handling of subslots.
- The KnowledgeBase.getFrame(FrameID) method now works for database projects. Thanks go to Todd Detwiler for
contributing this code.
Bug Fixes
- Fixed a problem that caused hidden frames to become visible after a merge.
- The ProjectPlugin.afterLoad method is now called on both the client and the server in the multi-user system.
Previously it was called by neither.
- Fixed a performance problem in the TemplateSlotsWidget when displaying many slots.
- Fixed a problem which caused the system to not display some kinds of parsing errors.
- Fixed a problem with shortcuts on the Mac.
- Fixed a GenerateHTML problem with slots of type CLASS.
- The database back-end now correctly identifies MS SQL Server when present and optimizes table creation accordingly.
- Fixed a problem which caused forms to not resize correctly in some situations.
- Fixed a problem which caused widgets to often overlap vertically.
- Fixed a problem with the Queries Tab not being able to reload some query library entries.
- The RDF Backend no longer duplicates values for inverse slots.
- Fixed some problems with subslots and their domains not working as expected.
- Incorporated a fix to the FloatField widget. Thanks go to Marc Dzaebel for providing this fix.
- Fixed a problem with About Box contents sometimes not showing up.
- Fixed a problem that caused buttons to disappear when the label text was too long.
- Fixed a problem with inverse slot values not being updated in the multi-user server.
- Fixed a problem in renderer if setMainIcon() was called twice.
- Fixed a problem in the Graph Widget that was preventing duplicate links between nodes.
- The classes tree right-mouse menu now works better with multiple selections.
- Copying of classes and slots is now disabled (since it didn't work anyway).
- Fixed a bug in the Remote KB Tab that was causing exceptions in the UMLS Tab.
- Modified the UMLS Tab to use the latest version of the NLM's API for accessing the UMLSKS (which fixed a
couple of bugs that were causing exceptions).
- Yellow sticky notes now resize correctly.
- Fixed server metaproject to work on Unix and Windows.
- Constraints are no longer lost if they are attached to instances of :STANDARD-CLASS.
- Fixed some thread safety problems in the server.
- Fixed a problem with the RDF back-end writing out invalid XML tag names for classes.
- Fixed a problem that caused exceptions when database table values are null.
- Fixed a problem with Generate HTML if more than one root class is specified.
- Fixed a problem with writing to a database from the Mac.
- Fixed a problem with PluginUtilities using the wrong class loader when Protégé is run by another
application that uses its own class loader (e.g. Eclipse).