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/