İçeriğe geç

Core veri modeli

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
f3-008
Veri
munderecat-corpus-bundle/v1

Core veri modeli, tek bir kabul edilmiş metin sürümünü annotation tablolarına başvurmadan kaynak sırasıyla ve birebir yeniden kurmak için gereken en küçük fact setidir. Metin, sınır ve sıra core’dur; terkip, lügat, Osmanlıca rendering, başlık, haşiye, tekrar ve çeviri alignment’ı annotation katmanındadır.

Normatif sınır ve gerekçeler ADR-001, fiziksel tablo sözleşmesi ise db/supabase/migrations/20260819080000_f3_008_core_baseline.sql dosyasındadır. Kolon, constraint ve index ayrıntıları migration’ın doğrulanmış canlı pg_catalog görünümünden üretilen core şema kataloğunda yer alır; bu sayfa o katalogun elle tutulan bir kopyası değildir.

flowchart LR
  accTitle: Canonical core ilişki zinciri
  accDescr: Core release text version üyeliğine, text version da sıralı kitap, bölüm, paragraf, cümle ve token occurrence hiyerarşisine bağlanır; token form exact gövdeyi paylaşır.
  release[core_releases] --> membership[release_text_versions]
  membership --> version[text_versions]
  work[works] --> version
  profile[tokenization_profiles] --> version
  version --> book[books]
  book --> chapter[chapters]
  chapter --> paragraph[paragraphs]
  paragraph --> sentence[sentences]
  sentence --> occurrence[token_occurrences]
  form[token_forms] --> occurrence

position ve stream_position değerleri sıfır tabanlı kaynak sırasıdır. Unique parent-position constraint’leri aynı parent altında iki child’ın aynı konumu almasını engeller. Importer ayrıca sibling konumlarının kesintisiz olduğunu ve her child’ın aynı text_version_id lineage’ında kaldığını doğrular.

Entity Sahip olduğu fact
core_releases Core root, identity release key ve reconstruction profile binding’i
works Dil veya edition snapshot’ından bağımsız mantıksal eser kimliği
text_versions Bir eserin exact dil/edition snapshot’ı, tokenization contract’ı ve content root’u
release_text_versions Bir core release içindeki sıralı text version üyeliği
books, chapters, paragraphs, sentences Parent’a bağlı immutable occurrence ve kaynak sırası
token_forms Bir text version içindeki exact, boş olmayan ve normalize edilmemiş body değeri
token_occurrences Bir cümledeki exact body kanalı, pozisyon ve kendisinden sonraki residual metin

token_form değer kimliğidir; token_occurrence konum kimliğidir. Aynı exact form aynı text version içinde paylaşılabilir, fakat her görünümün occurrence ID’si ayrıdır. Başka bir text version’daki aynı body ayrı form kimliğidir.

Bir occurrence iki exact body kanalından yalnız birini kullanır:

  • form: token_form_id doludur, body token_forms.exact_body üzerinden gelir.
  • literal: literal_text doludur; paylaşılan form üretmeyen exact parça olduğu gibi korunur.

Her iki türde de trailing_text zorunludur. Bu alan token body’den sonraki boşluk, noktalama ve diğer exact karakterleri bir sonraki body’ye kadar sahiplenir. Package içinde token_forms stream’i yoktur; importer bunu occurrence’lardaki exact body’lerden token-form-projection-v1 sözleşmesiyle deterministik kurar ve bijection/root değerini manifest’e karşı doğrular.

Core UUID’leri UUIDv5 domain’iyle, digest’ler küçük harfli SHA-256 domain’iyle, pozisyonlar da JSON güvenli tamsayı aralığıyla sınırlandırılır. Parent foreign key’leri on delete restrict kullanır. Kabul edilmiş core satırlarının update, delete, reparent veya renumber edilmesi bir düzeltme yolu değildir; gerçek kaynak düzeltmesi yeni core release üretir.

Uygulama ve curation rolleri core’a yazamaz. Baseline tablolarını NOLOGIN munderecat_core_owner rolü sahiplenir; okuma legacy_reader ve auditor rollerine verilir. Yayınlama ve mutation guard akışı ayrı migration’larda daha da daraltılır.

Statik schema sözleşmesini ve committed Birinci Söz source sınırlarını doğrulayın:

Terminal window
make core-schema-check
make corpus-sample-check

Schema testinin başarısız olması migration ile config/core-schema.yml beklentisinin ayrıştığını; corpus sample testinin başarısız olması ise kaynak boundary fixture’ının değiştiğini gösterir. Bu durumda core satırlarını elle düzeltmeyin. Full corpus importu bu geliştirici smoke akışının parçası değildir.