Bilik qrafları və semantik əlaqələr
1) Bilik qrafiki nədir və niyə lazımdır
Bilik Qrafikası (Knowledge Graph, KG) - faktların dəqiq semantika (tiplər, məhdudiyyətlər, mənbələr və fəaliyyət vaxtı) ilə düyünlər (mahiyyətlər) və qabırğalar (münasibətlər) kimi saxlanıldığı mövzu sahəsinin əlaqəli modelidir.
Məqsədlər:- Sistemlər arasında «silosları» çıxarın, kataloqlar və tərifləri unifikasiya edin.
- Cavab vermək (kim? nə? nə vaxt? niyə bağlıdır?) yalnız sətir siyahıları əvəzinə.
- Tövsiyə, antifrod və analitik ssenariləri, həmçinin semantik axtarış/RAS bəsləyin.
2) Əsas komponentlər
Ontologiya: siniflər (tiplər) və xüsusiyyətlər, domenlər/diapazonlar, məhdudiyyətlər, miras.
Mahiyyətlər: konkret obyektlər (istifadəçi, provayder, oyun, əməliyyat, sənəd).
Əlaqələr: «oynayır _ v», «azad», «aid», «korrelyasiya _ s», «olur _ v».
Identifikatorlar: sabit IRIs/UUID/ULID; xarici ID müqayisə strategiyaları.
Zaman və versiyalar: faktların etibarlılıq müddəti (valid_from/valid_to), ontologiya versiyalarının buraxılması.
Mənşəyi: mənbə/fakt sübut (provenance), inam və çəki.
3) Data modelləri və yığın seçimi
RDF/OWL: tripletlər/kvadrupletlər, semantikanın standart səviyyədə təsviri; sorğular - SPARQL; çıxış - rdfs/owl + qaydaları.
Property Graph (Neo4j/JanusGraph/Arango/PGX): düyün və qabırğa xüsusiyyətləri; sorğular - Cypher/Gremlin; tətbiqlər üçün yüksək praktiklik.
Ara taktika: Property Graph kimi saxlamaq, uyğunluq və mübadilə üçün RDF ixrac.
Qayda: Interoperable semantik təbəqə, standartlara uyğunluq və çıxış lazımdır - RDF/OWL seçin; mürəkkəb traversals və mikroservis inteqrasiyası ilə məhsul qrafiki varsa - Property Graph.
4) Ontologiya: düzgün başlamaq üçün necə
Scoop: Domain sərhədlərini, əsas sualları/sorğuları, SLA cavablarını təsvir edin.
Dizayn: 1) əsas siniflər və iyerarxiyalar; 2) rollar/iştirakçılar; 3) hadisələr və sənədlər; 4) geo/vaxt; 5) risklər və siyasətlər.
Razılaşma: Standartlardan istifadə edin (schema. org, FOAF, SKOS) və daxili lüğətlər.
Kiçik, lakin sərt lüğət: daha yaxşı dar, sabit əsas + genişləndirilə bilən subklasslar.
turtle
@prefix ex: <https://kg. example. com/>.
@prefix schema: <http://schema. org/>.
ex:Provider a owl:Class.
ex:Game a owl:Class.
ex:User a owl:Class.
ex:plays a owl:ObjectProperty; rdfs:domain ex:User; rdfs:range ex:Game.
ex:offers a owl:ObjectProperty; rdfs:domain ex:Provider; rdfs:range ex:Game.
ex:launchedAt a owl:DatatypeProperty; rdfs:domain ex:Game; rdfs:range xsd:dateTime.
5) Məlumatların inteqrasiyası və əlaqələrin qurulması
Entity Resolution (ER): dublların birləşməsi (deterministic keys + ML/ünvan/ad/ID qaydaları).
Entity Linking (EL): mətn/log/cədvəllərdəki istinadları KG qovşaqlarına bağlamaq.
Canonicalization: «qızıl» qeyd və alias seçimi; mənbələri və inam saxlamaq.
Yeniləmə axınları: CDC/yeni faktların axını, münaqişələrin gecikmiş həlli.
Vaxt normallaşması: ayrı-ayrılıqda 'event _ time', 'asserted _ at' və 'faktın doğruluğunu' saxlayın.
cypher
MERGE (u:User {uid:$uid})
ON CREATE SET u. name=$name, u. createdAt=timestamp()
ON MATCH SET u. name=coalesce($name,u. name), u. updatedAt=timestamp();
6) Semantik axtarış, embeddinq və RAG
Text → KG: sənədlərdən mahiyyətlərin/əlaqələrin çıxarılması, ontologiyaya mappinq.
Embeddings: düyünlər/atributlar/sənədlər üçün vektorlar; qarışıq axtarış (simbolic + vector).
RAG (Retrieval-Augmented Generation): KG + LLM kontekstindən faktların seçimi; faktuallıq sərt guardrails.
Hybrid Ranking: BM25/keyword + ANN embeddinq + qrafik siqnal (PageRank, fərdi dərəcələr).
yaml rag:
retrievers: [sparql, vector]
must_include_triples: true cite_provenance: true max_hops: 2 guardrails: {no_pii: true, only_verified_edges: true}
7) Validasiya və qaydalar
RDF üçün SHACL: düyün formaları və məhdudiyyətlərin yoxlanılması (kardinallıq, tiplər, nümunələr).
Biznes qaydaları: çıxarılan faktlar üçün rule-engine (SWRL/SHACL Rules/Apache Jena).
Mənbə müqavilələri: KG yükləmədən əvvəl sxemləri/diapazonları yoxlayın.
turtle ex:GameShape a sh:NodeShape;
sh:targetClass ex:Game;
sh:property [ sh:path ex:launchedAt; sh:datatype xsd:dateTime; sh:minCount 1 ];
sh:property [ sh:path ex:offers; sh:class ex:Provider; sh:minCount 1 ].
8) Sorğular və analitika
SPARQL - RDF üzrə bəyannamə sorğuları; alt sorğu, aqreqasiya, reasoning.
Cypher/Gremlin - analitik traversals, path-sorğular, nümunə-matç.
Qarışıq: Əlaqə üçün + KG aqreqatları üçün OLAP vitrinləri (ClickHouse/BigQuery).
sparql
SELECT? game? date WHERE {
?game a ex:Game; ex:launchedAt? date.
?prov a ex:Provider; ex:offers? game; schema:name? name.
FILTER (?date >= "2024-01-01"^^xsd:date)
FILTER (lcase(?name) = "acme")
}
ORDER BY DESC(?date)
9) Keyfiyyət, inam və faktların mənşəyi
Provenance: kim/nə vaxt/haradan təsdiq; imzalar/hashes.
Əminlik (confidence/weight) və prioritet mənbələr.
KG keyfiyyət göstəriciləri: dolğunluq (coverage), dəqiqlik (precision), uyğunluq (consistency), bağlılıq (avg degree, giant component), köhnəlmə (staleness).
Keyfiyyət vitrinləri: SLO: 'freshness <= 24h', 'violations <0. 1%`.
10) Qrafda vaxt və versiyalar
Zamansal qabırğalar: 'valid _ from/valid _ to', 't' tarixi üçün «aktiv» altqraflar.
Ontologiya versiyası: SemVer; qaydaların və formaların miqrasiyası.
Audit, təkrar analitika və təcrübələr üçün qrafik şəkilləri (snapshots).
11) Performans və miqyas
Indekslər: növlərə, açarlara, məşhur yollara görə; xüsusiyyətləri üçün bloom/zone-maps.
Partizanlaşdırma: tenant/region/zaman/alt domen; partiyalararası hopların minimuma endirilməsi.
Caching: materialized paths, precomputed neighborhoods/top-K, nəticə cache sorğular.
Saxlama: disk/yaddaş konfiqurasiyası, SSD/NVMe, sıxılma.
Yeniləmə axınları: «soyuq» təbəqə üçün batches və «isti» təbəqəyə yeniləmə, idempotent apserts.
12) Təhlükəsizlik və giriş
RLS/CLS: düyün/qabırğa/xassə səviyyəsində filtrlər; həssaslıq tags.
PII-maskalama: bağlılığı pozmamaq üçün determinizasiya.
İmza və ixraca nəzarət: kim oxudu/hansı alt qrafları yüklədi.
Multi-tenant: ad məkanları, xaç-tenant əlaqələr siyasəti.
13) MLOps + KG: ikitərəfli inteqrasiya
Features from KG: qrafik fiçalar (PageRank, community, triads) → modellər.
Graph ML: link prediction, node classification, fraud rings.
Back-write insights: Modellər provenance və confidence ilə əlaqələri yaradır/gücləndirir.
Online kontur: KG real vaxt qaydaları və RAS üçün faktların mənbəyi kimi.
14) Antipattern
«Əvvəlcə hər şeyi yükləyəcəyik, sonra ontologiyanı düşünəcəyik». Bu KG deyil, zibil olacaq.
Sabit ID olmadan. Dedup/linklər qırılır, linklər çürüyür.
Vaxt və provenance yoxdur. Aktuallığı və etimadı başa düşmək olmaz.
SELECT/inteqrasiyada «pulsuz» sxemlər. İstehlakçılar qırılır.
Qraf üçün qraf. Heç bir əsas sorğu/cases - ROI yoxdur.
Bütün tapşırıqlar üçün bir mühərrik. İzolyasiya olmadan OLTP/OLAP/Reasoning qarışdırılması.
15) Tətbiqi yol xəritəsi
1. Discovery: suallar, hallarda, SLA cavablar; mənbələrin və lüğətlərin inventarlaşdırılması.
2. Ontologiya-MVP: 20-40 siniflər və əsas əlaqələr; domen sahibləri ilə koordinasiya.
3. ingest axını: sxem müqavilələri, ER/EL, vaxt və mənbələrin normallaşdırılması.
4. Sorğular/vitrinlər: 5-10 kritik sorğular, materiallaşma və onlar üçün indekslər.
5. Keyfiyyət/validasiya: SHACL, coverage/consistency metriklər, alertlər.
6. RAG/Axtarış: hibrid retriever (SPARQL/ANN), guardrails, mənbələrdən sitat.
7. Security/Privacy: RLS/CLS, tokenizasiya, ixrac auditi.
8. Miqyaslandırma: partizan, caching, snapshot, DR/backup.
9. Sabitlik və təkamül: ontologiya/qrafik versiyası, miqrasiya, retro məsləhətlər.
16) Buraxılışdan əvvəl çek siyahısı
- Ontologiya razılaşdırılmış, versiyalar və namespace qeydə alınmışdır.
- ID/alias/ER strategiyaları sənədləşdirilmiş və testlərlə əhatə olunmuşdur.
- Əsas siniflərdə sxem müqavilələri və validatorlar (SHACL) yaşıl rəngdədir.
- Vaxt/validity və provenance hər fakta yazılır.
- Indekslər və partiyalar üst sorğulara uyğunlaşdırılmışdır; p95 latency normal.
- Keyfiyyət metrikləri və risklər daxildir (coverage/consistency/staleness).
- RLS/CLS siyasəti və PII maskası yoxlanılır.
- RAG/axtarış mənbələrdən sitat ilə cavab verir.
- Snapshots/backup/DR test; runbooks miqrasiya var.
17) Mini şablonlar
Cypher: mahiyyət və hadisənin əlaqələndirilməsi
cypher
MATCH (u:User {uid:$uid}), (g:Game {gid:$gid})
MERGE (u)-[r:PLAYS_AT {session:$sid}]->(g)
SET r. startedAt=$t0, r. endedAt=$t1, r. source=$src, r. confidence=0. 92;
Gremlin: ümumi oyunçular üçün ən yaxın provayderlər
groovy g. V(). hasLabel('Provider'). has('name', 'Acme')
.both('offers'). in('plays_at'). out('plays_at'). out('offers'). hasLabel('Provider')
.where(neq('Acme')). groupCount(). order(local). by(values, decr). limit(local,5)
SHACL: istifadəçi forması
turtle ex:UserShape a sh:NodeShape;
sh:targetClass ex:User;
sh:property [ sh:path schema:email; sh:pattern "^[^@]+@[^@]+$"; sh:maxCount 1 ];
sh:property [ sh:path ex:hasCountry; sh:in ("EE" "LT" "LV" "TR" "UA") ].
SPARQL: mənbə ilə izah edilə bilən cavab
sparql
SELECT? provider? game? source WHERE {
?p a ex:Provider; schema:name? provider; ex:offers? g.
?g a ex:Game; schema:name? game.
?stmt prov:wasDerivedFrom? source.
}
LIMIT 10
18) Yekun
Bilik qrafları və semantik əlaqələr müxtəlif cədvəlləri və mətnləri sürətli və izahlı cavablar verən, modellərin keyfiyyətini yaxşılaşdıran və yeni funksiyaların qurulmasını sürətləndirən vahid semantik təbəqəyə çevirir. Uğurun açarı - ciddi ontologiya, təsdiqlənən əlaqələr, faktların vaxtı və mənşəyi, hibrid axtarış/RAG, keyfiyyət metrikası və idarə olunan təkamül. Beləliklə, yalnız «məlumatlar» deyil, hər gün məhsul və həllər üçün işləyən biliklər alacaqsınız.