Ingest CycloneDX
Preserve component identities and declared dependency edges while transforming SBOM content into connected graph data.
CycloneDX JSONEvolving toward neuro-symbolic AI
Import CycloneDX SBOMs, enrich packages with complete OSV advisories, and explore applications, vulnerabilities, fixes, evidence, and dependency paths from one shared knowledge graph. The platform is moving toward neuro-symbolic AI—combining deterministic graph reasoning with grounded language-model intelligence.
Video demo
Follow the workflow from application exploration to vulnerability evidence and dependency-path analysis.
What it does
Ingestion and enrichment build the graph. Explore, SPARQL, CVE Impact, and AI Workbench read the persisted model without hidden OSV calls.
Preserve component identities and declared dependency edges while transforming SBOM content into connected graph data.
CycloneDX JSONBatch-query installed PURLs, load complete advisories, and connect affected package occurrences to normalized vulnerability resources.
Explicit writesCenter a CVE between impacted application paths and provided fixes, with merged nodes and animated exposure highlighting.
D3 + SVGParse version-specific vectors into calculated severity, scores, and clean metric tables instead of displaying an opaque vector alone.
V2 · V3 · V3.1 · V4Run read-only SPARQL SELECT queries with presets, formatting, tabular results, CSV export, and direct access to graph relationships.
SPARQL + ARQBuild typed advisory chunks, generate local BGE embeddings, and inspect the exact semantic evidence used by Buggy.
Grounded retrievalProduct tour
Upload a CycloneDX JSON document, follow ingestion progress, and see application, package, dependency-edge, statement, and graph-node totals from the persisted model.
Review direct and transitive dependencies, graph size, vulnerable packages, and vulnerability totals for the selected application.
Separate direct packages from transitive packages and inspect the immediate graph context of each installed dependency.
Join installed packages to normalized OSV advisories, then open the complete advisory content, affected versions, fixes, CVSS data, timestamps, and references.
References remain dedicated graph resources and are grouped by advisory alongside the installed package versions they describe.
Group one vulnerability across applications, center it between impacted dependency paths and provided fixes, and open focused node or advisory detail without losing context.
Run read-only SPARQL queries to inspect relationships, validate the graph model, and export custom results.
Review Buggy's summary beside ranked advisory chunks, source identifiers, similarity scores, and complete evidence text.
Current architecture
Neuro-symbolic integration · In progress
Explicit ingestion builds one authoritative knowledge graph. Deterministic services, neural retrieval, and a tool-using agent expose that shared model through the UI.
In-memory similarity search supplies ranked advisory evidence to the configured chat model.
Evidence-grounded answer serviceRead-only GraphQL results are routed directly when they fit, or reduced through bounded JSONL evidence chunks before final synthesis.
Conditional StateGraph · LangChain4j · GroqCurrent boundary: the agent and evidence-answer service are separate flows. Their integration into one traceable neuro-symbolic workflow is in progress.
Explore follows direct and transitive dependency occurrences, then reads the persisted vulnerability relationship on the affected package.
ApplicationOccurrence
│
└── risk:dependsOn
▼
PackageOccurrence
│
├── risk:dependsOn
│ ▼
│ PackageOccurrence
│
└── risk:affectedBy
▼
Vulnerability
No second vulnerability database is maintained for Explore.
Opening an application never silently invokes OSV enrichment.
Application views follow persisted dependency relationships from the selected occurrence.
Buggy uses graph tools, while evidence answers retain source text, identifiers, and scores.
Quick start
Build locally with Maven or use Docker to package the frontend, backend, and persistent graph-data configuration together.
# Build backend and frontend
$ ./mvnw clean package
# Start the application
$ java -jar target/dependency-risk-graph-0.0.1-SNAPSHOT.jar
# Or build and run everything with Docker
$ ./run.sh
# Open the application
→ http://localhost:8080
Project license
Dependency Risk Graph is free to use, modify, and distribute under the Apache License, Version 2.0, subject to its terms and conditions.
Next steps
Joining deterministic knowledge-graph reasoning with grounded generative AI.
Complete and validate deterministic dependency-path discovery and visualization.
Combine GraphRAG, symbolic dependency reasoning, and inspectable evidence for grounded security answers.