Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/prohippo/pyelly

A multifaceted natural language tool written in Python 2.7.*. A release written in Python 3.8 has been uploaded in the GitHub project pyellytoo.
https://github.com/prohippo/pyelly

Last synced: about 1 month ago
JSON representation

A multifaceted natural language tool written in Python 2.7.*. A release written in Python 3.8 has been uploaded in the GitHub project pyellytoo.

Awesome Lists containing this project

README

        

PyElly is a rule-based natural language processing tool that has existed
for over forty years in various incarnations. It is now free for download
from the Web as open source software. It is written entirely in
version 2.7 of Python and employs SQLite for data management.

PyElly is intended mainly for educational use. It allows a student to
engage natural language at a fine level of detail and to learn the issues
involved in processing text data. It can be of interest to others, though,
because of its extensive support for handling the messy aspects of
language not central to most text data problems or to their solutions.

The basic paradigm of PyElly is to rewrite natural language input into
some other text output, which might be SQL, XML, or some other form. This
falls short of full understanding, but can be quite helpful as a general
kind of preprocessing for data mining or for more precise indexing.

PyElly tools include flexible tokenization, syntax-driven parsing, English
inflectional and morphological stemming, macro substitutions, basic
and extended entity extraction, ambiguity handling, sentence recognition,
support for large external dictionaries, and a general procedural
framework for translating text from UTF-8 to UTF-8.
0
The latest versions have been completely rewritten in object-oriented
Python. It completed beta testing in 2014 and can be found on
GitHub at https://gith$ub.com/prohippo/pyelly.git . Development and
refinement of PyElly software is ongoing.

To learn how to use PyElly, see the PyEllyManual.pdf file in the same
directory as this README.txt file. The manual has about 170 pages
of information, including an overview of basic linguistics. Documentation
of individual Python source files can be generated as needed by running
the Python pydoc utility on the source files.

At present, PyElly consists of 67 Python modules comprising about eleven
thousand lines of source code. The PyElly package also includes various
language definition files with rules implementing a broad range of
nontrivial example applications; these include

* indexing - remove stopwords and get stems for content words from raw
text input.
* texting - readable text compression.
* doctor - emulation of Weizenbaum's Doctor program.
* chinese - basic translation of English to Chinese in simplified
or traditional characters.
* querying - rewrite English questions as SQL queries for a Soviet
military aircraft database.
* marking - rewrite English text from the Web with shallow XML markup
* name - extract mostly English personal names from text
* disambig - disambiguation of phrases with WordNet concept information.
* chemic - recognition of chemical names in text

These show just a few of the many things PyElly can do for you. They also
serve as a basis for comprehensive software integration testing. You may
use any of them as models for building your own PyElly applications.

PyElly is free software released under a BSD open-source license for
educational and other uses. Be advised that the current software and
documentation is still evolving, although releases after v1.2 should be
more stable than preceding releases.

Release Notes:

0.1 - 25dec2013 initial beta release
0.2 - 16mar2014 increase number of syntactic categories to 64
add storing and reinserting of deleted output buffer text
fix bugs in DELETE TO generative semantic command
add unit testing input to PyElly distribution
save integration testing script doTest properly
eliminate inconsistencies in integration testing keys
improve output of unit test for generativeProcedure.py
0.3 - 24apr2014 extend generative semantics to support new applications
add UNITE, INTERSECT, COMPLEMENT, UNCAPITALIZE
add QUEUE, UNQUEUE, SHOW
replace DELETE ALL code
make STORE more efficient and generalize, fix bugs
allow for initializing of global variables in grammar
strengthen unit testing, add "querying" integration test
0.4 - 04jul2014 support conceptual hierarchies in cognitive semantics
separate lookup tables for syntactic and semantic features
fix bugs in loading vocabulary tables from text input
fix bugs in loading conceptual hierarchies from text input
improve unit testing
add core of "disambig" application for integration testing
0.4.1 - 13aug2014 clean up and flesh out "disambig" application
fix bugs in cognitive semantics
fix bugs in conceptual hierarchies
miscellaneous cleanup of Python source files
improve unit testing of modules, parse tree dump
0.5 - 01sep2014 simplify doTest and make parse tree dumps easier to filter
add audit on usage of grammar symbols for error checking
add version check when loading saved binary language files
define ellyException to handle errors in table loading
add error messages when generating language tables
simplify semantic feature check by generative semantics
extend generative semantic unit tests
add "bad" application to test PyElly error reporting
0.5.1 - 12sep2014 fix residual problems with error reporting and recovery
extend "bad" application for integration testing
0.6 - 12oct2014 more input checking in vocabulary table compilation
more information in "disambig" application translations
better English inflectional and morphological stemming
English irregular stemming, update "echo" application
extend "chinese" application, improve classifiers
1.0 - 24dec2014 add comprehensive error reporting in inflectional stemming
add WordNet exceptions to cases handled by stemmers
upgrade pattern table matching and clean up code
fix bug in ellyWildcard with $ wildcard
update "querying" application
clean up various problems in "chinese" application
clean up all modules with PyLint
1.0.1 - 01jan2015 bug fixes, cleanup ahead of v1.1
1.0.2 - 12jan2015 bug fixes, cleanup and upgrade ahead of v1.1
clean up token extraction and lookup
1.0.3 - 22jan2015 bug fixes, cleanup ahead of v1.1
upgrade code for token extraction and lookup
add first iteration of "marking" application
1.0.4 - 26jan2015 bug fixes and upgrades ahead of v1.1
extend "marking" rules and integration test
1.0.5 - 31jan2015 bug fixes, cleanup ahead of v1.1
better handling of punctuation in parsing
extend "marking" rules and integration test
1.0.6 - 07feb2015 bug fixes, cleanup ahead of v1.1
improve unit testing
add "marking" rules and extend its integration test
1.0.6a - 12feb2015 clean up code
make parsing with "marking" rules more efficient
update "marking" integration test
1.1 - 21mar2015 add name recognition to entity extraction capability
add word phonetic signatures
add "name" integration test
minor cleanup of table loading source
fix bug in sentence recognition and clean
1.2 - 03apr2015 replace Berkeley Database with SQLite
clean up PyElly initialization logic
1.2.1 - 15apr2015 extend rules for "marking" application
extend "marking" integration test
add more Unicode punctuation handling
fix input buffering for Unicode
fix morphological stemming problems
fix tokenization with new Unicode punctuation
fix macro table for new Unicode punctuation
add missing code for FIND in generative semantics
1.2.2 - 01may2015 extend "test" and "marking" integration tests
extend handling of punctuation
add phrase limit for avoiding runaway analysis
fix bug in warning of unused grammar symbols
fix bug in token lookup
improve morphological stemming
break out pickling as separate module
1.2.3 - 08may2015 extend "marking" integration test
fix bug in numerical transformations with period
clean up rule definition diagnostics
1.2.4 - 15may2015 extend "marking" integration test
fix bug in scoring plausibility of phrases
fix simplified character translation in "chinese" test
add tracing to cognitive semantic logic
better checking on feature set identifiers
1.2.5 - 25may2015 clean up "marking" rules and integration test
improve input code for syntactic and semantic features
increase upper limit on phrase count
fix bugs in parse tree growth restrictions
fix bug in inheriting syntactic features with *L, *R
change directions of FIND command to be more consistent
update "test" and "bad" grammars for PyElly changes
raise exception for phrase overflows
1.2.6 - 01jun2015 clean up "marking" application rules
extend "marking" integration test
clean up logic for loading grammar and vocabulary
improve cognitive semantic tracing
add diagnostic output for parsing
1.2.7 - 08jun2015 clean up "marking" rules and change integration test key
fix bug in morphological analysis match conditions
make punctuation syntax feature ID consistent
add automatic check for consistency of all feature IDs
fill out description of MERGE command in User's Manual
1.2.8 - 15jun2015 better debugging for reading in sentences to process
fix incorrect stop exception
fix inconsistent feature ID in "chinese" grammar
fix problem in parse tree dump with big phrase IDs
fix bug with apostrophe as quotation mark
clean up "marking" application rules
1.2.9 - 22jun2015 clean up "marking" application rules
fix swapping bug in reordering of ambiguous phrases
improve diagnostic output
1.2.10 - 29jun2015 clean up and extend "marking" application
fix formatting problem in SHOW semantic command
clean up output for TRACE and SHOW
add VIEW instrumentation command
minor improvements in test scripts and data
1.2.11 - 06jul2015 fix bug in computing plausibility scores for parses
improve reporting of rule usage in parse tree dump
clean up "marking" application rules
extend "marking" integration test
fix bug in handling forms of ellipsis
1.2.12 - 13jul2015 fix bug in converting ellyBase parse tree depth arg
fix bug in adjusting grammar rule biases
clean up diagnostic output
extend "marking" integration test
1.2.13 - 20jul2015 fix swapping bug in reordering of ambiguous phrases
define Kernel class to make phrase swapping cleaner
add check for multiple definition of subprocedures
extend "marking" integration test
improve default suffix removal
1.2.14 - 30jul2015 fix minor bug in display of rules invoked for parse tree
fix problems in punctuation recognition, clean up code
fix bug in handling ` as punctuation in token extraction
extend "marking" application rules
1.2.15 - 03aug2015 fix problems in tracking capitalization, clean up code
improve diagnostic output
extend "marking" integration test
1.2.16 - 21aug2015 fix bug in pattern table method
improve default suffix removal
improve cognitive semantic diagnostics
add handling of em and en dashes in tokentization
extend default punctuation handling
extend "marking" rules and integration test
1.3 - 06sep2015 add reset of inherited syntactic and semantic features
fix bugs in handling features and clean up code
1.3.1 - 13sep2015 make integration testing script more flexible
extend basic "test" integration test
clean up "marking" integration test
fix missing cognitive semantics for leaf phrase nodes
improve diagnostic output
1.3.2 - 23sep2015 add ellySurvey tool for vocabulary development
fix text normalization bug in handling input
add apostrophe wildcard
fix bugs in binding to text matching wildcards
clean up token lookup
clean up "marking" rules
1.3.3 - 03oct2015 fix bugs in vocabulary lookup and tokenization
clean up vocabulary development tool
clean up char and wildcard definitions
improve release checking for binary tables
improve diagnostic output
extend "echo", "marking" rules and integration test
add "stem" application rules and integration test
1.3.4 - 07oct2015 improve morphological stemming
fix stemming bugs in vocabulary table lookup, clean code
extend various integration tests for stemming
improve output of ellySurvey
extend "marking" vocabulary
clean up "marking" integration test
change comment format in language definition files
1.3.5 - 11nov2015 add control character for management of parse trees
filter out extra ASCII control chars from text input
clean up "marking" rules and integration test
fix minor bug in generative semantic compilation
better error reporting in cognitive semantic compilation
make FIND semantic command consistent with other operations
1.3.5.1 - 26nov2015 fix bugs in control characters for parse tree management
clean up affected code modules
clean up "marking" rules and integration test
1.3.5.2 - 15dec2015 fix bug in null check for cognitive semantics
rework control characters to be no longer punctuation
add rendering of contral characters in rule dumps
adjust "chinese" and "querying" integration test
adjust integration test script
extend "marking" rules with control characters
extend "marking" grammar and vocabulary
extend "marking" integration test
1.3.6 - 01jan2016 fix bug in pattern matching of tokens
more flexible use of predefined syntactic features
extend "marking" language definition
extend "marking" integration testing
1.3.6.1 - 08jan2016 fix bug integrating inflectional stemming and macros
clean up English inflectional stemming
extend and clean up suffix test cases
extend "echo" integration test
clean up and extend "marking" rules
extend "marking" integration test
1.3.7 - 18feb2016 add token count to phrase data
check token position in cognitive semantics
check token count in cognitive semantics
allow more spaces in cognitive semantic clauses
clean up parse tree building
extend "marking" rules and integration test
extend, revise, correct cognitive semantic writeup
1.3.8 - 25feb2016 extend token extraction for nonalphabetic additions
clean up basic character handling
extend "echo" integration test
update documentation
1.3.9 - 03mar2016 fix various problems with checking of capitalization
clean up parse tree code
clean up documentation
extend "marking" rules and integration test
extend "echo" rules
1.3.10 - 17mar2016 allow fractions to be handled as single tokens
extend "marking" rules and integration test
1.3.11 - 13apr2016 allow vocabulary table entries to start with ','
extend "marking" rules and integration test
1.3.12 - 23apr2016 more error checking in vocabulary table entries
extend "bad" rules to test error checking
extend "marking" rules and integration test
1.3.13 - 04jul2016 better handling of hyphens
improve parse tree full dump
clean up documentation
1.3.14 - 14jul2016 add method to turn off individual feature bit
clean up handling of *L and *R syntactic features
fix capitalization bug in vocabulary lookup
recompile vocabulary only when needed
fix commentary bug with # at end of line
minor changes in reporting of table definition
clean up and extend documentation
1.3.15 - 03aug2016 clean up procedure for recompiling language tables
clean up commentary and reporting
add basic cognitive semantics to pattern tables, entities
add feature inheritance checking
fix bug in disambiguation with type 0 rules
extend "test" integration testing for new patterns
extend "marking" application rules
clean up "doctor" rules
clean up and extend documentation
1.3.16 - 21aug2016 add another recognizer for space chars
fix bug in pattern matching with spaces
extend "test" integration testing for space matching
clean up integration tests for space matching
update documentation
1.3.17 - 07sep2016 fix bugs in handling tokenization breaks
define left enclosing punctuation in ellyChar
fix problems in ellyBase from changes in ellyChar.findBreak
fix ellyChar bug putting back left enclosing punctuation
implement alphabetic uppercase wildcard
clarify patternTable unit test
clarify macroTable unit test
extend "test" integration testing
clean up "marking" pattern and macro rules
clean up documentation
1.3.18 - 16sep2016 fix integration problems in token lookup
improve unit testing for patternTable, substitutionBuffer
improve diagnostics for ellyBase, generativeProcedure
improve output representation of ellyBuffer, grammarRule
clean up "marking" rules and integration tests
extend "test" rules and integration test
clean up "doctor" and "chinese" rules
fix late setting of bias in leaf phrase nodes
1.3.19 - 17oct1016 reorganize sentence extraction
fix problems with quotations and bracketed text
fix problems with English morphology rules
fix problem with ampersand in tokenization
fix problem with pattern matching on strings with brackets
fix problem with abbreviations and hyphenation
clean up and extend "marking" rules and integration tests
clean up documentation
clean up ellyBase code and commentary
clean up ellySurvey code and fix dummy Tree class
fix problem with rule sequence numbers in parse tree dumping
use *x syntactic feature to identify period as punctuation
add check to avoid ord() error on ''
add missing error exit in loading vocabulary table
1.3.20 - 01dec2016 clean up toplevel error checking and reporting
clean up logic for what rule files to recompile
fix problem with macro patterns ending in _ wildcard
add print statements for debugging
clean up PyElly table and tree dumps
extend "marking" rules and integration testing
1.3.21 - 10dec2016 fix problem recognizing short bracketed tokens
clean up basic PyElly character handling
simplify output tags for "marking" example application
extend "marking" rules and integration testing
update and clarify documentation
1.3.22 - 20dec2016 increase maximum syntactic category count to 72
add checks on semantic feature IDs in vocabulary rules
extend and clean up "marking" rules
extend "marking" integration testing
fix doTest script to make it self-complete
fix bug in *LEFT syntactic feature inheritance
fix bugs in date entity extraction
better checking of arguments for generative semantics
better error messages for cognitive semantic logic
fix bugs in stop punctuation exceptions
add nomatch logic for stop exceptions
update documentation
1.3.23 - 03mar2017 increase maximum syntactic category count to 80
extend cases recognized by dateTransform
add more context to ellyCharInputStream logic
strengthen stopExceptions logic in nomatch()
update integration testing for new handling of dates
extend "marking" rules and integration test
update and clean up documentation
1.3.24 - 15mar2017 fix bugs with buffer handling in generative semantics
add to cognitive semantic tracing output
show feature names sorted by index in grammar dump
clean up symbolTable error message
clean up commentary in parseTree
adjust debugging code in dateTransform
add extraction procedure for acronym definition
extend "marking" rules and integration test
update documentation
1.4.0 - 20mar2017 enlarge Unicode subset recognized in input text
fix bugs and clean up ellyChar, add unit test
add vowels with diacriticals for pinyin
special handling of CJK in ellyCharInputStream
update documentation
1.4.1 - 26mar2017 improve encapsulation of ellyCharInputStream
add lookahead method for matching up brackets
extend and clean up unit test
rework ellySentenceReader logic for bracketed punctuation
extend and clean up "marking" rules and integration testing
improve unit testing support output
add consistency checking for semantic features
clean up source files along with line count of code
update documentation
1.4.2 - 17apr2017 add char count check to cognitive semantics
add buffer alignment operation to generative semantics
extend "bad" rules to test error detection and recovery
fix omission in ellyBase handling of phrase token count
restore macroTable error check, normalize error messages
fix Unicode output redirection in multiple main modules
warn in symbolTable of syntactic types with similar names
add error checks in syntaxSpecification
extend, reorganize, and clean up "marking" rules
extemd "marking" integration test
revise, correct, and update documentation
1.4.3 - 26apr2017 add lowercase letter wildcard
simplify stopExceptions and default rules
note capitalization at start of current letter sequence
clean up commentary in various modules
extend "marking" rules
correct and update documentation
1.4.4 - 04may2017 fix bugs with FAIL in generative semantics
fix bug with mergeBuffers() method in interpretiveContext
clean up translation failure reporting
add "fail" integration test with rules to PyElly suite
update documentation
1.4.5 - 22may2017 fix bug in entity extraction when no phrase type is acceptable
fix bug with Unicode ellipsis in token extraction
add limited title recognition in entity extraction repertory
enhance output in unit testing support
extend "marking" rules and integration test
update documentation
1.4.6 - 29may2017 make numbers with final decimal point as sentence stop exception
add lowercase letters as semiwildcards in PyElly pattern matches
correct bug in handling of right context in stopExceptions
change stopExceptions to make use of semiwildcard matching
clean up "default" stop exceptions
extend "marking" rules
update documentation
1.4.7 - 04jun2017 fix capitalization bugs in generative semantics
clean up ellyChar methods and tables, extend unit test
add method to check patterns for wildcards not matching 1-to-1
add checking for patterns with only 1-to-1 wildcard marching
put in missing code for stopException matching of right context
clean up default stopException logic
update documentation, make more accurate
extend "marking" rules and integration test
1.4.8 - 15jun2017 put in missing code for handling nonalphanumeric wildcard
allow space wildcard in optional pattern components
clean up macro substitution pattern matching
update documentation for wildcards
extend "marking" rules and integration test
1.4.9 - 24jun2017 add Greek small letters to PyElly char set
extend "marking" rules and integration test
update and correct documentation
1.4.10 - 4jul2017 add Unicode thin spaces to text recognized by PyElly
clean handling of various spaces in ellyChar
fix bug in matching patterns with space wildcards
fix ellyWild bug in deconverting pattern string
fix error detection in converting syntactic features
correct and extend stopException unit test
clean up debugging statements in PyElly modules
minor improvements in unit testing
extend "marking" rules and integration test
update documentation
1.4.11 - 27jul2017 clean up and extend stop exception recognition
improve substitutionBuffer unit test
extend "marking" rules
update documentation
1.4.12 - 01aug2017 more rational handling of _ in vocabulary table keys
add handling of superscript 1, 2, 3 as digits
make tokenization of Unicode consistent with input coding
improve vocabularyTable unit test
extend "marking" rules and integration test
update all integration tests for tokenization encoding
update and clean up documentation
1.4.13 - 01sep2017 increase limit on syntactic types to 96
extend "marking" rules and integration test
update and clean up documentation
1.4.14 - 14sep2017 correct bugs in compiling cognitive semantics
extend "marking" rules and integration test
update and clean up documentation
1.4.15 - 20sep2017 fix bugs in stop exception recognition
clean up stop exception code, commentary, and debugging
improve stop exception unit testing
fix and clean up default stop exception rules
handle ellipsis in PyElly char input stream
add musical ♯ and ♭ to Elly character set
treat ° as embedded combining
extend "marking" rules and integration test
update documentation
1.4.16 - 05oct2017 fix bugs in macro substitution
store macro rules as hashable objects
add angle brackets 〈〉 for PyElly delimiting
generalized handling for all bracketing in term lookup
improve algorithm for setting range of pattern matching
clean up and extend "marking" rules and integration test
update documentation
1.4.16.1 21oct2017 fix various bugs in dateTransform
extend "marking" rules
update documentation
1.4.16.2 23nov2017 fix omissions in inflectional stemming logic
extend and correct "marking" rules
update documentation
1.4.17 - 27nov2017 reimplement generative semantics FIND command
improve logic for recompiling PyElly tables
fix stemming problems with -n ending
fix punctuation problems with [ and ]
extend "marking" rules
update documentation
1.4.18 - 31ded2017 rename vocabulary table building method to avoid conflict
improve handling of m dash in language definition rules
extend "marking" rules
update documentation
1.4.18.1 01jan2018 clean up punctuation definitions
clean up and extend "marking" rules
update documentation
1.4.19 - 06jan2018 add time period entity extraction
clean up and extend "marking" rules
update and revise documentation
1.4.20 - 30jan2018 provide token list on parse tree overflow
clean up diagnostic output for parsing
fix bug in vocabulary table lookup of inflected entries
extend logic for -S inflections in English
extend "marking" rules
update and revise documentation
1.4.21 - 05feb2018 fix bug and clean up stop exception code
add error check to vocabulary table definition loading
extend "marking" rules
update documentation
1.4.22 - 08feb2018 fix bug in vocabulary table case-independent string comparison
fix bug in macro substitution with leading apostrophe pattern
better warning on macro substitution increasing text length
handle doubled single quotes in ellyCharInputStream
extend default suffix rules and unit test
extend "marking" rules
update documentation
1.4.23 - 13feb2018 fix problems with converting Unicode to ASCII in ellyChar
fix problems with vocabulary table lookup in ellyBase
fix problems with multi-translation in vocabularyElement
fix problems with defining vocabularyTable search keys
improve vocabularyTable commentary
make nameRecognition compatible with new Unicode to ASCII
add dump of SQLite search keys to vocabularyTable
extend "marking" rules
update documentation
1.4.24 - 18feb2018 change definitionLine to make it work for VocabularyTable
define Unicode hyphen in PyElly input text
improve macroTable unit test and add commentary
fix "disambig" rules and keys for new VocabularyTable
fix "test" rules
extend "marking" rules
update and expand documentation
1.4.25 - 22feb2018 handle Euro symbol in PyElly input
allow for tokens to be split or joined by pattern match
allow date range with hyphen in entity extraction
improve English inflectional and morphological stemming
fix problem with ellipsis starting a sentence
clean up "test" application integration test key
extend and clean up rules for "marking" application
add daily Google News text data for "marking" tests
update and expand documentation
1.4.26 - 21mar2018 fix problem with vocabulary lookup key ending in S
adjust rules for "indexing" application
extend rules for "marking" application
update documentation
1.4.27 - 25mar2018 fix problems with tokenization with hyphens
add debugging option with no parse tree in ellyBase
clean up interpretiveContext and improve encapsulation
recognize Unicode hyphen as default punctuation
reduce amount of dumps on processing error
clean up commentary in code modules
update documentation
add Google News data
1.4.28 - 11apr2018 handle special case for stop punctuation in English
handle comma after year in dateTransform
handle vocabulary entries starting with left double quote
improve output of FSA unit testing
extend "marking" rules for new data
extend "default" stop exception rules for Sr. and Jr.
extend "default" morphological stemming
update documentation
add Google News data
1.4.29 - 07may2018 fix bug in ellyChar when checking for letter or digit
fix bug in dateTransform
add logic for special matching of hyphens in ellyWildcard
allow sentences to start with em dash
improve morphological analysis
extend "marking" rules for new data
add integration test with "marking" rules and news text
update documentation
add Google News data
1.4.30 - 26may2018 fix bug in ellyWildcard with check for list index overflow
add special check in ellySentenceReader for lone ellipsis
fix problems with inflectional and morphological stemming
extend and clean up "marking" rules
extend "marking" integration test with news data
update "indexing" integration test
update documentation
add Google News data and clean up
1.4.31 - 06jun2018 fix major bug in ellyWildcard matching algorithm
fix problems with inflectional and morphological stemming
extend and clean up "marking" rules
extend "marking" integration test with news data
update documentation
add Google News data and clean up
1.4.32 - 08jul2018 fix delimiter bug in vocabularyTable and vocabularyElement
fix bug not recognizing .'" as a stop for sentence
handle soft hyphens properly in ellyCharInputStream
improve inflectional stemming
extend and clean up "marking" rules
clean up "marking" integration test with news data
update documentation
add Google News data and clean up
1.5 - 30jul2018 increase maximum number of syntactic categories to 112
implement light inflectional stemming in deinflectedMatching
reorganize vocabularyTable with light inflectional stemming
expand PyElly language rules with new compoundTable module
revise integration tests
clean up documentation and diagnostic code
update documentation
1.5.1 - 03aug2018 replace compoundTable stub with functioning code
integrate template matching in PyElly processing
fix bug in ellySurvey because of new vocabularyTable
fix minor bug in cognitiveDefiner
extend "test" application rules
extend "test" integration testing for templates
clean up "marking" rules
update documentation
1.5.2 - 30aug2018 expand template elements that can be matched
expand "test" integration testing to include templates
extend "marking" integration testing with more sentences
update documentation
1.5.3 - 24sep2018 make template matching more consistent for punctuation
update documentation
1.5.4 - 25oct2018 fix bug in matching of $ wildcard
fix bug in patternTable with maximum match length
clean up patternTable code, add debugging statements
add "chemic" application for chemical names
add "chemic" to integration testing
clean up "marking" pattern rules and integration test
update documentation
1.5.5 - 03nov2018 eliminate duplicate output from ellyBase
add data check to ellySurvey for robustness
clean up diagnostic output from parseTest
add debugging code to parseTree, clean up commentary
accept Unicode input in patternTable unit test
fix bug in patternTable handling solitary $ as pattern
fix bug in handling 00 in simpleTransform
fix bug leaving Unicode prime (u2032) undefined as text
extend "chemic" rules and integration test
update documentation
1.5.6 - 08nov2018 allow for limited recursive prefix extractions
ellyBase reorganized to handle prefix tokens
ellyChar must let + be at end of token
clean up ellyWildcard debugging and commentary
treeLogic needs to allow for + at start of token
extend "chemic" rules and integration test
update "marking" integration test
update documentation
1.5.7 - 12nov2018 fix bug in simpleTransform in reading commas in numbers
fix bug in patternTable handling $ wildcard
rework ellyBase handling of + and - at front of tokens
extend "chemic" rules and integration test
update documentation
1.5.8 - 20nov2018 include more format checking in treeLogic
make error reporting in morphologyAnalyzer more consistent
upgrade vocabularyTable for single Greek letter definition
fix bug in ellyBuffer extracting ',' as a token
extend "chemic", "bad" rules
extend "chemic" integration testing
update documentation
1.5.8.1 - 29nov2018 fix problem with suffix removal after prefix removal
extend "chemic" rules
extend "chemic" integration testing
update documentation
1.5.8.2 - 07dec2018 fix patternTable bug in handling Unicode prime char
extend "chemic" rules
extend "chemic" integration testing
update documentation
1.5.8.3 - 10dec2018 handle Greek letters properly in ellyBuffer
extend "chemic" rules
extend "chemic" integration testing
update documentation
1.5.8.4 - 21dec2018 handle Greek letters properly in patternTable
handle Greek letters properly in ellyWildcard matching
clarify ellyToken print representation, clean up code
extend "chemic" rules
extend "chemic" integration testing
update documentation
1.5.8.5 - 10jul2019 extend default suffix rules
update documentation
1.6 - 19oct2019 add support for Chinese Unicode input
fix problem with language initialization in ellyBase
fix problem in ellyDefinitionReader unit test
update documentation
1.6.1 - 17nov2019 fix bug in recognizing Unicode control chars in input
clean up and correct ellyChar commentary
update documentation

New versions will be assigned for non-cosmetic changes in PyElly code. This will
often require regenerating any previously saved *.elly.bin files to ensure
correct operation. Changes only to PyElly example application definition files,
unit testing input or key files, and PyElly documentation will be made from time
to time, but these will leave version numbers the same, if they are no other
changes. Check Github for the latest files. The dates above are for the initial
release of a version, not the most recent update,

A website with information about PyElly is at

https://sites.google.com/site/pyellynaturallanguage/