Link Grammar Parser Older Changes

Summary of Older Changes

Version 5.8.1 (8 January 2021)

Assorted fixes.

Version 5.8.0 (28 February 2020)

Notable changes include: inclusion of javascript node.js bindings; the obsoleting of python2, improved English dictionaries, and most interestingly, an experimental interface for dialects. With this interface, one can provide alternative weightings that emphasize the type of speech that might be common in limited geographical areas, and would not be considered to be commonplace. For example, one can provide weightings for Irish-American, urban English, and newspaper-headline English which might otherwise interfere with ordinary parsing of mainstream English.

Version 5.7.0 (13 September 2019)

This version has one quite remarkable change: the parsing of long sentences has been improved by a factor of 3x or 4x, and thus, the parse speed of many "typical" texts is doubled, or more. Two other important fixes are for broken 32-bit support, and for Windows.

Version 5.6.2 (24 June 2019)

This adds a missing shared-library symbol that broke the opencog build!

Version 5.6.1 (27 May 2019)

Important! This is an important update, as it more than doubles the performance across a broad range of different input texts. Kudos to Amir for this amazing work, as he took something that seemed quite fast to begin with, and squeezed out an honest factor of two from it! This is unusual in mature software.

Version 5.6.0 (4 January 2019)

Version 5.5.1 (27 July 2018)

Version 5.5.0 (29 April 2018)

Version 5.4.4 (11 March 2018)

Version 5.4.3 (4 January 2018)

Version 5.4.2 (19 October 2017)

Version 5.4.1 (18 October 2017)

Version 5.4.0 (26 July 2017)

Notable: This reorganizes the source code into subdirectories, grouped according to the processing stage. This should make it easier to understand what the major components are, and which files & functions are a part of each component.

Version 5.3.16 (15 April 2017)

Version 5.3.15 (12 Feb 2017)

Version 5.3.14 (19 Jan 2017)

Version 5.3.13: (19 November 2016)

Emergency fix: remove accidental dependency on zlib and python.

Version 5.3.12: (17 November 2016)

Notable: Both python2 and python 3 bindings are built by default.

Version 5.3.11: (28 September 2016)

Notable: A conflict of the bundled version of minisat with the system-provided version is minimized: LG will now use the system-provided version, if it is available (and not install the bundled version).

Version 5.3.10: (14 September 2016)

Notable: Fixes a build-break for OSX! Also, a large restructuring of the English-language dictionaries to handle a greater variety of sentences with "as" and "so" in them.

Version 5.3.9: (27 August 2016)

Emergency release to fix a fatal error in the previous release!

Version 5.3.8: (15 August 2016)

The big change in this release is the support for python2 and python3 bindings, large improvements in Windows support, and the use of locales in dictionaries, which should help avoid locale-related difficulties (for example, capitalization is locale-dependent; and so mis-set locales break Turkish).

Version 5.3.7: (7 May 2016)

Version 5.3.6: (1 May 2016)

Version 5.3.5: (28 April 2016)

Fix strange Apple Mac OSX behavior.

Version 5.3.4: (16 March 2016)

Version 5.3.3: (23 December 2015)

Fix build break for Apple Mac OSX.

Version 5.3.2: (4 December 2015)

Fix build break for Apple Mac OSX.

Version 5.3.1: (22 November 2015)

Fix build break.

Version 5.3.0: (22 November 2015)

This is a major release of the parser, with many important changes in it. Most fundamentally, the tokenizer has been completely redesigned; the tokenizer is the device that splits sentences in sequences of words and (for non-English languages) morphemes.

Another very important change: The python bindings are completely redesigned, and not in a backwards-compatible way. The new python bindings are much closer to how the parsing process should be thought about in the abstract.

There are also various fixes: the SAT solver is no longer crippled. Assorted performance speedups have been implemented, especially affecting longer sentences. Assorted bugs and cleanup has been performed.

Version 5.2.5 (1 February 2015)

Fixes for assorted breaks.

Version 5.2.4 (12 January 2015)

Fixes for assorted breaks.

Version 5.2.3 (4 January 2015)

Fixes for assorted build breaks.

Version 5.2.2 (3 January 2015)

Fixes for assorted build breaks.

Version 5.2.1 (28 December 2014)

