Semogram Docs
Data PipelinesReferenceNode reference

Ontology mapping

Produce ontology entities and relationships from record pools

Ontology mapping converts record fields into a fact set using a compiled project ontology package. Class/property/relationship terms must match that package. Mapping produces facts; a downstream materializer persists them.

Before using it

Create or select the real resources described above in the pipeline’s project/workspace, inspect the upstream data shape and ensure your actor can perform this operation. A configuration fragment cannot create those resources. Read First pipeline for a complete graph and fixture.

Fields and bindings

FieldMeaning
packageIdCompiled ontology package UUID in this project
inputsNamed record pools available to mapping expressions
outputFact-set output name
entitiesClass, ID expression, property expressions and source identities
relationshipsPredicate, subject/object IDs and optional properties
modeupsert, snapshot or delta as supported by the consuming store

Configure

Assistant prompt
Prepare the ontology mapping node for the selected test resources. Use the operation and fields shown in this example. Show actual resource bindings, upstream/downstream ports and any write/model effects before applying the draft.

Select Ontology package and Package version in the mapping inspector. Bind the input pool, define entity/relationship rules using actual compiled terms, and inspect the single out port with ont-fact-set shape before connecting the materializer.

Put this section under ontologyMapping on a full node of kind ontology-mapping. It is not a standalone API or MCP request. Replace resource placeholders, and provide the full node ports/policy and graph edges.

ontologyMapping section
{
  "packageId": "<PACKAGE_UUID>",
  "inputs": {
    "orders": "orders"
  },
  "output": "order_facts",
  "mode": "upsert",
  "entities": [
    {
      "class": "Order",
      "id": {
        "template": "order-{order_id}"
      },
      "properties": {
        "total": {
          "from": "total",
          "as": "number"
        }
      },
      "identities": [
        {
          "sourceNamespace": "demo",
          "sourceKey": "order_id",
          "sourceId": {
            "from": "order_id"
          }
        }
      ]
    }
  ],
  "relationships": []
}

Verify a bounded run

Check order-1/order-2, numeric totals and preserved source identities before persistence. Test missing IDs, invalid property datatypes and relationship ends that do not resolve.

Validate, save a version and run a small known fixture. Inspect the actual node result and downstream consumer, not only the graph preview.

Limits and failure behavior

Studio normalizes ontology mapping output to one out port, not separate entities/relationships ports. Field expressions, templates and installed transforms have different semantics. Provisional transform cluster labels are not automatically canonical identity-registry IDs.