İçeriğe geç

Atıf hedefi ve reference readiness

Geliştirme · 0.0.0-dev

Yayın

Doküman
0.0.0-dev
Uygulama
0.0.0

Bu sayfa

Uygulama
0.0.0
Şema
reference-readiness-v1
Veri
tr-2026-v1

Münderecat’ta atıfın kalıcı hedefi, atıf yazıldığı anda seçilen entity_kind + entity_id çiftidir. Hedef daha sonra düzeltilse, bölünse, birleştirilse, emekliye ayrılsa veya başka bir dilde/canonical tekrarda karşılığı bulunsa bile authored hedef değiştirilmez. Güncel hedef ve alternatif görünüm, okuma anında açık bir policy ve release ile ayrıca çözümlenir.

Bu sözleşmenin makine kanıtı data/releases/id-stability-v1.json dosyasındaki reference-readiness-v1 release’idir:

Alan Değer
Durum certified_repository_evidence_bundle
Active entity kind 27
Reserved kind repeat_family
Release root f5fa61b231bdc83f37c7f9ca5cc4e12817f987503129890c78f618cfea31f799
Certificate hash 97efec920c35efa24b79cc0ba4ebfe908bfa22b6336bb43b549a2f0557716031
Kanıt ağacı 487bb3e9320ed351afbb28b193faa231e22be58d

Sertifika, kabul edilmiş repository kanıtlarını aynı sınırda bağlar. Canlı bir deployment’ı sertifikalandırmaz; full rebuild yapıldığını, private artifact’ların veya transitif Git payload’larının yeniden açıldığını iddia etmez.

Atıf hedefi olabilen 27 active kind yedi kanıt grubundadır:

Grup Kind’lar
Core work, text_version, book, chapter, paragraph, sentence_occurrence, token_form, token_occurrence
Annotation text_span, text_selection, segment, note
Heading heading
Lexical compound_entry, compound_variant, compound_occurrence, lexeme, lexeme_form, lexical_root, dictionary_entry, dictionary_sense
Osmanlıca orthographic_form, rendering_occurrence
Tekrar passage_occurrence, exact_class
Alignment alignment_unit, alignment_group

Sertifika 26 kind için exact accepted inventory count taşır. orthographic_form için relation-level distinct count bounded raporda tutulmadığından count bilinmiyor olarak kalır; bu durum kind’ın kimlik veya owner ilişkisinin eksik olduğu anlamına gelmez. repeat_family ise farklıdır: owner/publication authority henüz olmadığı için active katalogun dışında, açıkça reserved durumdadır ve hedef olarak çıkarılamaz.

Bir UUID’nin biçiminden kind tahmin edilmez. Hedef her zaman katalogdaki kind ile birlikte taşınır ve global registry’deki same-ID typed owner bridge üzerinden doğrulanır. Registry owner verisini kopyalamaz ve yeni kimlik üretmez.

Atıf okuyucusu aşağıdaki işlemleri birbirine karıştırmamalıdır:

  1. Authored target: Atıfta kalıcı olarak saklanan tarihsel kind ve UUID.
  2. Exact lookup: Aynı UUID’nin kendi kaydı, lifecycle durumu ve supersession özeti. Yönlendirme yapmaz.
  3. Current resolution: Açık resolution policy/release altında accepted supersession grafını izleyip sıfır, bir veya birden çok güncel hedef döndürür.
  4. Projection: Çözümlenmiş hedef için başka dildeki alignment unit’lerini veya aynı exact class’ın canonical passage occurrence’ını geçici görünüm olarak seçer.
authored(A) ── exact ──────────────> A
└─ current(policy R) ──> {C, D}
├─ language projection ─> {EN-7, EN-8}
└─ repeat projection ───> {P-42}

C, D, EN-7, EN-8 veya P-42, kaynak atıftaki A kimliğinin yerine yazılmaz. Sonuç; kullanılan policy, release tuple, traversal path ve cardinality ile birlikte sunulur.

Public okuma yüzeyi iki ayrı RPC kullanır:

api_v1.get_entity_exact_v1(entity_kind, entity_id, deployment_id)
api_v1.resolve_entity_current_v1(
entity_kind, entity_id, resolution_policy_id, deployment_id
)

get_entity_exact_v1, superseded veya retired hedefi de kendi tarihsel kimliğiyle döndürür. resolve_entity_current_v1, deployment’ın bağladığı identity-preserving-current-v1 policy ve immutable resolution release altında grafı izler. Sonuç durumları:

Durum Uygulama davranışı
exact Etkin outgoing olay yoktur; hedef authored entity’nin kendisidir.
current Bir canlı hedef vardır; authored ID ayrıca korunur.
ambiguous Split/restructure veya uyuşmayan yollar bir hedef kümesi üretir; tek hedef seçilmez.
retired Canlı hedef yoktur; tarihsel entity exact okumada yine erişilebilirdir.

