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.
İlişki zinciri
Bölüm başlığı “İlişki zinciri”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 rolleri
Bölüm başlığı “Entity rolleri”| 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_iddoludur, bodytoken_forms.exact_bodyüzerinden gelir.literal:literal_textdoludur; 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.
Immutable sınır
Bölüm başlığı “Immutable sınır”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.
Sample doğrulama
Bölüm başlığı “Sample doğrulama”Statik schema sözleşmesini ve committed Birinci Söz source sınırlarını doğrulayın:
make core-schema-checkmake corpus-sample-checkSchema 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.