Allow annotation stores to include/depend on other annotation stores (stand-off STAM JSON files) #29
Closed
2 tasks done
Labels
Milestone
Currently an annotation store in STAM JSON can reference annotation datasets
and resources in separate stand-off files. What is not yet possible, however,
is to reference annotations defined in other STAM JSON annotation stores.
This use-case was raised in #21 by @tenzin3, see the lead up discussion there.
In such a case, an annotation in
store_a.store.stam.json
makes reference (viaan annotation selector) to an annotation defined in
store_b.store.stam.json
.That is currently not possible. I do think it is a fair use case and more
flexibility in using stand-off files fits nicely with STAM's stand-off
philosophy.
This issue proposes to expand the STAM model to allow this:
@include
mechanism in STAM JSON would be extended to allow includingother annotation stores. In effect, an annotation store can then depend
on on another by importing it, these includes are executed before loading any of its own annotations.
Recursive includes would be allowed (allowing more complex dependency chains),
but cyclic includes would be explicitly forbidden! Includes may (and are in fact encouraged to) reference the same
stand-off resources and annotation data sets.
Possible syntax for this:
AnnotationStore
instance to work with at any given time. This wouldhowever serialize to multiple files. This requires some extra bookkeeping
to be implemented, as for each annotation we need to know to what
annotation store it should go. The implementation might define
'substores' and keep map filenames to lists of annotation handles.
This new bookkeeping would at the same time make splitting stores easier
than it is in the currently implementation (where splitting is basically a fairly expensive deletion action).
Merging and splitting becomes more reversible.
The text was updated successfully, but these errors were encountered: