Bronveld
Een bronveld is een veld zoals het in het oorspronkelijke systeem bestaat. Het is het vertrekpunt voor mapping, transformatie, validatie en ...
Lees meerEen knowledge graph slaat je data op als een netwerk van knopen (entiteiten) en benoemde relaties ertussen, zodat de betekenis in de verbanden zit en niet enkel in de rijen. Sterk voor vragen over hoe alles samenhangt, van Google's zoekresultaten tot fraudedetectie en GraphRAG.
Een knowledge graph (in het Nederlands soms kennisgraaf) slaat informatie op als een netwerk in plaats van als losse tabellen. De dingen waar het over gaat, klanten, producten, leveranciers, personen, worden knopen. De verbanden ertussen worden benoemde verbindingen: "klant plaatste order", "persoon is bestuurder van bedrijf". De betekenis zit dus niet enkel in de rijen, maar in de manier waarop alles aan elkaar hangt.
Het bekendste voorbeeld draag je elke dag bij je. Zoek je "Taj Mahal" op Google, dan verschijnt er een kaartje met feiten over het monument, en herkent de zoekmachine dat je evengoed de blueszanger kan bedoelen. Dat kaartje komt uit Google's eigen Knowledge Graph, gelanceerd in 2012 onder de slogan "things, not strings": de zoekmachine begrijpt echte dingen en hun relaties, geen losse woorden. Bij de lancering ging het al over honderden miljoenen entiteiten en miljarden feiten ertussen.
Een knowledge graph is opgebouwd uit drie bouwstenen.
Knopen (nodes) zijn de entiteiten: een klant, een product, een factuur. Elke knoop krijgt een label voor zijn type (Klant, Product) en kan eigenschappen dragen zoals een naam of een postcode.
Relaties (edges) verbinden twee knopen en dragen zelf een naam die zegt hoe ze samenhangen: PLAATSTE, LEVERT_AAN, IS_BESTUURDER_VAN. Ze hebben een richting en kunnen ook eigenschappen hebben, bijvoorbeeld de datum van een order.
Een schema of ordening bepaalt welke types knopen en relaties er mogen bestaan, van een eenvoudige indeling tot een uitgewerkte woordenschat voor je hele domein.
Er zijn twee gangbare manieren om zo'n graaf technisch op te bouwen. Ze doen hetzelfde werk, maar leggen de nadruk anders.
RDF-triples volgen een standaard van het W3C. Alles wordt een uitspraak van drie delen: onderwerp, predicaat, object. "Bob kent Alice" is zo'n triple. Elk deel krijgt een wereldwijd unieke identifier (een IRI), zodat je data uit verschillende bronnen aan elkaar kan koppelen. Je bevraagt die data met SPARQL. Ze is sterk wanneer je gegevens over organisaties heen wil delen en combineren.
Labelled property graphs slaan de knopen, relaties en hun eigenschappen rechtstreeks op. De bekendste databank hiervoor is Neo4j, die je bevraagt met Cypher, een taal die mee aan de basis ligt van de ISO-standaard GQL. In Cypher beschrijf je het patroon dat je zoekt, bijvoorbeeld alle klanten die een order plaatsten met een bepaald product erin. Voor ontwikkelaars voelt dit vaak directer, en het presteert goed op diep verbonden vragen.
In klassieke tabellen beantwoord je een verbandsvraag met JOINs die tabellen aan elkaar plakken. Voor één stap gaat dat vlot, maar meerdere stappen ver wordt de query lang en traag. Neem de vraag: welke van onze klanten zijn via een gedeelde bestuurder verbonden met deze ene leverancier? In tabellen rijg je klanten, bestuurders, bedrijven en leveranciers via sleutels aan elkaar, met bij elke stap een JOIN extra. In een knowledge graph volg je gewoon de verbindingen van knoop naar knoop: leverancier, bestuurder, ander bedrijf, klant. Zulke meerstapsvragen (multi-hop) zijn net waar een graaf sneller en leesbaarder werkt.
Data catalogs en metadata
Een data catalog koppelt tabellen, dashboards, eigenaars en definities aan elkaar. Die verbanden zijn zelf een graaf: welke bron voedt welk rapport, wie beheert welke metadata, wat hangt er af van een tabel voor je ze wijzigt.
Aanbevelingen
"Klanten die dit kochten, kochten ook dat." Een webshop of streamingdienst legt via de graaf verbanden tussen wie wat kocht of bekeek, en beveelt op basis daarvan verder aan.
Fraudedetectie
Frauduleuze accounts hangen vaak samen: ze delen een adres, telefoonnummer of toestel. In een graaf springt zo'n ring er meteen uit, terwijl elk account apart bekeken onschuldig lijkt.
GraphRAG
Een variant van retrieval-augmented generation waarbij een taalmodel de relaties in een knowledge graph volgt in plaats van enkel losse tekstfragmenten op te halen. Het model steunt zo op verbonden, gecontroleerde feiten, wat verzonnen antwoorden tegengaat en het antwoord navolgbaar maakt.
Deze twee horen bij elkaar maar zijn niet hetzelfde. Een ontologie is het schema: ze legt vast welke types entiteiten bestaan en hoe ze zich tot elkaar mogen verhouden, zoals een blanco formulier de velden en de regels bepaalt (een Klant heeft een naam, een Order hoort bij precies één Klant). Een knowledge graph is dat schema ingevuld met echte data: de stapel ingevulde formulieren met je klanten en orders erin.
Datakwaliteit maakt of kraakt de graaf
Staan er twee knopen voor dezelfde klant, dan splitst je graaf verbanden die eigenlijk samenhoren en klopt het antwoord niet. Het samenvoegen van zulke dubbels heet entity resolution en is nauw verwant aan master data management. Zonder die opkuis bouw je een net vol gaten.
Niet elke vraag heeft een graaf nodig
Voor optelsommen en rapportage over platte data blijft een klassiek warehouse eenvoudiger en sneller. Een graaf verdient zijn plaats bij vragen over de verbanden zelf, niet bij een simpele som per maand.
Een bronveld is een veld zoals het in het oorspronkelijke systeem bestaat. Het is het vertrekpunt voor mapping, transformatie, validatie en ...
Lees meerEen business key is een herkenbare sleutel uit de werking van het bedrijf, zoals klantnummer, ondernemingsnummer, artikelcode, contractnumme...
Lees meerEen businessbegrippenlijst legt vast wat woorden zoals klant, omzet, marge of actieve gebruiker precies betekenen in je organisatie. Het is ...
Lees meerEen chatbot is software die een gesprek voert met een gebruiker, via tekst of spraak. De eenvoudigste versies volgen vaste regels en keuzeme...
Lees meerChunking is het opknippen van een document in kleinere stukken voor je die embedt en indexeert voor een RAG-systeem. Zo krijgt het taalmodel...
Lees meer