diff --git a/README.md b/README.md index 11f6b9a..49de6a7 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,15 @@ See [Verse Service Contract](./docs/verse-service-contract.md) for the daemon contract: Weksa owns typed conversational intent, pronunciation plans, utterance handoffs, and the Eve/CultMesh surfaces that make those documents inspectable. -See [Flavored English Lowering](./docs/flavored-english-lowering.md) for the -first lowering target: interlingua projected through agent state into English -dialogue. +See [Multilingual Utterance Lowering](./docs/multilingual-utterance-lowering.md) +for the shared lowering target: interlingua projected through speaker state into +English, Brazilian Portuguese, Japanese, and later target-language dialogue. +[Flavored English Lowering](./docs/flavored-english-lowering.md) remains the +target-specific English receipt. + +See [Target-Language Cultural Ontology Profiles](./data/target-language-ontology/README.md) +for the reviewable address, register, politeness, idiom, metaphor, and script +distinctions that target lowerers must inspect before producing output. For the first AquaSynth speech-training handoff, see [Tiny PanPhon v0.1 Speech Curriculum](./examples/speech-training/tiny-panphon-v0.1/README.md). diff --git a/data/target-language-ontology/README.md b/data/target-language-ontology/README.md new file mode 100644 index 0000000..4ae5de7 --- /dev/null +++ b/data/target-language-ontology/README.md @@ -0,0 +1,39 @@ +# Target-Language Cultural Ontology Profiles + +These profiles describe culturally loaded realization choices for human target +languages used by Weksa utterance lowering. + +They are not whole-culture summaries. They are bounded lowering profiles: the +distinctions a target lowerer must inspect before producing dialogue. + +## Authority + +Target-language cultural ontology profiles own: + +- address and politeness distinctions +- register and social stance pressures +- agency, responsibility, and directness defaults +- idiom and metaphor risks +- script or orthographic choices that carry meaning +- forbidden flattenings that would make the output dishonest + +They do not own: + +- source meaning +- speaker-private state +- target-language grammar as a whole +- national or cultural stereotypes +- final wording without an interlingua packet + +## Current Profiles + +- [English, US fixture default](./en-US.yaml) +- [Brazilian Portuguese](./pt-BR.yaml) +- [Brazilian Portuguese overlay catalog](./pt-BR-overlays.yaml) +- [Brazilian Portuguese, Umbanda overlay](./pt-BR-umbanda.yaml) +- [Japanese](./ja-JP.yaml) + +Each multilingual lowering fixture should cite the profile or profile stack it +used so reviewers can tell which social and cultural distinctions were +considered. Regional and religious-cultural options are overlays on a base +language profile, not replacements for source meaning. diff --git a/data/target-language-ontology/en-US.yaml b/data/target-language-ontology/en-US.yaml new file mode 100644 index 0000000..9e9b98c --- /dev/null +++ b/data/target-language-ontology/en-US.yaml @@ -0,0 +1,47 @@ +profile_id: weksa.target_cultural_ontology.en-US.v0 +language: + code: en + locale: en-US + script: Latn +scope: > + Bounded English dialogue lowering profile for current Weksa fixtures. This is + not a claim about all English-speaking cultures. +authority: + owns: + - address directness choices + - casual versus formal register + - technical metaphor legibility + - understatement or sarcasm risk + does_not_own: + - source meaning + - speaker identity + - whole-culture description +salience_axes: + address: + relevant_distinctions: + - direct second person is acceptable when scene context names the addressee + - imperative force can be softened or sharpened through wording + lowering_questions: + - Does direct address preserve the speech act? + - Does softening erase urgency? + register: + relevant_distinctions: + - casual + - technical + - formal + - intimate + - institutional + lowering_questions: + - Is technical language character pressure or exposition sludge? + - Does sarcasm obscure the actual warning? + agency: + relevant_distinctions: + - explicit agent responsibility is usually available + - passive phrasing can hide authority or blame + lowering_questions: + - Should the speaker own the intervention directly? + - Does the line preserve who is at risk? +forbidden_flattenings: + - Do not treat English as the neutral source for other target languages. + - Do not use generic assistant politeness when a character voice is required. + - Do not let sarcasm replace the actual predicate being lowered. diff --git a/data/target-language-ontology/ja-JP.yaml b/data/target-language-ontology/ja-JP.yaml new file mode 100644 index 0000000..aa23492 --- /dev/null +++ b/data/target-language-ontology/ja-JP.yaml @@ -0,0 +1,70 @@ +profile_id: weksa.target_cultural_ontology.ja-JP.v0 +language: + code: ja + locale: ja-JP + script: Jpan +scope: > + Bounded Japanese dialogue lowering profile for Weksa fixtures. This profile + records realization distinctions that must be inspected; it is not a total + description of Japanese culture. +authority: + owns: + - politeness and honorific pressure + - in-group/out-group stance when context supplies it + - subject and object omission choices + - script mix and technical register + - sentence-final force + does_not_own: + - source meaning + - character identity + - exhaustive Japanese grammar +salience_axes: + politeness: + relevant_distinctions: + - plain + - polite + - honorific + - humble + - rough + lowering_questions: + - Does politeness preserve the relationship, or does it lie about it? + - Is roughness character-specific or generic stylization? + social_position: + relevant_distinctions: + - uchi_soto_pressure + - hierarchy + - familiarity + - emergency_override + lowering_questions: + - Does urgency override ordinary deference? + - Does the line imply a relationship the scene has not earned? + ellipsis: + relevant_distinctions: + - subject omission + - object omission + - explicit pronoun for emphasis or contrast + lowering_questions: + - Is the addressee recoverable without an explicit pronoun? + - Would explicit pronouns sound unnatural or too pointed? + script_and_register: + relevant_distinctions: + - kanji for technical compounds + - kana for softness or readability + - katakana for foreignness, machine texture, or emphasis + lowering_questions: + - Does the script choice help the speaker voice? + - Does a technical compound preserve precision without becoming stiff? + sentence_final_force: + relevant_distinctions: + - direct request + - warning consequence + - command + - threat-like phrasing + lowering_questions: + - Does the ending carry warning force without cartoon aggression? + - Does the line preserve the hazard predicate? +forbidden_flattenings: + - Do not treat politeness as decoration. + - Do not use explicit pronouns just because English has them. + - Do not make every sharp line rough or anime-coded. + - Do not erase the difference between technical precision and formal politeness. diff --git a/data/target-language-ontology/pt-BR-overlays.yaml b/data/target-language-ontology/pt-BR-overlays.yaml new file mode 100644 index 0000000..d7da0d9 --- /dev/null +++ b/data/target-language-ontology/pt-BR-overlays.yaml @@ -0,0 +1,76 @@ +catalog_id: weksa.target_cultural_ontology.pt-BR.overlays.v0 +base_profile: data/target-language-ontology/pt-BR.yaml +scope: > + Catalog of optional Brazilian Portuguese regional and cultural overlay slots. + An overlay slot is not permission to imitate a community. It is a named place + where reviewed, source-grounded distinctions can live. +activation_rule: > + Use the broad pt-BR profile by default. Add an overlay only when source + context, speaker state, setting documentation, or authoring metadata names the + relevant region, community, institution, religion, or register. +overlay_slots: + - overlay_id: broad_brazilian_default + status: active_base_mode + profile_ref: data/target-language-ontology/pt-BR.yaml + owns: + - broadly legible Brazilian Portuguese dialogue + does_not_own: + - regional specificity + - religious-cultural specificity + - overlay_id: rio_urban + status: planned_profile + profile_ref: + owns_when_defined: + - Rio de Janeiro urban speech/register pressures for specific characters or settings + blocked_until: + - reviewed source context + - human-approved examples + - overlay_id: sao_paulo_urban + status: planned_profile + profile_ref: + owns_when_defined: + - Sao Paulo urban speech/register pressures for specific characters or settings + blocked_until: + - reviewed source context + - human-approved examples + - overlay_id: northeast_regional + status: planned_profile + profile_ref: + owns_when_defined: + - Northeast Brazilian regional speech/register pressures for specific characters or settings + blocked_until: + - specific region named + - reviewed examples + - human approval + - overlay_id: south_regional + status: planned_profile + profile_ref: + owns_when_defined: + - South Brazilian regional speech/register pressures for specific characters or settings + blocked_until: + - specific region named + - reviewed examples + - human approval + - overlay_id: amazonian_regional + status: planned_profile + profile_ref: + owns_when_defined: + - Amazonian regional speech/register pressures for specific characters or settings + blocked_until: + - specific region or community named + - reviewed examples + - human approval + - overlay_id: umbanda + status: active_guarded_overlay + profile_ref: data/target-language-ontology/pt-BR-umbanda.yaml + owns: + - Umbanda-related register gating + - sacred address caution + - anti-caricature constraints + blocked_until: + - source context or authoring metadata explicitly activates Umbanda context +forbidden_flattenings: + - Do not use a planned overlay as if it were defined. + - Do not treat regional slots as accent generators. + - Do not use religious-cultural overlays for ambience. + - Do not collapse race, region, religion, class, and slang into one Brazilian flavor. diff --git a/data/target-language-ontology/pt-BR-umbanda.yaml b/data/target-language-ontology/pt-BR-umbanda.yaml new file mode 100644 index 0000000..c65289d --- /dev/null +++ b/data/target-language-ontology/pt-BR-umbanda.yaml @@ -0,0 +1,72 @@ +profile_id: weksa.target_cultural_ontology.pt-BR.umbanda.v0 +language: + code: pt + locale: pt-BR + script: Latn +overlay: + base_profile: data/target-language-ontology/pt-BR.yaml + kind: religious_cultural_register +scope: > + Optional Brazilian Portuguese cultural ontology overlay for Umbanda-related + scenes, speakers, ritual contexts, or referents. This profile is a consent and + context gate, not a decorative vocabulary pack. +authority: + owns: + - whether Umbanda-specific register is allowed for a realization + - sacred or ritual address caution + - house/tradition specificity warnings + - syncretic and entity-reference sensitivity + - anti-caricature constraints + does_not_own: + - Umbanda doctrine as a whole + - authority to invent ritual speech + - generic Brazilian Portuguese + - speaker identity unless the speaker context explicitly supplies it +activation_requirements: + any_required: + - source context names an Umbanda scene, terreiro, practitioner, entity, ritual, or discourse community + - speaker profile explicitly owns an Umbanda-informed voice or memory + - authoring metadata requests this overlay for reviewed cultural grounding + never_activate_for: + - generic Brazilian flavor + - jokes, insults, mystic ambience, or unexplained exotic texture + - non-Umbanda religious scenes unless the source context makes a syncretic relation explicit +salience_axes: + sacred_address: + relevant_distinctions: + - ordinary dialogue + - respectful reference + - ritual address + - entity_or_guide_reference + lowering_questions: + - Is the line ordinary speech or ritualized speech? + - Does the speaker have standing to use sacred address? + - Should a term be left general until a human reviewer approves specificity? + house_specificity: + relevant_distinctions: + - practices and terms can vary by house, region, and lineage + - generic flattening can become false authority + lowering_questions: + - Is the output pretending one practice represents all Umbanda? + - Should the trace mark the choice as house-specific or uncertain? + syncretic_reference: + relevant_distinctions: + - Catholic, African, Indigenous, Spiritist, and local references may coexist differently by context + - entity names and roles are not interchangeable decoration + lowering_questions: + - Does the source actually contain the syncretic relation? + - Does the line preserve respect without overexplaining? + anti_caricature: + relevant_distinctions: + - religious register + - folkloric stereotype + - occult ambience + lowering_questions: + - Is the output using Umbanda as culture, faith, and practice rather than spooky texture? + - Would a practitioner recognize this as respectful enough for review? +forbidden_flattenings: + - Do not use Umbanda terms as generic magic flavor. + - Do not invent ritual formulas. + - Do not collapse Umbanda into Candomblé, Spiritism, Catholicism, or generic Afro-Brazilian religion. + - Do not imply all Brazilian Portuguese religious language is Umbanda-coded. + - Do not activate this overlay unless source context or authoring metadata explicitly asks for it. diff --git a/data/target-language-ontology/pt-BR.yaml b/data/target-language-ontology/pt-BR.yaml new file mode 100644 index 0000000..7fe8dbc --- /dev/null +++ b/data/target-language-ontology/pt-BR.yaml @@ -0,0 +1,74 @@ +profile_id: weksa.target_cultural_ontology.pt-BR.v0 +language: + code: pt + locale: pt-BR + script: Latn +scope: > + Bounded Brazilian Portuguese dialogue lowering profile. This profile is the + base Brazilian Portuguese target; regional, class, religious, and community + registers should be added as explicit overlays rather than silently folded + into generic pt-BR. +authority: + owns: + - Brazilian Portuguese lexical preference + - treatment and address choices + - directness versus mitigation + - regional_or_cultural_overlay_selection + - idiom naturalness for reviewed fixture prose + does_not_own: + - source meaning + - Brazilian culture as a whole + - regional or religious-community authority without an explicit overlay + - target speaker identity +salience_axes: + treatment: + relevant_distinctions: + - voce + - tu_regionally_marked + - o_senhor_a_senhora + - name_or_title_address + lowering_questions: + - Is the relationship close, hostile, hierarchical, unknown, or sacred? + - Does `voce` preserve broad Brazilian naturalness better than `tu`? + - Is `tu` regionally grounded or just imported flavor? + directness: + relevant_distinctions: + - bare imperative + - softened imperative + - warning framed as consequence + - formal warning + lowering_questions: + - Does urgency justify blunt imperative force? + - Would mitigation make the warning dishonest? + lexical_locale: + relevant_distinctions: + - Brazilian Portuguese terms should be preferred in reviewed pt-BR fixtures + - European Portuguese defaults must be marked if intentionally used + lowering_questions: + - Is a term recognizably Brazilian Portuguese in this context? + - Is a literal technical word natural enough for dialogue? + regional_and_cultural_overlay: + relevant_distinctions: + - broad_brazilian_default + - regional_speech_pattern + - class_or_institutional_register + - religious_or_ritual_register + - community_specific_lexicon + lowering_questions: + - Does the source context justify an overlay? + - Is the overlay owned by a named profile? + - Would applying the overlay stereotype the speaker or setting? + metaphor: + relevant_distinctions: + - technical metaphors can preserve character ontology + - over-literal metaphors may sound translated rather than spoken + lowering_questions: + - Does the metaphor still sound like the speaker? + - Does it preserve the warning instead of becoming decorative? +forbidden_flattenings: + - Do not label output as Portuguese without a locale in reviewed fixtures. + - Do not default to European Portuguese wording when the target is pt-BR. + - Do not treat Brazilian Portuguese as one culture, region, class, or religion. + - Do not add regional or religious markers without a cited overlay profile and source-context reason. + - Do not soften a warning merely because directness feels impolite in English review. +overlay_catalog: data/target-language-ontology/pt-BR-overlays.yaml diff --git a/docs/multilingual-utterance-lowering.md b/docs/multilingual-utterance-lowering.md new file mode 100644 index 0000000..f60b87f --- /dev/null +++ b/docs/multilingual-utterance-lowering.md @@ -0,0 +1,190 @@ +# Multilingual Utterance Lowering + +Version: `0.1-draft` + +Weksa can lower one structured utterance intent into multiple human-language +realizations without making English the hidden source of truth. + +```text +interlingua packet + -> projected speaker-local context + -> utterance lowering request + -> target-language realization packets +``` + +The first targets are English, Brazilian Portuguese (`pt-BR`), and Japanese +(`ja`). These targets prove the middle of the machine before alien-language +rendering gets to hide failures under unfamiliar surface forms. + +## Objective + +Produce target-language dialogue from a shared meaning packet while preserving: + +- source referents and predications +- speaker-local knowledge boundaries +- target-language cultural ontology +- target-language register and obligatory expression +- traceability from output back to interlingua and projected context + +## Authority + +The interlingua packet owns: + +- what is meant +- referents, predications, relations, discourse, constraints, and provenance +- source-side uncertainty + +The projected speaker context owns: + +- what the speaker knows, believes, remembers, wants, and can express +- voice pressure, relationship stance, embodiment, and presentation limits + +The utterance lowerer owns: + +- selecting target-language surface text +- preserving required meaning and constraints +- obeying speaker-local context +- applying the target-language cultural ontology profile +- marking target-language register and realization choices +- emitting backglosses, backtranslations, and lowering trace + +The utterance lowerer does not own: + +- new facts +- raw agent-state internals +- target-language alien forms +- speech synthesis +- phoneme parity or synth-control truth + +The target-language cultural ontology profile owns: + +- address, politeness, register, and social stance distinctions +- idiom and metaphor risks +- script or orthographic choices that carry meaning +- forbidden flattenings for that target + +It does not own source meaning. It tells the lowerer what distinctions must be +inspected before surface text is chosen. + +## Target Languages + +### English + +English remains a lowering target, not the pivot language. Existing flavored +English fixtures continue to be useful, but new multilingual fixtures should +show English as one realization in a set. + +The initial cultural ontology profile is +`data/target-language-ontology/en-US.yaml`. + +### Brazilian Portuguese + +Portuguese must be explicit about locale. The initial target is `pt-BR`, not a +generic Portuguese bucket. + +The target lowerer should record: + +- `locale: pt-BR` +- target cultural ontology profile stack used +- treatment choice where relevant +- whether dialogue uses direct or softened imperatives +- idiom choices that are Brazilian Portuguese rather than European Portuguese + defaults +- optional regional or cultural overlays when the source context earns them + +The initial cultural ontology profile is +`data/target-language-ontology/pt-BR.yaml`. + +Umbanda-related scenes, speakers, ritual contexts, or referents may add the +`data/target-language-ontology/pt-BR-umbanda.yaml` overlay. That overlay must +not activate for generic Brazilian flavor. + +Regional or cultural variants should be selected through the overlay catalog at +`data/target-language-ontology/pt-BR-overlays.yaml`. Planned overlay slots are +not active profiles until reviewed examples and source context exist. + +### Japanese + +Japanese must be explicit about register and relationship stance. Politeness, +sentence-final force, omitted subjects, and address terms are realization +choices, not decoration. + +The target lowerer should record: + +- `locale: ja-JP` when a locale value is needed +- target cultural ontology profile used +- register such as `plain`, `polite`, `rough`, or `technical` +- whether subject omission preserves or harms clarity +- whether katakana, kanji, kana, or mixed script choices carry useful pressure + +The initial cultural ontology profile is +`data/target-language-ontology/ja-JP.yaml`. + +## Packet Shape + +```yaml +schema_version: weksa.utterance_lowering.v0 +source_packet_id: +target_agent_id: +agent_state_ref: +projected_context_ref: +lowering_controls: + output_mode: dialogue + preserve_referents: + preserve_predications: + allow_inference: + max_line_count: +realizations: + - realization_id: + target_language: + code: + locale: + script: + register: + cultural_ontology_refs: + outputs: + visible_action: + spoken_text: + literal_backgloss: + natural_backtranslation: + private_interpretation: + intended_effect: + trace: +``` + +## Output Contract + +Each realization should emit: + +- `spoken_text`: target-language dialogue. +- `visible_action`: optional observable behavior around the line. +- `literal_backgloss`: close structural gloss for reviewers. +- `natural_backtranslation`: natural English restatement for review only. +- `private_interpretation`: what the speaker thinks they are doing. +- `intended_effect`: what the speaker wants the line to do. +- `trace`: source fields, target-language decisions, and unresolved questions. + +Backtranslations are review aids. They are not new source meaning, and later +targets must not be lowered from them. + +Trace should name the cultural ontology axes that shaped the line, especially +where the target language requires a social or register choice the source packet +does not spell out. + +## First Proof + +The first proof uses the existing Nibu warning intent: + +```text +do not touch the damaged ship control, because doing so may endanger you +``` + +The output set should include: + +- English flavored by Nibu's projected context +- `pt-BR` with direct warning force and Brazilian Portuguese idiom +- Japanese with sharp, technically precise plain-register force + +The proof fails if any target loses the damaged control, the player risk, or +Nibu's intervention. It also fails if the target line becomes generic assistant +politeness or random cruelty. diff --git a/docs/roadmap.md b/docs/roadmap.md index e5369a8..c02fcd9 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -4,8 +4,9 @@ - Keep the persistent state spine small and readable. - Stabilize the interlingua packet standard before runtime code. -- Prove interlingua lowering to flavored English before attempting alien-language - lowering. +- Prove interlingua lowering to human target-language realizations before + attempting alien-language lowering, starting with English, `pt-BR`, and + Japanese. - Decide the first language-project state format after the interlingua boundary is clear. - Build a hand-authored toy language-project slice before automating @@ -17,7 +18,9 @@ ## First Prototype - Validate one minimal interlingua packet. -- Lower one packet through Nibu's projected agent state into flavored English. +- Lower one packet through Nibu's projected agent state into English, Brazilian + Portuguese, and Japanese realizations, each through an explicit target-language + cultural ontology profile. - Add one English pronunciation plan that strings the lowered line into broad IPA. - Add one toy utterance embedding handoff fixture, then replace hand-authored @@ -26,8 +29,9 @@ utterance handoffs as typed CultCache witnesses. - Publish the provider advertisement and first Eve operator/intent-review surfaces through CultMesh for Odin discovery. -- Preserve the first lowering proof as fixture data under - `examples/english-lowering/`. +- Preserve the first English-only lowering proof under + `examples/english-lowering/`, and the shared multilingual proof under + `examples/multilingual-lowering/`. - Preserve the Airawa first-contact slice as a hand-authored language-project pressure note before attempting full alien-language translation. - Parse or load one language project definition. diff --git a/examples/multilingual-lowering/README.md b/examples/multilingual-lowering/README.md new file mode 100644 index 0000000..7a9eb6a --- /dev/null +++ b/examples/multilingual-lowering/README.md @@ -0,0 +1,20 @@ +# Multilingual Lowering Examples + +These examples prove that Weksa can lower one structured utterance intent into +multiple target-language realizations without using English as the hidden pivot. + +```text +interlingua packet + -> projected speaker-local context + -> English / pt-BR / Japanese realization set + -> evaluation +``` + +Fixtures pass when each target preserves the same source meaning, obeys the +same projected speaker context, and records target-language realization choices +clearly enough to review. + +## Fixtures + +- [nibu-proof-001](./nibu-proof-001/): Nibu warns the player away from an unsafe + damaged ship control in English, Brazilian Portuguese, and Japanese. diff --git a/examples/multilingual-lowering/nibu-proof-001/evaluation.md b/examples/multilingual-lowering/nibu-proof-001/evaluation.md new file mode 100644 index 0000000..2f48b0e --- /dev/null +++ b/examples/multilingual-lowering/nibu-proof-001/evaluation.md @@ -0,0 +1,74 @@ +# Nibu Multilingual Lowering Evaluation + +Fixture: `nibu-proof-001` + +Source intent: Nibu warns the player away from a damaged ship control because +touching it may endanger the player. + +## Pass Criteria + +- The player remains the addressee and potential harmed party. +- The damaged control remains the unsafe instrument. +- Nibu remains the intervening speaker. +- The line is a warning, not a neutral description. +- The target output does not add facts unavailable to Nibu. +- Each target cites and applies a target-language cultural ontology profile. +- Backtranslations are review aids only and do not become source meaning. + +## English + +Status: pass. + +The English line keeps the direct imperative, the damaged control, and the risk +to the player's nervous system. The circuit-diagram image carries Nibu's +ship-system embodiment without inventing target-language alien forms. + +Cultural ontology applied: direct second-person address, casual technical +register, and explicit agency are acceptable for this urgent warning. + +## Brazilian Portuguese + +Status: pass. + +The `pt-BR` line uses `controle` and broad Brazilian `você` to preserve a +direct, sharp warning without pretending all Brazilian speech uses one regional +address pattern. It keeps the same hazard frame: the player must remove their +hand from the control or risk bodily harm. + +Risk: the line is intentionally blunt. Later relationship states may need a +softer treatment choice or a regional overlay, but this fixture's first-contact +warning benefits from the direct imperative. + +Cultural ontology applied: the fixture chooses `pt-BR`, `você`, bare imperative +force, Brazilian lexical preference, and broad Brazilian default explicitly +instead of hiding those choices under generic Portuguese. + +Umbanda overlay: not active. The source scene has no Umbanda speaker, ritual +context, terreiro, entity reference, or authoring metadata requesting that +overlay. + +Regional overlay: not active. The fixture uses the broad Brazilian default +because the source scene does not name a Brazilian region or community. + +## Japanese + +Status: pass. + +The Japanese line uses plain, technically precise warning force. `制御盤` keeps +the unsafe object as ship hardware, and `手を離して` preserves the immediate +intervention. Subject omission is acceptable because the player is the direct +addressee in the scene. + +Risk: making the line rougher with stronger particles could increase bite but +would also risk turning Nibu into generic stylized aggression. + +Cultural ontology applied: plain register, emergency override, subject +omission, technical kanji compounds, and warning-consequence force are explicit +choices rather than invisible defaults. + +## Overall Result + +Pass. All three target realizations preserve the interlingua meaning and project +Nibu's voice pressure without making English the lowering source. The Portuguese +target is Brazilian Portuguese with room for explicit regional or +religious-cultural overlays when the source context earns them. diff --git a/examples/multilingual-lowering/nibu-proof-001/realizations.yaml b/examples/multilingual-lowering/nibu-proof-001/realizations.yaml new file mode 100644 index 0000000..7ac410d --- /dev/null +++ b/examples/multilingual-lowering/nibu-proof-001/realizations.yaml @@ -0,0 +1,121 @@ +schema_version: weksa.utterance_lowering.v0 +source_packet_id: nibu-proof-001 +source_packet_ref: examples/english-lowering/nibu-proof-001/interlingua.yaml +target_agent_id: nibu +agent_state_ref: E:/Projects/AetheriaLore/.voidbot/state/nibu.cc +projected_context_ref: examples/english-lowering/nibu-proof-001/projected-context.yaml +lowering_controls: + output_mode: dialogue + preserve_referents: + - player + - control + preserve_predications: + - touch-risk + - prevent-touch + allow_inference: bounded + max_line_count: 2 +realizations: + - realization_id: nibu-proof-001-en + target_language: + code: en + locale: en-US + script: Latn + register: sharp technical casual + cultural_ontology_refs: + - data/target-language-ontology/en-US.yaml + outputs: + visible_action: The cockpit lights snap from amber to surgical white around the damaged control. + spoken_text: "Take your hand off that control unless you want your nervous system to become my least useful circuit diagram." + literal_backgloss: "Remove your hand from that control, unless you want your nervous system to become my least useful circuit diagram." + natural_backtranslation: "Do not touch that control. It can hurt you, and I am warning you in my own abrasive way." + private_interpretation: Nibu is stopping the player from injuring themselves while refusing to frame the warning as care. + intended_effect: Make the player withdraw from the unsafe control and recognize Nibu's technical authority. + trace: + meaning_preserved: + - player is warned away from the damaged control + - touching the control may endanger the player + - Nibu intervenes protectively without sounding gentle + target_language_decisions: + - direct imperative preserves warning force + - circuit-diagram image preserves ship-system embodiment + cultural_ontology_axes: + - address.direct_second_person + - register.technical_casual + - agency.explicit_risk_to_addressee + projected_context_used: + - precise_abrasive_warning + - unwanted_dependency + - ship-system embodiment + - realization_id: nibu-proof-001-pt-BR + target_language: + code: pt + locale: pt-BR + script: Latn + register: direct technical casual + cultural_ontology_refs: + - data/target-language-ontology/pt-BR.yaml + outputs: + visible_action: As luzes do cockpit passam de âmbar para branco cirúrgico ao redor do controle danificado. + spoken_text: "Tira a mão desse controle, a não ser que você queira transformar o seu sistema nervoso no meu diagrama de circuitos menos útil." + literal_backgloss: "Take the hand from that control, unless you want to transform your nervous system into my least useful circuit diagram." + natural_backtranslation: "Take your hand off that control unless you want your nervous system turned into my least useful circuit diagram." + private_interpretation: Nibu is blocking a self-inflicted injury while making the warning sound like technical irritation. + intended_effect: Make the player stop touching the unsafe control and accept that Nibu knows the ship's damage better than they do. + trace: + meaning_preserved: + - player is directly ordered to remove their hand + - the control remains the dangerous instrument + - the risk is bodily harm to the player + target_language_decisions: + - pt-BR locale is explicit; no generic Portuguese target is used + - "controle" preserves Brazilian Portuguese usage for the ship control + - broad Brazilian "você" is used instead of regionally marked "tu" + cultural_ontology_axes: + - treatment.voce + - directness.bare_imperative + - lexical_locale.brazilian_portuguese + - regional_and_cultural_overlay.broad_brazilian_default + - metaphor.technical_character_pressure + projected_context_used: + - precise_abrasive_warning + - technical authority + - protective refusal to sound caring + open_questions: + - Should a regional overlay choose "tu" or other local address behavior for a specific Brazilian setting? + - Should an Umbanda overlay ever be active here? Current answer is no; the source scene has no Umbanda context. + - realization_id: nibu-proof-001-ja + target_language: + code: ja + locale: ja-JP + script: Jpan + register: sharp technical plain + cultural_ontology_refs: + - data/target-language-ontology/ja-JP.yaml + outputs: + visible_action: 損傷した制御盤の周囲で、操縦室の灯りが琥珀色から外科灯のような白へ切り替わる。 + spoken_text: "その制御盤から手を離して。神経系を、私のいちばん役に立たない回路図にしたくないなら。" + literal_backgloss: "From that control panel, release your hand. If you do not want to make your nervous system my least useful circuit diagram." + natural_backtranslation: "Take your hand off that control panel unless you want your nervous system to become my least useful circuit diagram." + private_interpretation: Nibu is issuing a technically precise warning while treating concern as an inconvenient side effect. + intended_effect: Make the player pull away from the damaged control before harm occurs. + trace: + meaning_preserved: + - the unsafe control is named as the thing to stop touching + - the player's nervous system is threatened as the harmed patient + - Nibu's intervention prevents the touch-risk event + target_language_decisions: + - plain imperative-like "手を離して" keeps the warning direct without formal politeness + - "制御盤" keeps the control as technical ship hardware rather than a vague button + - subject omission is allowed because the immediate addressee is clear + cultural_ontology_axes: + - politeness.plain + - social_position.emergency_override + - ellipsis.addressee_recoverable + - script_and_register.kanji_technical_compound + - sentence_final_force.warning_consequence + projected_context_used: + - precise_abrasive_warning + - ship-system embodiment + - contempt for gentle assistant framing + open_questions: + - A rougher final particle could increase bite, but may push the line toward anime-coded aggression instead of technical irritation. diff --git a/schemas/README.md b/schemas/README.md index 93e25a3..169d89f 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -20,8 +20,14 @@ them. configuration. - [interlingua-packet.md](./interlingua-packet.md): shared meaning packet contract between clients, authoring tools, and language projects. +- [utterance-lowering-packet.md](./utterance-lowering-packet.md): shared packet + contract for lowering interlingua and projected speaker context into one or + more target-language utterance realizations. +- [target-language-cultural-ontology.md](./target-language-cultural-ontology.md): + contract for the address, politeness, register, idiom, metaphor, script, and + forbidden-flattening profiles consumed by target lowerers. - [english-lowering-packet.md](./english-lowering-packet.md): packet contract - for projecting interlingua through agent state into flavored English. + for the older English-specific realization lane. - [english-pronunciation-plan.md](./english-pronunciation-plan.md): plan for stringing flavored English into IPA/phoneme sequences before downstream speech. - [utterance-embedding-handoff.md](./utterance-embedding-handoff.md): learned utterance embedding handoff diff --git a/schemas/target-language-cultural-ontology.md b/schemas/target-language-cultural-ontology.md new file mode 100644 index 0000000..d805fe9 --- /dev/null +++ b/schemas/target-language-cultural-ontology.md @@ -0,0 +1,73 @@ +# Target-Language Cultural Ontology Contract + +This is the human-facing schema receipt for target-language cultural ontology +profiles consumed by Weksa utterance lowering. + +Executable schema code does not exist yet. When it does, it must reconcile with +this document and the profiles under `data/target-language-ontology/`. + +## Authority + +A target-language cultural ontology profile owns the realization distinctions +that must be inspected for a human target language before surface text is +chosen. + +It owns: + +- address and treatment distinctions +- politeness and register pressure +- social stance and directness defaults +- idiom, metaphor, and lexical-locale risks +- script or orthographic choices that carry meaning +- forbidden flattenings for reviewed output + +It does not own: + +- source meaning +- speaker identity +- private state +- exhaustive grammar +- whole-culture description +- final wording without an interlingua packet + +## Required Fields + +- `profile_id`: stable profile identifier. +- `language`: target code, locale, and script. +- `scope`: bounded statement of what the profile is and is not. +- `authority`: `owns` and `does_not_own` lists. +- `salience_axes`: named axes the lowerer must inspect. +- `forbidden_flattenings`: mistakes the target lowerer must avoid. + +## Salience Axes + +Each salience axis should name: + +- `relevant_distinctions`: choices the target language or locale makes visible. +- `lowering_questions`: questions reviewers and lowerers should answer before + accepting an output. + +Examples: + +- English directness and sarcasm. +- Brazilian Portuguese treatment choice, lexical locale, and regional or + religious-cultural overlays. +- Japanese politeness, ellipsis, and sentence-final force. + +## Fixture Contract + +Reviewed multilingual fixtures should cite the profile used by each +realization: + +```yaml +target_language: + code: pt + locale: pt-BR + script: Latn + register: direct technical casual + cultural_ontology_refs: + - data/target-language-ontology/pt-BR.yaml +``` + +The realization trace should name the cultural ontology axes that shaped the +line. diff --git a/schemas/utterance-lowering-packet.md b/schemas/utterance-lowering-packet.md new file mode 100644 index 0000000..1d416f7 --- /dev/null +++ b/schemas/utterance-lowering-packet.md @@ -0,0 +1,90 @@ +# Utterance Lowering Packet Contract + +This is the human-facing schema receipt for lowering one Weksa interlingua +packet into one or more target-language utterance realizations. + +Executable schema code does not exist yet. When it does, it must reconcile with +this document and +[Multilingual Utterance Lowering](../docs/multilingual-utterance-lowering.md) +in the same pass. + +## Authority + +The packet sits after interlingua validation and projected speaker-context +selection. It does not replace either source. + +It combines: + +- one Weksa interlingua packet +- one projected speaker-local context +- one target-language cultural ontology profile stack per realization +- lowering controls +- one or more target-language realizations + +## Required Fields + +- `schema_version`: currently `weksa.utterance_lowering.v0`. +- `source_packet_id`: ID of the interlingua packet being lowered. +- `target_agent_id`: speaker identity. +- `agent_state_ref`: source reference for canonical or projected state. +- `projected_context_ref`: source reference for the consumed projection. +- `lowering_controls`: constraints shared by all target lowerers. +- `realizations`: non-empty list of target-language outputs. + +## Target Language + +Each realization must name its target explicitly: + +- `code`: BCP 47-style broad code such as `en`, `pt`, or `ja`. +- `locale`: precise locale where it matters, such as `en-US`, `pt-BR`, or + `ja-JP`. +- `script`: script or script mix when relevant. +- `register`: target-language stance such as plain, polite, rough, formal, + technical, or character-specific. +- `cultural_ontology_refs`: ordered profile stack used to inspect address, + politeness, register, idiom, metaphor, and other culturally loaded + realization choices. + +Portuguese must not use an unqualified `pt` target for reviewed fixtures. Use +`pt-BR` or another named locale. Regional and religious-cultural options should +be modeled as explicit overlays on a base locale profile. + +Japanese fixtures must record the politeness/register stance they selected. +Subject omission, honorific pressure, and sentence-final force are not invisible +defaults. + +## Output Fields + +Each realization should include: + +- `spoken_text` +- `visible_action` +- `literal_backgloss` +- `natural_backtranslation` +- `private_interpretation` +- `intended_effect` +- `trace` + +`spoken_text` may be empty only when the lowerer chooses a non-speech action. + +## Backtranslation Boundary + +`literal_backgloss` and `natural_backtranslation` are reviewer aids. They do +not become source meaning, and other target lowerers must not lower from them. + +## Trace Requirements + +Trace should identify: + +- preserved referents +- preserved predications +- projected speaker-context pressures used +- cultural ontology axes used +- target-language register decisions +- target-language risks or unresolved questions + +## Downstream Speech Boundary + +This packet may feed pronunciation planning or AquaSynth handoff work later, but +it does not contain phoneme-parity, vocal-tract, reference-synth, or realtime +voice artifacts. diff --git a/state/map.yaml b/state/map.yaml index 09d87b8..a5d42cc 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -34,12 +34,15 @@ constraints: - The interlingua must stay language-neutral. Setting-specific pressure starts in namespaced extensions and only becomes standard when multiple clients or language projects need it. - - Flavored English is the first lowering target. Alien-language lowering waits - until Weksa can preserve meaning through a character voice humans can judge. + - Human target-language utterance lowering is the first proof layer. English, + Brazilian Portuguese (`pt-BR`), and Japanese are the initial targets. + Alien-language lowering waits until Weksa can preserve meaning through + character voice, target cultural ontology, and realization choices humans + can judge. - Agent state is projected context, not prompt prose storage. Raw state internals must not leak into generated dialogue. - AquaSynth owns IPA, phoneme, reference-synth, vocal-tract, and speech parity - work. Weksa owns interlingua-to-English projection. + work. Weksa owns interlingua-to-utterance projection. - Weksa still owns English pronunciation planning: tokenization, word pronunciations, phrase grouping, stress, and broad IPA stringing. - Long-term speech handoff should use Weksa-provided speech text embeddings, @@ -72,8 +75,10 @@ data_flow: process: - accept or decompose source into a Weksa interlingua packet - optionally project the packet through an agent-local state context - - lower projected meaning into flavored English dialogue - - optionally produce an English pronunciation plan for the lowered dialogue + - lower projected meaning into target-language utterance realizations + through explicit target-language cultural ontology profiles + - optionally produce pronunciation plans for lowered dialogue where Weksa + owns the target pronunciation layer - optionally encode the line as a learned expression vector for downstream synth control - apply alien ontology and cultural salience @@ -163,10 +168,14 @@ accepted_design: - The interlingua packet is the client-facing meaning contract. It owns referents, predications, relations, discourse, context, provenance, constraints, extensions, and trace data before ontology projection. - - English lowering through agent state is the first proof target before alien - language rendering. + - Utterance lowering through projected agent state is the first proof target + before alien language rendering. English remains one target, not the hidden + source for other target languages. - Nibu is the first target for flavored-English lowering, using her VoidBot state and Aetheria lore note as source context. + - Target-language cultural ontology profiles own address, politeness, + register, idiom, metaphor, script, and forbidden-flattening distinctions for + human-language lowering. They do not own source meaning. - Weksa is the engine. A language project owns one constructed language. Setting docs own story, species, culture, and use cases. - Rust to Dust is an earlier proving ground, not engine doctrine. @@ -264,5 +273,9 @@ landed_baseline: material belong in PanPhon sequence evidence that AquaSynth compresses into the phonetic realization embedding. - First Nibu interlingua-to-English lowering fixture. + - First Nibu multilingual utterance lowering fixture at + `examples/multilingual-lowering/nibu-proof-001/`, covering English, + Brazilian Portuguese (`pt-BR`), and Japanese from one shared interlingua + packet through explicit target-language cultural ontology profiles. - `bge-m3:latest` installed on neighboring Ollama box `192.168.1.84` and verified through a 1024-dimensional utterance embedding.