The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
0.5.9
-----

Implemented Dollars in categories, e.g. s\$/s\$. (Jason)


0.5.8
-----
Summary: The gui is back, grok has a new multi-word expression package
and noun phrase chunker package.  Lots of changes to the categorial
data structures.

Unification has been generalized from just Unifiables to
Objects. (Jason) 

Syntactic rules return a list of results instead of just one. (Jason)

Added new package for noun phrase chunking. (Joerg)

The part-of-speech tagger is now independent of English.  Previously
there were a few filters that used English specific data. The
POSTaggerME class can now be used without these filters or with an
implementation appropriate for different languages supplied. (Jason)

Resurrected the GUI, which is held in the opennlp.grokkit
package. (Meghan)

Added bin directory with "tgrok" script for running command line
interface for parsing and "grok" script for starting the gui. (Jason)

Added multi-word expression package opennlp.grok.preprocess.mwe for
finding bits of text like "ad hoc" which contain multiple words, but
which behave syntactically like one word. (Mike)

Improved the efficiency of the Tokenizer. (Jason)

Added WebStuffDetector pipelink for detecting URLs and emails. (Jason)

Changed CurriedCat so that it is not implemented in a recursive
manner. Added data structures CatList and SlashList to support the
flatter view on CurriedCats. (Jason)

Added ArgStack class which holds a CatList and SlashList inside.
CurriedCat now uses an ArgStack rather than both a CatList and
SlashList. (Jason)

Added hard-coded rule heirarchy for clever Rule implementations which
scan the input categories and perform less unifications and failing
more quickly than generic rules. (Jason)

Removed RulesModel and RulesItem. (Jason)


0.5.6 - Getting There
---------------------
Summary: Parsing is getting a bit more interesting with hybrid logic
interpretations, and the lexicon is beginning to show the signs of
what it is eventually intended to be.  Still much work to go!

Rewrote a bunch of stuff in the preprocessing components so that they
use fast method calls instead of memory hungry gnu-regexps to find
information about the text. (Jason)

Build system now includes a build.bat for Windows development. (Meg)

Inheritance in the lexicon is now supported. (Jason)

Updated Grok for a bunch of removals and changes in the opennlp.common
packages. (Jason)

Updated the opennlp.grok.preprocess.namefind package to improve its
accuracy and memory usage.  Also retrained the model. (Jason)

Added constructor to SDEventStream which takes a ContextGenerator.
The default behavior for the class is to create an instance of
SDContextGenerator.  This is now parameterized so that the Stream
can use a ContextGenerator which knows about a Set of induced
abbreviations. (Eric)

Upgraded trove to version 0.1.1 (Eric)

Made it possible for feature values to be transfered from one category
to another within a complex category, thus simplifying the declaration
of categories in the lexicon. (Jason)

Moved Pipeline and PipelineException to OpenNLP Common. (Jason)



0.5.5 - Stripped
----------------
Summary: This release is Grok with a whole bunch of stuff cut out of
it, and the preprocessing components using the new XML structure of
NLPDocuments appropriately.

Jason: fixed a number of bugs in the XML preprocessing stuff

Jason: hacked out a number of classes from Grok as part of Grok's
refocussing on only parsing.  The opennlp.grok.knowledge and
opennlp.grok.gen packages are gone, a bunch of the Category classes
are gone from opennlp.grok.expression, and the Agent and Unify classes
are gone, along with a bunch of others.

Jason: removed CatParse stuff so that freebies.jar is no longer
needed.  Will eventually replace with an ANTLR parser.


0.5.4 - Deadwood
----------------
Summary: Lots of changes, but the main reason for this release is to
have a code capsule before bunches of code gets cut.

Jason: Improvements to Grokling front-end.

Jason: Parsing has been resurrected.  Parsing capabilities are still
greatly reduced from 0.5.0, but it is coming back steadily.

Jason: Grok updated for changes to unification architecture of
OpenNLP.  Also updated for many other OpenNLP interfaces.

Joao: use of XML in preprocessing components now made to conform with
JDOM and the changes in the handling of XML in OpenNLP.  xml.jar was
finally dropped from Grok's dependencies.

Eric: Modified opennlp.grok.preprocess.sentdetect package so that it
doesn't need to use gnu-regexp objects to scan sentences.  Added
EndOfSentenceScanner interface, which defines an API for classes which
are able to find end of sentence tokens in Strings, StringBuffers, and
char[] arrays. Removed gnu-regexp.jar dependency from Grok.

Eric: Various performance improvements to
opennlp.grok.preprocess.sentdetect package.

Jason: Trained new sentence detection model which is built on the new
version of the sentence detector.  Trained a new category tagger on
less data so that the Grok download would be smalled.

Jason: Fixed a minor bug in the tokenizer in which it was possible to
have an empty string token created.

Jason: Added a main class that calls Grokling and changed build.xml so
that an executable jar could be created.  Unfortunately, a
segmentation error occurs when trying to execute the jar on a grammar,
so this will have to be sorted out before actually releasing any exe
jars.

Jason: Added samples directory in the source code.  Included a simple
example of building a pipeline and a small sample grammar.

Jason: Swapped java.util classes for Trove classes in a number of
places.

0.5.3
-----
Fixed a problem in the build.xml file that was causing the maxent
models to be corrupted when the grok jar was created.

Improved the infrastructure for creating and releasing the Grok
homepage.


0.5.2
-----
Improvements made to the sentence detection code as per changes made
in the Maxent package.  All maxent models converted to the single file
format supported by Maxent v1.2. (Work sponsored by eTranslate.)

Part-of-speech tagging model is trained on much more data and uses a
number of word stems to avoid some errors which the old model was
producing. (Work sponsored by Electric Knowledge.)

Grok updated for changes in the OpenNLP Common interfaces.

Grok now uses Ant to build, and the directory structure has been
changed considerably to facilitate the creation of the distribution
files and to ensure that source code and supporting libraries are
always provided with the distribution.

Lots of other little changes have gone on since the last release, but
they are numerous and I can't remember them... 

Note: The lexicon system is broken and should be fixed in the next
version.  So, that means that Grok cannot be used to parse, but the
improvements in preprocessing components warrant a new release for
Grok.  A version suitable for parsing should be available in a month
or two.


0.5.0
-----
LMR can now be started with a flag to grokexe (or the grok script)
Fixed lingering LMR bugs

Experimental
  Added simple negation handling.
  Some basic consistency checking is done when resolving anaphora.  The
    antecedent must be consistent with its surrounding context.  So in
    "John is not a dog."  "John likes Bill."  "Mary likes the other dog"
    the other dog will not refer to John since he is know to not be a dog.

0.4.1
-----
Distribution bugs fixed

0.4.0
-----
Complete reorganization of everything
Maximum Entropy modules for:
	Name Recognition
	Tokenization
	Sentence Detection
	Semantics Inferring
Decision Tree support
Clean up of many interfaces
More documentation
Beginning of incremental resolution (Strube salience alg)

Lots lots more...

0.2.1 
-----
Added Syner class as companion to Denoter
Set up database (jdbc) connectivity for Julia lexicon and morphology
Preliminary foray into using Julia's learned lexicon.
Grok now parses with Set-CCG.  Not fully tested.
Prettied up the options menu of gui.
Modules are now defined by interfaces and act pretty much how I'd like them to
  The only thing I'd like now is to be able to specify a module on a 
  per request basis rather than for all requests.
Added a hook interface.
Fixed up how queries are instantiated and resolved.

0.2.0 
-----
Switched to Metamata Parse to parse Categories (no more JavaCUP and JLex)
Switched to combined representation of syntax, semantics, and presups
Added Resolver so we now do some realistic semantic resolution
Added anaphora resolution and the DominanceComputer and DominanceHandler for
  computing and using the dominance relationships in Logical Forms.
Serious changes to Brain to allow reasonable interpretation of most of
  English sample file.  ISAInstantiator is gone and is replaced by
  simpler, non table-driven version, in SimpleInstantiator.
Added AccommodationPolicy interface and the AccommodateAll instance to allow
  varying levels of accommodation when asking for FC's
Reorganized Category and its extending classes.  Now, Category is an interface
  which is implemented by CategoryAdapter, which all of the other
  sub-category classes now extend.  The semantic category classes now also
  implement the Denoter interface, so that now the Brain, DM and all the
  semantic-y classes only see Denoters rather than Categories.
Large directory reorganization
Can now turn off entries in lmr
Added automatic creation of options menu.  Needs to be cleaned up.
Wrote external documention---incomplete and messy, but at least its a start.
Wrote a fair amount of code documentation.

Broken: anything to do with intonation

0.1.6 
-----
Fixed up LMR grammar and added sample files
Fixed some bugs in LMRLexicon
Added regression test

0.1.5 
-----
Set up ICoS demo
Fixed a few brain problems
Finished first pass of LMR grammar

0.1.4 
-----
ISA display cleaned up
Added lmr compatible Rules and Lexicon classes
Added start of lmred English grammar
Added emacs keymap
Semantics now are displayed with lambdas

0.1.3
-----
Feature unification is non-destructive
New intonation added-- only uses accent features on syntax

0.1.2 
-----
Added speech synthesis
new module system
    - Parser, Synthesizer

0.1.1 
-----
Minor bug fixes for running outside of developer environment

0.1.0
-----
Initial Release