Kunskapsgrafen som operativ modell
En karta över Nordics dokumentflöde kan visa sex rutor och fem pilar. Det gör den inte till en kunskapsgraf, och det gör den framför allt inte sann.
För dokument 142 behöver Matrix kunna besvara betydligt strängare frågor:
- Vilket system definierades som producent och vilket som mottagare?
- Vilken körning producerade dokumentet?
- Vilken observation visar att importen avvisades?
- Vilken regel kopplar observationen till ett påverkat processteg?
- Vilka källor, revisioner och tider stödjer varje led?
- Vad saknas, och beror luckan på världen, insamlingen eller modellen?
Grafens värde ligger alltså inte i noderna och linjerna. Det ligger i att
relationerna är explicita, källbundna, validerade och möjliga att fråga på ett
reproducerbart sätt (CLAIM-GRAPH-001).
1. Grafbild, grafmodell och kunskapstillstånd
En grafmodell består förenklat av objekt, relationer och regler för vad de betyder. En grafbild är en layout av ett urval ur modellen. Ett kunskapstillstånd lägger dessutom till källor, tid, scope, ofullständighet och eventuella konflikter.
Skillnaden är praktisk. Två identiska bilder kan bygga på helt olika underlag: den ena på versionsbundna källor och gröna integritetsgrindar, den andra på en manuellt ritad PowerPoint. Om gränssnittet bara visar slutbilden ser de lika trovärdiga ut.
Litteraturen använder knowledge graph på flera närliggande sätt och fältet
rymmer olika grafmodeller, scheman, frågespråk och kvalitetsmetoder
(hogan2021knowledgegraphs). I denna bok används en avgränsad operativ
definition:
En Matrix-kunskapsgraf är en tidsatt och källbunden projektion av identifierade entiteter, deras typade relationer och de observationer, evidens och bedömningar som får användas för att förklara ett beslut.
Ordet projektion är avgörande. Grafen är Matrix bild av det som dess
producenter lyckats observera och godta, inte världen själv
(CLAIM-GRAPH-006).
2. Matrix bundlemodell
Matrix grafkontrakt grupperar innehåll i producerbundles. Ett bundle innehåller minst ett schemaversionerat producent-ID samt listor av noder och kanter. Modellen skiljer fyra lager:
| Lager | Fråga | Exempel i Nordic |
|---|---|---|
| definition | Vad är avsett eller deklarerat? | xECM ska ta emot dokument |
| observation | Vad observerades? | import 142 avvisades 09.33 |
| evidence | Vilket underlag bär utsagan? | versionsbundet rejection-record |
| analysis | Vilken härledd bedömning görs? | batchen är inte fullständigt verifierad |
Varje nod och kant ska ha minst en sourceRef. Det gör varje relation
pekbar, men kapitel 4 visade varför en locator inte ensam beskriver
auktoritet, integritet eller full proveniens.
Producenterna är federerade: flera repos och delsystem kan skapa var sitt lokalt bundle. Aggregatet sammanför godkända bundles och lägger även till härledda relationer. Den modellen minskar behovet av en central handskriven karta, men flyttar svårigheten till kontrakt, identitet och integritet.
3. Identitet är federationens hårdaste kontrakt
Anta att två producenter båda emitterar system:xecm, men den ena menar en
logisk produkt och den andra en specifik production-instans. Båda objekten kan
vara schema-giltiga. Ändå har aggregatet fått ett semantiskt fel.
Den nuvarande grafmotorns inkrementella addBundle behåller alla noder i
bundlelistan och kindfrågor, men dess ID-index låter den senast inlästa noden
vinna vid lookup. Detta är en uttryckligen dokumenterad kompatibilitetsregel i
implementationen (MATRIX-GRAPH-CORE). Konsekvensen är att samma graf kan
visa båda objekten i en typfråga men resolvea ID:t till bara det sista.
Det betyder inte att last-write-wins alltid är fel. Det betyder att en merge måste vara avsiktlig och förklarbar. En federerad modell behöver minst:
- namnrymd eller annan global ID-regel,
- deklaration av vem som äger identiteten,
- skillnad mellan samma objekt och liknande objekt,
- kollisionsgrind eller explicit mergepolicy,
- audit av vilket bundle som vann och varför.
RESEARCH-012 testar den konkreta kollisionsrisken innan en produktändring
föreslås (CLAIM-GRAPH-003).
4. Schema är grammatik, integritet är betydelse
JSON Schema kan kontrollera att en kant har from, to, kind och
sourceRefs. Det kan inte ensamt garantera att ändnoderna finns i det
sammanslagna aggregatet, att en ingress har en faktisk provider eller att
varje registrerad producent redovisats.
Matrix kompletterar därför schemat med semantiska grindar
(MATRIX-GRAPH-INTEGRITY):
- en dangling edge vägras alltid,
- en nod utan kanter vägras om den inte är uttryckligen undantagen med orsak,
- en ingress behöver en inkommande
EXPOSES-relation eller ett motiveratproviderUnresolved, - gamla undantag som inte längre behövs synliggörs för borttagning,
- aggregatbygget redovisar registrerade producenter som godkända eller vägrade; tyst bortfall stoppar bygget.
Detta är exempel på skillnaden mellan objektsyntax och grafens
tvärsnittsinvariants (CLAIM-GRAPH-002). W3C:s SHACL visar samma allmänna
idé i RDF-världen: shapes beskriver villkor över en datagraf och valideringen
producerar en rapport (w3c-shacl). Matrix ska inte byta modell bara för att
standarden finns. Jämförelsen är värdefull eftersom den frågar om de egna
grindarna har tydliga mål, severity och maskinläsbara resultat.
5. Härledning skapar ny kunskap—och nytt ansvar
En kant kan vara direkt deklarerad eller härledd. Matrix härleder exempelvis
PROVES mellan en observerad endpoint och en definierad ingress när miljö och
hostname matchar entydigt (MATRIX-PROVES-DERIVATION). Ingen kant skapas vid
fel miljö, saknad kandidat eller tvetydighet.
En härledd kant måste därför kunna besvara:
- vilken regel och regelversion användes,
- vilka inputnoder och källrevisioner deltog,
- när härledningen kördes,
- om resultatet är materialiserat eller räknas vid frågetillfället,
- vilka findings uppstod när en relation inte kunde härledas.
Det sista är lätt att missa. "Ingen PROVES-kant" kan betyda att inget bevis
finns, att observationen är för gammal, att identiteten är tvetydig eller att
producenten inte kördes. Alla fyra ger samma tomma bild men kräver olika
handling.
6. Frånvaro är inte negation
När en nod eller kant saknas i Matrix vet systemet i första hand att den inte finns i den aktuella projektionen. Det vet inte automatiskt att motsvarande objekt eller relation saknas i verkligheten.
För Nordic betyder frånvaron av ett slutkvitto inte "dokumentet levererades inte". Den betyder att slutstatus inte kan styrkas inom aktuellt scope. Ett senare kvitto kan ändra kunskapsläget utan att historien skrivs om.
Matrix integritetsregel för avsiktligt olänkade noder är en bra förebild:
luckan tillåts bara när den är synlig och har en användbar orsak. En sådan
booking är inte ett frikort. När noden senare kopplas ska undantaget bli stale
och tas bort. Detta gör ofullständighet till förvaltat tillstånd
(CLAIM-GRAPH-004).
Ett gränssnitt bör därför skilja minst:
- known present: representerat och styrkt inom angivet scope,
- known absent: en auktoritativ observation stödjer frånvaro,
- unobserved: relevant källa har inte observerats,
- unresolved: observation finns men identitet eller relation kan inte avgöras,
- refused: data fanns men underkändes av en grind,
- out of scope: frågan ingår inte i den aktuella projektionen.
7. Frågan är en del av svaret
Grafdatabasforskning skiljer modeller och operationer för navigation,
mönstermatchning och strukturella frågor (angles2008graphmodels). I Matrix
är följande parametrar en del av ett impactsvars betydelse:
- startnod eller startmängd,
- outgoing, incoming eller båda riktningar,
- tillåtna kanttyper,
- maximalt djup,
- stopp vid vissa nodtyper,
- hur cykler och redan sedda noder hanteras,
- om evidens hämtas och i vilken kantriktning,
- vilken grafrevision frågan kördes mot.
Grafmotorns traverse använder breadth-first search och en global mängd av
redan sedda nod-ID:n. En nod returneras därför via den första väg som når den;
alla alternativa vägar räknas inte upp. Den separata impactBfs behåller av
kompatibilitetsskäl dessutom kantordning och kan i läget both innehålla
dubbletter. Detta är inte nödvändigtvis en bugg. Det är däremot fel att kalla
resultatet "alla förklaringsvägar" (CLAIM-GRAPH-005).
Ett reproducerbart impactsvar bör bära ett query envelope:
graphRevision
queryContractVersion
startIds[]
direction
edgeKinds[]
maxDepth
stopAtKinds[]
includeEvidence
executedAt
resultDigest
limitations[]
Därmed kan audit visa både resultatet och frågan som skapade det.
8. Federerad byggkedja
Figur FIG-05-01 visar den operativa kedjan:
| FIG-05-01 — Federerad väg från källor till beslutbar grafprojektion |
Visa diagramdefinition
flowchart LR
S[Versionsbundna källor] --> P1[Producer A]
S --> P2[Producer B]
P1 --> V{Schema + lokal integritet}
P2 --> V
V -- vägra --> R[Synlig refusal med orsak]
V -- godkänd --> A[Aggregat]
A --> C{Täckning, identitet,<br/>derivability, staleness}
C -- vägra --> R2[Synlig refusal<br/>coverage eller identitet]
C -- godkänd --> D[Härledda kanter]
D --> Q[Versionsbunden frågesemantik]
Q --> U[Påverkan, förklaring,<br/>gränssnitt och beslut]
U --> E[Evidens och audit]
E -. ny observation .-> NEXT[Nästa cykel:<br/>versionsbundna källor]
En refusal är en produktutgång, inte skräp i en logg. Om en producent är registrerad men saknar bundle måste en operatör kunna se producent, förväntad källa, senaste lyckade körning, vägransorsak och vilka frågor som därmed blir ofullständiga. Detta förbinder kunskapsgrafen med coordinatordelen: Matrix måste kunna förklara varför dess egen projektion saknar kunskap.
9. Nordic som operativ graf
En minimal modell kan innehålla:
process:document-delivery -[HAS_STEP]-> step:import-xecm
generator:nordic -[PRODUCES]-> document:142
run:generator-0905 -[GENERATED]-> document:142
run:import-0933 -[USED]-> document:142
run:import-0933 -[GENERATED]-> observation:rejected-142
observation:rejected-142 -[ABOUT]-> step:import-xecm
evidence:xecm-record -[SUPPORTS]-> observation:rejected-142
Kantnamnen är här pedagogiska, inte ett förslag att direkt utöka Matrix vokabulär. Modellen visar tre skilda saker: den avsedda processen, de faktiska körningarna och evidensen för bedömningen.
Frågan "vad påverkas av xECM-avvisningen?" bör inte börja vid komponentens healthnod. Den börjar vid observationen eller dokumentet och följer en deklarerad uppsättning semantiska relationer. Annars blandas komponentliveness med objektsutfall igen.
10. Behövs grafdatabas, RDF eller GQL?
Tre teknikspår bör hållas isär:
| Spår | Styrka | Kostnad/risk |
|---|---|---|
| Nuvarande JSON-bundles + in-memory motor | Enkelt att versionshantera, testa och distribuera | Begränsad frågekraft; egen semantik och skalning |
| Property graph + ISO GQL | Standardiserat språk för property-graph-frågor (iso39075-2024) |
Ny databas, drift, migration och annat transaktionskontrakt |
| RDF + SHACL/SPARQL | Mogna webbstandarder för semantik och shapes | Modellkonvertering, kompetens- och komplexitetskostnad |
Ett teknikbyte ska utlösas av verifierade frågor, volym eller
interoperabilitetsbehov—inte av att ordet graf förekommer. RESEARCH-013
översätter fem verkliga Matrix-frågor till alternativen och jämför resultatet.
11. Konsekvenser för gränssnittet
Ett operativt gränssnitt bör börja med frågor och kunskapstillstånd, inte med en oändlig force-directed graf. En rimlig progression är:
- Konsekvens: vad vet Matrix, vad påverkas och vilket beslut stöds?
- Scope: tenant, miljö, tid, grafrevision och querykontrakt.
- Förklaring: vald väg med kantbetydelser och källor.
- Alternativ: andra kända vägar, konflikter och stoppade traversalgrenar.
- Täckning: saknade, vägrade, stale eller oresolveade producenter.
- Rå graf: expertvy för fri exploration och diagnostik.
Samma modell ska kunna förklara Matrix självt. Producenter, aggregate builds, derivationer, agentruns, refusals och queryresultat bör vara inspekterbara som egna operativa objekt. Annars blir kontrollplanet ett undantag från sin egen evidence-first-princip.
SCREEN-05-01 visar hur frågan, den valda grafprojektionen, relevanta träffar
och en konsekvenskedja kan samlas utan att rågrafen blir startsida. Hela vyn
visas för att behålla orienteringen; inga utsnitt presenteras utan locator.

