krickert opened a new pull request, #1182:
URL: https://github.com/apache/opennlp/pull/1182

   Adds the document annotation container discussed on OPENNLP-1888: an 
immutable `Document` over the original text, typed `LayerKey` identities, 
span-anchored `Annotation` values, `DocumentAnnotator` with declared 
`requires`/`provides`, and a `DocumentAnalyzer` whose pipeline ordering is 
validated at build time. Four adapters over the existing single-task interfaces 
(sentence detector, tokenizer, POS tagger, name finder) plus lemmatizer and 
stemmer layer adapters come with it; the container itself never learns about 
specific layers.
   
   Contract behavior, each pinned by a test asserting the exact message where 
one is thrown: spans are structurally mandatory and validated against the text 
length; key equality is the (id, type) pair; layers preserve insertion order 
and are never sorted; layers are immutable once added and detached from caller 
input; providing an already-present layer is rejected; reading an absent layer 
returns an empty immutable list. 33 tests, including a full pipeline example 
and a contract suite.
   
   Follow-ups planned as commits on this PR, from the review discussion on the 
ticket: namespaced identifiers for the standard keys; per-key positional versus 
document scope for whole-document facts; the invariants above transcribed into 
the specification text; and the documented convention for gold versus predicted 
layers. Opening as a draft until those land.
   
   The acceptance criterion suggested in that discussion, that a new layer can 
be added without touching the container package, is already observable: the 
feature branches on the ai-pipestream fork (glossary, PII, coreference, 
dependencies, relations, money/quantity/temporal, geo, embeddings) each add 
their layers with no container edits.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to