Open Source Compliance mit ABIS Agenten im Knowledge Graphen
Wie ABIS Open-Source-Lizenz-Compliance per Knowledge Graph auditfähig macht: fehlende Lizenzen zuordnen, Review-Fälle klären, echte Verstöße isolieren.

Wie ABIS Open-Source-Lizenz-Compliance per Knowledge Graph auditfähig macht: fehlende Lizenzen zuordnen, Review-Fälle klären, echte Verstöße isolieren.
Kurzantwort: Open-Source-Lizenz-Compliance scheitert selten an der Erkennung einzelner Lizenzen, sondern am fehlenden Kontext. Ein Knowledge Graph verbindet Dateien, Komponenten, Lizenzen und Scan-Ergebnisse zu einem abfragbaren Modell. Im hier dokumentierten Use Case (Notepad++-Projekt, modelliert in ABIS) wurden so 469 fehlende Lizenzangaben zugeordnet, 291 unklare Review-Fälle per Git-Recherche geklärt und nur 4 echte Lizenzverstöße als reales Risiko isoliert – mit lückenloser Nachvollziehbarkeit für Audit und Due Diligence.
| Kennzahl | Ergebnis |
|---|---|
| Modellierte Knoten im Graphen | 2.464 (1 Projekt, 11 Komponenten, 58 Lizenzen, 2.394 Dateien) |
Fehlende Lizenzen (missing) zugeordnet | 469 Dateien |
Unklare Fälle (review) per Git geklärt | 291 Dateien |
Echte Lizenzverstöße (violation) | 4 Dateien |
| Verbleibende unkritische Restfälle | ~15 Dateien (manuelle Bestätigung) |
Definition: Open-Source-Lizenz-Compliance bezeichnet den Nachweis, dass alle in einer Software verwendeten Open-Source-Komponenten korrekt lizenziert und ihre Lizenzbedingungen erfüllt sind – einschließlich Weitergabe-, Attributions- und Kompatibilitätspflichten.
Open-Source-Compliance wird in vielen Unternehmen noch immer vor allem als Scan-Ergebnis verstanden: Ein Tool läuft über den Code, erkennt Lizenzen, markiert Auffälligkeiten und erzeugt eine lange Liste von Findings.
Das Problem: In realen Softwareprojekten reicht diese Sicht oft nicht aus. Open-Source-Lizenz-Compliance ist selten nur eine Frage einzelner Dateien. Entscheidend ist der Kontext:
Welche Datei gehört zu welcher Komponente?
Welche Komponente bringt welche wirksame Lizenz mit?
Welche Warnung ist ein echtes rechtliches Risiko – und welche entsteht nur, weil ein Scanner einen Lizenzverweis nicht korrekt interpretieren konnte?
Genau hier setzt der Einsatz von Knowledge Graphs an. In diesem Use Case wurde das Notepad++-Projekt mit ABIS als Wissensgraph modelliert und auf Open-Source-Lizenz-Compliance analysiert. Das Ziel: nachweisen, dass die verwendeten Komponenten korrekt lizenziert sind, echte Risikofälle identifizieren und eine nachvollziehbare Grundlage für Audit, Due Diligence und Remediation schaffen.
In großen Codebasen liegen Lizenzinformationen nicht an einer einzigen Stelle. Sie verteilen sich über einzelne Quelldateien, Komponenten und Unterkomponenten, externe Lizenzdateien, historische Projektstrukturen, eingebettete Drittanbieter-Bibliotheken sowie Scanner-Verdicts wie compatible , missing , review oder violation .
Ein klassischer Scan erkennt zwar viele Muster, verliert aber schnell den Zusammenhang. So entstehen lange Warnlisten, die Compliance-Teams manuell einordnen müssen.
Definition: Ein Knowledge Graph (Wissensgraph) bildet Dateien, Komponenten, Lizenzen, Scan-Ergebnisse und Rechercheerkenntnisse als vernetztes Modell aus Knoten und Beziehungen ab. Statt isolierter Findings entsteht eine navigierbare, abfragbare und erklärbare Compliance-Landkarte.
Das Notepad++-Projekt wurde in ABIS vollständig als Knowledge Graph abgebildet.
| Element | Anzahl |
|---|---|
| Projekt | 1 |
| Komponenten | 11 |
| Lizenzen | 58 |
| Dateien | 2.394 |
| Knoten insgesamt | 2.464 |
Beziehungen wie „Datei gehört zu Komponente" oder „Komponente steht unter Lizenz" machen sichtbar, wie Lizenzinformationen tatsächlich durch das Projekt wirken. Dadurch lassen sich zentrale Compliance-Fragen direkt im Graphen beantworten: Welche Lizenzen sind im Produkt enthalten? Welche Dateien hängen an welchen Lizenzen? Wo liegen echte unvereinbare Lizenzen? Welche Findings sind auditrelevant?
Zunächst wurden die bereits vorhandenen Compliance-Urteile je Datei ausgewertet. Der Graph zeigte, dass nur vier Dateien echte Verstöße enthielten. Diese Dateien waren rechtlich kritisch, weil sie nicht ohne Weiteres weitergegeben werden dürfen.
| Risikokategorie | Bedeutung |
|---|---|
| Proprietärer Code | Nicht frei weitergebbar ohne separate Rechteklärung |
| Nicht-kommerzielle Lizenzen | z. B. Creative-Commons-Varianten mit Non-Commercial-Einschränkung |
| GPLv2-only | Potenziell unvereinbar mit einem GPLv3-Projektkontext |
Diese Fälle wurden im Graphen hervorgehoben und als Bookmark gespeichert: 🚨 License Violations (fine risk) .
Der entscheidende Punkt: Der Graph half nicht nur dabei, viele Findings zu erzeugen, sondern die wenigen wirklich kritischen Fälle präzise zu isolieren.
Insgesamt waren 469 Dateien als missing markiert. Isoliert betrachtet klingt das nach erheblichem Risiko. Im Graphen konnte jedoch nachvollzogen werden, zu welcher Komponente diese Dateien gehören – und welche wirksame Lizenz diese Komponente trägt.
| Komponente | Dateien | Wirksame Lizenz | Vertrauen |
|---|---|---|---|
| installer-build | 181 | GPL-3.0-or-later | hoch |
| test-fixtures | 28 | GPL-3.0-or-later | hoch |
| notepad-core-first-party | 22 | GPL-3.0-or-later | hoch |
| ci-build | 7 | GPL-3.0-or-later | hoch |
| lexilla-3rd-party | 152 | Scintilla-Lizenz / HPND | mittel |
| scintilla-3rd-party | 68 | Scintilla-Lizenz / LGPL-2.1 | mittel |
| themes-bundled-assets | 6 | GPL-3.0-or-later | mittel |
| other-root | 5 | BSL-1.0 | mittel |
Die Kernaussage: 238 Dateien waren Notepad++-eigener Code und konnten der Projektlizenz GPL-3.0 zugeordnet werden. Die übrigen 231 Dateien waren Drittanbieter-Code und erbten die jeweilige Upstream-Lizenz ihrer Komponente. Aus einer scheinbar großen Menge fehlender Lizenzangaben wurde damit ein nachvollziehbares, strukturiertes Bild.
Nach der Zuordnung wurden die Erkenntnisse als Enrichment im Graphen ergänzt. Wichtig ist dabei die Unterscheidung zwischen zwei Konzepten:
| Begriff | Bedeutung |
|---|---|
| Enrichment | Zusätzliche Information auf bestehenden Knoten, ohne das ursprüngliche Scan-Ergebnis zu überschreiben |
| Projektion | Eine Was-wäre-wenn-Überlagerung mit geplanten Knoten und Beziehungen |
Das Enrichment ergänzte je Sammelknoten die wirksame Lizenz, die Begründung, den Vertrauensgrad und die empfohlene Handlung. Der ursprüngliche Scanner-Befund blieb erhalten.
Das ist besonders wichtig für Audits: Es bleibt nachvollziehbar, was der Scanner ursprünglich erkannt hat und welche fachliche Entscheidung anschließend getroffen wurde.
Im Use Case zeigte sich ein typisches Modellierungsproblem: Die Projektionsebene war aktiv, aber im Graphen zunächst nicht sichtbar. Der Grund: Enrichment allein erzeugt keine neuen sichtbaren Beziehungen. Deshalb wurde eine echte Projektion modelliert – mit drei geplanten Lizenzknoten und acht geplanten Verbindungen.
| Geplanter Lizenzknoten | Zweck |
|---|---|
| GPL-3.0-or-later (resolved) | Auflösung fehlender Lizenzen im Erstanbieter- und Projektkontext |
| Scintilla-Lizenz / HPND (resolved) | Auflösung fehlender oder unklarer Lexilla-/Scintilla-Fälle |
| BSL-1.0 (resolved) | Auflösung der Boost-bezogenen Restgruppe |
Damit konnten die zuvor „toten" Knoten visuell in der Projektion als gelöst dargestellt werden.
Die Projektion zeigte, auf welche realen Lizenzen die ursprünglich fehlenden Lizenzangaben umgeleitet würden.
| Komponente | Dateien | Aktuell gescannt | Simulierter Wert |
|---|---|---|---|
| installer-build | 181 | fehlend | GPL-3.0-or-later |
| test-fixtures | 28 | fehlend | GPL-3.0-or-later |
| notepad-core-first-party | 22 | fehlend | GPL-3.0-or-later |
| ci-build | 7 | fehlend | GPL-3.0-or-later |
| themes-bundled-assets | 6 | fehlend | GPL-3.0-or-later |
| lexilla-3rd-party | 152 | fehlend | Scintilla-Lizenz / HPND |
| scintilla-3rd-party | 68 | fehlend | Scintilla-Lizenz / HPND |
| other-root | 5 | fehlend | BSL-1.0 |
Zusammengefasst wurden 469 Dateien auf drei Lizenzknoten umgeleitet: GPL-3.0-or-later (244), Scintilla-Lizenz / HPND (220) und BSL-1.0 (5). Diese Werte wurden zunächst als vorgemerkte Projektion behandelt – ein fachlich begründeter Vorschlag, der nach Freigabe festgeschrieben werden kann.
Ein großer Teil der verbleibenden Review-Fälle betraf Lexilla und Scintilla. Der Scanner hatte viele Dateien als unknown-license-reference markiert. Die direkte Recherche im Git-Repository zeigte jedoch: Die Dateiköpfe verwiesen auf eine externe License.txt . Diese trug den Titel „License for Lexilla, Scintilla, and SciTE" und enthielt eine permissive Nutzungserlaubnis.
Definition: Die HPND-Lizenz (Historical Permission Notice and Disclaimer) ist eine permissive, GPLv3-kompatible Open-Source-Lizenz. Code unter HPND darf frei genutzt, verändert und weitergegeben werden.
| Gruppe | Dateien | Recherchierte Lizenz | Status |
|---|---|---|---|
| lexilla unknown-reference | 156 | HPND | geklärt |
| scintilla unknown-reference | 116 | HPND | geklärt |
| lexilla / scintilla public-domain | 14 | HPND maßgeblich | geklärt |
| scintilla GTK unknown + LGPL | 2 | HPND + LGPL-2.1 | geklärt |
| scintilla-Referenz | 2 | HPND | geklärt |
| lexilla LexSearchResult | 1 | GPL-3.0 | geklärt |
| Gesamt | 291 | geklärt |
Der entscheidende Befund: Keine dieser Dateien musste entfernt werden. Die unbekannten Markierungen waren kein reales Lizenzrisiko, sondern Scanner-Rauschen, das durch Recherche und Graph-Kontext aufgelöst werden konnte.
Nach der Analyse ergab sich folgende Statusübersicht über alle 2.394 Dateien:
| Urteil | Dateien | Bedeutung / Risiko |
|---|---|---|
| missing-asset | 1.083 | Binär- und Mediendateien ohne eingebetteten Lizenztext; geringes Risiko |
| compatible | 532 | Lizenz erkannt und kompatibel |
| missing → zugeordnet | 469 | Über Komponente einer wirksamen Lizenz zugeordnet |
| review | 306 | 291 per Git geklärt, 15 unkritische Restfälle |
| violation | 4 | Echte Verstöße; einziger realer Risikobereich |
| Gesamt | 2.394 |
Damit änderte sich die Perspektive grundlegend: Nicht die Anzahl der Warnungen war entscheidend, sondern deren tatsächliche Bedeutung. Nur vier echte Verstöße waren unmittelbar risikorelevant, während 469 fehlende Lizenzangaben und 291 Review-Fälle nachvollziehbar geklärt werden konnten.
| Bereich | Dateien | Einordnung |
|---|---|---|
| themes-bundled-assets | 6 | CC-BY-3.0; Attribution bestätigen |
| notepad-core-first-party | 5 | MIT-old-style / public-domain / RSA-MD; Erstanbieter, GPLv3-Kontext |
| installer-build & test-fixtures | 3 | GPL-3.0 mit Zusatzverweisen; GPLv3-kompatibel |
| uchardet-3rd-party | 1 | MPL-1.0; permissiv/kompatibel, kurze Bestätigung |
| Gesamt | 15 | Manuelle Bestätigung empfohlen |
| Bookmark | Zweck |
|---|---|
| 🚨 License Violations (fine risk) | Echte Verstöße, die behoben werden müssen |
| 🔍 Unmapped – needs manual review | Zur manuellen Prüfung markierte Dateien |
| ✅ Resolved – effective license mapped | Dateien mit zugeordneter wirksamer Lizenz |
Diese Bookmarks machen die Analyse operativ nutzbar. Teams können gezielt zwischen echten Risiken, Review-Fällen und bereits geklärten Dateien wechseln.
| Empfehlung | Ziel |
|---|---|
| 4 echte Verstöße beheben | Dateien entfernen, ersetzen oder separat lizenzieren lassen |
| 15 Restfälle manuell bestätigen | Insbesondere Attribution und Sonderverweise prüfen |
| Projektion nach Freigabe festschreiben | Wirksame Lizenzen dauerhaft im Graphen hinterlegen |
| Audit-Nachweis exportieren | Excel- oder PDF-Bericht mit Verstößen, Zuordnungen und Git-geklärten Fällen erzeugen |
Der Mehrwert liegt nicht nur darin, Findings sichtbar zu machen. Der eigentliche Wert entsteht durch Kontext. Ein Knowledge Graph kann zeigen, warum eine Datei als kritisch gilt, welche Komponente betroffen ist, welche Lizenz tatsächlich wirkt, welche Fälle durch Recherche geklärt wurden und welche Punkte noch offen sind.
Damit entsteht eine belastbare Entscheidungsgrundlage für Legal, Security, Engineering und Management. Gerade für Open-Source-Lizenz-Compliance ist das entscheidend: Unternehmen müssen nicht nur Risiken erkennen, sondern auch erklären können, wie sie zu ihren Bewertungen gekommen sind.

