Annotation ER Model
Geliştirme · 0.0.0-dev
Yayın
- Doküman
- 0.0.0-dev
- Uygulama
- 0.0.0
Bu sayfa
- Uygulama
- 0.0.0
Bu belge Münderecat annotation katmanının mantıksal entity, ilişki ve yayın sözleşmesini tanımlar. Fiziksel SQL adlarını kilitlemez; F4-F7 migration’ları buradaki authority ayrımlarını, typed endpoint’leri ve kardinaliteleri korumak zorundadır.
Modelin core anchor’ları ER-001, sınırı ADR-001, kimlik yaşam döngüsü ADR-002, koordinatları ADR-005, provenance’ı ADR-006 ve curation protokolü ADR-007 tarafından belirlenir. Alignment ve repetition alt modelleri sırasıyla ADR-008 ve ADR-009’u uygular.
Katmanlar
Bölüm başlığı “Katmanlar”Annotation sistemi beş ayrı authority sınıfını birlikte kullanır, fakat birbirine dönüştürmez:
| Sınıf | Sorduğu soru | Örnek |
|---|---|---|
| Shared anchor | Neresi seçildi? | TEXT_SPAN, TEXT_SELECTION |
| Domain authority | Corpus’tan bağımsız kavram nedir? | lexeme, compound entry, Ottoman form |
| Occurrence assertion | Bu kavram nerede ve nasıl uygulanıyor? | compound occurrence, heading, rendering |
| Control authority | Kim, hangi kanıtla, hangi kararı yayımladı? | provenance, curation transaction, release |
| Projection/cache | Okuma ve arama için ne hesaplandı? | span members, effective hover projection |
Core yalnız ilk immutable release/occurrence kimliklerini sağlar. Oklar annotation’dan core’a doğrudur; core reconstruction annotation’a, provenance’a veya cache’e dönük FK ya da join kullanmaz.
Anchor ve yayın omurgası
Bölüm başlığı “Anchor ve yayın omurgası”erDiagram
accTitle: Annotation anchor ve yayın omurgası
accDescr: Exact core cümlesine bağlı spanlar sıralı selectionlar oluşturur. Typed domain release kayıtları, curation release ve provenance manifest bir annotation release içinde atomik olarak bağlanır.
CORE_RELEASE ||--o{ TEXT_SPAN : anchors
CORE_RELEASE ||--o{ TEXT_SELECTION : binds
SENTENCE ||--o{ TEXT_SPAN : contains
TEXT_SPAN ||--o{ TEXT_SELECTION_MEMBER : selected_as
TEXT_SELECTION ||--|{ TEXT_SELECTION_MEMBER : orders
ANNOTATION_RELEASE }o--|| CORE_RELEASE_BINDING : proves_core
CORE_RELEASE ||--o{ CORE_RELEASE_BINDING : is_bound_by
ANNOTATION_RELEASE }o--o| STRUCTURAL_RELEASE : includes
ANNOTATION_RELEASE }o--o| LEXICAL_RELEASE : includes
ANNOTATION_RELEASE }o--o| OTTOMAN_RELEASE : includes
ANNOTATION_RELEASE }o--o| REPETITION_RELEASE : includes
ANNOTATION_RELEASE }o--o| ALIGNMENT_RELEASE : includes
ANNOTATION_RELEASE }o--|| CURATION_RELEASE : applies
ANNOTATION_RELEASE }o--|| PROVENANCE_MANIFEST : proves
CURATION_RELEASE ||--o{ CURATION_RELEASE_TRANSACTION : orders
CURATION_TRANSACTION ||--o{ CURATION_RELEASE_TRANSACTION : published_in
CURATION_PROPOSAL ||--|{ CURATION_ACTION : freezes
CURATION_PROPOSAL ||--o{ CURATION_REVIEW : reviewed_by
CURATION_PROPOSAL ||--o| CURATION_DECISION : decides
CURATION_DECISION ||--o| CURATION_TRANSACTION : applies
TEXT_SPAN {
uuid id PK
uuid coordinate_profile_id
uuid core_release_id FK
uuid sentence_id FK
integer start_scalar
integer end_scalar
text alignment_class
sha256 excerpt_sha256
}
TEXT_SELECTION {
uuid id PK
uuid coordinate_profile_id
uuid core_release_id FK
uuid text_version_id FK
sha256 member_root_sha256 UK
}
TEXT_SELECTION_MEMBER {
uuid selection_id PK, FK
uuid span_id PK, FK
integer position UK
}
ANNOTATION_RELEASE {
uuid id PK
uuid parent_release_id FK
sha256 component_root_sha256
sha256 effective_state_root_sha256
}
CORE_RELEASE_BINDING {
uuid annotation_release_id PK, FK
uuid core_release_id PK, FK
sha256 core_root_sha256
}
CURATION_RELEASE {
uuid id PK
uuid parent_release_id FK
sha256 transaction_root_sha256
sha256 effective_state_root_sha256
}
CURATION_RELEASE_TRANSACTION {
uuid curation_release_id PK, FK
uuid transaction_id PK, FK
integer position UK
}
CURATION_PROPOSAL {
uuid id PK
integer revision
sha256 payload_sha256
sha256 expected_state_root_sha256
}
CURATION_ACTION {
uuid proposal_id PK, FK
integer position PK
text domain_kind
text action_kind
sha256 typed_payload_sha256
}
CURATION_REVIEW {
uuid id PK
uuid proposal_id FK
integer proposal_revision
sha256 proposal_payload_sha256
}
CURATION_DECISION {
uuid id PK
uuid proposal_id FK
sha256 quorum_root_sha256
}
CURATION_TRANSACTION {
uuid id PK
uuid decision_id FK
sha256 result_root_sha256
}
CORE_RELEASE, SENTENCE ve TEXT_VERSION dış core entity’leridir. Diyagramda
görünmeleri annotation’ın bu satırları sahiplenmesi anlamına gelmez.
TEXT_SPAN, tek bir exact reconstructed sentence içindeki immutable
[start_scalar, end_scalar) aralığıdır. Semantic type taşımaz. Aynı canonical
koordinat tek anchor ID’yi reuse eder. TEXT_SELECTION bir veya daha fazla
span’ı aynı coordinate profile, core release ve text version içinde source-order
ile birleştirir. Üyeler non-overlapping, non-duplicated ve 0..n-1
pozisyonludur; touching same-sentence span’lar issuance öncesinde coalesce edilir.
Derived occurrence/token member tabloları cache’tir ve independent ID taşımaz.
Bir ANNOTATION_RELEASE, domain release’leri sahiplenmez; exact ID ve root’larını
bir publication envelope içinde seçer. Her kullanılan core release için
CORE_RELEASE_BINDING exact core_root_sha256 taşır. Tek-domain yayınlarda
ilgisiz component boş olabilir; bildirilen bir component’in ID/root’u eksik
olamaz. Component roots, ordered curation transaction chain ve provenance closure
aynı compare-and-publish transaction’ında doğrulanmadan release görünür olmaz.
CURATION_ACTION.domain_kind, serbest polymorphic target değildir. Her kind
versioned typed payload schema’ya ve F2-013 endpoint catalog’una bağlıdır. Fiziksel
uygulama her domain için typed action-detail FK tablosu veya eşdeğer closed-schema
validator kullanır; table_name + record_id, runtime SQL predicate ve mutable text
match yasaktır.
Yapısal annotation
Bölüm başlığı “Yapısal annotation”erDiagram
accTitle: Heading segment ve note modeli
accDescr: Heading, segment ve note kayıtları exact span veya selectionlara typed foreign keylerle bağlanır; marker, body, coverage ve semantic ilişkiler ayrı tutulur.
HEADING_KIND ||--o{ HEADING : classifies
TEXT_SPAN ||--o{ HEADING : marks
TEXT_SELECTION ||--o{ HEADING : covers
HEADING o|--o{ HEADING : parent_of
STRUCTURAL_RELEASE ||--o{ HEADING : publishes
SEGMENT_KIND ||--o{ SEGMENT : classifies
TEXT_SELECTION ||--o{ SEGMENT : anchors
SEGMENT ||--o{ SEGMENT_RELATION : source
SEGMENT ||--o{ SEGMENT_RELATION : target
STRUCTURAL_RELEASE ||--o{ SEGMENT : publishes
NOTE_TYPE ||--o{ NOTE : classifies
NOTE ||--|{ NOTE_MARKER : has
TEXT_SPAN ||--o{ NOTE_MARKER : anchors
NOTE ||--|{ NOTE_BODY : has
TEXT_SELECTION ||--o{ NOTE_BODY : anchors
STRUCTURAL_RELEASE ||--o{ NOTE : publishes
HEADING {
uuid id PK
uuid heading_kind_id FK
uuid marker_span_id FK
uuid coverage_selection_id FK
uuid parent_heading_id FK
integer level
}
SEGMENT {
uuid id PK
uuid segment_kind_id FK
uuid selection_id FK
}
SEGMENT_RELATION {
uuid id PK
uuid source_segment_id FK
uuid target_segment_id FK
text relation_kind
}
NOTE {
uuid id PK
uuid note_type_id FK
}
NOTE_MARKER {
uuid note_id PK, FK
uuid span_id PK, FK
integer position UK
}
NOTE_BODY {
uuid note_id PK, FK
uuid selection_id PK, FK
integer position UK
}
STRUCTURAL_RELEASE {
uuid id PK
sha256 inventory_root_sha256
}
Heading marker text, note marker/body bytes ve segment içeriği core’da kalır. Heading coverage, marker ile body ilişkisi, segment sınırı ve semantic relation annotation’dır. Heading parent relation aynı structural release içinde acyclic ve level-consistent olmalıdır. Segment relation kind’leri closed enum/profile ile typed’dır; geometrik containment tek başına semantic relation üretmez.
Bir note birden fazla marker veya body selection taşıyabilir; pozisyonlar kendi
note parent’ı içinde kesintisizdir. Hasiye, yıldızlı not veya ilerideki note
türleri NOTE_TYPE authority’sidir. Body text başka tabloya kopyalanmaz.
Compound ve lexical authority
Bölüm başlığı “Compound ve lexical authority”erDiagram
accTitle: Compound lexical ve dictionary modeli
accDescr: Compound definition, surface variant ve corpus occurrence ayrı kimliklerdir. Token occurrence lexical analysis üzerinden lexemeye; compound ve lexeme ise typed linklerle dictionary sense kayıtlarına bağlanır.
COMPOUND_ENTRY ||--|{ COMPOUND_VARIANT : has
COMPOUND_VARIANT ||--o{ COMPOUND_OCCURRENCE : realized_as
TEXT_SPAN ||--o{ COMPOUND_OCCURRENCE : anchors
COMPOUND_OCCURRENCE ||--o{ COMPOUND_MEMBER_ROLE : classifies_members
TOKEN_OCCURRENCE ||--o{ COMPOUND_MEMBER_ROLE : participates
COMPOUND_OCCURRENCE ||--o{ COMPOUND_CHILD : parent
COMPOUND_OCCURRENCE ||--o{ COMPOUND_CHILD : child
LEXICAL_RELEASE ||--o{ COMPOUND_OCCURRENCE : publishes
LEXEME ||--|{ LEXEME_FORM : has
LEXEME ||--o{ LEXEME_ROOT_ASSERTION : analyzed_by
LEXICAL_ROOT ||--o{ LEXEME_ROOT_ASSERTION : selected_as
LEXEME_FORM ||--o{ FORM_ANALYSIS : selected_by
TOKEN_OCCURRENCE ||--o{ FORM_ANALYSIS : analyzes
LEXICAL_RELEASE ||--o{ FORM_ANALYSIS : publishes
DICTIONARY_SOURCE ||--o{ DICTIONARY_ENTRY : contains
DICTIONARY_ENTRY ||--|{ DICTIONARY_SENSE : defines
LEXEME ||--o{ LEXEME_SENSE_LINK : described_by
DICTIONARY_SENSE ||--o{ LEXEME_SENSE_LINK : links
COMPOUND_ENTRY ||--o{ COMPOUND_SENSE_LINK : described_by
DICTIONARY_SENSE ||--o{ COMPOUND_SENSE_LINK : links
FORM_ANALYSIS ||--o{ TOKEN_SENSE_SELECTION : selects
DICTIONARY_SENSE ||--o{ TOKEN_SENSE_SELECTION : chosen
COMPOUND_OCCURRENCE ||--o{ COMPOUND_SENSE_SELECTION : selects
DICTIONARY_SENSE ||--o{ COMPOUND_SENSE_SELECTION : chosen
COMPOUND_ENTRY {
uuid id PK
text canonical_label
sha256 definition_sha256
}
COMPOUND_VARIANT {
uuid id PK
uuid compound_entry_id FK
text exact_surface
sha256 variant_sha256
}
COMPOUND_OCCURRENCE {
uuid id PK
uuid compound_variant_id FK
uuid span_id FK
}
COMPOUND_MEMBER_ROLE {
uuid compound_occurrence_id PK, FK
uuid token_occurrence_id PK, FK
integer position UK
text member_role
}
COMPOUND_CHILD {
uuid parent_occurrence_id PK, FK
uuid child_occurrence_id PK, FK
text relation_kind
}
LEXEME {
uuid id PK
sha256 definition_sha256
}
LEXEME_FORM {
uuid id PK
uuid lexeme_id FK
text exact_form
}
FORM_ANALYSIS {
uuid id PK
uuid token_occurrence_id FK
uuid lexeme_form_id FK
sha256 analysis_sha256
}
LEXICAL_ROOT {
uuid id PK
text canonical_form
}
DICTIONARY_SENSE {
uuid id PK
uuid dictionary_entry_id FK
text sense_text
}
LEXICAL_RELEASE {
uuid id PK
sha256 authority_root_sha256
sha256 occurrence_root_sha256
}
COMPOUND_ENTRY, COMPOUND_VARIANT ve COMPOUND_OCCURRENCE farklı public
referent’lerdir. Boundary değişikliği occurrence successor’ı; variantın neyi
temsil ettiği değişirse variant successor’ı; semantic definition değişirse entry
successor’ı üretir. Definition düzeltmek occurrence FK’lerini topluca rewrite
etmez.
Compound occurrence normalde ADR-005 token_body_range span kullanır. Shared
anchor overlap ve nesting’i korur. COMPOUND_CHILD yalnız reviewed semantic child
ilişkisidir; proper containment, same core frame, typed relation ve acyclicity
gerektirir. COMPOUND_MEMBER_ROLE geometrik membership’in kopyası değildir;
connector, semantic component veya inflection host gibi domain rollerini exact
token occurrence’lara verir. ve, ki, de, ile gibi tokenlar yalnız boundary
kanıtı varsa compound üyesi olur; core’dan hiçbir zaman düşmez.
LEXEME_FORM, core TOKEN_FORM değildir. İlki linguistic authority, ikincisi bir
text version içindeki binary-exact orthographic değerdir. Homograph kararı
FORM_ANALYSIS ile exact token occurrence üzerinde verilir. Böylece başta için
ba's, beş için bes veya eşya için esy gibi yanlış global kök düşüşleri
bir exact form eşitliği olarak yayılamaz. Stopword ve anlamı olmayan token
occurrence’lar analysis olmadan da geçerli core anchor’lardır.
Dictionary source/entry/sense provenance’a bağlı domain authority’dir. Serbest
ENTITY_SENSE_LINK yerine LEXEME_SENSE_LINK ve COMPOUND_SENSE_LINK; contextual
seçim için de ayrı token/compound selection tabloları kullanılır. Compound hover
tam entry/sense seçimi yoksa child sense’i ana compound anlamı gibi sunmaz.
Osmanlıca rendering
Bölüm başlığı “Osmanlıca rendering”erDiagram
accTitle: Osmanlıca pattern ve occurrence rendering modeli
accDescr: Latin matcher patternleri versioned Osmanlıca outputlara bağlanır; exact corpus span uygulaması ayrı occurrence kimliği taşır ve reader projection yeniden üretilebilir.
MAPPING_PATTERN ||--|{ PATTERN_OUTPUT : emits
ORTHOGRAPHIC_FORM ||--o{ PATTERN_OUTPUT : renders
DISPLAY_STYLE_RULE ||--o{ PATTERN_OUTPUT : styles
MAPPING_PATTERN ||--o{ PATTERN_EVIDENCE : supported_by
PROVENANCE_ASSERTION ||--o{ PATTERN_EVIDENCE : proves
PATTERN_OUTPUT ||--o{ RENDERING_OCCURRENCE : applied_as
TEXT_SPAN ||--o{ RENDERING_OCCURRENCE : anchors
OTTOMAN_RELEASE ||--o{ RENDERING_OCCURRENCE : publishes
RENDERING_OCCURRENCE ||--o| EFFECTIVE_SPAN_RENDERING : projects
ORTHOGRAPHIC_FORM {
uuid id PK
text raw_script
text display_script
sha256 form_sha256
}
MAPPING_PATTERN {
uuid id PK
text matcher_profile_id
sha256 matcher_payload_sha256
integer priority
}
PATTERN_OUTPUT {
uuid id PK
uuid mapping_pattern_id FK
uuid orthographic_form_id FK
uuid display_style_rule_id FK
text quality_status
}
PATTERN_EVIDENCE {
uuid mapping_pattern_id PK, FK
uuid provenance_assertion_id PK, FK
text evidence_role
}
RENDERING_OCCURRENCE {
uuid id PK
uuid span_id FK
uuid pattern_output_id FK
text mapping_status
}
EFFECTIVE_SPAN_RENDERING {
uuid ottoman_release_id PK, FK
uuid span_id PK, FK
uuid rendering_occurrence_id FK
}
OTTOMAN_RELEASE {
uuid id PK
sha256 pattern_root_sha256
sha256 occurrence_root_sha256
}
ORTHOGRAPHIC_FORM.raw_script kaynak imlasını, display_script ise kabul edilmiş
gösterim formunu korur; biri diğerinin provenance’ını silmez. Harekeler, izafet ve
şedde gibi display kararları versioned DISPLAY_STYLE_RULE ile açıklanır.
MAPPING_PATTERN exact/normalized matcher inputunu, longest-match priority’sini ve
quality policy’sini kilitler. Skor tek başına acceptance değildir.
RENDERING_OCCURRENCE, bir pattern output’un exact release-bound span’a uygulanma
assertion’ıdır. Boundary veya selected output değişirse yeni occurrence kimliği
gerekir. EFFECTIVE_SPAN_RENDERING accepted Ottoman release’ten yeniden üretilen
reader projection’dır; public authority değildir ve rebuild edilebilir. Arapça
ifadeler core’da kalır ve mapping policy altında not_applicable olabilir.
Repetition modeli
Bölüm başlığı “Repetition modeli”erDiagram
accTitle: Exact repeat family ve quotation modeli
accDescr: Passage occurrence exact selectiona bağlıdır. Deterministic exact class, reviewed family, directed quotation ve canonical choice ayrı authority kayıtlarıdır.
REPETITION_PROFILE ||--o{ PASSAGE_OCCURRENCE : enumerates
TEXT_SELECTION ||--o{ PASSAGE_OCCURRENCE : anchors
REPETITION_RELEASE ||--o{ PASSAGE_OCCURRENCE : publishes
EXACT_CLASS ||--|{ EXACT_CLASS_MEMBER : contains
PASSAGE_OCCURRENCE ||--o{ EXACT_CLASS_MEMBER : member
REPEAT_FAMILY ||--o{ FAMILY_OCCURRENCE_MEMBER : contains
PASSAGE_OCCURRENCE ||--o{ FAMILY_OCCURRENCE_MEMBER : member
REPEAT_FAMILY ||--o{ FAMILY_EXACT_CLASS_MEMBER : contains
EXACT_CLASS ||--o{ FAMILY_EXACT_CLASS_MEMBER : member
PASSAGE_OCCURRENCE ||--o{ PASSAGE_DIFF : left_side
PASSAGE_OCCURRENCE ||--o{ PASSAGE_DIFF : right_side
PASSAGE_OCCURRENCE ||--o{ QUOTATION_RELATION : source
PASSAGE_OCCURRENCE ||--o{ QUOTATION_RELATION : quotation
EXACT_CLASS ||--o| EXACT_CLASS_CHOICE : recommends
PASSAGE_OCCURRENCE ||--o{ EXACT_CLASS_CHOICE : chooses
REPEAT_FAMILY ||--o| REPEAT_FAMILY_CHOICE : recommends
PASSAGE_OCCURRENCE ||--o{ REPEAT_FAMILY_CHOICE : chooses
PASSAGE_OCCURRENCE {
uuid id PK
uuid profile_id FK
uuid selection_id FK
text granularity
sha256 mask_witness_root
}
EXACT_CLASS {
uuid id PK
uuid profile_id FK
text predicate_id
sha256 member_root_sha256
}
EXACT_CLASS_MEMBER {
uuid exact_class_id PK, FK
uuid passage_occurrence_id PK, FK
integer position UK
}
REPEAT_FAMILY {
uuid id PK
uuid profile_id FK
text family_kind
sha256 expanded_member_root
}
QUOTATION_RELATION {
uuid id PK
uuid source_occurrence_id FK
uuid quotation_occurrence_id FK
text relation_kind
}
PASSAGE_DIFF {
uuid id PK
uuid left_occurrence_id FK
uuid right_occurrence_id FK
sha256 edit_script_sha256
}
REPETITION_RELEASE {
uuid id PK
sha256 occurrence_root_sha256
sha256 structure_root_sha256
}
EXACT_CLASS certified exact predicate altında transitive equivalence setidir;
hash grouping sonrası exact preimage equality doğrulanır. REPEAT_FAMILY tüm üye
seti birlikte reviewed near_exact | variant assertion’ıdır; pairwise score’lar
transitive closure ile family yaratmaz. Aynı expanded occurrence bir profile/release
içinde iki effective family’de bulunamaz.
Family’nin occurrence ve exact-class üyeleri iki typed tabloda tutulur. Expansion
aynı occurrence’ı hem doğrudan hem exact class üzerinden içeremez. Quotation relation
directed ve non-transitive’dir. Canonical choice için exact class ve family ayrı typed
tablo kullanır; zero-or-one choice geçerlidir ve absence unselected demektir.
Hiçbir choice başka occurrence’ın source text authority’si olmaz.
Candidate, fingerprint, named metric ve replayable diff evidence immutable kalır; certified exact class dışındaki family, quotation ve choice promotion’ları ADR-007 review gerektirir. Repetition release core paragraph/tokenlarını deduplicate etmez.
Multilingual alignment
Bölüm başlığı “Multilingual alignment”erDiagram
accTitle: Multilingual alignment coverage ve bipartite group modeli
accDescr: Her dildeki unit kendi exact text selectionına bağlıdır. Scope iki tarafı tam partition eder ve correspondence bir Cartesian edge seti yerine ordered bipartite group olarak saklanır.
ALIGNMENT_PROFILE ||--o{ ALIGNMENT_SCOPE : governs
TEXT_SELECTION ||--o{ ALIGNMENT_SCOPE : source_extent
TEXT_SELECTION ||--o{ ALIGNMENT_SCOPE : target_extent
ALIGNMENT_SCOPE ||--|{ SCOPE_ATOM : partitions
TEXT_SELECTION ||--o{ SCOPE_ATOM : anchors
SCOPE_ATOM ||--o| SCOPE_ATOM_UNIT : included_as
ALIGNMENT_PROFILE ||--o{ ALIGNMENT_UNIT : unitizes
TEXT_SELECTION ||--o{ ALIGNMENT_UNIT : anchors
ALIGNMENT_UNIT ||--o{ SCOPE_ATOM_UNIT : covers
ALIGNMENT_SCOPE ||--|{ SCOPE_UNIT : inventories
ALIGNMENT_UNIT ||--o{ SCOPE_UNIT : included_as
ALIGNMENT_SCOPE ||--|{ ALIGNMENT_GROUP : groups
ALIGNMENT_GROUP ||--o{ GROUP_SOURCE_MEMBER : source_side
ALIGNMENT_UNIT ||--o{ GROUP_SOURCE_MEMBER : member
ALIGNMENT_GROUP ||--o{ GROUP_TARGET_MEMBER : target_side
ALIGNMENT_UNIT ||--o{ GROUP_TARGET_MEMBER : member
ALIGNMENT_SCOPE ||--|{ ALIGNMENT_ORDER : orders_sides
ALIGNMENT_ORDER ||--|{ ALIGNMENT_ORDER_MEMBER : orders
ALIGNMENT_GROUP ||--o{ ALIGNMENT_ORDER_MEMBER : ranked
ALIGNMENT_RELEASE ||--o{ ALIGNMENT_SCOPE : publishes
PROPAGATION_POLICY ||--o{ ALIGNMENT_RELEASE : constrains
ALIGNMENT_SCOPE {
uuid id PK
uuid profile_id FK
uuid source_extent_selection_id FK
uuid target_extent_selection_id FK
sha256 source_partition_root
sha256 target_partition_root
}
SCOPE_ATOM {
uuid id PK
uuid scope_id FK
text side
integer position UK
text partition_kind
uuid selection_id FK
}
ALIGNMENT_UNIT {
uuid id PK
uuid profile_id FK
uuid selection_id FK
text unit_kind
}
SCOPE_ATOM_UNIT {
uuid scope_atom_id PK, FK
uuid unit_id FK
}
SCOPE_UNIT {
uuid scope_id PK, FK
uuid unit_id PK, FK
text side
integer position UK
}
ALIGNMENT_GROUP {
uuid id PK
uuid scope_id FK
text disposition
text derived_shape
}
GROUP_SOURCE_MEMBER {
uuid group_id PK, FK
uuid unit_id PK, FK
integer position UK
}
GROUP_TARGET_MEMBER {
uuid group_id PK, FK
uuid unit_id PK, FK
integer position UK
}
ALIGNMENT_ORDER {
uuid id PK
uuid scope_id FK
text side
sha256 group_order_root
}
ALIGNMENT_ORDER_MEMBER {
uuid alignment_order_id PK, FK
uuid group_id PK, FK
integer position UK
}
ALIGNMENT_RELEASE {
uuid id PK
sha256 scope_root_sha256
sha256 coverage_root_sha256
}
Her ALIGNMENT_UNIT yalnız kendi language/text release’indeki exact selection’ı
seçer; Türkçe sentence ID başka dilde reuse edilmez. SCOPE_ATOM source ve target
extentleri ayrı ayrı unitizable | structural_excluded olarak gap-free ve
non-overlapping partition eder. Unitizable atom exactly one accepted unit tarafından
kapsanır ve bu ilişki SCOPE_ATOM_UNIT ile açıkça kaydedilir;
structural_excluded atomun bu tabloda kaydı olamaz. Karşılığı olmayan içerik
excluded sayılmaz, group disposition’ı
source_only veya target_only olur.
Bir ALIGNMENT_GROUP, iki ordered member listesiyle tek bipartite assertion’dır.
Accepted disposition yalnız correspondence | source_only | target_only olabilir.
Crow’s-foot ilişkileri üç disposition’ın birleşik üst sınırını gösterir; accepted
satır için kapalı koşullu kardinalite ayrıca zorunludur: correspondence her iki
tarafta en az bir üyeye, source_only en az bir source ve sıfır target üyeye,
target_only sıfır source ve en az bir target üyeye sahiptir. İki tarafı da boş
group veya disposition ile çelişen üye birleşimi yayımlanamaz.
Correspondence shape member sayılarından one_to_one | split | merge | complex
olarak türetilir, ayrıca edit edilmez. Group’u pairwise edge Cartesian product’una
çevirmek yasaktır. Her effective unit kendi tarafında exactly one group’a girer.
Her scope için (scope_id, side) unique olacak biçimde exactly two
ALIGNMENT_ORDER satırı, source ve target, vardır. Order yalnız ordered group ID
array’ından gelir; timestamp, UUID veya group satırındaki ikinci rank alanından
gelmez. Reorder iki tarafın order manifestlerinden türetilir. Propagation başka dilde
reference göstermeyi otomatik truth yapmaz; versioned policy, complete coverage,
confidence/review ve explicit route gerekir. Ambiguous, source-only, target-only veya
unavailable sonuç set-valued state olarak korunur.
Accepted alignment release doğrulaması her scope için order side kümesini tam olarak
{source, target} kabul eder; tek, üçüncü veya duplicate side satırı ilişki
diyagramındaki one-or-more alt sınırını sağlasa bile geçersizdir.
Candidate, provenance ve curation sınırı
Bölüm başlığı “Candidate, provenance ve curation sınırı”Her domain candidate kaydını accepted authority’den ayrı tutar. Ortak candidate envelope kullanılabilir, ancak exact typed participant ve payload her domain’in closed schema tablosundadır. Candidate şunları bağlar:
- producer process contract/run ve immutable input/output roots;
- exact core/anchor/domain release IDs;
- named metric, algorithm/profile version ve result digest;
- provenance assertion/evidence IDs; ve
pending,rejected,false_positiveveya domain-specific proposal disposition.
Confidence, exact-match etiketi veya legacy canonical flag review yerine geçmez. Candidate promotion immutable bytes’ı proposal’a kopyalar. Proposal review, decision, transaction ve release sırası ADR-007 omurgasında append-only kalır. Identity-changing boundary, member set, definition veya directed endpoint düzeltmesi new entity ve typed supersession gerektirir. Accepted row edit/delete edilmez.
Provenance endpoint’leri F2-013 catalog ve F2-019 ortak contract ile typed’dır.
PROVENANCE_ASSERTION bu diyagramda ADR-006 assertion node’unun dış referansıdır;
semantic acceptance taşımaz. Eksik used-source closure release’i durdurur, fakat
kanıt sayısı semantic doğruluğu otomatik seçmez.
Publication invariant’ları
Bölüm başlığı “Publication invariant’ları”Bir annotation release ancak aşağıdakilerin tümü aynı immutable snapshot ve atomik publication sınırında geçerse kabul edilir:
- Her span/selection coordinate profile, core release/root, text version, sentence, excerpt witness ve ordered member closure’ı exact doğrular.
- Her occurrence assertion’ın typed domain FK’si ile anchor/core binding’i uyuşur; current alias veya normalized text retargeting yoktur.
- Domain definition, variant, occurrence ve member identity contract’ları ile supersession graph’ları geçerlidir.
- Structural parent/relations, compound child graph’ı ve domain containment kuralları typed, compatible ve gereken yerlerde acyclic’dir.
- Lexical homograph/sense selection occurrence bağlamını kaybetmez; compound sense absence child fallback ile doldurulmaz.
- Ottoman pattern priority/output ve effective span selection tek release altında deterministic’tir; raw/display provenance korunur.
- Repetition exact class, family expansion, quotation direction ve canonical choice uniqueness/coverage kuralları ADR-009 ile aynıdır.
- Alignment scope partition, unit coverage, group cardinality/disposition ve iki order manifesti ADR-008 closure roots ile exact eşleşir.
- Curation release parent chain, ordered transaction delta, policy/freeze epoch, supersession root ve effective state root yeniden hesaplanır.
- Provenance used-source/intake/output closure ile bütün domain component roots annotation release manifestine bağlanır.
- Publication öncesi ve locked commit anında bütün referenced core roots yeniden doğrulanır; mismatch hiçbir partial authority yayımlamaz.
- Annotation/provenance/cache tabloları silindiğinde ER-001 core reconstruction byte ve digest sonucu değişmez.
Yasak birleşimler
Bölüm başlığı “Yasak birleşimler”- Shared span üzerinde
span_kind,is_compound, meaning veya canonicality alanı. - Tek
annotations(table_name, record_id, type, payload)authority tablosu. - Core token form üzerinde lemma, root, sense, Ottoman veya compound FK’si.
- Definition ve bütün corpus occurrence’larını aynı ID/row ile temsil etmek.
- Candidate score’u
is_canonicalbayrağına çeviren doğrudan import. - Compound child/member rollerini shared geometric member cache’ine yazmak.
- Exact repeat, reviewed family ve directed quotation’ı tek relation/cluster türünde birleştirmek.
- Many-to-many alignment’ı bağımsız pairwise equivalence edge’lerine açmak.
- Dictionary sense linkinde unconstrained entity kind/ID polymorphism.
- Accepted annotation düzeltmesinde in-place boundary/member/endpoint update veya destructive rebuild.
Sonraki işler
Bölüm başlığı “Sonraki işler”- F2-013 bu diyagramdaki public referenceable entity kind’leri ve typed endpoint enforcement’ı listeler.
- F2-014 her physical table/projection için
immutable,curated,derivedveyacachepermanence sınıfını verir. - F2-015 ER-001 ve ER-002’yi docs navigation’a yayımlar.
- F2-016 form/occurrence, definition/variant/occurrence, lexeme/root/sense ve span/selection terimlerini canonical glossary’de kilitler.
- F4-F7 bu mantıksal sözleşmeyi migration, package, pipeline ve validation olarak uygular.