WebProtégé 3.0.0
This release is a major release of WebProtégé. It contains many improvements, new features and enhancements.
Please note that this is a release for system administrators who are in change of maintaining a local installation of WebProtégé. In general, end-users should use WebProtégé at https://webprotege.stanford.edu.
This release is not compatible with previous releases. It is not compatible with data generated by previous releases. If you have an existing installation, you MUST upgrade it by following the migration instructions. What ever you do, please back up your existing data directory first.
Please see the wiki for installation instructions.
Front End Changes
Most of the WebProtégé user interface has been reimplemented from the ground up. This has enabled us to provide a cleaner, more modern look & feel and more flexible user-interface for WebProtégé.
General Changes
- Completely rewrote the font end framework so that the user interface is more modern and easier to work with. As part of this we completely removed the dependency on the defunct gwtext framework.
- Changed the UI to have a new more modern look and feel.
- Changed the default page to be a sign in screen.
- Added new colourful icons for users that are automatically generated based on the user name.
- Project and entity URLs are now bookmark-able. Browser back/forward buttons now work for entity browsing.
Project List
- The project list is now only displayed after sign in.
- By default, the project list is now ordered to show most recent projects first.
- Added last opened information to the project list.
- Added last modified information to the project list.
- Added the ability to sort the project list by display name, project owner, last modified, last opened.
- Added the ability to filter the project list with options for "Owned by me" and "Shared with me".
- Added the ability to open projects in a new window.
- Combined the "create" and "upload" functionality into a single dialog.
Tabs and Views
- Views in the user interface can now be "dropped" into tabs and resized by dragging the splitters between them. This works in a similar way to desktop Protégé. (See screenshot below)
- Tab layouts are now automatically saved when they are changed.
- Added the ability to reset tab layouts to the default layout.
Hierarchy Views
-
Replaced the class, object, data and annotation property hierarchy displays so that they are more reliable, robust and more uniform over the different types of hierarchy.
-
Split the object, data and annotation property hierarchies out into separate trees that can be reached by tabs.
-
Added context menus on the class, object property, data property and annotation hierarchy displays with short cuts for creating entities and actions to prune (see below) the displayed hierarchies.
-
Added new entity search functionality. In addition to the class hierarchy, the object property, data property and annotation property hierarchies can now be search.
-
Added "watch" functionality to the object, data and annotation property hierarchies.
-
Added the ability to temporarily prune branches from the view in the various hierarchies (see screenshot below). This makes it easier to focus on a specific entity at a specific place in the hierarchy and view/edit its children.
Search
- Search results are now highlighted to indicate the matched portion of the display name or IRI (see screenshot below).
- Search is now performed on OBO identifiers (if present) by default (see screenshot below).
Comments View
- Reimplemented the comments view so that it is cleaner and simpler. Comments are still grouped into threads that can be "open" or "closed".
- Made it possible to use markdown in comments for emphasising text, adding links etc.
- Made it possible to include links to entities in comments. Links are formatted as markdown links and entity links can be autocomplete by typing the first few characters of the entity name and then pressing Ctrl+Space to bring up possible completions.
- Made it possible to "@" mention users in discussions. Auto-completion (activated by Ctrl+Space) is supported for user mentions.
- Added a new view to summarise open and closed entity discussion threads. This means that it is now no longer necessary to go hunting through the class hierarchy for discussion threads. (See screenshot below).
Deprecated Entities View
- Added a separate view that lists deprecated entities. This removes top-level deprecated classes from the class hierarchy, which improves performance and reduces clutter.
Project Feed View
- Improved the change description messages for changes made in the default editor.
- Links to relevant entities are now shown in the project feed view.
Project Settings Page
- Added a brand new project settings user interface
- Added a page for registering Webhooks for notifications of project changes
- Added a page for registering Slack Webhooks for notifications of posted comments. This can be used to make discussion comments appear on a slack channel.
- Changed the "Sharing" interface to be cleaner and simpler.
- Added the ability to allow collaborators to "manage" projects.
-
Improved the default style for email messages that are sent out to users for notifications of project changes and posted comments (see below).
-
Notification emails now contain links to the relevant project, subject entity and any mentioned entities (see example below).
-
Notification emails for posted comments are now threaded for email clients that support this.
Application Settings
- Added a new application settings view for administrators.
- Added the ability for administrators to enable/disable project creation.
- Added the ability for administrators to enable/disable project upload.
- Added the ability for administrators to set a max file size for uploads.
- Added the ability for administrators to enable/disable account creation.
Other notes
- Switched from Gin to Dagger for dependency injection.
- We now use the activities/places design pattern throughout the UI. This means that most pages have their own URLs and are bookmark-able.
Back End Changes
- Completely removed the Protégé 3 MetaProject store, resulting in greatly improved performance and robustness.
- User details are now stored in MongoDb instead of the MetaProject.
- Account details are now stored in MongoDb instead of the MetaProject.
- Project details are now stored in MongoDb instead of the MetaProject.
- Entity discussion threads are now stored in MongoDb instead of being stored in per-project ontologies.
- Reimplemented email notifications so that customisable templates are used for notification emails.
- Completely overhauled the authorisation/permissions system to make it faster, more robust, more fine-grained and more easily extensible. We now use a hierarchical role based access control model. Settings for this are stored in MongoDB.
- Switched to a more standard layout for logging. Logs are now written to /var/log/webprotege
- Switched to a more standard layout for configuration settings. Settings are now search for in
/etc/webprotege/webprotege.properties
and/etc/webprotege/mail.properties
. - Removed legacy services such as the ontology service. We now use an action/result dispatch-style pattern, making it easy to add new actions.
- Switched from Guice to Dagger for dependency injection.