sillsdev / sillsdev/python-sil-lift
Living Dictionaries support: LD-shaped round-trip test + export docs
Nobody has claimed this yet.
- 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; aPronunciationwith a speaker-labelformsentry (The Combine'sSpeaker: <name>convention) plusmedia; aSensewithgrammatical-info,gloss,definition, anExample+Translation, anillustration(URLRefwith a captionlabel), asemantic-domain-ddp4trait, and LD-only data carried as<field>/<trait>. Build → save → reload → assert the values survive anditer_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
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 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