Skip to content

Linguistic competence metrics + counts-only vocabulary dump - #50

Merged
willwade merged 2 commits into
mainfrom
feat/linguistic-competence-metrics
Aug 18, 2026
Merged

Linguistic competence metrics + counts-only vocabulary dump#50
willwade merged 2 commits into
mainfrom
feat/linguistic-competence-metrics

Conversation

@willwade

Copy link
Copy Markdown
Collaborator

Summary

Two related capabilities for longitudinal AAC metrics work (Grid-Metrics-Exporter consumes both):

1. Linguistic competence metrics (privacy-preserving)

  • Source- and language-agnostic core: MATTR-30 lexical diversity, syntactic (injected closed-class set), morphological (injected inflection classifier), spelling validity (optional dictionary)
  • No word lists in the core — language resources are injected; missing resources report unavailable with a reason, never silently degrade

2. Counts-only vocabulary dump

  • dumpVocabulary(tree, { metrics }): inventories vocabulary by source — labelled buttons, Grid 3 page wordlists (<WordList>), prediction dictionaries (Prediction.PredictThis), and smart-grammar word forms — with per-source POS breakdowns
  • Emits counts only, never word lists — safe for privacy-preserving reports
  • PagesetSummary.vocabulary field so competence reports can carry it
  • CLI: aac-processors vocabulary <file> (JSON out, --out, --no-smart-grammar)
  • Declares AACPage.wordListItems on the interface (was runtime-only)

Testing

  • New: test/vocabularyDump.test.ts (9 tests, incl. real example.gridset asset) + CLI integration test
  • Full suite: 90 suites / 808 tests pass; npm run lint and npm run type-check clean

Notes

  • Grid-Metrics-Exporter currently vendors a mirror (against pinned 0.3.2) and will switch to this API in its next versioned bump.

@willwade willwade closed this Aug 18, 2026
@willwade willwade reopened this Aug 18, 2026
@willwade
willwade merged commit 454b8f3 into main Aug 18, 2026
2 checks passed
@willwade
willwade deleted the feat/linguistic-competence-metrics branch August 18, 2026 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant