sillsdev / sillsdev/interlinearizer-extension

Analysis Catalog: phrase rows

Open
#188 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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 from phraseAnalysisLinks[].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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.