Skip to content

Convert the platform-parsed PT9 interlinear payload instead of raw XML - #272

Open
jasonleenaylor wants to merge 6 commits into
mainfrom
pt9-parsed-converter
Open

Convert the platform-parsed PT9 interlinear payload instead of raw XML#272
jasonleenaylor wants to merge 6 commits into
mainfrom
pt9-parsed-converter

Conversation

@jasonleenaylor

@jasonleenaylor jasonleenaylor commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Consume the parsed PT9 interlinear payload the platform now serves
(paranext/paranext-core#2707) instead of parsing raw XML in the extension.
First slice of the reworked PT9 import stack; supersedes #240.

  • convertPt9Project takes the served Pt9InterlinearProjectData directly:
    duplicate books resolve canonical-path-first from the served filePath /
    isCanonicalPath flags, and lexicon joins use the served composed entry ids.
  • The extension's four PT9 XML parsers, their tests and XML fixtures, and the
    fast-xml-parser dependency are removed; the platform reads the files with
    PT9's own semantics. lexemeKey stays - PT9's composed lexeme id grammar
    still needs parsing on this side.

This change is Reviewable

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d90a65be-5f3a-4cb9-99d2-bf9c078dd288


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

jasonleenaylor and others added 6 commits August 27, 2026 15:49
The platformScripture.Pt9Interlinear projectInterface (paranext-core#2707)
now serves PT9 interlinear data as parsed, PT9-parity models, so the
converter consumes that payload directly: duplicate books resolve
canonical-path-first from the served flags, lexicon joins use the served
composed ids, and the extension's own XML parsers, their fixtures, and
the fast-xml-parser dependency are removed. lexemeKey stays: PT9's
composed lexeme id grammar still needs parsing on this side.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Two comments now say what the code does in its own terms: cluster
classification derives from lexeme ids because PT9 persists no cluster
type, and a bare-payload sense ref is attempted only when the defaults
found across languages carry exactly one distinct sense id. Three
behaviors a mutation could previously delete unnoticed are pinned:
per-token and per-first-token analysis id numbering, no ref attempt on
disagreeing default senses, and monotonic assignment of repeated
phrase windows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Lexicon refs now name the authority that minted their ids (#269), so
the test resolvers mint theirs under a declared test authority.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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