
# Դինամիկ գիտելիքի գրաֆի հարուստացում իրական‑ժամանակի հարցագրության համատեքստավորման համար

## Ներածություն

Անվտանգության հարցագրությունները և համահունչության ստուգումները դարձան խառնարդրավտակ fast‑growing SaaS կազմակերպությունների համար: Թիմները ծախսում են անշրջելի ժամեր ճիշտ քաղաքականության կետի որոնմանը, ապրուստը դուրս բերելու համար փաստաթղթային պահոցից և նույն պատասխանի կրկնակի գրման համար յուրաքանչյուր նոր վաճառողի հարցման հետ: Մինչդեռ մեծ լեզվի մոդելները (LLM‑ները) կարող են գեներացնել բազմակլոր պատասխաններ, դրանք հաճախ բաց թողնում են **կանոնակարգային նուանցը**, որը փոխվում է օրից օրվա՝ նոր ուղեցույցների փիլիքը` Եվրոպայի Տվյալների Գնայման Բառարանից (EDPB), թարմացված [NIST CSF](https://www.nist.gov/cyberframework) (օրինակ՝ NIST SP 800‑53) վերահսկողության հավաքածուից կամ նոր հրապարակված [ISO 27001](https://www.iso.org/standard/27001) հավելվածից:

**Procurize**‑ը լուծում է այս խնդիրը **Դինամիկ Գիտելիքի Գրաֆի Հարուստացում Քարտալույս (DKGEE)**-ի միջոցով: this engine continuously consumes real‑time regulatory feeds, maps them onto a unified knowledge graph, and supplies contextual evidence that is instantly available to the questionnaire authoring UI. The result is a *single source of truth* that evolves automatically, cuts the response time from days to minutes, and guarantees that every answer reflects the latest compliance posture.

In this article we will:

1. Explain why a dynamic knowledge graph is the missing link between AI‑generated drafts and audit‑ready answers.  
2. Walk through the architecture, data flow, and core components of the DKGEE.  
3. Show how to integrate the engine with Procurize’s existing task‑management and commenting layers.  
4. Present a real‑world case study with measurable ROI.  
5. Offer practical guidance for teams looking to adopt the engine today.

---

## 1. Ինչու՞՝ կայուն տեղեկատվական հիմք չեն բավարարում

| Πρόβλημα | Կայուն տեղեկատվական բնակարան | Դինամիկ գիտելիքի գրաֆ |
|----------|------------------------------|------------------------|
| **Կանոնակարգի թարմացումներ** | Աստիճանաբար ներմուծում, թարմացումները արագում են չհատված շաբաթներ: | Ավտոմատ տվյալների ներմուծում, թարմացումները րոպեների մեջ: |
| **Միջբաղկընդունման քարտեզավորում** | Ձեռքսեղմված քարտեզային աղյուսակները ձախողում են համահունչության հետ: | Գրաֆ‑բաժինների կապերը շարունակում են համարյա՝ նոր հանգույցները հայտնվելուց: |
| **Համատեքստային ապրուսի որոնում** | Բանառավելում աջակցության որոնումը տալիս է աղամոտ արդյունքներ: | Սեմանտիկ գրաֆի գնումը ապահովում է ճշգրիտ, աղբյուր‑հետևող ապրուս: |
| **Աուդիտանշելիություն** | Չկա ավտոմատ փոփոխությունների մատյանը: | Ներառված տարբերակավորումը և ծածկագրությունը յուրաքանչյուր հանգույցի համար: |

Կայուն պահոցը կարող է պահել քաղաքականությունները, բայց չի կարող *հասկանալ* թե ինչպես նոր կանոնակարգ — ինչպե՞ս GDPR անկանակը — փոխում է գոյական ISO վերահսկողության իդեալը: DKGEE-ն լուծում է սա, **մոդելավորելով կարգակարգային էկոս스템ը գրաֆի տեսքով**, որտեղ յուրաքանչյուր հանգույցը ներկայացնում է հոդված, ուղեցույց կամ ապրու, իսկ ծավալները հասցնում են հարաբերություններ, ինչպիսիք են *«պահանջում է»*, *«վերադասում է»* կամ *«քարտեզավորում է»*: Նոր կարգակարգի հայտնվելուց հետո, գրաֆը **իրական‑ժամանակով** զարգանում է, պահպանելով պատմությունը և կատարելով ազդեցությունը առկա պատասխանների վրա անմիջապես տեսանելի:

---

## 2. Ճարտարապետության ակնարկ

```mermaid
graph TD
    A["Կանոնակարգի տվյալների հավաքիչներ"] --> B["Ներմուծման ծառայություն"]
    B --> C["Նորմալիզացիա և ապստամբության դուրսբերում"]
    C --> D["Գրաֆի թարմացում"]
    D --> E["Դինամիկ գիտելիքի գրաֆ"]
    E --> F["Համատեքստային որոնման ծառայություն"]
    F --> G["Procurize UI (հարցագրումներ կառուցող)"]
    G --> H["LLM Draft Generator"]
    H --> I["Human‑in‑the‑Loop Review"]
    I --> J["Վերջնական պատասխանների պահոց"]
    J --> K["Աուդիտ‑ճարտարագիտություն և տարբերակավորում"]
