A new version of the Graph Widget (formerly known as the Diagram Widget)
which is an alternative to forms for populating instances of classes in
Protege. It is particularly useful for visualizing networks of instances
and relationships between instances. The Graph Widget has many new
features and enhancements such as greatly improved selection appearance for
nodes and connectors, labeled connectors, in-place text editing for node
and connector labels, two different types of connectors to choose from, and
the ability to add multiple points to connectors. Also, we no longer store
graph specific information such as node size and position in the ontology
thus eliminating the need to include the "diagram.pprj" project when
working with the Graph Widget.
Several valuable new plug-ins were recently posted to our plug-ins
library. The "XML Backend", developed by John Gennari and Ching-Ping Lin
stores ontologies in XML format. The output from this back-end is an XML
file that validates against an XML Schema describing the Protege knowledge
model. The "UML Backend", developed by Holger Knublauch, allows ontologies
to be stored as UML class diagrams. The "TGVizTab", developed by Harith
Alani, allows visualization of ontologies as interactive 3d networks.
Enhancements:
Provided a new version of the Graph Widget. We've posted a Web page
(http://protege.stanford.edu/doc/tutorial/graph_widget/) with the following
information:
Documentation on how to use the new version of the widget.
Major differences between the old and new versions of the widget.
List of new features.
List of enhancements.
Known bug list.
Known feature request list.
Changed the way manifest files are processed. This change will allow
users who run protege from the command line (or from another process) to
put plug-in JAR files on the class path and still have the system detect
the plug-ins. Previously, Protege would only detect plug-ins located in the
plug-ins directory.
The default (CLIPS) back-end now supports any sequence of characters
(including punctuation characters) for class, slot, or instance names.
Changed the mechanism for include so that you can now remove and
replace included projects. This mechanism also prevents you from adding
included projects from other directories. Any change to the list of
included projects now forces a save and reload.
Forms for instances are now explicitly constrained to be smaller than
the screen size. On Windows this was always the case but on the Mac there
were problems with large forms. Larger forms should now scroll on both
platforms.
Made UTF-8 the default file encoding. This change was made to allow
users to more easily share files. You can return to the default system
encoding by editing the protege-2000.lax file and removing the "UTF" line.
If you have projects that use another incompatible encoding we suggest that
you migrate them to UTF-8 using the "nativetoascii" translation program
available from Sun (or one of the other character set conversion programs
available on the web).
We added two new system classes ":RELATION" and
":DIRECTED-BINARY-RELATION". If any of your projects have classes with
either of these names, you should rename the conflicting classes before
installing this build.
The installation now includes an example Mac applescript
("run_protege.applescript") for running Protege from the command line.
Thanks go to Monica Crubezy and Natasha Noy for providing help with this.
The installation now includes an example UNIX shell script
("run_protege.sh") for running Protege from the command line. Thanks go to
Monica Crubezy and Zach Pincus for providing help with this.
Removed several hundred unneeded import statements and variable
declarations from the source code.
Upgraded to JUnit 3.8.1. If you compile our source code, you'll need
to download the new version of this JAR file from
http://www.junit.org/index.htm.
Using the Project | Save As... menu item to save projects under a new
name and/or location now adds an entry to the most recently used project
list. (The most recently used project list can be accessed from the Project
| Open Recent menu item).
The InstanceTableWidget now has optional buttons that allow items to
be reordered.
Added a "browser.html" property to the protege.properties file for the
display of HTML files on non-MS Windows systems. Windows systems always use
the "default browser" for display. Non-windows system may set this property
(by editing the file) to the browser that they want to use.
Added InstanceList/FieldWidget.setShowNewInstances(boolean) API call
to allow a programmer to turn off the automatic display of a form when a
user creates a new instance.
Added instance name to the instance title bar when the name is
different from the browser text.
Added ClsWidget.getSlotWidget(Slot) call to provide API programmers
direct access to slot widgets.
Added a public method Form.highlight(Slot, Color) that gives API
programmers the ability to highlight a given slot widget programmatically.
The methods on widgets to add toolbar buttons and menu items may now
be called from the initialize() method. Previously they only worked if
called in addNotify() or later.
Renamed Project get/set propertyMap to Project get/set client
information to parallel the similar concept on the KnowledgeBase class.
Added javadoc to a number of methods throughout the source code. Also
added class documentation comments to every class in the core Protege system.
The "Ugly Slot Widget" now displays the slot with which it is associated.
Cleaned up the source code for many of the "standard plug-ins".
Added a new method "getFramesWithValue" on KnowledgeBase to allow a
user to lookup frames which have a particular value as a slot or facet value.
Made several "private" methods "protected" to aid users in subclassing.
Modified the database back-end so that it recovers if there are
intermittent connection problems with the database.
Removed the empty Edit menu from the main menu bar.
Increased the initial size of some internal buffers.
Protege icon now shows up on the Mac OS X.
Updated list of sponsors in the About Box.
Plug-in Enhancements
Changed the RDF back-end so people can now attach :NAME to user-defined
classes (only :NAME, not other system frames - the Protege and RDFS
knowledge models are too different to allow this in general). Thanks go to
Michael Sintek for making this change.
Modified PAL parser to accept Unicode characters. Pal constraints can
now accept non-ascii characters.
Updated the pal_query project that's distributed with the standard
release to have fields of PAL-Query configured to use the appropriate widgets.
Bug Fixes
Fixed problem which caused customized forms from included projects to get
copied into an including project file. One side effect of this was that
project files got very large when including other projects. This fix will
not cause existing project files to get smaller however. To reduce their
size you need to either rebuild them (Project | Import) or remove
customizations from all forms on the Forms tab and then save. The latter
can be done by selecting :THING on the forms tab and then selecting from
the right mouse menu.
Fixed manifests for all JAR files to comply with the standard.
Template slot values now work better with cardinality single slot widgets.
Made change to FrameDBStorage that prevents a "null pointer exception" on
some searches done with the API.
Made a change in the database back-end to prevent "null frames" from
occurring in the collection returned by the getFrames() call.
Restored "DeletedFrameException" on method access of deleted frames.
Added test to prevent duplicate adds of direct superclasses, superslots,
and template slots.
Renaming a frame to have the same name as it currently has is now treated
as a no-op rather than an error.
Added changes so the software doesn't fail so gracelessly when you try to
open a project that doesn't exist.
Fixed problem that caused some system slots (such as documentation) to not
get saved on some instances.
Removed "debugging stack dump" on load of project with maximum-cardinality=0.
Fixed a problem that caused the background on forms on the Mac (and
sometimes on other platforms) to be nonuniform and ugly.
Fixed an error in the run_protege.sh script that was causing it to fail for
paths with spaces in them. Thanks go to Zach Pincus for contributing this fix.
Fixed problem with the metrics dialog menu item appearing to hang the
application when it's doing lengthy calculations.
Fixed a problem which caused the "Import Project" dialog to not cancel
properly.
Implemented the KnowledgeBase.getSuperslots() method.
Fixed a number of inconsistencies in the standard newspaper example.
Fixed a problem with default and template values not working for integer
and floating point types.
Modified the clips back-end to handle a situation where an included project
was changed and the including project would no longer load. The specific
problem related to changing a slot type from INSTANCE to CLASS.
Fixed a problem that caused old project frame names to sometimes appear
with a '^' in them.
Fixed error in protege.jar manifest line where '.' appeared rather than '/'.
Fixed error in protege.jar manifest that caused "java -jar" command line
execution to fail.
Fixed problem in clips parser handling of '%' characters in frames names
and symbols for old projects.
Fixed a problem with inclusion that causes absolute paths to be put into
the project file.
Fixed a number of javadoc tag errors throughout the code base.
Fixed problem that could occur when creating classes from the instances tab.
Fixed a bug that showed projects names in the most recently used list that
users deleted while running Protege.
Fixed a PAL problem with some arithmetic and equality operations.
Fixed a bug in our installation program that was causing the Protege
program group to be empty on Windows XP.
Fixed a problem with inverse slots and included projects.
The PAL queries findall function now works.
Incorporated a bug fix into InstanceReader.java in the XML Schema Backend.
Thanks go to Rowland Johnson for this contribution.
Fixed a problem with the database back-end. Some SQL escape syntax code
introduced in one of the earlier beta builds appears to be unsupported by
some JDBC drivers.
"Change Direct Type" operation on instances now works on the Mac.
The menu items on the "Help" menu now work on Windows XP.
Fixed a problem which caused the "maximum cardinality" on the slots tab to
display the wrong value.
Fixed some CLIPS compatibility problems with standard_project.pont. Thanks
go to Mike Clarkson for providing this fix.
Fixed a problem which caused form changes to occasionally result in exceptions.
Fixed problem with new "Changed Included Projects" dialog when it was
called on a new project.
Updated the "antlr.jar" file used by the PAL tabs. The old version of the
JAR file was missing some class files.
Fixed a problem in the file back-end that caused it to not interpret the
'*' character for "getReferences" calls.
Fixed some problems with the database back-end which caused it to not
correctly match on strings with either a '%' or at '_' character.
Fixed problem which caused the JDBC back-end query calls to not properly
handle the '%' character.
Fixed problem which caused security exceptions when you tried to run
Protege as an applet.
Fixed an index out of bounds exception caused by double clicking on an
empty list item in the Welcome Dialog.
Fixed the "All Topics" button on the Welcome Dialog to point to the proper
HTML page.
Removed cause of "listener not attached" messages which sometimes occurred
on a project reload.
Made database back-end more robust when encountering unexpected values.