Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Raskovnik language registry

Edit registry/registry.xml. It is the authoritative TEI Lex-0 language registry: classification, names, identifiers, representative locations, count-free source-label mappings, and provenance. Dictionary entries, evidence, occurrence counts, and authorization belong to the backend.

Edit and validate

The document links to the checked-in Lex-0 development RNG and Raskovnik Schematron for editor validation. Use the full check before committing:

make check
make package

Requirements: Python 3.10+, Jing, xmllint, Java, and Maven. Maven plugin dependencies must be available locally; provision them once with mvn dependency:go-offline. Ordinary builds are offline and need no sibling checkout. make package writes a validated XAR under target/ and its companion release JSON at dist/release.json. Generated files are ignored. mvn -o package independently validates the master before assembly and verifies archive contents afterward.

Edit labels in place and preserve node and source-record IDs, canonical tags, source-record links, and display nesting. Every selectable node requires Serbian, English, and German names; nonselectable ancestors require English and may omit the other two. Explicit private tags have registered bases. Exact identifiers must not absorb broader or narrower supporting evidence; note[@type='excludedExactIdentifier'] preserves reviewed exclusions. Node notes explain scope, ambiguity, rejected mappings, or other exceptional decisions that cannot be inferred from the encoded data. Record procedural history in concise dated revision entries and Git; do not repeat approval assurances or general policy on each node.

A direct tagProfile note marks a node whose @ident is an accepted dictionary tag; the marker has no repeated tag text or ID. A source label belongs to that profile through its containing node. Catalog translations inherit the node's preferred names by language; sourceRecordLabel appears only for a different catalog wording. The original source label and its stable ID remain explicit. ISO 639-1, 639-2B, and 639-2T equivalents are derived from the pinned ISO 639-3 table and are not copied into the XML. Selection and classification status remain explicit as note attributes. A substantive shared explanation may be held once in revisionDesc and referenced from affected nodes, as for Old and Young Avestan; generic batch history needs no node references. Source-record notes explain label scope, not conversion mechanics or occurrence counts. General editorial policy appears once in the TEI header.

The version and release timestamp come from the single revisionDesc/change[@type='registryVersion']; package version comes from pom.xml. For a new release, run make prepare-release before committing the source: it advances both versions, retains the previous TEI revision in the history, then validates and packages. Rerunning it before committing does not bump again. The equivalent dotfiles shortcut is infra ras-loc registry:prepare. Ordinary make check and make package preserve the master bytes. The master is never rebuilt from upstream datasets.

Standards and provenance

Lex-0 is pinned to 0.9.6-dev, revision f6d51f29d1d2227c012dafcef20bec0708938505. The schema and the small IANA/ISO tables are checked against registry/standards-lock.json. Refresh these only as an explicit reviewed change with exact bytes, checksum, revision, and attribution updates; update backend schema acceptance at the same time if the Lex-0 pin changes.

Glottolog, CLDR, Wikidata, the cited ISJ.PERSJ language catalog, and review provenance remain in TEI source bibliography records. The six earlier conversion-catalog exports are retained in the preserved bootstrap commit rather than the current public source list. Historical source-file references point into that commit; those bulk datasets are not routine build inputs. IANA/ISO checks verify current recorded standards claims; external Glottolog/Wikidata equivalences require editorial review.

Release and installation

The XAR contains registry.xml, manifest format 4, the installation hook, and four generated EXPath/eXist descriptors. It depends on raskovnik-data-core and installs under /db/apps/raskovnik-data/metadata/languages.

Before the first format 4 installation, complete the paired app-and-registry cutover described in the backend instructions. Once format 4 is installed, run infra ras-loc registry:install for local registry updates. It advances the local version when needed, packages the current source, checks it against installed dictionaries, installs only the registry, refreshes prepared language summaries, and verifies the local APIs. It does not publish a GitHub release or deploy staging. The backend command behind the shortcut is ./scripts/exist-local.sh --registry-xar <xar> --registry-manifest dist/release.json install-registry; registry-state reports the installed version and content hash without changing it.

Publish the XAR and dist/release.json together from this repository when a release is authorized. Backend release sets select the exact registry release with prepare-release.sh --assemble-release-set --registry-release <tag> and own installation, verification, rollback, and frontend cache clearing. There is no standalone deployment script here.

Manifest format 4 declares language-tag-coverage-v1. Every nonempty canonical etymon-form language tag in each enabled dictionary must resolve to one direct registry profile. Dictionary content hashes remain artifact/provenance checks in the backend; they do not tie registry releases to dictionary revisions. New unsupported tags require a registry update, while spelling corrections using existing tags do not.

Deploy this simplified registry with its matching backend app as one coordinated installation or release set. The previous app expects the repeated profile and translation markup. Roll back the explicitly pinned app and registry together.

Migration history

Commit 2f63dc0 preserves the completed reproducible bootstrap, full review archive, override ledger, and initial validated TEI master. All 89 bootstrap tests passed and the editorial gate was empty. The initial inventory was 380 nodes, 214 direct profiles, and 311 source records. The promoted TEI was compared against the complete compiler projection before the bootstrap was removed; migration digests record the initial semantic projection, not a constraint on subsequent editing.

The complete 20-ancestor translation batch was approved by ttasovac on 2026-09-06. Earlier human decisions, the three English-only fallbacks, generic Ossetian/Iron separation, and Kajkavian's narrower-ISO exclusion are retained.

Glottolog placement policy

Prefer an active exact equivalent; otherwise retain the dictionary concept beneath a reviewed broader linguistic node. If neither is supported, retain an explicitly unresolved placement rather than invent equivalence. A broader ancestor's Glottocode belongs to that ancestor, never to the historical concept's exact identifiers. Retired and Bookkeeping records may appear only as provenance or reviewed exclusions, not as active identifiers or display nodes.

registry/glottolog-review.json records all 332 Glottocodes checked against the provenance-pinned Glottolog 5.3 languoid snapshot, including the three excluded Bookkeeping records. It records upstream ancestry and status, not alternative editable language mappings. Validation runs offline and fails on unreviewed identifiers, excluded statuses, or snapshot-provenance drift. New Glottocodes require review against that snapshot and a table update; an upstream upgrade requires a fresh audit. Bulk upstream files remain outside the build and repository.

The 2026.9.8-1 revision places inc-x-old beneath inc (Indo-Aryan) and otk beneath trk (Turkic). These are broader editorial placements, not exact Glottolog replacements. Dictionary tags and source-label profiles are unchanged. Install the package through the backend registry release workflow, then rebuild prepared language summaries with langsum:refresh-all() before clearing RESTXQ caches; building it alone does not update the running explorer.

A registry-only install invalidates the prepared language summaries for every dictionary. Verify successful summary regeneration and authenticated language-registry/evidence API responses before reporting installation complete; matching package hashes alone does not establish explorer readiness. The standard backend installed-manifest workflow performs this refresh, so registry-only tooling must retain that step.

The shared admin editing contract, reviewed geography vocabulary, and manifest format 4 are documented in Registry editing through the shared admin.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages