Narrative Shield is het door AI ondersteunde StratCom-beslissingsondersteuningsplatform van Corvus Intelligence — een gecentraliseerde console voor cognitieve domeinoperaties die de volledige cyclus van strategische communicatie-effecten bestrijkt. In tegenstelling tot puntoplossingen die zich alleen richten op detectie of alleen op inhoudsgeneratie, is Narrative Shield georganiseerd rond drie onderling verbonden operationele stromen: een reactieve stroom voor permanente dreigingsmonitoring, een proactieve stroom voor geplande beïnvloedingsoperaties en een beoordelingsstroom voor na-actie-analyses. Dit artikel geeft een technische doorloop van de architectuur van elke stroom en de backend- en frontend-engineeringbeslissingen die ze ondersteunen.

Het platform is gebouwd op .NET 8 / ASP.NET Core voor de backend-API, React 18 met TypeScript en Vite op de frontend, en integreert de Anthropic Claude API voor alle door AI ondersteunde redeneeringstaken. De implementatie is Docker-gebaseerd met een REST API die voldoet aan OpenAPI 3, en het systeem integreert met OpenTAKServer voor veldbezorging van goedgekeurde StratCom-producten.

Reactieve stroom: pijplijn voor permanente narratiefmonitoring

De reactieve stroom vormt de ruggengraat van continue monitoring van Narrative Shield. Hij draait als een persistente achtergrondservice in de .NET-backend, pollt geconfigureerde signaalbronnen op een configureerbaar interval (standaard: 5 minuten) en stuurt elk opgenomen signaal door een meerfasige verwerkingspijplijn voordat gekwalificeerde detecties aan de operatorwachtrij worden toegevoegd.

De pijplijnfasen zijn: opname en normalisatie, sleutelwoordtaxonomie-matching, 5-factor-ernstscoring, constructie van propagatieketengrafiek, generatie van Handelingsopties en invoeging in de operatorwachtrij. Elke fase is geïmplementeerd als een onafhankelijke service met een gedefinieerde interface, zodat afzonderlijke fasen kunnen worden vervangen of uitgebreid zonder de rest van de pijplijn te beïnvloeden.

Het 5-factor-ernstscoringsalgoritme

Ernstscoring is de kernkwantitatieve stap in de reactieve stroom. Elk gedetecteerd narratief wordt beoordeeld op vijf onafhankelijke dimensies:

Bereik — het geschatte publiek dat aan het narratief is blootgesteld op het moment van detectie, afgeleid van account-volgersaantallen, cross-platform duplicatie en geschatte organische versterkingssnelheid. Bereik is log-genormaliseerd om te voorkomen dat accounts met veel volgers scores in alle dimensies domineren.

Snelheid — de propagatiesnelheid gemeten als de helling van bereik over het voorafgaande 6-uur observatievenster. Een narratief dat zijn publiek in twee uur heeft verdubbeld, scoort hoger op snelheid dan een narratief dat hetzelfde absolute publiek in 48 uur heeft bereikt. Snelheid is het betrouwbaarste vroege-waarschuwingssignaal voor gecoördineerd inauthentiek gedrag.

Sentimentpolariteit — de mate van vijandigheid of schade gericht op de bewaakte entiteit, gescoord door de Claude API op een schaal van -1,0 tot +1,0 waarbij de polariteitsmagnitude wordt omgezet naar 0–100 voor de ernstscorebijdrage. De API-prompt bevat entiteitscontext zodat dubbelzinnige politieke taal wordt beoordeeld ten opzichte van het specifieke bewaakte onderwerp in plaats van generiek.

Doelgroepuitlijning — hoe nauw de waargenomen verspreiding van het narratief aansluit bij de demografische en psychografische profielen van de gedefinieerde prioriteitsgroepen van de bewaakte entiteit. Deze factor gebruikt de doelgroepsegmentkaarten geconfigureerd in het doelgroepkaartvormingspaneel en kruisverwijst geografische verspreidingsgegevens uit de opnamelaag.

Brongeloofwaardigheid — een samengestelde autoriteitscore voor de originerende en top-versterkende accounts, afkomstig uit het Bronregister dat door operators wordt bijgehouden en continu wordt bijgewerkt vanuit gedragssignalen. Accounts met een vastgestelde geschiedenis van gecoördineerd inauthentiek gedrag ontvangen negatieve geloofwaardigheidscorrecties.

De vijf dimensiescores worden gecombineerd tot één ernstindex van 0–100 met behulp van per-onderwerp configureerbare gewichten. Standaard zijn de gewichten gelijk (0,2 per factor). Onderwerpbeheerders kunnen gewichten aanpassen via het scoringsconfiguratiepaneel; een strijdkrachtbeschermingsonderwerp kan bijvoorbeeld de doelgroepuitlijning en brongeloofwaardigheid zwaarder wegen, terwijl een strategisch narratiefonderwerp bereik en snelheid zwaarder kan wegen.

Belangrijk inzicht: Het 5-factor-model is bewust opgesplitst in plaats van monolithisch. Operators die een ernstscore in twijfel trekken, kunnen elke factor afzonderlijk inspecteren en precies begrijpen welke dimensies de beoordeling hebben bepaald — deze transparantie is een vereiste voor menselijk toezicht op beslissingsmomenten, en voldoet aan het NATO AI-principe van verklaarbaarheid op het bewijsniveau, niet alleen op het conclusieniveau.

Constructie van propagatieketen-grafiek met Cytoscape.js

Zodra een narratief de ernstdrempel overschrijdt, bouwt de reactieve stroom een propagatieketen-grafiek om te visualiseren hoe de inhoud zich heeft verspreid van originerende bronnen via versterkernetwerken naar doelgroepen. De grafiek wordt in de frontend gerenderd met Cytoscape.js, gekozen vanwege de prestaties met grote schaarse grafieken en de ondersteuning voor aangepaste lay-outalgoritmen die geschikt zijn voor gerichte informatiestroomvisualisaties.

De grafiekconstructie begint met de beginknopen uit het Bronregister: bekende accounts van de tegenstander en coördinatieclusters die zijn gekoppeld aan het bewakingsonderwerp. De relatiegegevens van de opnamelaag — antwoordketens, herbericht-bomen, cross-platform co-postingpatronen — worden gebruikt om de grafiek vanuit beginknopen uit te breiden, waarbij tussenliggende versterkers en eindpubliekknopen worden verbonden. Randgewichten coderen het volume van inhoud die tussen knopen stroomt en de temporele volgorde van propagatiestappen.

De resulterende grafiek dient twee operationele doeleinden. Voor de reactieve stroom helpt het operators de netwerktopologie van de gedetecteerde campagne te identificeren — of inhoud is ontstaan vanuit een klein gecoördineerd cluster of organisch is opgedoken, en welke versterkerknopen structureel kritisch zijn voor de propagatieketen. Voor de beoordelingsstroom wordt dezelfde grafiekstructuur de basis voor het meten of contra-narratiefacties de propagatie daadwerkelijk hebben verstoord, door pre- en post-actie grafiektop-metrische gegevens te vergelijken.

Generatie van Handelingsopties via Claude API

Voor detecties die de waarschuwingsdrempel overschrijden, genereert de reactieve stroom automatisch drie gestructureerde Handelingsopties (HO's) via de Claude API. Elke HO is een gestructureerd object dat bevat: een aanbevolen actietype (publicatie van contra-narratief, brontoeschrijvingsbetwisting, rapportage van platformmisbruik, betrokkenheid van sleutelfiguren, stilte/wacht), een korte rationale met expliciete redeneeringsketen, voorspelde tegenreactie van tegenstanders, escalatierisicocore en toeschrijvingsrisicocore waar van toepassing.

Het genereren van drie HO's in plaats van één aanbeveling is een bewuste ontwerpbeslissing: het behoudt de operatorautonomie door de beslissingsruimte te presenteren in plaats van die samen te vatten tot één AI-aanbeveling. De redenatiesporen worden in de operator-UI naast elke HO weergegeven, niet verborgen achter de uitvoer. Operators kunnen het spoor uitvouwen om de redenering van de Claude API te bekijken voordat ze een handelingsoptie accepteren of afwijzen.

Belangrijk inzicht: Er wordt nooit een uit HO afgeleide actie verspreid zonder expliciete goedkeuring van de operator. Het platform handhaaft dit op de API-laag — het verspreidingseindpunt vereist een ondertekend goedkeuringstoken dat alleen kan worden gegenereerd via de goedkeuringswerkstroom van de operator. De architecturale beperking is niet adviserend; ze wordt afgedwongen in code.

Proactieve stroom: doelgroepsegmentkaartering en campagnegeneratie

Waar de reactieve stroom reageert op gedetecteerde dreigingen, wordt de proactieve stroom door de operator gestart: op basis van een gedefinieerde communicatiedoelstelling genereert het een gestructureerd campagneplan met meerdere varianten en voorspelde cognitieve effecten. De proactieve stroom is geschikt voor geplande informatieactiviteiten — het ondersteunen van een persberichtuitgave, het voorpositioneren van contra-narratieven vóór een verwachte tegenstanders-operatie, of het coördineren van geallieerde berichtgeving via meerdere overheidskanalen.

De proactieve stroom begint met doelgroepsegmentkaartering. Operators definiëren doelsegmenten via de geospatiële interface van Leaflet / OpenStreetMap — geografische grenzen tekenen op een kaart, toepasselijke demografische en psychografische profielen selecteren uit de segmentbibliotheek, en taal- en culturele contextattributen taggen. De segmentdefinitie stuurt zowel de campagnegeneratie als de inhoudsaanpassingstappen die volgen.

Generatie van campagnevarianten wordt verwerkt door de Claude API op basis van een gestructureerde promptsjabloon die de communicatiedoelstelling, het gedefinieerde doelgroepsegment, de huidige narratiefomgeving (afkomstig van de actieve detecties van de reactieve stroom voor de relevante bewakingsonderwerpen) en eventuele door de operator opgegeven beperkingen (inhoudsrestricties, goedgekeurde berichtthema's, verboden claims) bevat. De API genereert drie campagnevarianten, elk met een afzonderlijk primair kader, een reeks ondersteunende spreekpunten en voorspelde cognitieve effecten uitgesplitst per doelgroepsubsegment.

Het voorspelde cognitieve-effectenmodel maakt gebruik van de doelgroepsegmentprofielen om in te schatten hoe verschillende kaders waarschijnlijk worden ontvangen door verschillende subpopulaties — niet als een nauwkeurig voorspellend model, maar als een gestructureerde redeneeruitvoer die operators kunnen evalueren en bevragen. De voorspellingen zijn duidelijk gelabeld als door AI gegenereerde beoordelingen, niet als empirische prognoses.

Inhoudsaanpassing produceert op de doelgroep gerichte conceptinhoud in drie registersvarianten voor elke campagne: algemeen publiek (toegankelijke taal, emotioneel kader passend bij het doelgroepprofiel), media (feitelijk, citeerbaar, gestructureerd voor journalistiek gebruik) en geallieerde regeringen (formeel, nauwkeurig, afgestemd op diplomatieke conventies). Alle conceptinhoud wordt bewaard in de beoordeling-wachtrij van de operator en vereist expliciete goedkeuring voordat enige neerwaartse bezorging plaatsvindt.

Beoordelingsstroom: betrokkenheidscorrelatie en na-actie-analyses

De beoordelingsstroom sluit de effectencyclus door te meten of StratCom-acties daadwerkelijk de beoogde cognitieve effecten hebben bereikt. Het is het onderdeel dat het meest ontbreekt in gereedschap voor informatieoperaties — platforms die inhoud genereren bieden zelden rigoureuze mechanismen om te meten wat die inhoud heeft bereikt.

Betrokkenheidscorrelatie is het primaire meetmechanisme. Voor elk goedgekeurd en verspreid StratCom-product volgt de beoordelingsstroom betrokkenheidssignalen (bereik, sentimentrespons, contra-amplificatie, secundair delen) en correleert die met de propagatiegrafiekmetrische gegevens van het doelnarratief. De correlatie-engine vergelijkt het narratiefaandeel — het aandeel van de totale publieksdiscussie dat wordt ingenomen door het bewaakte narratief versus contra-narratieven — voor en na de interventie, met correctie voor basistrend.

Narratiefaandeeltracking is geïmplementeerd als een tijdreeksmetriek die per bewakingsonderwerp wordt opgeslagen en bij elke pollcyclus wordt bijgewerkt door de reactieve stroompijplijn. Het beoordelingsdashboard visualiseert het narratiefaandeel als een trendlijn, met interventiestijdstempels overlaid zodat operators kunnen zien welke acties correleerden met aandeelverschuivingen. De correlatie is observationeel, niet causaal — het platform beweert niet dat een contra-narratief een narratiefaandeelvermindering heeft veroorzaakt, alleen dat de correlatie bestond binnen het meetvenster.

Belangrijk inzicht: Resultaatgegevens uit de beoordelingsstroom worden teruggevoed aan de scoringsmodellen van de reactieve stroom via het gesloten-leepmechanisme van Narrative Shield. Wanneer een interventie het narratiefaandeel voor een specifiek tegenstanders-broncluster met succes heeft verminderd, past dat resultaat de brongeloofwaardigheidscores aan van die knopen bij volgende detecties — het systeem leert van operationele ervaring op een traceerbare, auditeerbare manier, niet via ondoorzichtige modelfijnafstelling.

.NET 8 backend-API-ontwerp

De backend is georganiseerd als een ASP.NET Core Web API met een modulaire servicearchitectuur. De drie operationele stromen zijn geïmplementeerd als onafhankelijke achtergrondservices die zijn geregistreerd bij de generieke .NET-host, die een gemeenschappelijke gegevenstoeganglaag delen maar op afzonderlijke wachtrijen en statusopslaginformatie werken. Deze scheiding betekent dat een vertraging of fout in de campagnegeneratie van de proactieve stroom de detectiepijplijn van de reactieve stroom niet blokkeert.

De REST API voldoet aan OpenAPI 3 en is gedocumenteerd via Swashbuckle. Elk eindpunt is end-to-end getypeerd — verzoek- en antwoordmodellen worden gedeeld tussen de backend en de React-frontend via een gegenereerde TypeScript-client, waardoor de klasse van integratiebugs wordt geëlimineerd die worden veroorzaakt door schemaafwijking tussen API-server en -consument. De API wordt geverifieerd via JWT-bearer-tokens met op rollen gebaseerde toegangscontrole die wordt afgedwongen op controllerniveau.

Het beslissingslogboek — de onveranderlijke registratie van elke door AI gegenereerde uitvoer, operatoractie, goedkeuring en verspreiding — is geïmplementeerd als een toevoeging-alleen tabel. Schrijfbewerkingen naar het beslissingslogboek gebruiken optimistische gelijktijdigheid om dubbele vermeldingen bij gelijktijdige schrijfbewerkingen te voorkomen, en leesbewerkingen zijn gepagineerd en geïndexeerd op bewakingsonderwerp, operator en tijdstempel voor efficiënte na-actieopvraging.

React 18 frontend met TypeScript

De frontend is een React 18-single-page-applicatie gebouwd met Vite en TypeScript, gestyled met Tailwind CSS. Statusbeheer gebruikt React Query voor serverstatus (detectiewachtrijen, beoordelingsgegevens, campagnevarianten) en React-context voor UI-status (geselecteerd bewakingsonderwerp, actief paneel). De architectuur vermijdt een globale client-side store voor servergegevens — het gedrag van cache-invalidatie en achtergrondverversing van React Query is beter geschikt voor de poll-intensieve aard van de reactieve stroom dan een handmatige Zustand- of Redux-store zou zijn.

Cytoscape.js-grafiekrendering is geïsoleerd in een speciale component met een aangepaste React-wrapper die grafiekinitialisatie, gegevensupdates en lay-outherschikking buiten de rendercyclus van React beheert — Cytoscape.js muteert een canvaselement direct, en het afstemmen hiervan met het virtuele DOM van React vereist zorgvuldig grensbeheer. Lay-outherschikking is gedebounced en wordt uitgevoerd buiten de hoofdthread waar browserondersteuning dit toestaat.

De Leaflet-geospatiële component volgt hetzelfde patroon: eenmalig geïnitialiseerd, imperatief bijgewerkt via refs en ingepakt in een React-component die een declaratieve interface biedt voor het instellen van de weergegeven segmentgrenzen en het overlanden van narratiefverspreidingswarmtekaarten.

OpenTAKServer-integratie voor veldbezorging

Goedgekeurde StratCom-producten worden bezorgd aan veldeenheden via een OpenTAKServer-integratie. Wanneer een operator een verspreidingsactie goedkeurt, post de backend een CoT (Cursor on Target) missiepakket naar de geconfigureerde OpenTAKServer-instantie via zijn REST API. Veldeenheden die TAK-compatibele applicaties gebruiken ontvangen het pakket op hun apparaten zonder een apart communicatiekanaal of handmatige doorzending van het StratCom-team te vereisen.

De integratie wordt geconfigureerd in het beheervenster van Narrative Shield: operators specificeren het OpenTAKServer-eindpunt, verificatiegegevens en de TAK-groepen die pakketten moeten ontvangen voor elk bewakingsonderwerp. Pakketinhoud is geformatteerd als gestructureerde tekst geschikt voor velddisplay — geen ruwe inlichtingenrapportage, maar door operators goedgekeurde spreekpunten en situatienoverzicht in een formaat dat geschikt is voor het tactische publiek.

Voor een bredere bespreking van hoe defensiesoftware omgaat met missiekritieke architectuurbeperkingen, inclusief fouttolerantie en gedegradeerde bedrijfsmodus, zie ons architectuuroverzicht. Het artikel over CI/CD-pijplijnoverwegingen voor defensiesoftware behandelt de bouw- en implementatiediscipline die ten grondslag ligt aan het releaseproces van Narrative Shield.

Een nieuw narratief bewakingsonderwerp configureren in Narrative Shield

De volgende stappen doorlopen de volledige configuratie van een nieuw bewakingsonderwerp, van initiële taxonomiedefinitie tot na-actiebeoordeling van de eerste operationele periode.

Stap 1: Definieer het bewakingsonderwerp en de sleutelwoordtaxonomie. Navigeer naar Beheer > Bewakingsonderwerpen en maak een nieuw onderwerp aan. Voer een beschrijvend label in en bouw de sleutelwoordtaxonomie op met primaire termen, gerelateerde uitdrukkingen en bekende hashtags van de tegenstander. De taxonomie ondersteunt Booleaanse operatoren en jokertekenovereenkomsten. Begin breed en verfijn op basis van de eerste 48 uur aan gescoorde resultaten.

Stap 2: Configureer ernstscoringsgewichten voor dit onderwerp. Open het scoringsconfiguratiepaneel van het onderwerp. Pas de vijf factorgewichtsschuifregelaars aan om operationele prioriteiten te weerspiegelen. Gewichtswijzigingen worden van kracht bij volgende scoringsruns en herschoren historische detecties niet retroactief.

Stap 3: Stel de ernstdrempel voor operatorwaarschuwingen in. Stel in het waarschuwingspaneel de ernstindexdrempel in waarboven een detectie een onmiddellijke operatormelding activeert. De standaarddrempel van 65/100 is geschikt voor de meeste onderwerpen. Configureer het meldingskanaal en de dienstaanwijzing voor dit bewakingsonderwerp.

Stap 4: Geef de propagatiegrafiek een beginaanzet met bekende bronaccounts. Voeg bekende accounts van de tegenstander, versterkernetwerken en coördinatieclusters toe aan het bronregister van het onderwerp. Deze beginknopen initialiseren de Cytoscape.js-propagatiegrafiek wanneer er een nieuwe detectie plaatsvindt. Het register accepteert directe account-id's en kan bulksgewijs worden geïmporteerd via CSV.

Stap 5: Breng het doelgroepsegment voor dit onderwerp in kaart. Open het doelgroepkaartvormingspaneel, teken een geografische grens op de Leaflet-kaart, selecteer toepasselijke demografische en psychografische profielen en koppel het segment aan het bewakingsonderwerp. Deze segmentdefinitie wordt gebruikt door zowel de reactieve stroom (doelgroepuitlijningscoring) als de proactieve stroom (generatie van campagnevarianten).

Stap 6: Activeer het onderwerp en valideer met een testdetectie. Stel de onderwerpstatus in op Actief. Gebruik de testinjectietool om een synthetisch signaal in te dienen dat overeenkomt met uw sleutelwoordtaxonomie, bevestig dat de propagatiegrafiek correct initialiseert en verifieer dat een waarschuwing activeert als de synthetische ernstscore uw geconfigureerde drempel overschrijdt.

Stap 7: Beoordeel na-actie-analyses na de eerste operationele periode. Na 24–72 uur live-operatie opent u het beoordelingsdashboard voor dit onderwerp. Bekijk betrokkenheidscorrelatiediagrammen, onderzoek fout-positiefpercentages en pas de taxonomie of drempels dienovereenkomstig aan. Exporteer het na-actierapport en voer bevindingen terug in de bewakingsonderwerpsconfiguratie om toekomstige scoringsnauwkeurigheid te verbeteren.

Veelgestelde vragen

+Wat is het verschil tussen de reactieve en proactieve stromen van Narrative Shield?

De reactieve stroom is permanente monitoring: hij verwerkt signalen, scoort gedetecteerde narratieven op basis van een 5-factor-ernstmodel, bouwt grafieken van propagatieketens en genereert gestructureerde Handelingsopties voor beoordeling door een menselijke operator. De proactieve stroom wordt door de operator gestart: op basis van een communicatiedoelstelling brengt hij doelgroepsegmenten geospatiaal in kaart, genereert meerdere campagnevarianten met voorspelde cognitieve effecten en produceert op de doelgroep afgestemd conceptmateriaal — allemaal voordat er een dreiging is gematerialiseerd.

+Hoe werkt het 5-factor-ernstscoringsalgoritme?

Elk gedetecteerd narratief wordt beoordeeld op vijf onafhankelijke dimensies: bereik (geschat blootgesteld publiek), snelheid (propagatiesnelheid over platforms en tijd), sentimentpolariteit (mate van vijandigheid of schade aan de bewaakte entiteit), doelgroepuitlijning (hoe goed het narratief aansluit op bekende doelpopulaties van de tegenstander) en brongeloofwaardigheid (autoriteitscore van originerende en versterkende accounts). De vijf dimensiescores worden gewogen en gecombineerd tot één ernstindex van 0–100. Gewichten zijn configureerbaar per bewakingsonderwerp om operationele prioriteiten te weerspiegelen.

+Vervangt Narrative Shield menselijke StratCom-officieren?

Nee. Narrative Shield is expliciet ontworpen met menselijk toezicht op elk beslissingsmoment. Het platform genereert Handelingsopties en conceptmateriaal, maar er wordt geen uitvoer verspreid zonder goedkeuring van de operator. Elke door AI gegenereerde uitvoer gaat vergezeld van een zichtbaar redenatiespoor zodat operators de onderliggende logica kunnen evalueren, niet alleen de conclusie. Beslissingstijdstempels en goedkeuringsregistraties worden weggeschreven naar een onveranderlijk auditlogboek.

+Hoe werkt de OpenTAKServer-integratie?

Narrative Shield biedt een webhook-eindpunt dat goedgekeurde StratCom-producten — situatiessamenvattingen, tegenpraatpunten voor narratieven en instructie-updates — als CoT (Cursor on Target) missiepakketten naar een OpenTAKServer-instantie stuurt. Veldeenheden ontvangen deze producten op hun TAK-apparaten zonder een apart communicatiekanaal of handmatige doorzending te vereisen. De integratie gebruikt de standaard OpenTAKServer REST API en wordt geconfigureerd via het beheervenster van Narrative Shield.

+Welk nalevingskader volgt Narrative Shield voor AI-gebruik?

Narrative Shield is ontworpen om te voldoen aan de AI-principes van NATO: menselijke controle op elk beslissingsmoment, transparantie van redenering (alle Claude API-uitvoer bevat zichtbare redenatiesporen), betrouwbaarheid via deterministische scoringspijplijnen die voor dezelfde invoer geen variabele uitvoer produceren, beveiliging via auditlogging van alle acties en goedkeuringen, en verantwoording via volledige beslissingsherkomst van signaalopname tot goedgekeurde verspreiding.

Gerelateerde lectuur: Voor de fundamentele architectuurconcepten die ten grondslag liggen aan de backend van Narrative Shield, zie Missiekritieke Software-architectuur voor Defensie. De implementatie- en pijplijnengineering achter deze klasse van platforms wordt behandeld in Een Geharde CI/CD-pijplijn Bouwen voor Defensiesoftware. Voor context over de bredere leveranciersselectieoverwegingen bij de aanschaf van StratCom- of cognitieve-defensieplatforms, zie Hoe een Leverancier van Defensiesoftware-ontwikkeling te Kiezen.