```

### 2.1 Կենտրոնական բաղադրիչներ

1. **Կանոնակարգի տվյալների հավաքիչներ** – Կապիչները պաշտոնական աղբյուրների (EU Official Journal, NIST RSS, ISO նորատարմացումներ), համայնքային աղբյուրների (GitHub‑ում պահպանված համահունչության կանոններ) և վաճառողի‑պատկանու քաղաքականության փոփոխությունների համար:  
2. **Ներմուցման ծառայություն** – Легка микросервис написан на **Go**, который проверяет корректность полученных данных, обнаруживает дубли и отправляет сырые данные в Kafka‑топик.  
3. **Նորմալիզացիա և ապստամբության դուրսբերում** – Օգտագործելով **spaCy** և **Hugging Face** անուն‑ենտիտետ մոդելները, որոնք հատուկ վերապատրաստված են  դատավճարային տեքստի համար, դուրս բերում են §§, 定義 և հղումներ:  
4. **Գրաֆի թարմացում** – Կատարում է **Cypher** պահանջներ **Neo4j**‑ում, ստեղծելով կամ թարմացնելով հանգույցները և կապերը, միաժամանակ պահպանելով տարբերակավորման պատմությունը:  
5. **Դինամիկ գիտելիքի գրաֆ** – Պահում է ամբողջ կարգակարգային էկոսիստեմը: Յուրաքանչյուր հանգույցի հատկություններ են `id`, `source`, `text`, `effectiveDate`, `version`, `confidenceScore`.  
6. **Համատեքստային որոնման ծառայություն** – RAG‑նշանված ծառայություն, որը ստանում է հարցագրության հարցը, կատարում է **սեմանտիկ գրաֆի փողասեղում**, կարգավորում է հավասարակությունները և վերադարձնում է JSON‑պատասխան:  
7. **Procurize UI ինտեգրացիա** – Ֆրոնտ‑ենդը օգտագործում է ամբողջ պատասխանի վերնախվածը և անմիջապես ցույց է տալիս առաջարկները յուրաքանչյուր հարցի ներքևում՝ մեկնաբանություն և “Apply to Answer” կոճակների հետ:  
8. **LLM Draft Generator** – **GPT‑4‑Turbo** մոդելը, որը օգտագործում է վերադարձված ապրուսները որպես հիմք՝ ունենալու տարբերություն:  
9. **Human‑in‑the‑Loop Review** – Գրավորները կարող են ընդունել, խմբագրել կամ մերժել դասեր, մեծացնել հաշվառվածություն:  
10. **Վերջնական պատասխանների պահոց և աուդիտ‑ճարտարագիտություն** – Պատասխանները պահվում են **AWS QLDB**‑ում անփոփոխ արձանագրությամբ, որտեղ ներառում են գաղտնիքի ҡалորի օգտագործված գրաֆի զգեստը:

---

## 3. Տվյալների հոսք – Անձրեւից՝ Պատասխան

1. **Δημιουργία feed** – Դրանց նոր NIST SP 800‑53 տարբերակը հրապարակվում է: Feed Collector-ը քայծում է XML-ը, նորմալացված JSON‑ում և ուղաձևում Kafka‑ին:  
2. **Ելք** – Named‑Entity Service‑ը նշում է յուրաքանչյուր վերահսկողություն (`AC‑2`, `AU‑6`) և համապատասխան ուղեցույցները:  
3. **Գրաֆի փոփոխություն** – `MERGE`‑ակցiyalar ավելացնում են նոր հանգույցները կամ թարմացնում են `effectiveDate`‑ը արդեն գոյություն ունեցողների: `OVERWRITES` ծածկագրի կապը հանդես է գալիս նոր և հին տարբերակների միջև:  
4. **Snapshot‑ստեղծում** – Neo4j-ի **temporal plugin**‑ը հավաքում է սկիզբ ID (`graphVersion=2025.11.12.01`).  
5. **Հարցը** – Անվտանգության անալիստը բացում է հարցարքը “Ինչպե՞ս կառավարում եք հաշվի տրամադրումը?”  
6. **Контекстуальный поиск** – Retrieval Engine‑ը հարցում է գրաֆին `AC‑2`‑ի հետ կապված հանգույցների համար, օրինակ՝ համակարգված SaaS‑ի `IAM` բաժին: Ավարտում չպետք է լինի երկու քաղաքականության հատված և վերջին աւգնումի հաշվետվություն:  
7. **LLM Draft** – LLM‑ը ստանում է խնդիրը և ապրուսները, գեներացնում է կոնքրետ պատասխան, ներառելով ապրուսների ID‑ները:  
8. **Human Review** – Անալիստը ստուգում է հղումները, ավելացնում ներքին գործընթացի փոփոխություն և ընդգրկում:  
9. **Audit Log** – Համակարգը գրանցում է գրաֆի snapshot‑ը, ապրուսների ID‑ները, LLM‑ի տարբերակը և օգտագործողի ID‑ն:  

Այս բոլոր քայլերը կատարվում են **30 վայրկյանից փոքր** միջանկյալ հարցի համար:

---

## 4. Կատարման ուղղորդում

### 4.1 Պահանջվող պարամետրեր

| Պարամետր | Առաջարկված տարբերակ |
|----------|----------------------|
| Neo4j | 5.x (Enterprise) |
| Kafka | 3.3.x |
| Go | 1.22 |
| Python | 3.11 (spaCy & RAG) |
| LLM API | OpenAI GPT‑4‑Turbo (կամ Azure OpenAI) |
| Cloud | AWS (EKS‑ում ծառայություններ, QLDB‑ում audit) |

### 4.2 Քայլ‑ը‑քայլ տեղադրման պլան

1. **Развёртывание Neo4j** – Включить плагины **Temporal** и **APOC**, создать базу `regulatory`.  
2. **Создание Kafka‑топиков** – `regulatory_raw`, `graph_updates`, `audit_events`.  
3. **Настройка Feed Collectors** – Использовать RSS‑ленты EU Gazette, JSON‑ленты NIST и webhook‑ы GitHub‑а для community‑правил. Сохранить креды в **AWS Secrets Manager**.  
4. **Запуск Ingestion Service** – Docker‑изировать Go‑службу, задать переменную `KAFKA_BROKERS`. Мониторинг через **Prometheus**.  
5. **Развёртывание Entity Extraction** – Сборка Docker‑образа с `spaCy>=3.7` и кастомной юридической NER‑моделью. Подписка на `regulatory_raw` и публикация нормализованных сущностей в `graph_updates`.  
6. **Graph Updater** – Написать stream‑processor (например, **Kafka Streams** на Java), который читает `graph_updates`, формирует Cypher‑запросы и исполняет их в Neo4j. Каждое изменение маркировать correlation‑ID.  
7. **RAG Retrieval Service** – Открыть FastAPI‑эндпоинт `/retrieve`. Реализовать семантическую схожесть через **Sentence‑Transformers** (`all-MiniLM-L6-v2`). Сервис делает двухшаговый обход: **Question → Relevant Control → Evidence**.  
8. **Интеграция с UI Procurize** – Добавить React‑компонент `EvidenceSuggestionPanel`, вызывающий `/retrieve` при фокусе на поле вопроса. Показать результаты с чекбоксами «Insert».  
9. **LLM Orchestration** – Воспользоваться OpenAI Chat Completion, передавая полученную апрусу как system‑message. Сохранять `model` и `temperature` для воспроизводимости.  
10. **Audit Trail** – Lambda‑функция, фиксирующая каждый `answer_submitted` в QLDB, записывающая SHA‑256 хеш ответа и ссылку на snapshot‑графа (`graphVersion`).  

### 4.3 Լավագույն փորձի ուղեցույցներ

- **Versión‑պինդում** – Միշտ պահպանեք ճիշտ LLM տարբերակը և գրաֆի snapshot‑ը յուրաքանչյուր պատասխանի հետ:  
- **Տվյալների պահպանում** – Կանոնակարգի թարմեցումների կաղապարները պահեք ամենայնը **7 տարին**՝ եթե հարկային պահանջները դա պահանջում են:  
- **Անվտանգություն** – Կոդավորեք Kafka‑հոսքերը TLS‑ով, ակտիվացրեք Neo4j‑ի role‑based access control, սահմանեք QLDB‑ի գրառման արտոնությունները միայն audit‑Lambda‑ին:  
- **Նացունակություն** – Դիտողությունը Retrieval Service‑ի շտապը 200 ms‑ի ներքևում, otherwise set alerts.

---

## 5. Իրավաբատի դեպքի ուսումնական օրինակ

**Կંપની:** SecureSoft, միջին SaaS պլատֆորմ, որը աշխատում է առողջապահական տվյալների հետ:

| Կփիքս | Նախքան DKGEE | DKGEE-ի կիրառության 3‑ամիսյան պարբերություն |
|-------|--------------|---------------------------------------------|
| Չափչատ ուղված հարցի պատասխանման զբաղվածություն | 2.8 ժամ | 7 րոպե |
| Ձեռնակետային ապրուսի որոնում (սպասարկող-ժամ) | 120 h/ամիս | 18 h/ամիս |
| Կանոնակարգային սխալների հանդիպում audits‑ում | 5 წელი մեկ | 0 (սխալ չկան) |
| Համախմբման թիմի բավարարողը (NPS) | 28 | 72 |
| ROI (աշխատավարձի խնայվածք) | — | تقریباً $210k |

**Աճում հաջողության գործոնները**

1. **Իրադարձիկ կանոնակարգային համատեքստ** – NIST‑ի SC‑7 թարմացումը ստեղծեց տեղափոխում UI‑ում, prompting թիմին վերանայել առկա պատասխանները:  
2. **Ապրուսի բնութագրիչ** – Յուրաքանչյուր պատասխան պարբերեցին clickable հղումներ, որոնք ներգրել են auditors‑ին հաղթահարող հարցերը:  
3. **Կրկնակի ախտագումարտում** – Գրաֆը բացացրել է duplicate evidence‑ների պահպանումը տարբեր ապրանքների համար, չպետք էր բեռնագումարներ 30% կրճատված:  

SecureSoft‑ը պլանավորում է ընդլայնել համակարգը **privacy impact assessments (PIA)**‑ների համար և միավորել CI/CD pipeline‑ի հետ՝ every release-ի վերաբերյալ policy‑ի ավտոմատ ստուգում կատարելը:

---

## 6. Հաճախակի տրվող հարցեր

**Հ1. Կարո՞ղ էս համակարգը աշխատել ոչ‑անգլերեն կանոնակարգների հետ?**  
Այո։ Անպատկերի ելքային պելիցները ներառում են բազմալեզու մոդելներ, և կարող եք ավելացնել լեզվի‑որոշված տվյալների հավաքիչներ (այսպիսի՝ ճապոնական APPI, բրազիլական LGPD)՝ գրաֆի հանգույցները պետք է ապահովեն բովանդակության լեզվի թեգեր:

**Հ2. Ինչպե՞ս եք վարում հակասական կանոնակարգերը?**  
Երկու հանգույցների միջև, որոնք overlapping scope‑ով, բայց տարբեր պահանջներով, ավտոմատ ստեղծվում են `CONFLICTS_WITH` կապերը: Retrieval Service‑ը հաշվում է `confidenceScore`‑ը՝ կանոնակարգի արխիտեկտուրային կարգը (օր. GDPR > ազգային օրենսդրություն) քննարկելով:

**Հ3. Կապի vendor‑lock‑in‑ը լինի՞ արդյոք?**  
Բոլոր հիմնական բաղադրիչները բաց աղբյուր են (Neo4j, Kafka, FastAPI): Միակ արտաքին ծառայությունը LLM‑ն է, բայց հնարավոր է փոխարինել ցանկացած մոդելի հետ, որն համապատասխանում է OpenAI‑compatible endpoint‑ի հաշվարկին:

**Հ4. Ի՞նչ են տվյալների պահման քաղաքականությունները գիտելիքի գրաֆի համար?**  
Սպասում ենք **time‑travel** մոտեցում՝ պահել բոլոր հանգույցների տարբերակները մշտապես (immutably) և 3 տարիներ հետո տեղափոխել հին տարբերակները սառը պահեստավորում, կազմելով հասանելի միակ ակտիվ պատկերացումները օրվա ընթացքում:

---

## 7. Ինչպես սկսել այսօր

1. **Ծրագրման շերտի փորձ** – Ընտրեք մեկ կանոնակարգի աղբյուր (օրինակ՝ [ISO 27001](https://www.iso.org/standard/27001)) և գծեք այն թեստական Neo4j instance‑ում:  
2. **Sample Retrieval** – Օգտագործեք `sample_retrieve.py`‑ը, որպեսզի հարցնե’ “What is the data retention policy for EU customers?” և ստուգեք վերադարձված ապրուսների հանգույցները:  
3. **UI Sandbox‑ին ինտեգրում** – Դեպի staging անբաժինում տեղադրեք UI‑ի բաղադրիչը, թույլ տվեք փոքրից մի անդամների համար “Apply evidence” աշխատանքը:  
4. **Չափվեր** – Հետևեք սկզբնական չափանիշներին (պատասխանիում մեկ հարցի համար სათնաւոր կամխված օգտ․) և համեմատեք երկու շաբաթների ընթացքում:

Եթե ուզում եք մասնակի ձեռնարկում, դիմեք Procurize պրոֆեսիոնալ ծառայությունների թիմին **30‑օրվա արագացման պաթ**‑ի համար:

---

## 8. Ապագա ուղղություններ

- **Federated Knowledge Graphs** – Թույլ տալ բազմաթիվ կազմակերպությունների անամակները կիսվել անանուն կանոնակարգի քարտեզավորումներով՝ պահպանելով տվյալների ծանրությունը:  
- **Zero‑Knowledge Proof Auditing** – Աճել հնարավորություն՝ auditors‑ը հաստատեն համագործակցված պատասխանը առանց իրական ապրուսների բացահայտման:  
- **Predictive Regulation Forecasting** – Գրաֆը համակցելով ժամանակացույց մոդելների, կանխատեսեք մոտ ապագայում կանոնակարգի փոփոխությունները և կանխադրվող քաղաքականությունների փոփոխությունները:

Դինամիկ գիտելիքի գրաֆը ոչ մի կայուն պահոց չէ, այն **կենդանի համընկնդրող համակարգ** է, որը աճում է կարգակարգային կապավորման հետ և ուժեղացնում AI‑դրիվանյութը մեծ տարիքի մակարդակով:

---

## <span class='highlight-content'>Տե՛ս</span> նաև

- [Dynamic Knowledge Graph Enrichment for Real‑Time Questionnaire Contextualization (Video Overview)](https://www.youtube.com/watch?v=example)