2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
# Graph Contexts Technical Specification
## Overview
Bu özellik, TrustGraph'ı n temel grafik yapı ları na yapı lan değişiklikleri tanı mlar ve
RDF 1.2 ile uyumlu olacak ve tam RDF Dataset semantiğini destekleyecek şekilde tasarlanmı ştı r. Bu, 2.x yayı n serisi için önemli bir değişikliktir.
### Versioning
2026-04-11 01:08:44 +00:00
=======
# Graph Contexts Teknik Özellikler
## Genel Bakı ş
Bu özellik, TrustGraph'ı n temel grafik öğelerindeki değişiklikleri,
RDF 1.2 ile uyumlu olacak ve tam RDF Dataset semantiğini destekleyecek şekilde tanı mlar. Bu, 2.x sürüm serisi için önemli bir değişikliktir.
### Sürümleme
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
**2.0**: Erken benimseyen sürüm. Temel özellikler mevcut, ancak henüz tamamen
üretim ortamı na hazı r olmayabilir.
**2.1 / 2.2**: Üretim sürümü. Kararlı lı k ve eksiksizlik doğrulandı .
Olgunluk konusundaki esneklik kası tlı dı r; erken benimseyenler, tüm özellikler
üretim ortamı na hazı r hale gelmeden önce yeni yeteneklere erişebilir.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
## Goals
2026-04-11 01:08:44 +00:00
=======
## Hedefler
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Bu çalı şmanı n temel hedefleri, gerçekler/ifadeler hakkı nda meta veri sağlamaktı r:
**Zaman bilgisi**: Gerçekleri zamanla ilgili bilgilerle ilişkilendirme
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Bir gerçeğin doğru olduğu düşünüldüğü zaman
Bir gerçeğin doğru hale geldiği zaman
Bir gerçeğin yanlı ş olduğu tespit edildiği zaman
**Kaynak/Köken**: Bir gerçeği destekleyen kaynakları izleme
"Bu gerçek, X kaynağı tarafı ndan desteklenmektedir"
Gerçekleri, köken belgelerine bağlama
**Doğruluk/Güven**: Gerçekler hakkı ndaki iddiaları kaydetme
"Kişi P, bunun doğru olduğunu iddia etti"
"Kişi Q, bunun yanlı ş olduğunu iddia ediyor"
Güven puanlaması nı ve çakı şma tespitini etkinleştirme
**Hipotez**: Yeniden tanı mlama (RDF-star / tı rnak işaretli üçlüler), bu sonuçları
elde etmek için temel mekanizmadı r, çünkü bunları n hepsi ifadeler hakkı nda ifadeler yapmayı gerektirir.
## Background
"Alice'in Bob'u tanı dı ğı " gerçeğinin "2024-01-15" tarihinde keşfedildiğini veya
"X kaynağı nı n (Y'nin Z'ye neden olduğu) iddiası nı desteklediğini" ifade etmek için,
bir kenara bir şey olarak başvurmanı z ve bu kenar hakkı nda ifadeler yapabilmeniz gerekir. Standart üçlüler bunu desteklemez.
### Current Limitations
Mevcut `Value` sı nı fı `trustgraph-base/trustgraph/schema/core/primitives.py` içinde
2026-04-11 01:08:44 +00:00
=======
Bir gerçeğin doğru olduğuna inanı ldı ğı zaman
Bir gerçeğin doğru hale geldiği zaman
Bir gerçeğin yanlı ş olduğu keşfedildiğinde
**Kaynak/Köken**: Bir gerçeği destekleyen kaynakları izleme
"Bu gerçek, kaynak X tarafı ndan destekleniyordu"
Gerçekleri, köken belgelerine bağlama
**Doğruluk/Güvenilirlik**: Doğrulukla ilgili ifadeleri kaydetme
"Kişi P, bunun doğru olduğunu iddia etti"
"Kişi Q, bunun yanlı ş olduğunu iddia ediyor"
Güvenilirlik puanlaması ve çakı şma tespitini etkinleştirme
**Hipotez**: Yeniden tanı mlama (RDF-star / tı rnaklı üçlüler), bu sonuçları elde etmenin temel mekanizması dı r, çünkü bunları n hepsi ifadeler hakkı nda ifadeler yapmayı gerektirir.
## Arka Plan
"Alice'nin Bob'u bildiği gerçeği 2024-01-15'te keşfedildi" veya "kaynak X, (Y'nin Z'ye neden olduğu) iddiası nı destekliyor" gibi ifadeleri belirtmek için,
bir kenarı , hakkı nda ifadeler yapı labilecek bir şey olarak referans göstermeniz gerekir. Standart üçlüler bunu desteklemez.
### Mevcut Sı nı rlamalar
Mevcut `Value` sı nı fı `trustgraph-base/trustgraph/schema/core/primitives.py` içinde:
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
şunları temsil edebilir:
URI düğümleri (`is_uri=True` )
Literal değerler (`is_uri=False` )
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
`type` alanı mevcuttur, ancak XSD veri türlerini temsil etmek için kullanı lmaz.
## Technical Design
### RDF Features to Support
#### Core Features (Related to Reification Goals)
Bu özellikler, zaman, kaynak ve doğruluk hedefleriyle doğrudan ilgilidir:
1. **RDF 1.2 Quoted Triples (RDF-star)**
Diğer kenarlara işaret eden kenarlar
Bir Üçlü, başka bir Üçlünün konusu veya nesnesi olabilir
İfadeler hakkı nda ifadeler yapmayı sağlar (yeniden tanı mlama)
Bireysel gerçekleri açı klamak için temel mekanizma
2. **RDF Dataset / Named Graphs**
Bir veri kümesi içindeki birden fazla adlandı rı lmı ş grafik için destek
Her grafik bir IRI ile tanı mlanı r
Üçlülerden (s, p, o) dörtlülere (s, p, o, g) geçiş
Bir varsayı lan grafik ve sı fı r veya daha fazla adlandı rı lmı ş grafik içerir
Grafik IRI'si, ifadelerin konusu olabilir, örneğin:
Grafik IRI'si, ifadelerde bir özne olabilir, örneğin:
2026-04-11 01:08:44 +00:00
=======
`type` alanı mevcut, ancak XSD veri tiplerini temsil etmek için kullanı lmı yor.
## Teknik Tasarı m
### Desteklenecek RDF Özellikleri
#### Temel Özellikler (Somutlaştı rma Hedefleriyle İlgili)
Bu özellikler, zamansallı k, köken ve doğruluk
hedefleriyle doğrudan ilişkilidir:
1. **RDF 1.2 Tı rnak İşaretli Üçlüler (RDF-star)**
Diğer kenarlara işaret eden kenarlar
Bir Üçlü, başka bir Üçlünün öznesi veya nesnesi olabilir
Üçlüler hakkı nda ifadeler oluşturmayı sağlar (somutlaştı rma)
Bireysel gerçekleri açı klamak için temel mekanizma
2. **RDF Veri Kümesi / Adlandı rı lmı ş Grafikler**
Bir veri kümesi içinde birden fazla adlandı rı lmı ş grafik desteği
Her grafik bir IRI ile tanı mlanı r
Üçlülerden (s, p, o) dörtlülere (s, p, o, g) geçiş
Bir varsayı lan grafik ve sı fı r veya daha fazla adlandı rı lmı ş grafik içerir
Grafik IRI'si, ifadelerin bir öznesi olabilir, örneğin:
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
```
< graph-source-A > < discoveredOn > "2024-01-15"
< graph-source-A > < hasVeracity > "high"
```
Not: Adlandı rı lmı ş grafikler, somutlaştı rmadan ayrı bir özelliktir. Bunlar,
yalnı zca ifade açı klaması nı n ötesinde kullanı mlara sahiptir (bölümleme, erişim kontrolü, veri kümesi
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
organizasyonu) ve ayrı bir yetenek olarak ele alı nmalı dı r.
2026-04-11 01:08:44 +00:00
=======
düzeni) ve ayrı bir yetenek olarak ele alı nmalı dı r.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
3. **Anonim Düğümler** (Sı nı rlı Destek)
Küresel bir URI'ye sahip olmayan anonim düğümler
Dı ş RDF verilerini yüklerken uyumluluk için desteklenir
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
**Sı nı rlı durum:** Yükleme işleminden sonra kararlı bir kimlik konusunda hiçbir garanti yoktur
Bunları jokerli sorgular aracı lı ğı yla bulun (bağlantı lara göre, kimliğe göre değil)
2026-04-11 01:08:44 +00:00
=======
**Sı nı rlı durum** : Yükleme işleminden sonra kararlı bir kimlik konusunda garanti yoktur
Bunları jokerli sorgularla bulun (bağlantı lara göre, kimliğe göre değil)
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Birincil bir özellik değildir - kesin anonim düğüm işleme özelliğine güvenmeyin
#### Fı rsatçı Düzeltmeler (2.0'ı n Kı rı cı Değişikliği)
Bu özellikler, somutlaştı rma hedefleriyle doğrudan ilişkili değildir, ancak
kı rı cı değişiklikler yaparken dahil edilmesi değerli olan iyileştirmelerdir:
4. **Literal Veri Tipleri**
XSD veri tipleri için `type` alanı nı doğru şekilde kullanı n
Örnekler: xsd:string, xsd:integer, xsd:dateTime, vb.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Mevcut sı nı rlamayı düzeltir: tarihleri veya tamsayı ları düzgün bir şekilde temsil edilemez
2026-04-11 01:08:44 +00:00
=======
Mevcut sı nı rlamayı düzeltir: tarihleri veya tamsayı ları doğru şekilde temsil edilemez
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
5. **Dil Etiketleri**
Dize literal değerleri üzerinde dil öznitelikleri desteği (@en , @fr , vb.)
Not: Bir literal değerin ya bir dil etiketi YA da bir veri tipi vardı r, ikisi birden değil
(rdf:langString hariç)
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Yapay zeka/çok dilli kullanı m senaryoları için önemlidir
2026-04-11 01:08:44 +00:00
=======
Yapay zeka/çok dilli kullanı m durumları için önemlidir
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
### Veri Modelleri
#### Terim (Value adı ndan değiştirildi)
`Value` sı nı fı , RDF terminolojisini daha iyi yansı tmak için `Term` olarak yeniden adlandı rı lacaktı r.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Bu yeniden adlandı rma iki amaca hizmet etmektedir:
1. İsimlendirmeyi RDF kavramları yla uyumlu hale getirmek (bir "Terim", bir IRI, literal, boş
düğüm veya tı rnak içindeki üçlü olabilir - sadece bir "değer" değildir).
2. Değişikliklere neden olan arayüzde kod incelemesini zorlamak - hala
`Value` 'a referans veren herhangi bir kod, açı kça hatalı dı r ve güncellenmesi gerekir.
2026-04-11 01:08:44 +00:00
=======
Bu yeniden adlandı rmanı n iki amacı vardı r:
1. İsimlendirmeyi RDF kavramları yla uyumlu hale getirmek (bir "Terim", bir IRI, literal, boş
düğüm veya tı rnak içindeki üçlü olabilir - sadece bir "değer" değildir).
2. Kod incelemesini, önemli değişikliklerin yapı ldı ğı arayüzde zorunlu kı lmak - hala
`Value` 'a referans veren herhangi bir kod, açı kça hatalı olacaktı r ve güncellenmesi gerekecektir.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Bir Terim şunları temsil edebilir:
**IRI/URI** - Adlandı rı lmı ş bir düğüm/kaynak
**Boş Düğüm** - Yerel kapsamı olan anonim bir düğüm
**Literal (Değer)** - Ya bir veri türü (XSD türü) veya
Bir dil etiketi
**Tı rnak İçine Alı nmı ş Üçlü** - Bir terim olarak kullanı lan bir üçlü (RDF 1.2)
##### Seçilen Yaklaşı m: Tip Ayı rı cı sı Olan Tek Sı nı f
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Serileştirme gereksinimleri yapı yı belirler - bir tür ayrı mcı sı na ihtiyaç vardı r.
Python gösteriminden bağı msı z olarak, kablo formatı nda bir tür ayrı mcı sı na ihtiyaç vardı r.
2026-04-11 01:08:44 +00:00
=======
Serileştirme gereksinimleri yapı yı belirler - bir tür belirleyiciye ihtiyaç vardı r.
Python gösteriminden bağı msı z olarak, kablo formatı nda bir tür belirleyiciye ihtiyaç vardı r.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Tek bir sı nı f ve bir tür alanı , doğal bir çözümdür ve mevcut `Value` kalı bı yla uyumludur.
Tek karakterli tür kodları , kompakt serileştirme sağlar:
```python
from dataclasses import dataclass
# Term type constants
IRI = "i" # IRI/URI node
BLANK = "b" # Blank node
LITERAL = "l" # Literal value
TRIPLE = "t" # Quoted triple (RDF-star)
@dataclass
class Term:
type: str = "" # One of: IRI, BLANK, LITERAL, TRIPLE
# For IRI terms (type == IRI)
iri: str = ""
# For blank nodes (type == BLANK)
id: str = ""
# For literals (type == LITERAL)
value: str = ""
datatype: str = "" # XSD datatype URI (mutually exclusive with language)
language: str = "" # Language tag (mutually exclusive with datatype)
# For quoted triples (type == TRIPLE)
triple: "Triple | None" = None
```
Kullanı m örnekleri:
```python
# IRI term
node = Term(type=IRI, iri="http://example.org/Alice")
# Literal with datatype
age = Term(type=LITERAL, value="42", datatype="xsd:integer")
# Literal with language tag
label = Term(type=LITERAL, value="Hello", language="en")
# Blank node
anon = Term(type=BLANK, id="_:b1")
# Quoted triple (statement about a statement)
inner = Triple(
s=Term(type=IRI, iri="http://example.org/Alice"),
p=Term(type=IRI, iri="http://example.org/knows"),
o=Term(type=IRI, iri="http://example.org/Bob"),
)
reified = Term(type=TRIPLE, triple=inner)
```
##### Alternatifler
**B Seçeneği: Özel sı nı fları n birleşimi** (`Term = IRI | BlankNode | Literal | QuotedTriple` )
Reddedildi: Seri hale getirme işlemi hala bir tür belirleyici gerektirecek, bu da karmaşı klı ğı artı racaktı r.
**C Seçeneği: Alt sı nı flara sahip temel sı nı f**
Reddedildi: Aynı seri hale getirme sorunu, ayrı ca dataclass miras özellikleriyle ilgili sorunlar.
#### Üçlü / Dörtlü
`Triple` sı nı fı , isteğe bağlı bir grafik alanı kazanarak dörtlü bir yapı ya dönüşebilir:
```python
@dataclass
class Triple:
s: Term | None = None # Subject
p: Term | None = None # Predicate
o: Term | None = None # Object
g: str | None = None # Graph name (IRI), None = default graph
```
Tasarı m kararları :
**Alan adı **: `g` , `s` , `p` ve `o` ile tutarlı lı k için.
**İsteğe bağlı **: `None` , varsayı lan grafiği (isim belirtilmemiş) ifade eder.
**Tip**: Terim yerine düz bir dize (IRI).
Grafik adları her zaman IRI'lerdir.
Boş düğümlerin grafik adı olarak kullanı lması reddedildi (çok kafa karı ştı rı cı ).
Tam Terim mekanizması na ihtiyaç yok.
Not: Sı nı f adı teknik olarak bir dörtlü olsa bile `Triple` olarak kalı r.
Bu, karmaşayı önler ve "üçlü" terimi hala s/p/o kı smı için yaygı n olarak kullanı lan bir terimdir. Grafik bağlamı , üçlünün nerede bulunduğu hakkı nda meta veridir.
### Olası Sorgu Desenleri
Mevcut sorgu motoru, S, P, O terimlerinin kombinasyonları nı kabul eder. Tı rnak içinde belirtilen
üçlüler, bir üçlünün kendisi bu konumlarda geçerli bir terim haline gelir. Aşağı da,
orijinal hedefleri destekleyen olası sorgu desenleri bulunmaktadı r.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
#### Grafik Parametre Anlamları
2026-04-11 01:08:44 +00:00
=======
#### Grafik Parametre Anlamı
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Geriye dönük uyumluluk için SPARQL kuralları na uygun olarak:
**`g` belirtilmemiş / Yok**: Yalnı zca varsayı lan grafiği sorgula.
**`g` = belirli bir IRI**: Yalnı zca o adlandı rı lmı ş grafiği sorgula.
**`g` = joker karakter / `*` **: Tüm grafikler arası nda sorgu yap (SPARQL ile eşdeğer
`GRAPH ?g { ... }` ).
Bu, basit sorguları basit tutar ve adlandı rı lmı ş grafik sorguları nı isteğe bağlı hale getirir.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Grafik arası sorgular (g=joker karakter), tamamen desteklenir. Cassandra şeması ,
g'nin bir kümeleme sütunu olduğu (bölüm anahtarı olmadı ğı ) özel tabloları içerir (SPOG, POSG, OSPG),
2026-04-11 01:08:44 +00:00
=======
Grafikler arası sorgular (g=joker karakter) tamamen desteklenir. Cassandra şeması ,
g'nin bir kümeleme sütunu olduğu (bölüm anahtarı değil) özel tabloları içerir (SPOG, POSG, OSPG),
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
bu da tüm grafikler arası nda verimli sorgular yapmayı sağlar.
#### Zamansal Sorgular
**Belirli bir tarihten sonra keşfedilen tüm bilgileri bul:**
```
S: ? # any quoted triple
P: < discoveredOn >
O: > "2024-01-15"^^xsd:date # date comparison
```
**Belirli bir bilginin ne zaman doğru olduğuna inanı ldı ğı bulun:**
```
S: < < < Alice > < knows > < Bob > >> # quoted triple as subject
P: < believedTrueFrom >
O: ? # returns the date
```
**Yanlı ş hale gelen bilgileri bulun:**
```
S: ? # any quoted triple
P: < discoveredFalseOn >
O: ? # has any value (exists)
```
#### Kaynak Sorguları
**Belirli bir kaynağa dayanan tüm bilgileri bulun:**
```
S: ? # any quoted triple
P: < supportedBy >
O: < source:document-123 >
```
**Belirli bir gerçeği destekleyen kaynakları bulun:**
```
S: < < < DrugA > < treats > < DiseaseB > >> # quoted triple as subject
P: < supportedBy >
O: ? # returns source IRIs
```
#### Doğruluk Sorguları
**Bir kişinin doğru olarak işaretlediği ifadeleri bulun:**
```
S: ? # any quoted triple
P: < assertedTrueBy >
O: < person:Alice >
```
**Çelişkili ifadeleri bulun (aynı gerçek, farklı doğruluk):**
```
# First query: facts asserted true
S: ?
P: < assertedTrueBy >
O: ?
# Second query: facts asserted false
S: ?
P: < assertedFalseBy >
O: ?
# Application logic: find intersection of subjects
```
**Güvenilirlik puanı eşik değerinin altı nda olan bilgileri bulun:**
```
S: ? # any quoted triple
P: < trustScore >
O: < 0.5 # numeric comparison
```
### Mimari
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Birden çok bileşende önemli değişiklikler gereklidir:
2026-04-11 01:08:44 +00:00
=======
Birden fazla bileşende önemli değişiklikler gereklidir:
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
#### Bu Depo (trustgraph)
**Şema ilkel öğeleri** (`trustgraph-base/trustgraph/schema/core/primitives.py` )
Değer → Terim yeniden adlandı rması
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Tip ayrı mcı sı na sahip yeni Terim yapı sı
2026-04-11 01:08:44 +00:00
=======
Tip ayrı mcı sı ile yeni Terim yapı sı
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Üçlü, grafik bağlamı için `g` alanı kazanı r
**Mesaj çeviricileri** (`trustgraph-base/trustgraph/messaging/translators/` )
Yeni Terim/Üçlü yapı ları için güncelleme
Yeni alanlar için serileştirme/deserileştirme
**Geçit bileşenleri**
Yeni Terim ve dörtlü yapı ları nı işleyin
**Bilgi çekirdekleri**
Dörtlüleri ve yeniden tanı mlamayı desteklemek için çekirdek değişiklikleri
**Bilgi yöneticisi**
Şema değişiklikleri burada yayı lı r
**Depolama katmanları **
Cassandra: Şema yeniden tasarı mı (Ayrı ntı lar için Uygulama Ayrı ntı ları na bakı n)
Diğer arka uçlar: Daha sonraki aşamalara ertelenmiştir
**Komut satı rı araçları **
Yeni veri yapı ları için güncelleme
**REST API dokümantasyonu**
OpenAPI spesifikasyonunda güncellemeler
#### Harici Depolar
**Python API'si** (bu depo)
Yeni yapı lar için istemci kitaplı ğı güncellemeleri
**TypeScript API'leri** (ayrı depo)
İstemci kitaplı ğı güncellemeleri
**Çalı şma alanı ** (ayrı depo)
Önemli durum yönetimi değişiklikleri
### API'ler
#### REST API
OpenAPI spesifikasyonunda belgelenmiştir
Yeni Terim/Üçlü yapı ları için güncellenmesi gerekecektir
Grafik bağlamı işlemleri için yeni uç noktaları gerekebilir
#### Python API'si (bu depo)
Yeni ilkel öğelerle eşleşen istemci kitaplı ğı değişiklikleri
Terim (önceden Değer) ve Üçlü için bozucu değişiklikler
#### TypeScript API'si (ayrı depo)
Python API'sine paralel değişiklikler
Ayrı sürüm koordinasyonu
#### Çalı şma alanı (ayrı depo)
Önemli durum yönetimi değişiklikleri
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Grafik bağlamı özellikleriyle ilgili kullanı cı arayüzü güncellemeleri
2026-04-11 01:08:44 +00:00
=======
Grafik bağlamı özelliklerini destekleyen UI güncellemeleri
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
### Uygulama Ayrı ntı ları
#### Aşamalı Depolama Uygulaması
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Birden çok grafik depolama arka ucu (Cassandra, Neo4j, vb.) vardı r. Uygulama
aşağı daki aşamalarda gerçekleştirilecektir:
1. **1. Aşama: Cassandra**
Yerel Cassandra deposuyla başlayı n
Depolama katmanı üzerinde tam kontrol, hı zlı yinelemeyi sağlar
Şema, dörtlüler + yeniden tanı mlama için sı fı rdan yeniden tasarlanacaktı r
2026-04-11 01:08:44 +00:00
=======
Birden fazla grafik depolama arka ucu (Cassandra, Neo4j, vb.) bulunmaktadı r. Uygulama,
aşağı daki aşamalarda gerçekleştirilecektir:
1. **1. Aşama: Cassandra**
Kendi geliştirdiğimiz Cassandra deposuyla başlayı n
Depolama katmanı üzerinde tam kontrole sahip olmak, hı zlı yinelemeyi sağlar
Şema, dörtlüler ve yeniden tanı mlama için sı fı rdan yeniden tasarlanacaktı r
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Veri modelini ve sorgu kalı pları nı gerçek kullanı m durumları na göre doğrulayı n
#### Cassandra Şema Tasarı mı
Cassandra, farklı sorgu erişim modellerini desteklemek için birden fazla tablo gerektirir
(her tablo, bölüm anahtarı + kümeleme sütunları aracı lı ğı yla verimli bir şekilde sorgulanı r).
##### Sorgu Modelleri
"quads" (g, s, p, o) ile, her konum belirtilebilir veya joker karakter olabilir ve bu da
16 olası sorgu modeli oluşturur:
| # | g | s | p | o | Açı klama |
|---|---|---|---|---|-------------|
| 1 | ? | ? | ? | ? | Tüm "quads" |
| 2 | ? | ? | ? | o | Nesneye göre |
| 3 | ? | ? | p | ? | Özneye göre |
| 4 | ? | ? | p | o | Özne + nesneye göre |
| 5 | ? | s | ? | ? | Konuya göre |
| 6 | ? | s | ? | o | Konu + nesneye göre |
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
| 7 | ? | s | p | ? | Konu + öneye göre |
| 8 | ? | s | p | o | Tam üçlü (hangi grafikler?) |
| 9 | g | ? | ? | ? | Grafiğe göre |
| 10 | g | ? | ? | o | Grafik + nesneye göre |
| 11 | g | ? | p | ? | Grafik + öneye göre |
| 12 | g | ? | p | o | Grafik + öne + nesneye göre |
| 13 | g | s | ? | ? | Grafik + konuya göre |
| 14 | g | s | ? | o | Grafik + konu + nesneye göre |
| 15 | g | s | p | ? | Grafik + konu + öneye göre |
2026-04-11 01:08:44 +00:00
=======
| 7 | ? | s | p | ? | Konu + özneliğe göre |
| 8 | ? | s | p | o | Tam üçlü (hangi grafikler?) |
| 9 | g | ? | ? | ? | Grafiğe göre |
| 10 | g | ? | ? | o | Grafik + nesneye göre |
| 11 | g | ? | p | ? | Grafik + özneliğe göre |
| 12 | g | ? | p | o | Grafik + özneliği + nesneye göre |
| 13 | g | s | ? | ? | Grafik + konuya göre |
| 14 | g | s | ? | o | Grafik + konu + nesneye göre |
| 15 | g | s | p | ? | Grafik + konu + özneliğe göre |
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
| 16 | g | s | p | o | Tam "quad" |
##### Tablo Tasarı mı
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Cassandra kı sı tlaması : Yalnı zca bölüm anahtarı na göre verimli bir şekilde sorgulayabilirsiniz, ardı ndan
2026-04-11 01:08:44 +00:00
=======
Cassandra kı sı tlaması : Yalnı zca bölüm anahtarı na göre verimli bir şekilde sorgu yapabilirsiniz, ardı ndan
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
kümeleme sütunları üzerinde soldan sağa filtreleme yapabilirsiniz. "g" joker karakterli sorgular için, "g" bir
kümeleme sütunu olmalı dı r. "g" belirtilmiş sorgular için, bölüm anahtarı nda bulunan "g" daha
verimlidir.
**İki tablo ailesi gereklidir:**
**A Ailesi: "g" joker karakterli sorgular** ("g" kümeleme sütunları nda)
| Tablo | Bölüm | Kümeleme | Desteklenen modeller |
|-------|-----------|------------|-------------------|
| SPOG | (kullanı cı , koleksiyon, s) | p, o, g | 5, 7, 8 |
| POSG | (kullanı cı , koleksiyon, p) | o, s, g | 3, 4 |
| OSPG | (kullanı cı , koleksiyon, o) | s, p, g | 2, 6 |
**B Ailesi: "g" belirtilmiş sorgular** ("g" bölüm anahtarı nda)
| Tablo | Bölüm | Kümeleme | Desteklenen modeller |
|-------|-----------|------------|-------------------|
| GSPO | (kullanı cı , koleksiyon, g, s) | p, o | 9, 13, 15, 16 |
| GPOS | (kullanı cı , koleksiyon, g, p) | o, s | 11, 12 |
| GOSP | (kullanı cı , koleksiyon, g, o) | s, p | 10, 14 |
**Koleksiyon tablosu** (döngüleme ve toplu silme için)
| Tablo | Bölüm | Kümeleme | Amaç |
|-------|-----------|------------|---------|
| COLL | (kullanı cı , koleksiyon) | g, s, p, o | Koleksiyondaki tüm "quad"ları numaralandı r |
##### Yazma ve Silme Yolları
**Yazma yolu**: Tüm 7 tabloya ekleyin.
**Koleksiyon silme yolu**:
1. `(user, collection)` için COLL tablosunu yineleyin
2. Her "quad" için, tüm 6 sorgu tablosundan silin
3. COLL tablosundan silin (veya aralı k silme)
**Tek bir "quad" silme yolu**: Tüm 7 tabloya doğrudan silin.
##### Depolama Maliyeti
Her "quad" 7 kez depolanı r. Bu, esnek sorgulama ile
verimli koleksiyon silme birleşiminin maliyetidir.
##### Depolamada Alı ntı lanmı ş Üçlüler
Konu veya nesne kendisi bir üçlü olabilir. Seçenekler:
**A Seçeneği: Alı ntı lanmı ş üçlüleri standart bir dizeye seri hale getirin**
```
S: "< < http: / / ex / Alice | http: / / ex / knows | http: / / ex / Bob > >"
P: http://ex/discoveredOn
O: "2024-01-15"
G: null
```
Tı rnak içinde belirtilen üçlüleri, seri hale getirilmiş bir dize olarak S veya O sütunları nda saklayı n.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Seri hale getirilmiş forma göre tam eşleşme ile sorgulayı n.
Artı : Basit, mevcut indeks kalı pları na uyuyor.
Eksileri: "Tı rnak içinde belirtilen öznenin yüklemesinin X olduğu üçlüleri bul" gibi sorguları yapmak mümkün değil.
2026-04-11 01:08:44 +00:00
=======
Seri hale getirilmiş forma göre tam eşleşme sorgusu yapı n.
Artı : Basit, mevcut indeks kalı pları na uyuyor.
Eksileri: "Tı rnak içinde belirtilen öznenin yüklemesinin X olduğu üçlüleri bul" gibi sorgular yapı lamaz.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
**B Seçeneği: Üçlü Kimlikleri / Hash'leri**
```
Triple table:
id: hash(s,p,o,g)
s, p, o, g: ...
Metadata table:
subject_triple_id: < hash >
p: http://ex/discoveredOn
o: "2024-01-15"
```
Her üçlüye bir kimlik (bileşenlerin karma değeri) atayı n.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Örnek meta veri referansları , kimlik numarası yla üçlüleri belirtir.
Artı : Temiz bir ayrı m, üçlü kimlik numaraları nı n indekslenmesini sağlar.
Eksileri: Üçlü kimliğinin hesaplanması nı /yönetilmesini gerektirir, iki aşamalı aramalar.
**Öneri**: Basitlik için A seçeneğiyle (serileştirilmiş dizeler) başlayı n.
B seçeneği, tı rnak içinde belirtilen üçlü bileşenleri üzerinde gelişmiş sorgu desenleri gerekiyorsa gerekebilir.
ÇIKTI SÖZLEŞMESİ (tam olarak aşağı daki formatı takip etmelidir):
2. **2. Aşama+: Diğer Altyapı lar**
Neo4j ve diğer depolama sistemleri, sonraki aşamalarda uygulanmı ştı r.
Cassandra'dan edinilen deneyimler, bu uygulamaları etkilemiştir.
Bu yaklaşı m, tamamen kontrol altı nda olan bir altyapı da doğrulama yaparak tasarı m riskini azaltı r.
2026-04-11 01:08:44 +00:00
=======
Somutlaştı rma meta veri referansları , kimlik numarası yla üçlülere başvurur.
Artı : Temiz bir ayrı m, üçlü kimlik numaraları nı indekslemek mümkündür.
Eksileri: Üçlü kimliğini hesaplamayı /yönetmeyi gerektirir, iki aşamalı aramalar.
**Öneri**: Basitlik için A seçeneğiyle (serileştirilmiş dizeler) başlayı n.
B seçeneği, tı rnak içinde belirtilen üçlü
bileşenleri üzerinde gelişmiş sorgu desenleri gerekiyorsa gerekebilir.
2. **Faz 2+: Diğer Altyapı lar**
Neo4j ve diğer depolama sistemleri, sonraki aşamalarda uygulanmı ştı r.
Cassandra'dan edinilen deneyimler, bu uygulamaları etkilemiştir.
Bu yaklaşı m, tamamen kontrol altı nda olan bir altyapı da doğrulama yaparak tasarı m risklerini azaltı r.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Tüm depolama sistemlerine yönelik uygulamalara başlamadan önce bu doğrulama yapı lı r.
#### Değer → Terim Yeniden Adlandı rma
`Value` sı nı fı , `Term` olarak yeniden adlandı rı lacaktı r. Bu, kod tabanı ndaki yaklaşı k 78 dosyayı etkilemektedir.
Yeniden adlandı rma, bir zorlama işlevi olarak görev görmektedir: hala ⟦CODE_0⟧'ı kullanan herhangi bir kod...
`Value` , 2.0 ile uyumluluk açı sı ndan gözden geçirilmesi/güncellenmesi gereken bir alan olarak hemen belirlenebilir.
## Güvenlik Hususları
Adlandı rı lmı ş grafikler bir güvenlik özelliği değildir. Kullanı cı lar ve koleksiyonlar,
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
güvenlik sı nı rları dı r. Adlandı rı lmı ş grafikler tamamen veri organizasyonu ve
2026-04-11 01:08:44 +00:00
=======
güvenlik sı nı rları dı r. Adlandı rı lmı ş grafikler tamamen veri düzenlemesi ve
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
somutlaştı rma desteği içindir.
## Performans Hususları
Tı rnak işaretli üçlüler, iç içe derinliğini artı rı r - sorgu performansı nı etkileyebilir.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Verimli grafik kapsamlı sorgular için adlandı rı lmı ş grafik indeksleme stratejilerine ihtiyaç vardı r.
2026-04-11 01:08:44 +00:00
=======
Verimli grafik kapsamlı sorgular için adlandı rı lmı ş grafik indeksleme stratejileri gereklidir.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Cassandra şema tasarı mı , dörtlü depolamayı verimli bir şekilde karşı layacak şekilde tasarlanmalı dı r.
### Vektör Depolama Sı nı rı
Vektör depoları her zaman yalnı zca IRI'lere başvurur:
Asla kenarlar (tı rnak işaretli üçlüler)
Asla literal değerler
Asla boş düğümler
Bu, vektör deposunu basit tutar; adlandı rı lmı ş varlı kları n semantik benzerliğini işler. Grafik yapı sı , ilişkileri, somutlaştı rmayı ve meta verileri yönetir.
Tı rnak içinde belirtilen üçlüler ve adlandı rı lmı ş grafikler, vektör işlemlerini karmaşı klaştı rmaz.
## Test Stratejisi
Mevcut test stratejisini kullanı n. Bu, önemli bir değişiklik olduğundan, yeni yapı ları n tüm bileşenlerde doğru şekilde çalı ştı ğı nı doğrulamak için uçtan uca test paketine kapsamlı bir şekilde odaklanı lmalı dı r.
## Geçiş Planı
2.0, önemli bir değişiklik içeren bir sürümdür; geriye dönük uyumluluk gerekmemektedir.
Mevcut verilerin, yeni şemaya aktarı lması gerekebilir (son tasarı m bazı nda belirlenecektir).
Mevcut üçlüleri dönüştürmek için geçiş araçları nı göz önünde bulundurun.
## Açı k Sorular
## Açı k Sorular
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
**Boş düğümler**: Sı nı rlı destek doğrulandı . Boş düğümler için bir skolemleştirme stratejisi belirlemek gerekebilir (yükleme sı rası nda IRI'lar oluşturmak veya boş düğüm kimliklerini korumak).
**Sorgu sözdizimi** : Alı ntı lanmı ş üçlüleri sorgularda belirtmek için somut sözdizimi nedir? Sorgu API'sini tanı mlamak gerekiyor.
~~**Önerme sözlüğü**~~: Çözüldü. Herhangi bir geçerli RDF önermesi izin verilir, kullanı cı tanı mlı olanlar dahil. RDF geçerliliği hakkı nda minimum varsayı mlar.
Çok az sabit değer (örneğin, bazı yerlerde kullanı lan ⟦CODE_0⟧).
~~**Önerme sözlüğü**:~~ Çözüldü. Herhangi bir geçerli RDF özneli kabul edilebilir,
kullanı cı tarafı ndan tanı mlanmı ş özel özneler de dahil. RDF geçerliliği hakkı nda çok az varsayı m.
Çok az sabit değer (örneğin, bazı yerlerde kullanı lan `rdfs:label` ).
Strateji: Mümkün olduğunca hiçbir şeyi kilitlememeye özen gösterin.
~~**Vektör depolama etkisi**~~: Çözüldü. Vektör depoları her zaman IRI'lere işaret eder.
sadece - asla kenarlara, literal değerlere veya boş düğümlere işaret etmez. Tı rnak işaretli üçlüler ve
yeniden tanı mlama, vektör deposunu etkilemez.
~~**Adlandı rı lmı ş grafik semantiği**~~: Çözüldü. Sorgular varsayı lan olarak
grafiğe yöneliktir (SPARQL davranı şı yla eşleşir, geriye dönük uyumlu). Adlandı rı lmı ş grafiklere veya tüm
grafiklere sorgu yapmak için açı k bir grafik parametresi gereklidir.
2026-04-11 01:08:44 +00:00
=======
**Boş düğümler**: Sı nı rlı destek doğrulandı . Boş düğümler için bir skolemleştirme stratejisi belirlemek gerekebilir (yükleme sı rası nda IRİ'ler oluşturmak veya boş düğüm kimliklerini korumak).
**Sorgu sözdizimi** : Alı ntı lanmı ş üçlüleri sorgularda belirtmek için somut sözdizimi nedir? Sorgu API'sini tanı mlamak gerekiyor.
~~**Önerme sözlüğü**~~: Çözüldü. Herhangi bir geçerli RDF önermesi izin verilir, kullanı cı tanı mlı olanlar da dahil. RDF geçerliliği hakkı nda minimum varsayı mlar.
Çok az sabit değer (örneğin, bazı yerlerde kullanı lan ⟦CODE_0⟧).
~~**Önerme sözlüğü**:~~ Çözüldü. Herhangi bir geçerli RDF özneli kabul edilir,
kullanı cı tarafı ndan tanı mlanmı ş özel özneler de dahil. RDF geçerliliği hakkı nda çok az varsayı m yapı lı r.
Çok az sabit değer (örneğin, bazı yerlerde kullanı lan `rdfs:label` ).
Strateji: Mümkün olduğunca hiçbir şeyi kilitlememeye özen gösterin.
~~**Vektör depolama etkisi**~~: Çözüldü. Vektör depoları her zaman IRI'lara işaret eder.
sadece - asla kenarlara, literal değerlere veya boş düğümlere işaret etmez. Tı rnak işaretli üçlüler ve
yeniden tanı mlama, vektör deposunu etkilemez.
~~**Adlandı rı lmı ş grafik semantiği**~~: Çözüldü. Sorgular, varsayı lan
grafiğe varsayı lan olarak yöneliktir (SPARQL davranı şı yla eşleşir, geriye dönük uyumlu). Açı k bir grafik
parametresi, adlandı rı lmı ş grafiklere veya tüm grafiklere sorgu yapmak için gereklidir.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
## Referanslar
[RDF 1.2 Kavramları ](https://www.w3.org/TR/rdf12-concepts/ )
[RDF-star ve SPARQL-star ](https://w3c.github.io/rdf-star/ )
[RDF Veri Kümesi ](https://www.w3.org/TR/rdf11-concepts/#section-dataset )