| SCREEN-05-01 — Landskapsfråga med graf, träffar och konsekvenskedja. Hel konceptvy; graf och träffar är demodata, inte observerat kundläge. |
Praktisk granskningslista
- Namnge beslutet som grafen ska stödja.
- Avgränsa tenant, miljö, tid och systemgräns.
- Lista producenter och auktoritativa källor.
- Definiera global identitet och kollisionspolicy.
- Separera deklarerade, observerade och härledda relationer.
- Kräv source refs och regelversion för varje beslutsrelevant led.
- Validera både bundleform och tvärgående invariants.
- Representera saknat, okänt, unresolved och refused separat.
- Versionsbind queryparametrar och grafrevision.
- Testa alternativa vägar, cykler, djupgränser och kantfilter.
- Visa täckning och vägran bredvid slutsatsen.
- Låt samma krav gälla Matrix egen kontrollplansgraf.
Sammanfattning
En kunskapsgraf är inte trovärdig för att den kan ritas. Den blir operativ när identitet, relationer, källor, scope, ofullständighet och frågor utgör ett testbart kontrakt.
Matrix har redan starka byggstenar: federerade bundles, obligatoriska
sourceRefs, fail-closed integritetsgrindar, producertäckning och konkret
PROVES-härledning. Implementationsgranskningen visar samtidigt två gränser
som måste vara synliga: ID-kollisioner resolveas enligt last bundle wins och
traversal räknar inte upp alla möjliga vägar.
Det rimliga nästa steget är därför inte automatiskt en ny grafdatabas. Det är att göra identitets- och querykontrakten explicita, mutationstesta dem och låta gränssnittet visa grafrevision, täckning och begränsningar tillsammans med svaret.
Läranderesultat
Efter kapitlet ska studenten kunna:
- skilja grafbild, grafmodell och kunskapstillstånd,
- förklara federationens identitetsproblem,
- skilja schemafel från relationella integritetsfel,
- modellera frånvaro utan att göra den till negation,
- reproducera ett impactsvar från dess query envelope,
- argumentera för eller emot en alternativ grafteknik med mätbara behov.
Fördjupningsmaterial
Övningar och laboration
Övningar och laboration
Övning 1: från bild till kontrakt
Rita Nordics dokumentflöde med generator, kö, xECM, dokument 142 och avvisningspost. Skriv därefter för varje nod och kant:
- lager,
- stabil identitet,
- tenant och miljö,
- källreferens,
- valid/observed time,
- om relationen är deklarerad, observerad eller härledd.
Markera vilka pilar i den första bilden som saknade stöd.
Övning 2: sex sorters tomhet
Beskriv ett scenario för known absent, unobserved, unresolved, refused,
out of scope och ett vanligt tomt queryresultat. Ange vilken nästa handling
som är korrekt i varje scenario. Motivera varför samma grå ikon inte räcker.
Övning 3: traversal är ett kontrakt
Bygg en diamantgraf A→B→D och A→C→D. Kör eller simulera breadth-first
traversal med en global seen-mängd.
- Vilken väg till D returneras?
- Hur påverkar kantordningen svaret?
- Vilken fråga kan fortfarande besvaras korrekt?
- Vilken fråga får inte beskrivas som "alla vägar"?
Laboration: två producenter, en operativ projektion
Uppgift
Skapa två små, schema-giltiga producerbundles för Nordic. Det första beskriver
processdefinition och system. Det andra beskriver en importkörning,
observationen rejected och evidensen.
Implementera eller specificera följande grindar:
- varje registrerad producent är accepted eller refused,
- varje kant har existerande ändnoder,
- varje beslutsrelevant nod är länkad eller motiverat undantagen,
- varje nod- och kant-ID är globalt unikt eller omfattas av en explicit mergepolicy,
- varje härledd kant redovisar regelversion och input,
- varje impactsvar sparar query envelope och grafrevision.
Mutationer
Testa minst dessa fel:
- ta bort en ändnod men behåll kanten,
- ge två producenter samma nod-ID men olika kind,
- ta bort producent två ur aggregatet utan refusal,
- sätt
intentionallyUnlinkedutan en användbar orsak, - ändra
maxDepthså att en påverkan försvinner, - lägg till en andra väg till samma nod.
För varje mutation ska rapporten visa om bygget vägras, frågan begränsas eller kunskapstillståndet blir okänt. Tyst grönt är underkänt.
Inlämning
- två bundles och producerregister,
- valideringsrapport före och efter mutationer,
- ett reproducerbart impactsvar med query envelope,
- en kort teknikbedömning: behåll JSON/in-memory eller utred GQL/RDF vidare,
- en skiss av gränssnittets konsekvens-, förklarings- och täckningsnivå.
Bedömning, 20 poäng
| Del | Poäng |
|---|---|
| Identitet, scope och källbindning | 4 |
| Fail-closed integritetsgrindar | 5 |
| Mutationernas bevisvärde | 4 |
| Reproducerbar frågesemantik | 4 |
| Motiverad teknik- och gränssnittsbedömning | 3 |
Godkänt kräver minst 12 poäng och att ID-kollision samt tyst producentbortfall upptäcks.
Källor och begränsningar
Kapitelkällor
| Cite-key/käll-ID | Funktion | Begränsning |
|---|---|---|
hogan2021knowledgegraphs |
Översikt över kunskapsgrafer, modeller, kvalitet och frågor. | Beskriver ett forskningsfält, inte ett krav på viss lagringsteknik. |
angles2008graphmodels |
Grund för att analysera grafmodell och frågeoperationer. | Föregår moderna property-graph-standarder. |
w3c-shacl |
Etablerat exempel på shapes-baserad grafvalidering och valideringsrapport. | Gäller RDF-grafer; adoption skulle kräva modellmappning. |
iso39075-2024 |
Aktuell standard för property-graph-frågespråket GQL. | Standardens existens motiverar inte i sig en grafdatabas. |
| MATRIX-GRAPH-CONTRACT | Noder, kanter, lager och sourceRefs. |
Kontrollerar främst bundleform. |
| MATRIX-GRAPH-CORE | Faktisk merge-, lookup-, traversal- och impactsemantik. | In-memory-motorn representerar inte alla aggregatgrindar. |
| MATRIX-GRAPH-INTEGRITY | Fail-closed regler för dangling edges, orphan-noder och ingress-provider. | En lokal domänprofil, inte generell ontologisk validering. |
| MATRIX-PRODUCER-REGISTRY | Visar den federerade produktionsmodellen. | Registret förändras och ska läsas vid angiven revision. |
| MATRIX-PROVES-DERIVATION | Konkret härledning mellan observation och definition. | En specialiserad regel, inte generell inferensmotor. |
Argumentkarta
Argumentkarta: kunskapsgrafen som operativ modell
Huvudtes
Matrix graf är användbar först när den fungerar som ett kontrollerat kunskapskontrakt: producenter måste redovisas, identiteter vara stabila, relationer kunna härledas, luckor vara synliga och frågornas semantik vara versionsbunden.
Kedja
- En grafbild är bara en möjlig projektion; det operativa värdet kommer från
modellerade relationer och frågor (
CLAIM-GRAPH-001). - JSON Schema kan kontrollera objektform men inte ensam alla relationella
invariants (
CLAIM-GRAPH-002). - Federation skapar en global identitetsdomän och därmed kollisionsrisk
(
CLAIM-GRAPH-003). - Frånvaro i aggregatet betyder inte frånvaro i verkligheten; luckor måste
därför få en uttrycklig status och orsak (
CLAIM-GRAPH-004,CLAIM-GRAPH-006). - Ett impactsvar beror på riktning, djup, kantfilter och vägval. Dessa är del
av kontraktet, inte implementationsdetaljer (
CLAIM-GRAPH-005).
Motbevisande test
Om representativa beslut kan reproduceras med en enklare relationsmodell utan förlust av källbindning, scope, konflikter eller påverkan ska Matrix inte behålla en graf enbart för att visualiseringen är attraktiv.
Faktagranskning och öppna beslut
Kapitelgranskning
Status: första manusutkast 2026-08-10. Intern implementations-, käll- och arkitekturgranskning gjord. Extern grafdatabas-/kunskapsrepresentationsreview och studentpilot återstår.
Faktagranskning
addBundlebehåller alla bundleposter men använder last bundle wins i nod- och kantindex.traverseanvänder BFS med en globalseen-mängd och returnerar därför första upptäckta väg per nod.impactBfsdokumenterar ordning och dubbletter ibothsom fryst kontrakt.- Aggregate build vägrar dangling edges, oförklarade orphan-noder och tyst producentbortfall.
- Ingress-providerregeln är en striktare invariant i den delade Python-predikaten än i den gemensamma TS-delmängden.
Akademisk granskning
- Hogan et al. används för fältöversikt, inte som en enhetlig definition.
- Angles/Gutierrez används för grafmodell och frågeperspektiv, inte för modern produktbenchmark.
- SHACL presenteras som jämförelse för grafvalidering, inte rekommenderad migration.
- ISO GQL presenteras som aktuell standard, inte som krav på grafdatabas.
Arkitekturgranskning
- Identitetskollision har registrerats som
RESEARCH-012, inte ändrats i Matrix. - Alternativ teknik har registrerats som jämförande experiment
RESEARCH-013. - Query envelope är ett bokförslag som behöver tool-contract-review.
- Öppet: bestäm om edge-ID-kollision ska följa exakt samma policy som nod-ID.
- Öppet: kontrollera evidence-kanternas riktning i rik
impactAnalysismot faktisk domänvokabulär innan den används som generell undervisningsregel.
Pedagogisk granskning
- Nordic-fallet binder definition, observation, evidens och analysis till en och samma graf.
- Diamantövningen visar konkret varför reachability och alla vägar är olika frågor.
- Laborationen mutationstestar både lokal validitet och federation.
Öppna beslut
- Ska query envelope bli gemensamt Matrix-kontrakt eller bara auditformat?
- Vilken identitetsmyndighet äger globala graf-ID:n?
- Behövs path enumeration i produkten, eller räcker reachability plus en förklaringsväg?
- Vilka fem verkliga frågor ska ingå i SHACL/GQL-jämförelsen?
Kapitelkontrakt
Syfte
Förklara hur Matrix graf fungerar som en federerad, validerad och frågbar projektion av systemlandskapet, samt varför identitet, ofullständighet och frågesemantik är viktigare än grafvisualiseringen.
Lärandemål
Studenten ska kunna skilja grafmodell från grafbild, analysera skillnaden mellan schema och semantisk integritet, modellera producerfederation och bedöma hur riktning, djup och vägval påverkar ett impactsvar.
Fallstudiehändelse
Nordics dokument 142 har producerats men avvisats vid import. Studenten bygger en graf som kan förklara både flödet, observationen och det som ännu är okänt utan att uppfinna relationer.