Resolver tam supersession path’ini verir. Replacement 1 -> 1, split 1 -> n, merge n -> 1, restructure n -> m, retirement n -> 0 semantiğindedir. Eski olay silinmez; hatalı karar immutable compensation ve yeni release disposition’ı ile invalidated edilir. Ayrıntılı DB ve API davranışı için reference resolution rehberine bakın.

cross-language-target-projection-v1, authored hedefi çevirmeye veya yeni atıf üretmeye çalışmaz. Exact ya da current kaynak hedefin exact owner extent’ini, tek doğrudan ve reviewed alignment group üzerinden karşı dildeki complete hedef kümeye projekte eder.

Temel kurallar:

  • traversal yönü (source_to_target veya target_to_source) açıkça seçilir;
  • yalnız exact_unit veya sunum bağlamı olarak covering_unit kullanılabilir;
  • normalized/similar text, confidence veya unresolved candidate authority değildir;
  • split, merge ve complex alignment sonucu küme olarak korunur;
  • implicit reverse/transitive route ve scalar collapse yasaktır;
  • source_only/target_only karşı tarafta no_counterpart üretebilir;
  • mixed release tuple veya root uyuşmazlığı stale_evidence olur.

Bu policy accepted ve immutable’dır fakat runtime_status: not_deployed durumundadır. Automatic projection bu policy altında yasaktır. Manual projection davranışı tanımlıdır fakat deploy edilmemiştir; public API contract, reference graph release, deployment binding ve bağımsız semantic review olmadan kullanılamaz. Immutable policy yerinde etkinleştirilmez; aktivasyon ayrı, accepted bir release/deployment sözleşmesi gerektirir.

repeat-canonical-target-projection-v1, yalnız passage_occurrence veya exact_class kaynağını accepted exact membership ve published canonical choice üzerinden canonical passage_occurrence hedefine projekte eder.

Temel kurallar:

  • similarity score, normalized text, member order veya working head seçim authority’si değildir;
  • occurrence önce bound repetition release içindeki tek exact class üyeliğini kanıtlar;
  • canonical seçim aynı exact class ve repetition release içinde effective ve reviewed olmalıdır;
  • self-target geçerli ve açık bir sonuçtur;
  • current resolution birden çok source branch üretirse her branch çözülür; ilk hedef seçilmez;
  • bir branch çözülemezse complete destination set yayınlanmaz;
  • family, near-duplicate, variant veya quotation ilişkileri bu projection’ın route’u değildir.

Bu policy de accepted fakat runtime_status: not_deployed durumundadır. Özellikle canonical-choice publication contract henüz tamamlanmadığı için successor policy ve ayrı aktivasyon gerekir. repeat_family kimliği bu yoldan türetilemez.

Fiziksel reference-edge şeması sonraki fazın kararıdır. O şema tasarlanırken aşağıdaki semantik alanlar kaybolmamalıdır:

  1. Authored source ve target için exact entity_kind + entity_id saklayın.
  2. Hedefi yazarken current, translated veya canonical ID ile sessizce değiştirmeyin.
  3. Atıfın oluşturulduğu release/deployment bağlamını audit edilebilir tutun.
  4. Okuyucuya exact ve current modu açıkça seçtirin; current cevapta policy/release ve tam path’i koruyun.
  5. target_entity_ids değerini küme olarak ele alın; split veya restructure sonucunu ilk elemana daraltmayın.
  6. Language/repeat projection’ı ayrı, versioned bir okuma isteği yapın; projection sonucunu authored edge olarak persist etmeyin.
  7. unavailable, unselected, ambiguous, stale_evidence, forbidden_relation ve integrity_error durumlarını başarısız olmayan tek bir fallback’a çevirmeyin.
  8. Owner tablolarına doğrudan DML vermeyin; kayıt, curation ve publication işlemlerini kabul edilmiş güvenlik sınırlarından yürütün.

reference-readiness-v1 içeriği yerinde güncellenmez. Active kind, owner relation, identity authority, accepted inventory, supersession/projection policy veya lifecycle kontrolü değişirse yeni certificate release üretilir. Uygulama dokümantasyonu yeni release key ve root’a aynı değişiklikte bağlanır.

Focused doğrulama:

Terminal window
ruby scripts/releases/id_stability.rb --check
ruby scripts/api/generate_contracts.rb --check

İlk komut repository evidence certificate’ını, ikinci komut yayımlanmış API contract projection’ını kontrol eder. İkisi de canlı deployment doğrulaması değildir. Full corpus rebuild, private artifact replay veya legacy source erişimi olağan atıf ağı geliştirmesinin parçası yapılmamalıdır.