Skip to main content

Model investigation data with AI

You do not need to be an ontologist to use CAC Ontology.

The recommended path for AI-assisted modeling is the CASE/UCO SDK and its MCP server. An LLM-powered agent can discover ontology classes, apply modeling recipes, validate graphs, and propose ontology extensions — covering cyber-domain investigation data and adjacent domains.

If you can read an information resource (press release, report, policy memo, court filing, tool export, etc.), you can translate it into a validated CASE/UCO/CAC graph with provenance that other people can audit and reuse.

Repository: https://github.com/vulnmaster/CASE-UCO-SDK

The SDK helps teams model crimes against children investigation data into validated graphs quickly. It includes:

CAC Ontology v3.1.0 directs AI-assisted modeling through this MCP-first workflow.

Getting started with the MCP server

  1. Clone or install the CASE/UCO SDK.
  2. Configure the MCP server in your AI coding assistant (Cursor, Claude Code, and similar tools).
  3. For binary sources, run process_document_file; then route with route_investigation_content / route_cac_content, build the investigation graph from recipes, and call validate_graph.
  4. Review provenance, evidence pointers, and validation results before sharing.

The plain-language idea

CAC Ontology is a way to write the language we already use in investigations as a graph:

CAC Ontology extends the Linux Foundation Cyber Domain Ontology ecosystem (UCO + CASE 1.5.0), which helps different tools and organizations exchange investigation information in a semantically consistent way:

What you get out (the deliverables)

The CASE/UCO SDK MCP workflow is graph-first. For a source document, the usual outputs are:

  1. Bounded source graph (JSON-LD) from process_document_file
    • Source file as a CASE/UCO observable with hashes and collection/extraction provenance (InvestigativeAction, related facets)
    • Extracted text and span annotations written beside the graph (for example extracted-content.json / annotations.jsonld)
    • High-confidence extracted entities mapped to core CASE/UCO types for human review
  2. Investigation / domain graph (JSON-LD or Turtle) built by the agent from recipes and routing guidance
    • Modeled entities, actions, evidence, relationships, and CAC concepts where applicable
    • Evidence pointers and provenance so claims stay explainable
    • Optionally a reproducible SDK builder (Python/C#/Java/Rust) that regenerates the graph
  3. Validation report from validate_graph
    • CASE/UCO SHACL conformance plus closed-world concept-coverage checks (and CAC/extension profiles when selected)
  4. Run summary for handoff
    • Inputs and trust status, matched recipes/extensions, ontology versions, validation/critic status, unresolved gaps, and human-review items

What is not a default SDK deliverable anymore:

When the task is consequential, also run the SDK critic review loop before treating the graph as final.

The goal is that someone else can look at your graph and understand:

How provenance stays connected (why this matters)

In CAC Ontology, modeled claims should be explainable. That means the graph should retain enough provenance to answer:

Use UCO/CASE patterns (for example, Action + ProvenanceRecord) so that:

Practical ways to start