Dieser Use Case zeigt, wie sich Open-Source-Lizenz-Compliance von einer statischen Scan-Liste zu einem erklärbaren, graphbasierten Entscheidungsprozess entwickeln kann:
469 fehlende Lizenzangaben wurden wirksam zugeordnet.
291 unklare Dateien wurden durch Git-Recherche geklärt.
Nur 4 Dateien blieben als echte Lizenzverstöße übrig.
Rund 15 unkritische Restfälle benötigen noch manuelle Bestätigung.
Für Compliance-Teams bedeutet das: weniger Rauschen, mehr Nachvollziehbarkeit und ein klarer Weg zum Audit-Nachweis. Die Zukunft der Software-Compliance liegt nicht in noch größeren Tabellen, sondern in vernetztem, erklärbarem und überprüfbarem Wissen.
Open-Source-Lizenz-Compliance bedeutet, nachzuweisen, dass alle verwendeten Open-Source-Komponenten korrekt lizenziert sind und ihre Lizenzpflichten (Weitergabe, Attribution, Kompatibilität) erfüllt werden. Wird nicht lizenzierter oder unvereinbar lizenzierter Code ausgeliefert, drohen rechtliche Risiken und Bußgelder.
Ein Knowledge Graph verbindet Dateien, Komponenten und Lizenzen zu einem abfragbaren Modell. Dadurch lässt sich für jede Warnung der Kontext bewerten: Welche Komponente ist betroffen, welche Lizenz wirkt tatsächlich, und ist ein Finding ein echtes Risiko oder nur Scanner-Rauschen.
Nein. Im Use Case waren 469 Dateien als „missing" markiert, ließen sich aber über ihre Komponente einer wirksamen Lizenz zuordnen – 238 davon zur GPL-3.0-Projektlizenz. Fehlende Angaben sind oft Kennzeichnungslücken, kein rechtliches Risiko.
HPND (Historical Permission Notice and Disclaimer) ist eine permissive Open-Source-Lizenz und GPLv3-kompatibel. Im Use Case waren 272 als „unknown" markierte Lexilla-/Scintilla-Dateien tatsächlich HPND-lizenziert und damit unbedenklich weitergebbar.
Enrichment ergänzt Informationen auf bestehenden Knoten, ohne das Original-Scan-Ergebnis zu überschreiben. Eine Projektion ist eine Was-wäre-wenn-Überlagerung mit geplanten Knoten und Beziehungen, die eine mögliche Auflösung visuell simuliert.