
# Motor za automatsko povezivanje semantičkog grafa za dokazivanje sigurnosnih upitnika u stvarnom vremenu

Sigurnosni upitnici su ključni „gate‑keeper“ u B2B SaaS poslovima. Svaki odgovor mora biti poduprt provjerljivim dokazom – politikama, revizijskim izvješćima, snimkama konfiguracija ili zapisima kontrola. Tradicionalno, timovi za sigurnost, pravne i inženjering provode bezbroj sati tražeći, kopirajući i umetajući odgovarajući artefakt u svaki odgovor. Čak i kada postoji dobro strukturirani repozitorij, ručni radni tok „pretraži‑i‑zalijepi“ sklon je greškama i ne može držati korak s brzinom modernih prodajnih ciklusa.

Upoznajte **Motor za automatsko povezivanje semantičkog grafa (SGALE)** – AI sloj izgrađen s namjerom da kontinuirano mapira novo unesene dokaze na stavke upitnika u stvarnom vremenu. SGALE pretvara statičko spremište dokumenata u živi, upitni **graf znanja**, gdje je svaki čvor (politika, kontrola, zapis, rezultat testa) obogaćen semantičkim metapodacima i povezan s točnim pitanjem(ima) koje zadovoljava. Kad korisnik otvori upitnik, motor trenutačno iznosi najrelevantniji dokaz, pruža ocjene povjerenja i čak predlaže nacrt formulacije temeljene na prethodno odobrenim odgovorima.

U nastavku istražujemo arhitekturu, temeljne algoritme, korake implementacije i stvarni utjecaj SGALE‑a. Bilo da ste voditelj sigurnosti, arhitekt za usklađenost ili product manager koji procjenjuje AI‑poboljšanu automatizaciju, ovaj vodič nudi konkretan plan koji možete usvojiti ili prilagoditi unutar svoje organizacije.

---

## Zašto postojeći pristupi ne uspijevaju

| Izazov | Tradicionalni ručni proces | Osnovna RAG/vektorska pretraga | SGALE (semantički graf) |
|-----------|----------------------------|--------------------------|------------------------|
| **Brzina** | Sati po upitniku | Sekunde za podudarnosti ključnih riječi, ali niska relevantnost | Sub‑sekunda, visokorelevantno povezivanje |
| **Kontekstualna točnost** | Ljudska greška, zastarjeli artefakti | Pronađe slične tekstove, ali propušta logičke odnose | Razumije hijerarhiju politika‑kontrola‑dokaz |
| **Revizijski trag** | Ad‑hoc kopije, bez linije podrijetla | Ograničeni metapodaci, teško dokazati podrijetlo | Potpun graf podrijetla, nepromjenjivi vremenski žigovi |
| **Skalabilnost** | Linearni napor s povećanjem broja dokumenata | Poboljšava se s više vektora, ali i dalje bučno | Graf raste linearno, upiti ostaju O(log n) |
| **Upravljanje promjenama** | Ručna ažuriranja, drift verzija | Potrebno ponovo indeksiranje, bez analize utjecaja | Automatsko otkrivanje razlika, propagacija utjecaja |

Ključni uvid je da **semantički odnosi** – „ova [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) kontrola implementira enkripciju podataka u mirovanju, što zadovoljava pitanje „Zaštita podataka““ – ne mogu se zabilježiti jednostavnim vektorskim ključnim riječima. Potreban je graf u kojem rubovi izražavaju *zašto* je dokaz relevantan, a ne samo *da* dijeli riječi.

---

## Osnovni koncepti SGALE

### 1. Osnova znanja grafa

