language-ontology-seed: model-drafted en-US and ja-JP seed entries; target-language YAML deleted #52
26 changed files with 116 additions and 671 deletions
|
|
@ -1,27 +0,0 @@
|
|||
# Cultural Ontology CultCache Seeds
|
||||
|
||||
This directory stores Weksa cultural ontology as CultCache `.cc` witnesses.
|
||||
|
||||
## Starter Database
|
||||
|
||||
- `starter-targets.cc`
|
||||
|
||||
This store contains one catalog entry and three draft guarded profile entries:
|
||||
|
||||
- `weksa.cultural_ontology.pt-BR.vanilla_brazilian.v0`
|
||||
- `weksa.cultural_ontology.en.transatlantic.v0`
|
||||
- `weksa.cultural_ontology.ja-JP.kanto.contemporary.v0`
|
||||
|
||||
The catalog entry is:
|
||||
|
||||
- `weksa.cultural_ontology.catalog.seed_targets.v0`
|
||||
|
||||
The `.cc` file is the typed state witness. This README is only an inspection
|
||||
guide; it does not own cultural ontology truth.
|
||||
|
||||
The profiles follow `schemas/cultural-ontology-profile.md`: salience axes and
|
||||
linguistic affordances are nested typed state with feature IDs, activation
|
||||
gates, constraints, indexicality, evidence, uncertainty, and trace labels.
|
||||
|
||||
Qdrant retrieval may later propose evidence bundles for these profiles. It does
|
||||
not own accepted profile state.
|
||||
Binary file not shown.
13
README.md
13
README.md
|
|
@ -5,7 +5,7 @@ culture, and constraint, and the planned lowerer that turns an agent's
|
|||
meaning packet into the reader's display language.
|
||||
|
||||
**What is valuable here.** The interlingua standard and the lowering design: a
|
||||
meaning packet owns what is meant, a target-language profile owns register,
|
||||
meaning packet owns what is meant, speaker and scene state (planned; not yet live) own register,
|
||||
address and politeness, and a lowerer owns surface text and leaves a trace.
|
||||
|
||||
**The problem it solves.** An agent's outward speech today is one English
|
||||
|
|
@ -28,7 +28,7 @@ measured.
|
|||
- [Lowering target](./docs/targets/interlingua-lowering.md) and
|
||||
[its map](./docs/targets/interlingua-lowering-map.md): the design, scoring
|
||||
and cut sequence.
|
||||
- `data/`: the cultural ontology and target-language profile data.
|
||||
- `data/`: the committed stores (corpora, entities, inventory, language ontology) and research data; there are no target-language profiles.
|
||||
- `settings/`: setting-specific proving grounds for language projects.
|
||||
|
||||
**Live versus planned.** Live: docs, fixtures, examples, ontology data and the
|
||||
|
|
@ -82,9 +82,12 @@ 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.
|
||||
The language ontology is `data/ontology/ontology.cc` (read it with
|
||||
`weksa ontology dump`): per language, the lexicon, grammar and discourse choices a lowerer
|
||||
reads for a stance and discourse packet. No entry fixes an address or politeness level; those
|
||||
belong to the speaker and scene state. Its en-US and ja-JP entries are
|
||||
model-drafted seeds, never Test evidence. Nothing yet grows them from accepted
|
||||
rounds; until that mint exists they change only by a new `weksa ontology admit`.
|
||||
|
||||
For the first AquaSynth speech-training handoff, see
|
||||
[Tiny PanPhon v0.1 Speech Curriculum](./examples/speech-training/tiny-panphon-v0.1/README.md).
|
||||
|
|
|
|||
|
|
@ -251,6 +251,73 @@ fn the_original_inventory_is_the_dao_revision_three() {
|
|||
assert!(InventoryStore::open(©).is_ok());
|
||||
}
|
||||
|
||||
/// The committed seed ontology: every entry model-drafted, exactly the two
|
||||
/// panel languages, each with a Stance-conditioned entry, and every committed
|
||||
/// corpus opens a run over it (ruling `ja-ontology-owner-answer`: a model-drafted
|
||||
/// entry is labelled so and is never Test evidence).
|
||||
#[test]
|
||||
fn committed_ontology_is_model_drafted_and_reads_every_inventory() {
|
||||
use weksa::OntologyStore;
|
||||
use weksa::ontology::Condition;
|
||||
use weksa::run::{LowererReach, RunPaths, RunStores};
|
||||
use weksa::speaker::Annotator;
|
||||
let data = Path::new(env!("CARGO_MANIFEST_DIR")).join("../../data");
|
||||
let tmp = tempfile::tempdir().unwrap();
|
||||
let onto = tmp.path().join("ontology.cc");
|
||||
std::fs::copy(data.join("ontology/ontology.cc"), &onto).unwrap();
|
||||
let entries = OntologyStore::open(&onto).unwrap().all().unwrap();
|
||||
for e in &entries {
|
||||
match &e.annotator {
|
||||
Annotator::Model { family, generator } => {
|
||||
assert_eq!(*family, ModelFamily::Anthropic, "{}", e.key());
|
||||
assert_eq!(
|
||||
generator, "claude-sonnet-5-5 (Weksa Hands, model-drafted seed ontology)",
|
||||
"{}",
|
||||
e.key()
|
||||
);
|
||||
}
|
||||
other => panic!("{} is {other:?}", e.key()),
|
||||
}
|
||||
}
|
||||
let mut langs: Vec<&str> = entries.iter().map(|e| e.language.as_str()).collect();
|
||||
langs.sort();
|
||||
langs.dedup();
|
||||
assert_eq!(langs, PANEL);
|
||||
for lang in PANEL {
|
||||
let stance = |c: &Condition| c.slot == weksa::inventory::Slot::Stance;
|
||||
assert!(
|
||||
entries
|
||||
.iter()
|
||||
.any(|e| e.language == lang && e.when.iter().any(stance)),
|
||||
"{lang} has no Stance-conditioned entry"
|
||||
);
|
||||
}
|
||||
for (corpus, panel) in [("original", &PANEL[..]), ("daodejing", &PANEL[..1])] {
|
||||
let dir = data.join(corpus);
|
||||
let copy = |f: &str| {
|
||||
std::fs::copy(dir.join(f), tmp.path().join(format!("{corpus}-{f}"))).unwrap();
|
||||
tmp.path().join(format!("{corpus}-{f}"))
|
||||
};
|
||||
let (c, i, e) = (copy("corpus.cc"), copy("inventory.cc"), copy("entity.cc"));
|
||||
RunStores::create(
|
||||
&tmp.path().join(format!("run-{corpus}")),
|
||||
corpus,
|
||||
RunPaths {
|
||||
corpus: &c,
|
||||
inventory: &i,
|
||||
entities: &e,
|
||||
ontology: &onto,
|
||||
},
|
||||
"m",
|
||||
"bag",
|
||||
LowererReach::BriefedSubagent,
|
||||
ModelFamily::Unrecorded,
|
||||
&panel.iter().map(|l| l.to_string()).collect::<Vec<_>>(),
|
||||
)
|
||||
.unwrap_or_else(|e| panic!("{corpus}: {e:?}"));
|
||||
}
|
||||
}
|
||||
|
||||
/// The probe over the real original corpus: every item is offered, none names a
|
||||
/// work, and a model that answers with unrelated words reads at the noise floor.
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ fn chrf_matches_sacrebleu_vectors() {
|
|||
|
||||
#[test]
|
||||
fn chrf_argument_order() {
|
||||
let short = "mind the hatch";
|
||||
let long = "mind the hatch before the storm arrives tonight";
|
||||
let short = "shut the gate";
|
||||
let long = "shut the gate before the storm arrives tonight";
|
||||
let (as_hypothesis, as_reference) = (chrf(short, long), chrf(long, short));
|
||||
assert!(
|
||||
as_hypothesis < as_reference - 1.0,
|
||||
|
|
@ -104,8 +104,8 @@ fn chrf_whitespace_parity() {
|
|||
|
||||
#[test]
|
||||
fn scorer_argument_order() {
|
||||
let short = "mind the hatch";
|
||||
let long = "mind the hatch before the storm arrives tonight";
|
||||
let short = "shut the gate";
|
||||
let long = "shut the gate before the storm arrives tonight";
|
||||
let scorer = Scorer::new(Bag);
|
||||
let got = score_one(&scorer, long, short);
|
||||
assert_eq!(got.chrf, chrf(short, long));
|
||||
|
|
@ -156,7 +156,7 @@ impl Embedder for Fixed {
|
|||
fn scorer_refuses_bad_vectors() {
|
||||
let run = |vectors: Vec<Vec<f32>>| {
|
||||
Scorer::new(Fixed(vectors)).score(&[ScoreInput {
|
||||
reference: "mind the hatch",
|
||||
reference: "shut the gate",
|
||||
output: "mind the door",
|
||||
}])
|
||||
};
|
||||
|
|
@ -671,16 +671,16 @@ fn every_script_scores_a_near_miss_as_sacrebleu_does() {
|
|||
#[test]
|
||||
fn coverage_splits_at_any_non_word_character() {
|
||||
let items = [
|
||||
validation("item:v:1", "mind the hatch before the storm"),
|
||||
validation("item:v:1", "shut the gate before the storm"),
|
||||
train("item:t:1", UNRELATED),
|
||||
];
|
||||
let want = read(&["mind the hatch"], &items);
|
||||
let want = read(&["shut the gate"], &items);
|
||||
assert_eq!(want, [(5, 3), (5, 2), (4, 1)]);
|
||||
for joiner in [
|
||||
":", "\u{b7}", "'", "\u{2019}", "\u{ff3f}", "-", "/", "\u{2014}", "|", "+", "\u{ff1a}",
|
||||
"\u{30fb}",
|
||||
] {
|
||||
let glued = format!("mind{joiner}the{joiner}hatch");
|
||||
let glued = format!("shut{joiner}the{joiner}gate");
|
||||
assert_eq!(read(&[&glued], &items), want, "{joiner:?}");
|
||||
}
|
||||
// a mark, a joiner or a digit is part of its word, not a break
|
||||
|
|
|
|||
BIN
data/ontology/ontology.cc
Normal file
BIN
data/ontology/ontology.cc
Normal file
Binary file not shown.
|
|
@ -1,39 +0,0 @@
|
|||
# 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.
|
||||
|
|
@ -1,135 +0,0 @@
|
|||
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?
|
||||
linguistic_affordances:
|
||||
grammar_features:
|
||||
- feature_id: en_us_direct_imperative_warning
|
||||
label: Direct imperative warning
|
||||
status: draft
|
||||
domain:
|
||||
layer: grammar
|
||||
category: clause_mood
|
||||
subcategory: imperative
|
||||
description: >
|
||||
Broad en-US allows direct imperatives for urgent safety warnings when
|
||||
the speaker has standing to intervene and the scene rewards clarity
|
||||
over mitigation.
|
||||
formal_conditions:
|
||||
syntactic_environment:
|
||||
- main_clause
|
||||
- direct_address_optional
|
||||
semantic_inputs:
|
||||
- warning
|
||||
- addressee_action_to_stop_or_avoid
|
||||
- consequence_or_risk_available
|
||||
required_interlingua_fields:
|
||||
- speech_act
|
||||
- addressee
|
||||
- prohibited_action
|
||||
realization:
|
||||
function: stop_or_prevent_action
|
||||
surface_strategy: bare_imperative_or_do_not_imperative
|
||||
examples:
|
||||
- "Don't touch the damaged control."
|
||||
activation:
|
||||
allowed_when:
|
||||
- scene_has_immediate_risk
|
||||
- speaker_has_contextual_authority_or_care_relation
|
||||
forbidden_when:
|
||||
- politeness_softening_is_required_by_target_profile
|
||||
- imperative_would_falsely_imply_hierarchy
|
||||
requires_profile_authority: false
|
||||
minimum_density: light
|
||||
maximum_density: normal
|
||||
constraints:
|
||||
grammar_contexts:
|
||||
- avoid_if_source_requires_indirect_request
|
||||
register_contexts:
|
||||
- casual
|
||||
- technical
|
||||
- emergency
|
||||
speaker_contexts:
|
||||
- known_addressee
|
||||
- operator_warning
|
||||
incompatibilities:
|
||||
- generic_assistant_over_politeness
|
||||
indexicality:
|
||||
social_meanings:
|
||||
- urgency
|
||||
- clarity
|
||||
- responsibility
|
||||
in_group_meanings: []
|
||||
out_group_risks:
|
||||
- may sound abrupt if the scene is not urgent
|
||||
stereotypes_to_avoid: []
|
||||
evidence:
|
||||
source_refs:
|
||||
- schemas/cultural-ontology-profile.md
|
||||
qdrant_source_ids: []
|
||||
cached_source_refs: []
|
||||
source_hashes: []
|
||||
reviewer_refs: []
|
||||
confidence: medium
|
||||
uncertainty:
|
||||
open_questions:
|
||||
- Should a later en-US regional overlay override imperative force?
|
||||
known_limits:
|
||||
- Base en-US does not model regional, racialized, or contact-language
|
||||
dialect grammar.
|
||||
trace:
|
||||
trace_label: direct_imperative_warning
|
||||
must_report_when_used: true
|
||||
must_report_when_rejected: true
|
||||
phonology_features: []
|
||||
lexicon_features: []
|
||||
discourse_patterns: []
|
||||
orthography_features: []
|
||||
code_switching:
|
||||
allowed: false
|
||||
constraints:
|
||||
- Base en-US profile does not authorize contact-language switching.
|
||||
patterns: []
|
||||
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.
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
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.
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
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.
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
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.
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
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
|
||||
|
|
@ -369,6 +369,12 @@ target. A Qdrant nearest neighbor is a witness candidate, not a cultural fact.
|
|||
|
||||
\section{Proposed CultCache State Shape}
|
||||
|
||||
No profile store exists. The per-language lowering choices live in
|
||||
\texttt{data/ontology/ontology.cc}; the typed profiles once stored under
|
||||
\texttt{.weksa/cultural-ontology/} and the \texttt{weksa.target\_cultural\_ontology.*}
|
||||
base profiles named in the listing and sketches below are deleted. Community and dialect
|
||||
profiles belong to follow-up \texttt{language-ontology-communities}.
|
||||
|
||||
The following shape should become a typed CultCache document family:
|
||||
\texttt{weksa.cultural\_ontology\_profile.v0}. It can represent base languages,
|
||||
dialects, sociolects, regional overlays, ritual registers, and communities of
|
||||
|
|
@ -612,15 +618,6 @@ feature requires speaker authority, whether it can be rendered in text or only
|
|||
speech synthesis, which source hashes support it, and what must be reported if
|
||||
the feature is rejected.
|
||||
|
||||
Recommended CultCache paths:
|
||||
|
||||
\begin{lstlisting}[basicstyle=\ttfamily\small]
|
||||
.weksa/cultural-ontology/{profileId}.cc
|
||||
.weksa/cultural-ontology/{baseProfileId}/overlays/{overlayId}.cc
|
||||
.weksa/cultural-ontology/catalogs/{catalogId}.cc
|
||||
.weksa/cultural-ontology/evidence-bundles/{bundleId}.cc
|
||||
\end{lstlisting}
|
||||
|
||||
\section{Dialect Profile Sketches}
|
||||
|
||||
\subsection{AAVE/AAL}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ The utterance lowerer does not own:
|
|||
- rendered audio
|
||||
- phoneme parity or synth-control truth
|
||||
|
||||
The target-language cultural ontology profile owns:
|
||||
The target-language cultural ontology profile was drafted to own the following; no such profile store exists now (address, politeness and register belong to speaker and scene state, and `data/ontology/ontology.cc` holds per-language lexicon, grammar and discourse choices):
|
||||
|
||||
- address, politeness, register, and social stance distinctions
|
||||
- idiom and metaphor risks
|
||||
|
|
@ -76,8 +76,8 @@ 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`.
|
||||
The en-US choices are the `en-US` entries of `data/ontology/ontology.cc`
|
||||
(model-drafted seeds; read with `weksa ontology dump`).
|
||||
|
||||
### Brazilian Portuguese
|
||||
|
||||
|
|
@ -94,16 +94,10 @@ The target lowerer should record:
|
|||
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.
|
||||
No pt-BR ontology entry exists yet; the cut that adds pt-BR writes them to
|
||||
`data/ontology/ontology.cc`. Umbanda-related scenes, speakers, ritual contexts,
|
||||
or referents may later earn a regional or cultural variant, which must not
|
||||
activate for generic Brazilian flavor.
|
||||
|
||||
### Japanese
|
||||
|
||||
|
|
@ -119,8 +113,8 @@ The target lowerer should record:
|
|||
- 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`.
|
||||
The ja-JP choices are the `ja-JP` entries of `data/ontology/ontology.cc`
|
||||
(model-drafted seeds; read with `weksa ontology dump`).
|
||||
|
||||
## Packet Shape
|
||||
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ ground truth is Discord text, which can never feed this loop
|
|||
|
||||
An agent's outward speech today is English text the model chose, so meaning,
|
||||
register and voice are fused in one string nobody can inspect or re-target.
|
||||
Weksa's design already separates them: the packet owns meaning, the target
|
||||
profile owns address, politeness and forbidden flattenings, the lowerer owns
|
||||
Weksa's design already separates them: the packet owns meaning, speaker and scene state own address and politeness
|
||||
(the language ontology holds only per-language lexicon, grammar and discourse choices), the lowerer owns
|
||||
surface text and a trace. The campaign makes that design real for a live
|
||||
reader, and gives Weksa's Persona a working body when her mind
|
||||
(`eureka-body:follow_up:weksa-mind`) wakes.
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
# CultCache Lowering Examples
|
||||
|
||||
These examples lower interlingua packets through CultCache cultural ontology
|
||||
profiles rather than the older YAML-only target-language profiles.
|
||||
|
||||
The starter database is:
|
||||
|
||||
- `.weksa/cultural-ontology/starter-targets.cc`
|
||||
These examples lower interlingua packets for separate target languages. The
|
||||
language ontology that owns en-US and ja-JP choices is `data/ontology/ontology.cc`
|
||||
(`weksa ontology dump`); its entries are model-drafted seeds.
|
||||
|
||||
Each target file is produced as a separate agent run so differences in target
|
||||
ontology remain inspectable instead of being smoothed into one multilingual
|
||||
|
|
|
|||
|
|
@ -8,10 +8,6 @@ Prompt:
|
|||
|
||||
- `prompts/nibu-cultcache-target-lowering.md`
|
||||
|
||||
CultCache profile store:
|
||||
|
||||
- `.weksa/cultural-ontology/starter-targets.cc`
|
||||
|
||||
Expected target outputs:
|
||||
|
||||
- `pt-BR-vanilla-brazilian.yaml`
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
schema_version: weksa.utterance_lowering.agent_run.v0
|
||||
source_packet_id: nibu-proof-001
|
||||
source_packet_ref: examples/english-lowering/nibu-proof-001/interlingua.yaml
|
||||
target_profile_ref: .weksa/cultural-ontology/starter-targets.cc
|
||||
target_profile_id: weksa.cultural_ontology.en.transatlantic.v0
|
||||
target_agent_id: nibu
|
||||
realization:
|
||||
|
|
@ -11,8 +10,6 @@ realization:
|
|||
locale: en-001
|
||||
script: Latn
|
||||
register: cultivated transatlantic English; cross-Atlantic intelligibility; measured technical warning
|
||||
cultural_ontology_refs:
|
||||
- .weksa/cultural-ontology/starter-targets.cc
|
||||
cultural_ontology_profile_ids:
|
||||
- weksa.cultural_ontology.en.transatlantic.v0
|
||||
outputs:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
schema_version: weksa.utterance_lowering.agent_run.v0
|
||||
source_packet_id: nibu-proof-001
|
||||
source_packet_ref: examples/english-lowering/nibu-proof-001/interlingua.yaml
|
||||
target_profile_ref: .weksa/cultural-ontology/starter-targets.cc
|
||||
target_profile_id: weksa.cultural_ontology.ja-JP.kanto.contemporary.v0
|
||||
target_agent_id: nibu
|
||||
realization:
|
||||
|
|
@ -11,8 +10,6 @@ realization:
|
|||
locale: ja-JP
|
||||
script: Jpan
|
||||
register: contemporary Kanto metropolitan clipped hazard warning
|
||||
cultural_ontology_refs:
|
||||
- .weksa/cultural-ontology/starter-targets.cc
|
||||
cultural_ontology_profile_ids:
|
||||
- weksa.cultural_ontology.ja-JP.kanto.contemporary.v0
|
||||
outputs:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
schema_version: weksa.utterance_lowering.agent_run.v0
|
||||
source_packet_id: nibu-proof-001
|
||||
source_packet_ref: examples/english-lowering/nibu-proof-001/interlingua.yaml
|
||||
target_profile_ref: .weksa/cultural-ontology/starter-targets.cc
|
||||
target_profile_id: weksa.cultural_ontology.pt-BR.vanilla_brazilian.v0
|
||||
target_agent_id: nibu
|
||||
realization:
|
||||
|
|
@ -11,8 +10,6 @@ realization:
|
|||
locale: pt-BR
|
||||
script: Latn
|
||||
register: casual_clear
|
||||
cultural_ontology_refs:
|
||||
- .weksa/cultural-ontology/starter-targets.cc
|
||||
cultural_ontology_profile_ids:
|
||||
- weksa.cultural_ontology.pt-BR.vanilla_brazilian.v0
|
||||
outputs:
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ realizations:
|
|||
script: Latn
|
||||
register: sharp technical casual
|
||||
cultural_ontology_refs:
|
||||
- data/target-language-ontology/en-US.yaml
|
||||
- data/ontology/ontology.cc
|
||||
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."
|
||||
|
|
@ -52,8 +52,6 @@ realizations:
|
|||
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."
|
||||
|
|
@ -90,7 +88,7 @@ realizations:
|
|||
script: Jpan
|
||||
register: sharp technical plain
|
||||
cultural_ontology_refs:
|
||||
- data/target-language-ontology/ja-JP.yaml
|
||||
- data/ontology/ontology.cc
|
||||
outputs:
|
||||
visible_action: 損傷した制御盤の周囲で、操縦室の灯りが琥珀色から外科灯のような白へ切り替わる。
|
||||
spoken_text: "その制御盤から手を離して。神経系を、私のいちばん役に立たない回路図にしたくないなら。"
|
||||
|
|
|
|||
|
|
@ -10,8 +10,6 @@ You are reviewing one target lowering produced from the Nibu interlingua packet.
|
|||
`examples/english-lowering/nibu-proof-001/projected-context.yaml`
|
||||
- Lowering prompt:
|
||||
`prompts/nibu-cultcache-target-lowering.md`
|
||||
- CultCache profile store:
|
||||
`.weksa/cultural-ontology/starter-targets.cc`
|
||||
|
||||
The source meaning is:
|
||||
|
||||
|
|
|
|||
|
|
@ -24,20 +24,10 @@ text. Lower from the interlingua packet and projected context.
|
|||
|
||||
## Cultural Ontology Authority
|
||||
|
||||
Use the CultCache store:
|
||||
|
||||
- `.weksa/cultural-ontology/starter-targets.cc`
|
||||
|
||||
It contains:
|
||||
|
||||
- `weksa.cultural_ontology.pt-BR.vanilla_brazilian.v0`
|
||||
- `weksa.cultural_ontology.en.transatlantic.v0`
|
||||
- `weksa.cultural_ontology.ja-JP.kanto.contemporary.v0`
|
||||
|
||||
Qdrant-style retrieval and old YAML profiles may be useful context, but the
|
||||
CultCache profile named in your task is the target authority. Treat the target
|
||||
profile as draft guarded typed state: preserve its activation gates, forbidden
|
||||
flattenings, and nested linguistic affordance feature IDs in your trace.
|
||||
The language ontology is `data/ontology/ontology.cc` (`weksa ontology dump`).
|
||||
It holds model-drafted seed entries for en-US and ja-JP only; there is no
|
||||
pt-BR entry yet. Treat an entry as a draft: say in your trace which entries you
|
||||
used, and when no entry covers the target, say so rather than inventing one.
|
||||
|
||||
## Output Contract
|
||||
|
||||
|
|
@ -50,8 +40,6 @@ The file must use this shape:
|
|||
schema_version: weksa.utterance_lowering.agent_run.v0
|
||||
source_packet_id: nibu-proof-001
|
||||
source_packet_ref: examples/english-lowering/nibu-proof-001/interlingua.yaml
|
||||
target_profile_ref: .weksa/cultural-ontology/starter-targets.cc
|
||||
target_profile_id:
|
||||
target_agent_id: nibu
|
||||
realization:
|
||||
realization_id:
|
||||
|
|
@ -60,10 +48,6 @@ realization:
|
|||
locale:
|
||||
script:
|
||||
register:
|
||||
cultural_ontology_refs:
|
||||
- .weksa/cultural-ontology/starter-targets.cc
|
||||
cultural_ontology_profile_ids:
|
||||
-
|
||||
outputs:
|
||||
visible_action:
|
||||
spoken_text:
|
||||
|
|
|
|||
|
|
@ -23,9 +23,6 @@ them.
|
|||
- [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.
|
||||
- [cultural-ontology-profile.md](./cultural-ontology-profile.md): nested
|
||||
CultCache profile contract for cultural ontology, including typed salience
|
||||
axes, linguistic affordance feature records, evidence, activation gates, and
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ This is the human-facing schema receipt for
|
|||
reviewed cultural ontology used during utterance lowering.
|
||||
|
||||
Executable schema code does not exist yet. When it does, it must reconcile with
|
||||
this receipt, the meta-analysis paper, and the profiles under
|
||||
`data/target-language-ontology/`.
|
||||
this receipt, the meta-analysis paper, and the language ontology in
|
||||
`data/ontology/ontology.cc`.
|
||||
|
||||
## Authority
|
||||
|
||||
|
|
@ -265,14 +265,11 @@ cultural_ontology_trace:
|
|||
|
||||
## Storage
|
||||
|
||||
Recommended CultCache paths:
|
||||
|
||||
```text
|
||||
.weksa/cultural-ontology/{profileId}.cc
|
||||
.weksa/cultural-ontology/{baseProfileId}/overlays/{overlayId}.cc
|
||||
.weksa/cultural-ontology/catalogs/{catalogId}.cc
|
||||
.weksa/cultural-ontology/evidence-bundles/{bundleId}.cc
|
||||
```
|
||||
No profile store exists. The per-language lowering choices live in
|
||||
`data/ontology/ontology.cc` (`weksa ontology dump`); the typed profiles that
|
||||
once sat under `.weksa/cultural-ontology/`, and the `weksa.target_cultural_ontology.*`
|
||||
base profiles are deleted. Community and dialect
|
||||
profiles are owned by follow-up `language-ontology-communities`.
|
||||
|
||||
Qdrant may store chunks, vectors, and payload filters for retrieval. It does
|
||||
not own profile acceptance, feature activation, or renderer authority.
|
||||
|
|
|
|||
|
|
@ -1,81 +0,0 @@
|
|||
# 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.
|
||||
- `linguistic_affordances`: optional nested typed feature records, following
|
||||
`cultural-ontology-profile.md`, when the profile owns dialect, register,
|
||||
phonological, lexical, discourse, orthographic, or code-switching pressure.
|
||||
- `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.
|
||||
|
||||
For dialectal, regional, historical, ritual, and contact-language profiles, use
|
||||
the nested `weksa.cultural_ontology_profile.v0` contract in
|
||||
`cultural-ontology-profile.md`. Flat string lists are only summaries; typed
|
||||
feature records own accepted affordance detail.
|
||||
Loading…
Reference in a new issue