sillsdev / sillsdev/interlinearizer-extension
Analysis Catalog: phrase rows
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 0
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 55
Description
Add phrase analyses to the Analysis Catalog (#186) as their own list.
Blocked by #187 (dedupe phrase payloads on write). Until phrase payloads are deduped, a phrase row would be a read-time grouping over N identical records rather than a real row: counts would have to be computed by grouping on content, editing would be an N-way fan-out write, and delete would mean "remove N payloads and N links". Doing that first and unpicking it later is strictly worse than waiting — after #187 a phrase row is a record with links, exactly like a token row, and everything the catalog already does applies unchanged.
Scope once unblocked
- A second list (the panel gains tabs at this point: Tokens / Phrases, each trigger showing its count).
- One row per distinct
PhraseAnalysis: surface form, gloss, usage count, usage locations fromphraseAnalysisLinks[].tokens[].tokenRef. - Search over surface form + gloss using the same search fold as token rows.
- Sort and filters reuse the token implementations; the facet-derivation rule (hide any facet with fewer than two distinct values) applies unchanged.
- Edit, merge, and delete are analysis-keyed and global, matching the token mutations.
Delete semantics
Deleting a phrase analysis dissolves the grouping — the member tokens stop being a phrase and revert to individual tokens. This is consistent with the principle that delete removes recorded analysis and never changes the text or its segmentation: the token sequence is untouched, only the phrase-level analysis goes. Worth confirming this reads correctly to users, since the visible effect is an arc disappearing.
Why phrases are unreachable until this ships
A phrase gloss lives in no token analysis, so nothing in a token-only catalog surfaces it. This is the real cost of the token-only v1 and the reason this issue exists rather than being folded into #186.
Blocked by: #187. Follow-up to #186.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by resolving or reviewing blocker #187, then inspect the existing token-row Analysis Catalog implementation and its search, sorting, filtering, and mutation paths. Add the Tokens/Phrases tabs and phrase rows using the stated surface, gloss, count, and usage-location behavior. Done means phrase analyses are searchable, editable, mergeable, deletable, and deletion dissolves phrase grouping without changing token text or segmentation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100