Developers
Extract, enrich
and connect
Raw content is not knowledge. The part number in a scanned report only becomes useful once it is recognized as the same part number the BOM uses.
Capabilities
From raw content to connected data
Enrichment runs as records arrive, not as a batch job somebody reruns after noticing the gap.
Entity extraction
Parts, people, systems and obligations recognized in free text and linked to the graph nodes they refer to.
Classification
Records typed on arrival so they land in the right part of the model.
Identifier normalization
The join that makes the rest work: one part, however each system chose to spell it.
Documents and media
Text, tables and structure recovered from files that were never designed to be queried.
Your own pipelines
Custom enrichment steps where the defaults do not know your domain vocabulary.
Incremental
New and changed records are enriched as they arrive.
Questions for developers
The things worth asking first
Can I add my own extractors?
Yes. Add pattern spotters, spotters learned from nodes already in the graph, and trained entity models. In C# you can post-process each entity type, or write a code index that runs on every change to a node type.
Does enrichment use an LLM?
Only when you ask for one. Tokenizing, entity spotting and linking run locally without a model. From code, StructuredAI classifies and scores text with a local model by default, or with an LLM provider you name.
What happens when a source record changes?
When your connector syncs the change, the node is updated in place by its key and queued for every index, so parsing, embeddings and entity links catch up without a full rebuild.
Your data. Your infrastructure.