Post

The motivation is pretty simple. There are tons of linguistic annotation formats, and they don't really talk to each other. If you want to use annotations from one tool in another, you end up writing conversion scripts that inevitably break on edge cases.

On top of that, most annotation data lives in isolated repositories on centralized services, and there's no standard way to link annotations to the experiments that produced them or other signals (e.g. neural recordings) they were collected alongside. Layers tries to address both of these problems.

The core idea is a small set of shared primitives (anchors, selectors, feature maps) that all data types compose from. Expressions are recursive: a document contains paragraphs, which contain sentences, which contain words, which contain morphemes. Annotations attach to any level of that hierarchy.

The format doesn't commit to any particular tagset or theoretical framework. Whether you work in UD, HPSG, LFG, or Minimalism, your labels and categories are data values within the schema, not baked into it. The same primitives represent your annotations regardless of formalism.