Failed to run all of the tests when creating 5.2.0. So try again.

Version 5.2.0 (27 December 2014)

This is a major release of the parser, with many important changes in it. The internals of the parser have been re-organized, resulting in a speedup of 2x to 4x for typical English texts. Multiple multi- threading bugs were fixed, and there is now a simple multi-threading unit test. A memory leak was fixed, and a memory over-consumption bug was fixed. These changes were enabled by the final removal of the "fat link" code from the parser.

Version 5.1.3 (7 October 2014)

This release continues with fixes for build-breaks for Apple OSX.

Version 5.1.2 (4 October 2014)

The most serious fix in this release is a build-break fix for Apple OSX Mavericks.

Version 5.1.1 (23 September 2014)

The most serious fix in this release is a fix involving parse ranking in the Java API, which was causing RelEx to generate incorrect parse rankings for certain sentences.

Version 5.1.0 (29 August 2014)

This version includes a number of important changes. One of these is that the connectors can now be given a direction (head and tail indicators), so that link-grammar dependencies can now be true, hierarchical dependency arrows. This is of marginal importance for English, where dependency directions are implicit, but is vital for free-word-order languages, where bi-directional links are not enough.

Another important change is that costs can now be arbitrary floating point numbers. This is particularly useful for providing fine-grained parse ranking. The LG cost system assigns a "cost" to every connector, and the sum-total of costs for a sentence determines the parse ranking. Since costs are additive, they behave as entropies (log P -- the logarithm of a probability: probabilities are multiplicative, logarithms are additive).

Under the covers, there's been some major work on the tokenization (splitting sentences into words) and morphology (splitting words into morphemes) code. This work is ongoing, and should eventually result in much better support for non-English languages.

Other notable changes include an updated Russian dictionary, and an assortment of changes to the English dictionary. An intriguing step towards phonology: LG can now distinguish between the use of the determiners "a" and "an" preceding nouns that start with consonants or vowels. Whether fancier phonology support is possible is a curious question.

Version 5.0.8 (30 April 2014)

Version 5.0.7 (29 April 2014)

Version 5.0.6 (18 April 2014)

Version 5.0.5 (17 April 2014)

Version 5.0.4 (16 April 2014)

Version 5.0.3 (13 April 2014)

Version 5.0.2 (10 April 2014)

Version 5.0.1 (9 April 2014)

Version 5.0.0 (1 April 2014)

We are proud to announce a major new release of the Link Grammar Parser! It contains many important changes and new additions. One of the most significant changes is that the license has been changed from the BSD license to the LGPL. This was done to enable considerably more flexibility in accepting contributions to the project: it seems that few are particularly interested in contributing to a BSD-licensed project. This change has enabled folding in some new work:

The full ChangeLog is shown below.

Version 4.8.6 (2 February 2014)

Version 4.8.5 (5 January 2014)

Version 4.8.4 (31 December 2013)

Version 4.8.3 (30 December 2013)

Version 4.8.2 (25 November 2013)

Add missing file, needed for Java bindings.

Version 4.8.1 (21 November 2013)

Minor updates, unless you are using Java, or the Russian dictionaries on Windows, in which case, you'll need this update.

Version 4.8.0 (24 October 2013)

This is the start of a new version series, containing an important change to the English language dictionary. Three new link types are introduced WV, CV and IV. These are used to connect the left-wall to the primary verb of the sentence (WV), to connect the ruling clause to the primary verb of a dependent clause (CV), and a similar link for certain infinitive verbs (IV). The goal of these links is to make it easier to locate verbs, and thus to provide a more direct mapping from the link-grammar formalism to a dependency parse (as dependency parses always put the verb at the root of a sentence).

These are not the first links that explicitly indicate root verbs: several other link types already play this role: The AF, CP, Eq, COq and B links already play this role. The new WV, CV and IV links round out this capability and do so in a very general form. See WV, CV and IV for details.

With this release, we expect that all (non-auxiliary) verbs in a sentence will be linked either to the wall, or to a controlling parent. We also expect there to be some additional fixes and tightening-up to occur in future releases, especially in regards to comparative sentences.

This release also includes a variety of fixes to the Java API/server. In addition, some ancient, deprecated C code was removed.

Version 4.7.14 (20 June 2013) MacOS build break

