sillsdev / sillsdev/python-sil-lift

Living Dictionaries support: LD-shaped round-trip test + export docs

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

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
1
Forks
0
Avg merge
10d 11h
Merged PRs (30d)
6

Description

Background

SIL is investigating LIFT export for Living Dictionaries (sillsdev/TheCombine#4332); if it proceeds, python-sil-lift would be the conformance validator, a Python writer for a converter route, and the reference for conformant output. The writer/validator/CLI already cover the constructs involved — this issue adds the two things still missing here: a test proving the LD field model round-trips, and export docs tailored to the LD case.

Tests

  • Full LD-shaped entry round-trip. One entry exercising every construct the LD→LIFT mapping uses, together: a multi-orthography lexical-unit; a Pronunciation with a speaker-label forms entry (The Combine's Speaker: <name> convention) plus media; a Sense with grammatical-info, gloss, definition, an Example + Translation, an illustration (URLRef with a caption label), a semantic-domain-ddp4 trait, and LD-only data carried as <field>/<trait>. Build → save → reload → assert the values survive and iter_problems() is clean. The model already supports all of these, so this is verification, not new code.
  • (Optional, once a real sample is available) add a representative Living Dictionaries export as a corpus fixture (with provenance) and validate it end-to-end.

Docs

  • Semantic-domain representation for LD — in the Producing conformant LIFT guide (docs/en/guides/lift-export-interop.md), document how to emit LD's ~69-key vocabulary as its own named range in .lift-ranges (lossless, self-describing), with a short example.
  • LD → LIFT field-mapping reference — a concise summary (MultiString → <form lang>, audio/speaker labels, sense photos as <illustration>, LD-only fields as <field>/<trait>) so an exporter author has one place to look; can build on the existing Building a LIFT export from scratch example (docs/en/guides/build-export.md).

Non-goals

  • Any LD exporter (would live in Living Dictionaries / a converter, not here).
  • Bundling the DDP4 taxonomy.

Contributor guide

Open the contributing guide

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 with the existing writer, validator, and CLI tests, then use the LD-shaped construct list in this issue to assemble the round-trip case and check iter_problems(). Update docs/en/guides/lift-export-interop.md with the named semantic-domain range example and use docs/en/guides/build-export.md as the basis for the field-mapping reference. Done means the values survive build, save, and reload, validation is clean, and both LD export topics are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation, testing
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.