Change History
Last Modified: 2001/07/03
This document contains a description of major functional changes in Notio.
Version Index
- Reworked CGIF translators for the CGTools Workshop at ICCS'2001.
- Added new options to CGIFGenerator to control formatting of output.
- Rewrote DefiningLabelTable.
- Massive cleanup of CGIFParserImpl.
- Changed Concept and CoreferenceSet so that concepts with no coreference
sets are treated as having an implicit coreference set of which they are the
sole member. Affect methods include Concept.isDefiningConcept() and
Concept.testCoreference().
- Added CGStream handling to Parser/Generator and their subclasses.
- Changed the CGIFTranslation example to accept command line arguments and
standard in/out. This makes it a useful tool for testing parsing.
- Added CGStreamTranslation example which handles CGStreams instead of
Graphs.
- Added TestCGIF to testing suite.
- Moved TestFixtures.java into test/ directory where it belongs and added
new fixtures.
- Added TestMatch, which tests some of the matching capabilities.
- Corrected bug whereby MatchResult.getNumberOfMatches() returned 1 even
if the match failed. (Note: the matchSucceeded() variable always returned
the correct boolean value).
- Fixed bugs in Graph.matchGraphs() relating to empty and null graphs.
- This version includes API documentation in LaTeX, PDF, and Postscript.
- Fixed bug in referent matching relating to null referents (again).
- Fixed bug in graph joining and added slight optimization.
- Improved testing suite.
- Included .class files for com.metamata in Notio.jar file (missing in
0.2.0).
- Fixed lambda expressions in CGIFParser and CGIFGenerator.
- Fixed bug in Concept.isGeneric() which wasn't checking for descriptors.
- Fixed bugs relating to referent matching and descriptors.
- Fixed bug in Referent.copy() relating to null designators and
descriptors.
- Fixed bugs in Graph.replaceConcept().
- Added comments to getConcepts(), getRelations(), getActorRelations(),
and getNormalRelations() indicating that ordering of the array is not
guaranteed to be consistent across calls.
- Changed versioning system to distinguish between bug fixes and API
changes ( X.Y.Z where X is major release, Y is API change, Z is bug-fix).
- Removed the SetDesignator class. It was not sufficiently flexible or
well-defined.
- Added descriptors to Referent and removed DescriptorDesignator. Much
simpler.
- Changed Referent so it only allows single designators. Much cleaner.
- Added setDesignator(), setQuantifier(), and setDescriptor() to Referent.
- Changed copy operations so they create instances of the exact same class
as the original. This allow for proper support of subtypes of standard
Notio classes.
- Changed CoreferenceSet so that scope-checking is disable by default
(note: CGIFParser enforces scope by itself).
- Completely reworked TranslationContext. It is now much more abstract
and all specific kinds of translation information are outside of the API (in
notio.translators).
- Changed parsers and generators to use the new TranslationContext.
- Renamed methods in Parser and Generator interfaces to be more
consistent.
- Added new methods to Parser and Generator interfaces.
- Reworked CGIFParser:
- Uses most of the syntax described in dpANS (Aug 1st, 1999 revision).
- No longer creates a CoreferenceSet for every concept.
- Removed non-standard support for sets.
- Added full support for lambda expressions as types.
- Now correctly treats "lambda" as a distinct token.
- Added type checking against signatures in lambda expressions.
- Removed obsolete type macro support.
- Added initial support for special contexts.
- Added case-insenstive matching of reserved keywords.
- Bound references within a relation will be resolved to a coreferent
concept within the same context, if any exists.
- Now creates a new coreferent concept when a bound reference is made
within a relation which does not share the same context with the defining
concept or any member of its coreference set.
- Fixed bug where parser rejects single-character names.
- Added proper scoping for coreference variables.
- Improved information contained in exceptions.
- Reworked CGIFGenerator:
- Uses almost all of the syntax described in dpANS (May 3rd, 1999 revision).
- Added support for type definitions.
- Fixed problems in generating coreference labels.
- Added proper scoping for coreference labels.
- Added a flag that allow the generation of incomplete relations.
- Added flags so that graph and node comments can be supressed.
- Added new fields to ParserException to provide more information about
errors and their location.
- Improved documentation of Concept and Referent.
- Added freeIndividual() to Marker class so that individuals may be freed
for garbage-collection.
- Fixed bug relating to matching null referents/designators with the
DG_RESTRICTION/GENERALIZATION flags.
- Fixed bug in RelationTypeHierarchy when constructing using signatures.
- Fixed bug that prevented serialization.
- Fixed numerous other bugs.
- Clarified comments relating to removing types from type hierarchies.
- Added utility method replaceTypeInGraph() to ConceptTypeHierarchy.
- Added empty constructors to ConceptType and RelationType.
- Removed redundant code from TypeBuild example.
- Added setType() to Relation.
- Added methods so designators can be changed after construction.
- Cleaned up some documentation, including removing @unimplemented tags.
- Started exploring ideas for handling collections of graphs.
- Miscellaneous bug fixes.
- Corrected some typos in the documentation.
- Expanded the TypeBuild.java example to include an example of how to build a type with a type definition.
- Removed the LambdaDesignator class from the API (was interesting but unnecessary and poorly designed).
- Removed the Abstraction class from the API (not really necessary).
- Changed automatic defining label generation so it does not use upper case letters (labels are meant to be case insensitive according to dpANS).
- Removed many classes from the notio.demos package that formed a poorly constructed tool.
- All of these class removals result in a slightly smaller JAR file.
- Added ability to specify signatures only in Concept/RelationTypeDefinition.
- First public release of source code.
- Changed Parser to use Readers instead of InputStreams (improves Unicode support).
- Migrated the CGIF parser to Metamata's parser generator (the direct descendant of JavaCC).
- Added experimental LF parser based on the grammar used by the Peirce workbench.
- Changed Generator to use Writers instead of OutputStreams (improves Unicode support).
- Removed string-oriented initialization of generators and parsers (use StringWriter and StringReader instead).
- Fixed bugs relating to incomplete relations.
- Created a general translation applet for demonstration and testing.
- Expanded test suite.
- Added MarkerComparator interface to allow customized comparison of Markers.
- Added support for different kinds of matching for markers.
- Changed tag comments to distinguish between genuine bugs and new ideas.
- Completed and tested simplify() methods in Graph.
- Fixed more bugs in type hierarchies.
- Slightly improved support for unlabelled types.
- Experimented with new CGIF grammars discussed on list.
- Completed graph traversal capabilities.
- Major reworking of coreference sets so that they now enforce the rules laid down in dpANS Abstract Syntax.
- Major reworking of type hierarchies including multiple bug fixes, renamed methods, and new methods.
- Removed unnecessary creation of defining labels in one case in CGIFGenerator.
- Fixed bugs in the CGIF parser.
- Added new constructors to Concept.
- Fixed minor bugs in compound graph traversal.
- Created some testing utilities to automate some of the package testing.
- First publically available version for some time.
- General cleanup of documentation and other material.
- Fixed bug in type hierarchies that caused notio.examples.TypeBuild to fail.
- This was a "Guelph-only" release and was not posted to the web-site.
- Major design changes in this version.
- Added Referent class and moved a lot of functionality into it from Concept.
- Referent class allows for multiple designators in a single referent.
- Changes in many classes to use the new Referent class.
- Made Actor into a subclass of Relation.
- Relation absorbed most of Actor's functionality is now much more flexible.
- Removed a lot of Actor-specific code from various classes.
- Actors are now treated as ordinary Relations by Graph so there are no add/removeActor() methods, etc.
- Added optional case-sensitivity for type labels and names (default is case-insensitive).
- First properly working version of LFGenerator.
- Added some debugging tools and demos including a demo of graph matching.
- Dropped support for JDK 1.0x. Now requires JDK 1.1x or higher.
- Overall reduction in code redundancy, number of methods, and code size.
- Added support for disconnected matches in graphs (MatchingScheme.CONN_MATCH_OFF).
- Added example of using matching schemes.
- This was a "Guelph-only" release and was not posted to the web-site.
- Added direct support for parsing/generating with strings in addition to streams
- Added new copying technique that uses CopyingScheme class.
- Major reworking of the matching engine:
- Improved time efficiency with a small space penalty.
- Added graph folding and actor matching.
- Provides facilities needed for common subgraph and join operations.
- NodeMapping now consists of a list of mapped pairs, allowing one-to-many mappings.
- General cleanup of code and clarification of comments.
- Completed support for nested MatchResults.
- Moved maximum generated match control into MatchingScheme so it can be different in each context.
- First publically available binary release.
- Fundamental design philosophy changes in order to make the API more flexible and easier to use.
- Type labels and definitions may be now be changed after construction, removing the necessity of replacing the all occurances of a type.
- Added optional valence information to RelationType.
- Extensive reworking of Relation in order to support partial specification of arguments and valence checking (similar changes to Actor will follow in a later revision).
- Added support for nested matching schemes and match results.
- Removed and relaxed several exceptions in order to make the API easier to use.
- Added the ability to traverse graph components from the sub-components outward (e.g. getEnclosingGraph() in Concept, Relation, and Actor).
- Added the Node class as a base class for Concept, Relation, and Actor.
- Added an incomplete preliminary implementation for a LF ('linear form') generator.
- Added new type hierarchy methods for convenience.
- Reworked actors to be closer to the draft CG98 standard.
- Minor adjustments to the CGIF parser to be closer to the draft CG98 standard.
- Revised old examples to demonstrate simpler code and added a new one.
- Decided to drop support for JDK 1.02 since JDK 1.1x is so far advanced via Sun's Java Plugin.
- Laid groundwork for a separate Referent class, which is not yet available but will move referent information out of Concept in a later revision.
- Extensive work on Parser and Generator interfaces.
- Reworked CGIFParser to use the new Parser interface.
- Extended support for actors.
- Refined support for coreferent matching.
- Added baseline support for actors.
- Graph: Added support for multiple comments.
- CGIFParser:
- Added support for graph comments.
- Now uses strict Java literals and identifiers.
- Now allows arbitrary order for concepts and relations.
- Added proper support for lambda expressions.
- Now generates Double or Long literals as appropriate.
- Proper support for Concept and Relation comments.
- Parsing for actors.
- MatchingScheme: Added limited support for coreference link matching rules.
First public release.