Skip to content

Protégé 5.0.0

Compare
Choose a tag to compare
@matthewhorridge matthewhorridge released this 24 May 22:10
· 43 commits to master since this release

This release offers major improvements and enhancements in terms of functionality. It also fixes a large number of issues. We would like to take this opportunity to thank our user community for the detailed feedback, bug reports and features suggestions that they have provided over the course of the betas that have gone into making this release. Thank you!

The release notes below describe the improvements, enhancements and fixes in Protégé 5.0.0 compared with Protégé 4.3.

Highlights

This release offers enhancements and improvements in search, annotation viewing & editing, hierarchy viewing, ontology loading & saving, accessibility, logging and performance, as well as general user inferface improvements. It also contains two new bundled plugins, "Cellfie" and the "SWRL Tab". Finally, Protege 5.0.0 now uses the OWL API version 4.2.5 and Java 8.

Search Improvements & Enhancements

  • The search functionality has been significantly improved to search annotation values, display names, entity IRIs, and logical axioms (previously only display name was searched).
  • Searching for multiple words will find search results that reference both words in any order (e.g. "heart valve" also finds results containing "valve of heart"). Results are ordered so that matches for both words in the specified order appear first. (Thanks go to David Osumi-Sutherland @dosumis and EBI colleagues for making these useful suggestions) (protegeproject/protege#87)
  • Search results are now shown in a popup dialog rather than a popup list. This means that the search results can be kept open and moved around instead of being fixed and overlapping the editing window. (protegeproject/protege#189)

search

- Made the search engine that Protege uses pluggable (https://github.com/protegeproject/protege/issues/284) - Pressing return when a search result is selected in the search window now closes the search window (https://github.com/protegeproject/protege/issues/188) - Double clicking a search result in the search window now closes the search window in addition to selecting the search result (https://github.com/protegeproject/protege/issues/192) - The search window now selects the previous search text when it opens. (https://github.com/protegeproject/protege/issues/344) - Changed the search field so that pressing backspace in the empty search field hides the search popup (https://github.com/protegeproject/protege/issues/140) - The keyboard shortcut for find (search) is now CTRL+F. Find in specific view is now CTRL+SHIFT+F (https://github.com/protegeproject/protege/issues/193)

Annotation Viewing and Editing Improvements & Enhancements

  • Added the ability to view axiom annotations inline (accessible via View -> Display axiom annotations inline). Previously, it was necessary to click the @ symbol to bring up a separate dialog for viewing inline axiom annotations (protegeproject/protege#50).

axiomannos

  • Images that are pointed to by annotation values are now displayed inline as thumbnails if this options is selected (protegeproject/protege#315)

image-annotation

- Entering a number into the literal editor now parses the value and chooses the correct datatype if no datatype was specified (https://github.com/protegeproject/protege/issues/42).

Hierarchy Viewing and Editing Improvements & Enhancements

  • Asserted and inferred hierarchies are now combined into single views. They can be switched using the drop down box, or by pressing "a" for asserted or "i" for inferred when the associated view has the focus. (protegeproject/protege#145)
  • Added the ability to copy sub-hierarchies as tab indented text. This applies to class and property hierarchies. Select a class or property and choose "Copy sub-hierarchy as tab indented text" from the Edit menu. (protegeproject/protege#233)
  • Made it possible to copy class names from the class hierarchy (protegeproject/protege#222)
  • Added an option to hide deprecated classes in the class hierarchy. See the "Display deprecated (obsolete) entities" on the View menu. (protegeproject/protege#270)
  • Added an option to disable drag and drop in hierarchies (protegeproject/protege#347)
  • Added support for pluggable context (popup) menus in hierarchies. (protegeproject/protege#348)
  • Added some out of the box context menu items in the class hierarchy (protegeproject/protege#350)

Auto-update Improvements & Enhancements

Loading and Saving Improvements & Enhancements

  • Added a progress indidicator that is shown for loading, saving and importing ontologies. The UI no longer freezes when these operations are performed.
  • Added "Reload" menu item to the File menu. Select "Reload" from the File menu or press Ctrl+Shift+R (or Cmd+Shift+R on a Mac) to reload the active ontology. If the ontology has been modified but not saved then a warning is shown. (protegeproject/protege#152)
  • The load error dialog now displays informative format names that were tried rather than parser class implementation names (protegeproject/protege#414 and protegeproject/protege#331)
  • Added help text to the save as dialog. (protegeproject/protege#271)
  • Loading a different version of, or the same version of, an ontology in the same Window no longer pops up a cryptic error message. A warning is displayed instead that informs the user that the existing ontology has not been overwritten (protegeproject/protege#357).
  • Ontologies are now saved to a temporary location before being copied to the final location. (protegeproject/protege#437)
  • Updated the default bookmarked ontology URLs (protegeproject/protege#409)
  • Pressing Save (or CTRL+S) now shows a file chooser to save the active ontology if it is unmodified but loaded from the Web (protegeproject/protege#433)

Accessibility Improvements & Enhancements

  • Added high contrast painting for tab headers. This is enabled when Windows is in a high contrast display mode (protegeproject/protege#413)
  • Added high contrast painting for frame section headers. This is enabled when Windows is in a high contrast display mode (protegeproject/protege#418)
  • Added functionality to display error messages for mis-spelt property and individual names in the object property assertion editor (protegeproject/protege#382)

General User Interface Improvements & Enhancements

  • Cleaned up and refined the user interface and reduced clutter where possible
  • Removed the dashed border on inferred axiom rows in order to reduce clutter (protegeproject/protege#277)
  • Tidied the status panel.
  • Tidied up the look and feel of some preference panels. Some preference options have been consolidated.
  • Reduced the number of default tabs in the UI. Note that this only takes effect for new users. (protegeproject/protege#142)
  • Made it possible to close workspace tabs by clicking a close cross on the tab. This also updates the Look and Feel of the tabs. (protegeproject/protege#143)
  • Added a preference panel for specifying the logged in user. This can be used by plugins and is also used when auto-creation of metadata is enabled.

Performance Improvements & Enhancements

  • Reduced the memory foot print of rendered ontology views (Thanks go to Simon Spero @sesuncedu)
  • Improved ther rendering performance of ontologies with unsatisfiable classes (protegeproject/protege#75)
  • Stopped hidden folders being scanned when searching for ontologies (protegeproject/protege#83)
  • Significantly improved the performance of deleting subtrees in the class hierarchy. (protegeproject/protege#339)
  • Improved the algorithm for detecting and filtering ontology changes that should trigger reasoning (protegeproject/protege#170 - thanks to @ykazakov)
  • Selecting classes in the class hierarchy will only request directly inferred individuals from the reasoner. Previously, Protege requested both direct and indirect inferred individuals, which caused performance issues with larger ontologies (protegeproject/protege#15).
  • Exporting DisjointClasses axioms is no longer enabled by default, as this can be an expensive operation (protegeproject/protege#43).

Logging Improvements & Enhancements

New Bundled Plugins

Cellfie

Cellfie supports the creation of OWL ontologies from spreadsheets through a flexible mapping mechanism. To import data from a spreadsheet, go to Tools menu > Create axioms from Excel workbook. Cellfie is bundeled with the Protege distribution. Read more: https://github.com/protegeproject/cellfie-plugin, https://github.com/protegeproject/cellfie-plugin/wiki.

Cellfie

SWRLTab

The SWRLTab is a port of the the SWRL tab functionality from Protégé 3. Read more at https://github.com/protegeproject/swrltab-plugin/releases

Significant Changes for Plugin Developers

  • Protege now uses Java 8.
  • Protege now uses the OWL API version 4.2.5. There are a few changes between this version of the OWL API and the versions used by Protege 4.3 that might require you to update your plugin for Protege 5.0.0.
  • Added support for extra menu items in the reasoner menu (Thanks go to Simon Spero @sesuncedu)
  • The Protege GitHub repository no longer contains jars for felix and equinox. These are now pulled from Maven Central. (protegeproject/protege#157, protegeproject/protege#158 and protegeproject/protege#159)
  • Build products that include JREs are now only built when preparing a release, otherwise the platform independent build product is the only one that is built (protegeproject/protege#173)
  • Removed spurious import of internal apache package (Thanks to @sesuncedu)
  • Fixed a naming problem with OWLDescriptionChecker and OWLDescriptionSetChecker. This fix stops maven recompiling everything when not necessary. (Thanks to @sesuncedu)
  • The plugin.xml is now contained in the resources folder rather than the top level folder.
  • Removed the defunct IDE folder from the repository (protegeproject/protege#261)
  • Switched to SLF4J and Logback for logging.
  • Clear preferences does not always work - list and array preferences are not cleared. Thanks to @ykazakov (protegeproject/protege#186)
  • Updated the maven co-ordinates for various artefacts. Developers - please ensure you use the correct co-ordinates (the new co-ordinated have short, non-qualified names, for the artefact ids)
  • Updated developer documentation for building in Eclipse.
  • MLists now allow developers to configure them so that only an edit button is visible (protegeproject/protege#419)
  • Moved slow running tests, that access the file system, to integration tests (protegeproject/protege#417)

Bug Fixes and Other Improvements

  • Stopped the Protege Look and Feel hard coding the font size to 11pt size (protegeproject/protege#115)
  • Cleaned up the metrics view by removing unnecessary clutter
  • The error icon is now cleared after the log view is closed (protegeproject/protege#305)
  • Fixed a problem where Protege did not detect when loaded source files had changed externally and offer to reload them (protegeproject/protege#300)
  • Fixed a problem with syntax checking in the general class axioms view (protegeproject/protege#302)
  • The object property hierarchy now displays sub-properties correctly (protegeproject/protege#306)
  • Added a log message to describe when plugin update files cannot be parsed
  • Removed formatting markers that showed up in console logs on Windows (protegeproject/protege#303)
  • Added a missing flag to the Windows run.bat file that ensures array index out of bound exceptions do not occur (protegeproject/protege#307 and protegeproject/protege#226)
  • Fixed a problem with adding data ranges to properties (protegeproject/protege#308)
  • Fixed a problem that caused icons on tabs to be painted incorrectly (protegeproject/protege#309)
  • The auto-complete would not match annotation properties (protegeproject/protege#311)
  • Fixed a problem where "Optional" would appear in ontology IRIs rendered in the user interface (protegeproject/protege#313)
  • Fixed a problem where imported ontologies were loaded using the incorrect OWL API method. This could cause import loading to raise errors when adding imports (protegeproject/protege#314)
  • Changed the accelerator key for copying tab indented text from hierarchies because it clashed with the copy accelerator key (protegeproject/protege#316)
  • Adjusted run scripts so that they work better with symbolic links (protegeproject/protege#318) (thanks go to @ShahimEssaid for the contribution)
  • Fixed a problem where the explanation dialog would raise an error if there were no explanation plugins installed (protegeproject/protege#319)
  • Fixed a problem with drag being enabled when it was disabled in the UI preferences (protegeproject/protege#322)
  • Fixed a problem where an inconsistent ontology exception would leak out from the inferred object property hierarchy (protegeproject/protege#328)
  • Fixed a problem where "Render by Prefixed Annotation property would display two prefixes (protegeproject/protege#327)
  • Fixed a problem with the Rules View parser (protegeproject/protege#81)
  • Fixed eager dismissal of the save dialog (protegeproject/protege#96)
  • Fixed the case where NPEs could be thrown if menu items were incorrectly configured (protegeproject/protege#108)
  • Fixed copy/move axioms by reference
  • Fixed FaCT++ Windows plugin (Thanks go to Dmitry Tsarkov @tsarkov)
  • Fixed a problem where inferred axioms were not updated correctly in a buffering reasoner (protegeproject/protege#128) (Thanks go to Yevgeny Kazakov @ykazakov)
  • Fixed an error that could occur when converting entity IRIs to labels (protegeproject/protege#117)
  • Fixed a rendering problem with copy/move/delete axioms dialog (protegeproject/protege#120)
  • Fixed a problem where MDock could throw a NPE (protegeproject/protege#132)
  • Fixed the explanation plugin, which was broken because it was using an incompatible version of the OWL API (protegeproject/protege#100)
  • Fixed the problem where the "Show inferences" checkbox would not refresh the display (protegeproject/protege#131)
  • Fixed a bug in handling deletion of annotations (protegeproject/protege#104)
  • Fixed issues with the Reasoner progress bar, reduced flickering and centre on owner window rather than screen (Thanks go to Yevgeny Kazakov @ykazakov)
  • ArrayIndexOutOfBounds exception could be thrown (in a seemly random fashion) when rendering things, which caused the user interface to become scrambled. This was due to a bug in the JVM and we have applied a recommended work around. (protegeproject/protege#226)
  • Updated the labels on the Entity Preferences panel so that it no longer refers to URIs (protegeproject/protege#176)
  • Sized the entity search box so that it is the correct size on non-OSX look and feels (protegeproject/protege#146)
  • Components in dialogs are now focused consistently over different operating systems. Thanks to @fourcube. (protegeproject/protege#228)
  • The "Create new" (entity) key combination was the same as the key combination for "New Ontology". This has been changed to CTRL+E. (protegeproject/protege#232)
  • Fixed a problem where spurious axiom annotations were displayed when changing entity selection. (protegeproject/protege#223)
  • Fixed a problem where the reasoner status message did not display correctly on Windows. (protegeproject/protege#224)
  • The Protege icon was missing from the Linux distribution. (protegeproject/protege#225)
  • Fixed the "Zero length error" that could sometimes arise when search for an entity (protegeproject/protege#134)
  • Pressing "Escape" on the plugin update dialog throws an exception. Fixed (protegeproject/protege#273)
  • Fixed a problem that caused an error after ticking and un-ticking the Regular Expression box on the search panel if an invalid regular expression was present (protegeproject/protege#275)
  • Fixed a problem where boolean values for data property assertions would not parse as expected and cause the value to always be set to false. (protegeproject/protege#285)
  • Auto-update would install new plugins with the same file name as previous versions of the plugins, which could be confusing if the file name included version information. This behaviour has been changed. (protegeproject/protege#363)
  • In some cases, an error message would be displayed after plugin installation even if there plugin had been installed without problems. Fixed. (protegeproject/protege#356)
  • Fixed a problem where the datatype selection panel would not remove listeners after being closed. (protegeproject/protege#326)
  • The new annotation property button on the annotation hierarchy view is always enabled now. If no property is selected then the new property will be added as a top level property. (protegeproject/protege#340)
  • Fixed a bug where drag and drop would not work in the presence of axiom annotations. (protegeproject/protege#358)
  • Fixed a bug where the selection could change in an unprompted fashion after classification (protegeproject/protege#354).
  • Fixed a bug that prevented auto-completion from working in the property chain dialog (protegeproject/protege#352)
  • Fixed a problem that could cause spurious entity selections (protegeproject/protege#338 and protegeproject/protege#346)
  • Added the declaration axioms count to the metrics panel (protegeproject/protege#342)
  • Auto-update would install new plugins with the same file name as previous versions of the plugins, which could be confusing if the file name included version information. This behaviour has been changed. (protegeproject/protege#363)
  • The plugin update dialog has been simplified by removing the tabbed display. (protegeproject/protege#361)
  • Tidied the info text in the plugin update dialog. (protegeproject/protege#359)
  • Altered the default view arrangement on the Individuals by Type tab (protegeproject/protege#351)
  • Altered the column sizes in the About window to make it more readable (protegeproject/protege#390)
  • Fixed a problem with drag and drop where direct subclasses of owl:Thing that did not have explicit subclass axioms could not be dragged from under owl:Thing (protegeproject/protege#387)
  • Changed the preferences dialog so that it resizes itself to completely fit on smaller displays (protegeproject/protege#397)
  • Fixed a problem where Protege would crash if annotation values were IRIs that were equal to the ontology IRI and had an empty string rendering. This problem was most notably present with the prov ontology (protegeproject/protege#400)
  • Fixed a problem with the Rules view that threw exceptions when trying to edit rules (protegeproject/protege#398)
  • Fixed a problem where Protege would sometimes display empty error messages (protegeproject/protege#396)
  • Fixed a problem where individuals that were created as direct instances of owl:Thing would not receive the focus after creation (protegeproject/protege#374)
  • Fixed a problem where the right hand side of the entities tab would be greyed out (due to the selection history being cleared) after adding an instance of owl:Thing (protegeproject/protege#379)
  • The various hierarchies (class, property etc.) can be auto-expanded. However, the mouse/keyboard combination (CTRL+Click) was not working properly on windows. This has been fixed. (protegeproject/protege#231)
  • Fixed a problem where the inferred class hierarchy could cause Protege to crash with certain reasoners under certain conditions (protegeproject/protege#403)
  • Changed the behaviour when creating individuals so axioms stating that an individual is an instance of owl:Thing are not added to the ontology (in order to parallel the behaviour of the class hierarchy) (protegeproject/protege#401)
  • Fixed a problem where copy and past would not work for JTables in views in the main Protege window. (protegeproject/protege#424)
  • Fixed a problem where pressing ESC on the ontology format dialog would not actually abort the save sequence. (protegeproject/protege#430)
  • Upgraded the OWL API to 4.2.5 (protegeproject/protege#429)
  • The error message window is now resizable (protegeproject/protege#432)
  • Fixed a problem where Protege would freeze or appear sluggish if a URL value for an annotation property contained invalid characters (protegeproject/protege#427)
  • Removed Increase/Decrease Font Size from the Window menu as this functionality no longer worked. Font size should be set in the preferences instead. (protegeproject/protege#165)
  • The UI no longer allows specification of owl:real as the type for a literal (protegeproject/protege#37).
  • Wizard sizes are now cropped to the screen size (protegeproject/protege#2)
  • Fixed a problem where the selected Look & Feel was not marked in the Look & Feel submenu (protegeproject/protege#150)
  • Fixed a problem where the Protege name would be scrambled in the logs on Windows (protegeproject/protege#365)
  • The stack size has been increase to 10 megabytes. (protegeproject/protege#434 and protegeproject/protege#436)
  • Removed "Plugin has no plugin.xml" from the info messages in the log. This is now logged as a debug message. (protegeproject/protege#76)
  • The inferred object property hierarchy no longer displays owl:bottomObjectProperty as a leaf of every node (protegeproject/protege#9).
  • Fixed a bug in the auto-update functionality that caused exceptions when encountering plug-ins with invalid version numbers (protegeproject/protege#18).
  • Fixed a typo in the DL metrics view (protegeproject/protege#20).
  • Fixed a typo in the readme (Thanks go to Yaroslav Halchenko @yarikoptic )
  • Modified the UI of the Automatic Update dialog to prevent display of an unnecessary trailing '.' character on plug-in version numbers (protegeproject/protege#23).
  • Fixed an issue that occasionally caused a NullPointerException when opening ontologies (protegeproject/protege#34).
  • Fixed an issue that occasionally caused the Continue button to remain disabled on the Export Inferred Axioms dialog (protegeproject/protege#36).
  • Applied BSD 2-Clause License
  • Removed stray System.out.println messages
  • Added a Protege.exe file to the Windows distribution. This makes it possible to associate file types, such as .owl files with Protege on Windows
  • Changed the OS X distribution so that it is a Mac OS X Application Bundle. This allows Protege to be placed in the dock on OS X and allows .owl ontology files to doubled clicked in the Finder in order to open them (protegeproject/protege#388)