Version 4.7.13 (17 June 2013) Windows unicode handling fixes.

Version 4.7.12 (25 May 2013) Major revision to the Russian dictionaries!

Version 4.7.11 (23 March 2013) Emergency build break fix.

Version 4.7.10 (9 March 2013) Russian dictionaries!

Version 4.7.9 (3 November 2012) A large number of dictionary updates, plus some more MacOSX touchups.

Version 4.7.8 (10 October 2012) Broke the build, in the previous release. Ooooops!

Version 4.7.7 (6 October 2012) This version makes a number of significant changes to the dictionary. The most important of these is to indicate that expressions of the form ...a number of X act as if they were determiners; correspondingly, the subject and object links move to a new location. That is, the subject/object links now land on "X" instead of "number". Other changes to the dictionary are listed below.

Version 4.7.6 (26 April 2012) This version fixes a bungled header file in the last version: builds broke because the public header file was including an internal header file.

Version 4.7.5 (16 April 2012) This version includes fixes for a handful of dictionary bugs, an all new manual page, and several fixes and improvements for the build system.

Version 4.7.4 (13 February 2011) This version includes fixes for several bugs/crashes introduced in the previous version :-( It also includes changes that result in dramatic speed improvements on long sentences, with an average of 1.1x to 2.0x improvement on "typical" texts.

Version 4.7.3 (7 February 2011) This version fixes a bug where a "combinatorial explosion" resulted in no parses being printed.

Version 4.7.2 (6 January 2011) This version fixes a crash and an "almost infinite loop"; both might be hit when using the (now deprecated) fat-links, and certain overflow conditions are met.

Version 4.7.1 (11 December 2010) This version fixes several bugs introduced by the conjunction-handling rework of 4.7.0. Several Windows-related compile fixes are included as well.

Version 4.7.0 (12 September 2010) This version introduces a major change to the way that conjunctions are handled. The parse output for conjunctions is not compatible with the old output, but should be easier to work with, solving many problems. The rework results in a performance improvement of 1.3x to 2.7x, depending on the text.

Version 4.6.7 (16 April 2010)

Version 4.6.6 (19 March 2010)

Version 4.6.5 (3 November 2009)

Version 4.6.4 (11 October 2009)

Version 4.6.3 (4 October 2009)

Version 4.6.2 (21 September 2009)

Version 4.6.1 (31 August 2009)

Version 4.6.0 (29 August 2009)

Version 4.5.10 (25 August 2009)

Version 4.5.9 (25 August 2009)

Version 4.5.8 (2 July 2009) includes the following changes:

Version 4.5.7 (4 June 2009) includes the following changes:

Version 4.5.6 (24 May 2009) includes the following changes:

Version 4.5.5 (10 May 2009) includes the following changes:

Version 4.5.4 (9 May 2009) includes the following changes:

Version 4.5.3 (14 April 2009) includes the following changes:

Version 4.5.2 (14 April 2009) includes the following changes:

Version 4.5.1 (13 April 2009) includes the following changes:

Version 4.5.0 (10 April 2009) includes the following changes:

Version 4.4.3 (11 March 2009) includes the following changes:

Version 4.4.2 (15 January 2009) includes the following changes:

Version 4.4.1 (15 December 2008) includes the following changes:

Version 4.4.0 (7 December 2008) includes the following changes:

Version 4.3.9 (8 October 2008) includes the following changes:

Version 4.3.8 (14 August 2008) includes the following changes:

Version 4.3.7 (8 August 2008) includes the following changes:

Version 4.3.6 (21 July 2008) includes the following changes:

Version 4.3.5 (29 April 2008) includes the following changes:

Version 4.3.4 (16 March 2008) includes the following changes:

Version 4.3.3 (27 February 2008) includes the following changes:

Version 4.3.2 (2 February 2008) includes the following changes:

Version 4.3.1 (31 January 2008) includes the following changes:

Version 4.3.0 (30 January 2008) includes the following changes:

Version 4.2.5 (11 November 2007) includes the following changes:

Version 4.1 (30 August 2000)

Version 4.0 (4 August 2000) changed significantly from version 3.0. These changes are described in the improvements page.

Version 3.0 (15 April 1998)

Version 2.0 (17 October 1995)