İçeriğe geç

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.

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.

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.

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.

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.

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.

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.

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.

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_positive veya 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.

Bir annotation release ancak aşağıdakilerin tümü aynı immutable snapshot ve atomik publication sınırında geçerse kabul edilir:

  1. Her span/selection coordinate profile, core release/root, text version, sentence, excerpt witness ve ordered member closure’ı exact doğrular.
  2. Her occurrence assertion’ın typed domain FK’si ile anchor/core binding’i uyuşur; current alias veya normalized text retargeting yoktur.
  3. Domain definition, variant, occurrence ve member identity contract’ları ile supersession graph’ları geçerlidir.
  4. Structural parent/relations, compound child graph’ı ve domain containment kuralları typed, compatible ve gereken yerlerde acyclic’dir.
  5. Lexical homograph/sense selection occurrence bağlamını kaybetmez; compound sense absence child fallback ile doldurulmaz.
  6. Ottoman pattern priority/output ve effective span selection tek release altında deterministic’tir; raw/display provenance korunur.
  7. Repetition exact class, family expansion, quotation direction ve canonical choice uniqueness/coverage kuralları ADR-009 ile aynıdır.
  8. Alignment scope partition, unit coverage, group cardinality/disposition ve iki order manifesti ADR-008 closure roots ile exact eşleşir.
  9. Curation release parent chain, ordered transaction delta, policy/freeze epoch, supersession root ve effective state root yeniden hesaplanır.
  10. Provenance used-source/intake/output closure ile bütün domain component roots annotation release manifestine bağlanır.
  11. Publication öncesi ve locked commit anında bütün referenced core roots yeniden doğrulanır; mismatch hiçbir partial authority yayımlamaz.
  12. Annotation/provenance/cache tabloları silindiğinde ER-001 core reconstruction byte ve digest sonucu değişmez.
  • 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_canonical bayrağı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.
  • F2-013 bu diyagramdaki public referenceable entity kind’leri ve typed endpoint enforcement’ı listeler.
  • F2-014 her physical table/projection için immutable, curated, derived veya cache permanence 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.