MATIH Platform is in active MVP development. Documentation reflects current implementation status.
11. Pipelines & Data Engineering
Ontology Service
Object Types

Object Types

Object types are the core building blocks of the MATIH ontology. Each object type represents a domain entity (such as Customer, Order, or Product) and defines its properties, relationships, governance metadata, and materialization strategy.

Source: data-plane/ontology-service/src/models/object_type.py


Object Type Model

FieldTypeDescription
idUUIDUnique identifier
namestringObject type name (e.g., Customer)
descriptionstringHuman-readable description
layerOntologyLayerOntology layer (raw, staging, curated, semantic)
statusObjectTypeStatusLifecycle status (draft, active, deprecated)
governanceGovernanceInfoOwnership, classification, PII fields, retention
propertieslist of PropertyDefinitionTyped property definitions
relationshipslist of RelationshipDefinitionLinks to other object types
materializationMaterializationStrategyHow the object is physically stored

Ontology Layers

LayerPurposeExample
rawUnprocessed source dataRaw CSV imports, API responses
stagingCleaned and validated dataDeduplicated, type-cast records
curatedBusiness-ready dataEnriched, joined datasets
semanticDomain model entitiesCustomer 360, Product catalog

Property Definition

Each property has a data type, source mapping, validation rules, and governance metadata:

FieldTypeDescription
namestringProperty name
data_typeDataTypeData type (string, integer, double, boolean, date, timestamp, json)
descriptionstringHuman-readable description
requiredboolWhether the property is mandatory
validationPropertyValidationMin/max, regex pattern, enum values
sourcePropertySourceSource type (direct, derived, aggregated, computed)
governanceGovernanceInfoClassification, PII flag

Property Validation

{
  "name": "email",
  "data_type": "string",
  "required": true,
  "validation": {
    "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
    "min_length": 5,
    "max_length": 255
  }
}

Governance Metadata

FieldTypeDescription
ownerstringTeam or user ID owning this object type
stewardstringData steward responsible for quality
classificationClassificationPUBLIC, INTERNAL, CONFIDENTIAL, RESTRICTED
pii_fieldslist of stringFields containing personally identifiable information
retention_daysintData retention period (default: 365)

Relationships

FieldTypeDescription
namestringRelationship name (e.g., placed_orders)
target_typestringTarget object type name
cardinalityCardinalityONE_TO_ONE, ONE_TO_MANY, MANY_TO_MANY
join_typeJoinTypeINNER, LEFT, RIGHT, FULL
inverse_namestringName of the inverse relationship

API Endpoints

POST   /v1/ontology/object-types          -- Create object type
GET    /v1/ontology/object-types          -- List object types
GET    /v1/ontology/object-types/:id      -- Get by ID
PUT    /v1/ontology/object-types/:id      -- Update object type
DELETE /v1/ontology/object-types/:id      -- Delete object type

Related Pages