Follow-up to #22 (semantic-role annotation contract, prophet-workspace#76 item 7).
The contract in #22 deliberately keeps the role KIND a closed taxonomy (schemas/nlu/semantic-role-kind.schema.json) while leaving the role LABEL (ActionShow, ContactLists, Organization, Own, …) an open, LEARNED vocabulary — per the estate rule learn, don't match dictionaries. There is currently no learner.
Scope:
- A resolver that assigns
SemanticRole.label over the parse's information structure (pos/dep/head), typed to a KIND — LEARNED, not a hand-maintained dictionary.
- Drift + eval: role-label precision/recall against held-out fixtures; label-vocabulary growth tracked over time.
- Must preserve the tested EBA properties (side-effect-free; structure-not-data).
Explicitly NOT a static keyword table (that would violate the estate guardrail).
Cross-refs: prophet-workspace#76 (item 7) · this repo #22 (contract), #16 (NER mention contract).
Follow-up to #22 (semantic-role annotation contract, prophet-workspace#76 item 7).
The contract in #22 deliberately keeps the role KIND a closed taxonomy (
schemas/nlu/semantic-role-kind.schema.json) while leaving the role LABEL (ActionShow, ContactLists, Organization, Own, …) an open, LEARNED vocabulary — per the estate rule learn, don't match dictionaries. There is currently no learner.Scope:
SemanticRole.labelover the parse's information structure (pos/dep/head), typed to a KIND — LEARNED, not a hand-maintained dictionary.Explicitly NOT a static keyword table (that would violate the estate guardrail).
Cross-refs: prophet-workspace#76 (item 7) · this repo #22 (contract), #16 (NER mention contract).