You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RESEARCH_BRANCHES.md: add the morfologik-fsa branch to the map
The clean-room CFSA2/FSA5 readers and the PoliMorf lemmatizer had no node
because until today they had no branch: they were written on the OPENNLP-1887
line under formats: and lemmatizer: titles and were only visible as a sentence
in that pull request's notes. They now sit on their own branch off current main
and get a node and a row like every other staged feature.
The note on apache#1167 says what is actually true: the commits were copied out, and
dropping them from that branch is a separate rebase that has not happened.
Copy file name to clipboardExpand all lines: RESEARCH_BRANCHES.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,6 +34,7 @@ flowchart LR
34
34
main --> fftag["ff-postagger · neural tagger"]
35
35
main --> bilstm["bilstm-tagger · recurrent tagger tier"]
36
36
main --> inst["resource-installer"]
37
+
main --> morf["morfologik-fsa · CFSA2/FSA5 readers + PoliMorf lemmatizer"]
37
38
d1154 --> prof["place-profiles"]
38
39
39
40
%% ---- staged annotators over the document container ----
@@ -72,7 +73,7 @@ flowchart LR
72
73
class d1152,d1154,d1155,d1166,d1167 draft;
73
74
class p1182 foundation;
74
75
class tq filed;
75
-
class depp,fftag,bilstm,inst,prof,glos,pii,coref,num,tart,asset,noiz,pred,deppa,rel,geo,hier,rvote,emb cut;
76
+
class depp,fftag,bilstm,inst,morf,prof,glos,pii,coref,num,tart,asset,noiz,pred,deppa,rel,geo,hier,rvote,emb cut;
76
77
```
77
78
78
79
Green nodes are pull requests marked ready for review upstream, amber are drafts, blue is the document container every annotator needs (open as a draft), purple is filed in JIRA with the pull request deliberately held, and pale green is staged in this fork only. `#1177` (OPENNLP-1870, emoji annotations) merged upstream on 2026-07-21 and has moved into the merged box; the EmojiFlags commits `geocode-annotator` carries as copies drop by patch id on its next rebase.
@@ -86,7 +87,7 @@ Every head below was rebased onto `a8642301f` on 2026-07-24, module-tested green
86
87
|[#1182](https://github.com/apache/opennlp/pull/1182)| OPENNLP-1888 | The document container: immutable `Document`, typed layers with positional/document scope, namespaced layer keys, adapters for the classic tools, manual chapter | Draft. The branch is review-ready; it sits as a draft because the upstream queue is not ready to take it, not because the work is unfinished. Rebased onto `a8642301f`, mergeable | The foundation every staged annotator below builds on |
87
88
|[#1166](https://github.com/apache/opennlp/pull/1166)| OPENNLP-1886 | Sixteen UniNE light/minimal stemmer tiers | Draft; rebased onto `a8642301f`, mergeable. That rebase dropped the 13 OPENNLP-1883 commits it used to carry, now that #1163 is upstream as one squash, leaving 3 commits of its own | Parity fixtures regenerated from the original implementations. Manual cites `LightStemmerUsageExampleTest`|
88
89
|[#1155](https://github.com/apache/opennlp/pull/1155)| OPENNLP-1880 | Lexical knowledge base seam with WN-LMF and WNDB readers and a Morphy lemmatizer | Draft; rebased onto `a8642301f`, mergeable | Manual: `wordnet.xml`, pinned by `WordNetUsageExampleTest`|
89
-
|[#1167](https://github.com/apache/opennlp/pull/1167)| OPENNLP-1887 | Weighted lexical expansion, synset similarity, hypernym-anchored typing | Draft, based on main and not on #1155: it carries the #1155 seam commit and #1182's `StringUtil.isBlank` as drop-on-rebase copies. Rebased onto `a8642301f`, which cleared the conflict it was reporting; mergeable | Manual expansion section cites `LexicalExpansionUsageExampleTest`. The branch has also grown clean-room morfologik CFSA2 and FSA5 readers plus a PoliMorf table lemmatizer, whose commits are titled `formats:`/`lemmatizer:`rather than with a JIRA key; decide whether they belong here or on their own ticket before promoting|
90
+
|[#1167](https://github.com/apache/opennlp/pull/1167)| OPENNLP-1887 | Weighted lexical expansion, synset similarity, hypernym-anchored typing | Draft, based on main and not on #1155: it carries the #1155 seam commit and #1182's `StringUtil.isBlank` as drop-on-rebase copies. Rebased onto `a8642301f`, which cleared the conflict it was reporting; mergeable | Manual expansion section cites `LexicalExpansionUsageExampleTest`. It also carries the clean-room morfologik CFSA2/FSA5 readers and the PoliMorf table lemmatizer under `formats:`/`lemmatizer:`titles with no JIRA key. Those five commits were copied onto `morfologik-fsa`on 2026-07-24 and build standalone there; dropping them from this branch is a separate rebase, not yet done|
90
91
|[#1165](https://github.com/apache/opennlp/pull/1165)| OPENNLP-1885 | Pure-Java SentencePiece inference with exact original-text spans, plus a WordPiece encoder | Ready for review; rebased onto `a8642301f`, mergeable | 6.47M pieces/s single-thread on the T5-small vocabulary, 1.42x the C++ reference measured through its Python binding. Tokenizer manual cites `SentencePieceUsageExampleTest`|
91
92
|[#1152](https://github.com/apache/opennlp/pull/1152)| OPENNLP-1877 | Static text embeddings, pure JVM | Draft, stacked on #1165. Its base is the apache-hosted `sentencepiece` branch, which had diverged from the refreshed head and made the pull request read as conflicting; that base now tracks the head, so the diff is the 30 commits this change actually owns and it reports mergeable | 12.9x single-thread and about 7x peak throughput of the Python reference at 0.22x the memory (potion-base-8M, output parity asserted first). Manual cites `StaticEmbeddingUsageExampleTest`|
92
93
|[#1154](https://github.com/apache/opennlp/pull/1154)| OPENNLP-1879 | Gazetteer and geocoder seam, bundled Natural Earth table, GeoNames and Overture loaders, place hierarchy, user-supplied overlay (additions, suppressions, bounding boxes) | Draft; rebased onto `a8642301f`, mergeable | Bring-your-own-gazetteer reference in test sources. Geocoder section cites `GeocoderUsageExampleTest`|
@@ -109,6 +110,7 @@ All staged branches are based on a recent apache main (each rebases fully before
109
110
|`ff-postagger`| Feedforward neural POS tagger on the same trainer recipe, with opt-in pretrained word-vector input features and a coverage lexicon | Staged | 94.68% on UD English EWT vs 93.75% for the best classical configuration in-tree; 95.51% with the opt-in vector block (potion-base-8M vectors plus a dictionary lexicon), defaults unchanged. Manual section cites `FeedforwardPOSTaggerUsageTest`|
110
111
|`bilstm-tagger`| Bidirectional LSTM tagger tier: character BiLSTM word representations, learned plus frozen pretrained embeddings, optional stacked encoder, CRF decoding, and multi-task auxiliary training; every layer gradient-checked against finite differences | Experimental, accuracy gate pending | 96.00% on UD English EWT so far vs the 97.0% gate; active lever is pretrained-table fine-tuning. Manual section cites `BilstmPOSTaggerUsageTest`|
111
112
|`resource-installer`| User-supplied-URL model and data installer, SHA-256 verified before unpacking | Staged | Enabled a UD lemmatizer run at 87.76% lemma accuracy on EWT with the stock `LemmatizerME`. Model-loading manual cites `ResourceInstallerTest#testInstallEndToEndUsageExample`|
113
+
|`morfologik-fsa`| Clean-room readers for the morfologik CFSA2 and FSA5 automaton formats behind a shared `FsaSequenceReader`, decoding into a `DictionaryLemmatizer`, plus a PoliMorf morphological-table reader | Staged, on current main, 389 formats tests green | Split out of #1167 on 2026-07-24, where these commits were written under `formats:`/`lemmatizer:` titles with no JIRA key. Unlike `opennlp-extensions/opennlp-morfologik`, which depends on `morfologik-stemming` and `morfologik-tools`, this adds no dependency. The PoliMorf reader's `StringUtil.isBlank` call became a private helper, since that method is an OPENNLP-1888 addition absent from main; #1167 still carries these commits until it is rebased |
112
114
|`place-profiles`| Metadata-grounded place similarity over user-supplied profiles | Staged, stacked on #1154|`geo.xml` cites `PlaceProfilesUsageTest`|
113
115
|`glossary`| Dictionary/glossary matching as a document layer | Staged, needs #1182|`glossary.xml` cites `GlossaryUsageExampleTest`|
0 commit comments