- **Čvorovi** predstavljaju konkretne artefakte (PDF politika, revizijsko izvješće, konfiguracijska datoteka) ili apstraktne pojmove ([$\text{ISO 27001}$](https://www.iso.org/standard/27001) kontrola, enkripcija podataka u mirovanju, stavka upitnika dobavljača).
- **Rubovi** hvataju odnose poput `implements`, `derivedFrom`, `compliesWith`, `answers` i `updatedBy`.
- Svaki čvor nosi **semantičke embedinge** generirane finetuniranim LLM‑om, **metapodatke** (autor, verzija, tagovi) i **kriptografski hash** za zaštitu od manipulacije.

### 2. Motor pravila za automatsko povezivanje

Motor pravila procjenjuje svaki novi artefakt u odnosu na postojeće stavke upitnika kroz trofazni cjevovod:

1. **Ekstrakcija entiteta** – prepoznavanje naziva entiteta (NER) izdvaja identifikatore kontrola, citate regulativa i tehničke pojmove.
2. **Semantičko podudaranje** – embedding artefakta uspoređuje se s embeddingom stavki upitnika pomoću kosinusne sličnosti. Dinamički prag (prilagođen pojačanim učenjem) određuje kandidatska podudaranja.
3. **Grafičko rezoniranje** – ako se izravni rub `answers` ne može uspostaviti, motor provodi *pretragu puta* (A* algoritam) kako bi inferirao neizravnu potporu (npr. politika → kontrola → pitanje). Ocjene povjerenja agregiraju sličnost, duljinu puta i težine rubova.

### 3. Događajni autobus u stvarnom vremenu

Sve akcije unosa (upload, izmjena, brisanje) emitiraju se kao događaji na Kafka (ili kompatibilni broker). Mikro‑servisi se pretplate na te događaje:

- **Servis za unos** – parsira dokument, izdvaja entitete, kreira čvorove.
- **Servis za povezivanje** – pokreće cjevovod automatskog povezivanja i ažurira graf.
- **Servis za obavijesti** – gura prijedloge u UI, upozorava vlasnike zastarjelih dokaza.

Kako se graf ažurira *čim* dokaz stigne, korisnici uvijek rade s najnovijim skupom veza.

---

## Dijagram arhitekture (Mermaid)

```mermaid
graph LR
    A[Document Upload] --> B[Ingestion Service]
    B --> C[Entity Extraction\n(LLM + NER)]
    C --> D[Node Creation\n(Graph DB)]
    D --> E[Event Bus (Kafka)]
    E --> F[Auto‑Linking Service]
    F --> G[Graph Update\n(answers edges)]
    G --> H[UI Recommendation Engine]
    H --> I[User Review & Approval]
    I --> J[Audit Log & Provenance]
    style A fill:#f9f,stroke:#333,stroke-width:2px
    style J fill:#bbf,stroke:#333,stroke-width:2px
```

Dijagram prikazuje cjelokupni tok od unosa dokumenta do korisničkih prijedloga dokaza. Svi komponenti su stateless, što omogućuje horizontalno skaliranje.

---

## Vodič za implementaciju korak po korak

### Korak 1: Odaberite graf bazu podataka

Izaberite nativnu graf bazu koja podržava ACID transakcije i svojstva grafa – Neo4j, Amazon Neptune ili Azure Cosmos DB (Gremlin API) su provjereni izbori. Osigurajte da platforma nudi **ugrađenu pretragu teksta** i **vektorsko indeksiranje** (npr. Neo4j‑ov vektorski dodatak).

### Korak 2: Izgradite cjevovod za unos

1. **Primatelj datoteka** – REST endpoint zaštićen OAuth2-om. Prihvaća PDF, Word, JSON, YAML ili CSV.
2. **Ekstraktor sadržaja** – Apache Tika za izvlačenje teksta, uz OCR (Tesseract) za skenirane PDF‑ove.
3. **Generator embedinga** – fino‑tuniran LLM (npr. Llama‑3‑8B‑Chat) iza inference servisa (Trino ili FastAPI). Embede pohranjujte kao 768‑dimenzionalne vektore.

### Korak 3: Dizajnirajte ontologiju

Definirajte laganu ontologiju koja obuhvaća hijerarhiju standarda usklađenosti:

```ttl
@prefix ex: <http://example.org/> .
ex:Policy a ex:Artifact .
ex:Control a ex:Concept .
ex:Question a ex:Concept .
ex:answers a ex:Relation .
ex:implements a ex:Relation .
```

Koristite OWL ili SHACL za validaciju dolaznih podataka.

### Korak 4: Implementirajte motor automatskog povezivanja

- **Ocjena sličnosti** – izračunajte kosinusnu sličnost između embedinga artefakta i pitanja.
- **Razmišljanje o putu** – upotrijebite Neo4j‑ovu `algo.shortestPath` za pronalaženje neizravnih veza.
- **Agregacija povjerenja** – kombinirajte sličnost (0‑1), težinu puta (inverzna duljina) i pouzdanost rubova (0‑1) u jedinstvenu ocjenu. Pohranite je kao svojstvo na rub `answers`.

Primjer Cypher upita za kandidatske veze:

```cypher
MATCH (q:Question {id: $qid})
MATCH (a:Artifact)
WHERE vector.cosineSimilarity(q.embedding, a.embedding) > $threshold
WITH q, a, vector.cosineSimilarity(q.embedding, a.embedding) AS sim
OPTIONAL MATCH path = shortestPath((a)-[:implements|derivedFrom*]->(q))
WITH q, a, sim, length(path) AS hops
RETURN a.id, sim, hops,
       (sim * 0.7) + ((1.0 / (hops + 1)) * 0.3) AS confidence
ORDER BY confidence DESC LIMIT 5;
```

### Korak 5: Integrirajte s front‑endom

Izložite GraphQL endpoint koji vraća popis predloženih artefakata za svaku otvorenu stavku upitnika, zajedno s ocjenama povjerenja i isječcima pregleda. UI može prikazati ove prijedloge u akordion komponenti, dopuštajući odgovoru da:

- **Prihvati** – automatski popuni odgovor i zaključi vezu.
- **Odbaci** – navede razlog, što se vraća pojačanom učitelju.
- **Uredi** – doda vlastiti komentar ili priloži dodatni dokaz.

### Korak 6: Uspostavite auditabilnu provenance

Svako stvaranje ruba zapisuje se u nepromjenjivi log (npr. AWS QLDB). Ovo omogućuje:

- **Tragljivost** – tko je povezao koji dokaz, kada i s kojom ocjenom povjerenja.
- **Regulatornu usklađenost** – demonstrira „evidence of evidence“ potrebnu GDPR‑u članka 30 i ISO 27001 A.12.1.
- **Rollback** – ako se politika zastari, graf automatski označava ovisne odgovore za reviziju.

---

## Stvarni učinak: metričke podatke iz pilot projekt

| Metrička | Prije SGALE‑a | Nakon SGALE‑a (3 mjeseca) |
|----------|---------------|---------------------------|
| Prosječno vrijeme po upitniku | 8 sati | 45 minuta |
| Stopa ponovne uporabe dokaza | 22 % | 68 % |
| Ručni revizijski nalazi | 12 po reviziji | 3 po reviziji |
| Zadovoljstvo korisnika (NPS) | 31 | 78 |
| Incidenti odstupanja usklađenosti | 4 / kvartal | 0 / kvartal |

Pilot je proveden u SaaS tvrtki srednje veličine koja obrađuje ~150 dobavljačkih upitnika po kvartalu. Automatizacijom povezivanja dokaza tim za sigurnost je smanjio troškove prekovremenog rada za 40 % i postigao mjerljiv napredak u rezultatima revizija.

---

## Najbolje prakse i zamke koje treba izbjegavati

1. **Ne pretjerujte s automatizacijom** – zadržite ljudsku reviziju za visokorizične stavke (npr. upravljanje ključevima enkripcije). Motor pruža prijedloge, ne konačne odluke.
2. **Održavajte čistoću ontologije** – periodički pregledavajte graf za „siročad“ čvorove i zastarjele rubove; zastarjeli artefakti mogu zavarati model.
3. **Fino podesite pragove** – započnite s konzervativnim pragom sličnosti (0,75) i dopustite da pojačano učenje prilagodi prema prihvaćenim/odbijenim prijedlozima.
4. **Šifrirajte embedinge** – vektori mogu neizravno otkrivati osjetljiv tekst; šifrirajte ih u mirovanju i ograničite opseg upita.
5. **Kontrola verzija politika** – svaku verziju politike pohranite kao zaseban čvor; povežite odgovore s točnom verzijom korištenom u trenutku odgovora.
6. **Praćenje latencije** – preporuke u stvarnom vremenu moraju ostati ispod 200 ms; razmotrite GPU‑akceleriranu inference za visoke opterećenja.

---

## Budući smjerovi

- **Multimodalni dokazi** – proširiti podršku na video zapise demonstracije kontrola, koristeći CLIP embedinge za kombiniranje vizualne i tekstualne semantike.
- **Federirani grafovi** – omogućiti partnerima da dijele podskup svog grafa putem zero‑knowledge dokaza, stvarajući kolaborativni ekosustav usklađenosti bez izlaganja sirovih dokumenata.
- **Explainer AI slojevi** – generirati prirodne jezične objašnjenja za svaku vezu (“Ova SOC 2 kontrola se navodi u odjeljku 4.2 Cloud Security Policy i zadovoljava pitanje ‘Zaštita podataka’”) uz lagani NLG model.
- **Prediktivni motor regulative** – kombinirati SGALE s modelom koji predviđa nadolazeće regulatorne promjene i proaktivno predlaže ažuriranja politika.

---

## Zaključak

**Motor za automatsko povezivanje semantičkog grafa** redefinira način na koji timovi za sigurnost rade s dokazima usklađenosti. Premještanjem s pretrage po ključnim riječima na bogat, rezonirajući graf odnosa, organizacije dobivaju trenutačne, pouzdane veze između stavki upitnika i potpornih artefakata. Rezultat su brži vremena odgovora, veće povjerenje u revizije i živi repozitorij usklađenosti koji raste zajedno s promjenama politika.

Implementacija SGALE‑a zahtijeva discipliniran pristup – odabir prave graf tehnologije, izgradnju ontologije, postavljanje čvrstih cjevovoda za unos i ugradnju ljudske kontrole. Ipak, isplata – mjerljivi dobitci u učinkovitosti, smanjenom riziku i konkurentskoj prednosti u prodajnom ciklusu – opravdava ulaganje.

Ako vaša SaaS tvrtka još uvijek muči ručni radni tok upitnika, razmotrite pilotiranje semantičkog grafa još danas. Tehnologija je zrela, blok‑gradivni elementi su open‑source, a zahtjevi za usklađenost nikada nisu bili veći.