Skip to main content

Lineage Ontology

Provenance Metadata
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA
Lineage Ontology
Kireth Semantic Research Archive

PAGE:
https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/provenance-metadata/lineage-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "LineageOntology" v4.0

DOMAIN := MetadataOntologies
SUBDOMAIN := ProvenanceMetadata
ONTOLOGY := LineageOntology

ENTITY Lineage {
 definition: "A directed provenance representation of how a resource, dataset, assertion, model, metadata object or knowledge entity originates, evolves and is derived through sources, activities, transformations, versions and intermediate entities.";
 objectives: [OriginTracing, DerivationTracing, TransformationTracking, DependencyAnalysis, ImpactAnalysis, Reproducibility, MachineInterpretability];
}

LineageEntity := {Lineage, LineageIdentifier, LineageRecord, LineageNode, LineageEdge, SourceNode, DerivedNode, IntermediateNode};
ProcessEntity := {Activity, Transformation, Extraction, Aggregation, Migration, Generation, Validation, ProcessingStep};
RelationshipEntity := {DerivedFrom, GeneratedBy, Used, DependsOn, RevisionOf, TransformedFrom, AggregatedFrom, ExtractedFrom};
MetadataEntity := {Version, Timestamp, Agent, Provenance, Evidence, Confidence, Status, Scope};

Lineage CONNECTS SourceNode TO DerivedNode;
LineageEdge HAS_DIRECTION SourceToTarget;
DerivedNode IS_DERIVED_FROM SourceNode;
Activity MAY_USE SourceNode;
Activity MAY_GENERATE DerivedNode;
Transformation MAPS InputEntity TO OutputEntity;
LineageRecord DOCUMENTS LineageGraph;
Provenance SUPPORTS LineageRelationship;

LineageFlow :=
 TargetEntity
 -> IdentifyLineageSubject
 -> ResolveTargetIdentityAndVersion
 -> IdentifyDirectSources
 -> IdentifyTransformingActivities
 -> IdentifyIntermediateEntities
 -> TraverseAncestorSources
 -> RecordAgentsTimestampsAndVersions
 -> AttachEvidenceAndProvenance
 -> ValidateLineageGraph
 -> ComputeImpactAndDependencyPaths
 -> StoreLineageRecord
 -> MaintainAcrossLifecycle;

Lineage := DirectedGraphOfOriginDerivationTransformationAndDependencyRelationships;

LineageIdentifier := StableReferenceToLineageRecordGraphOrRelationship;
LineageIdentifier MAY_BE {URI, IRI, UUID, InternalIdentifier};

LineageRecord := StructuredMetadataRecordDescribingLineageGraph;

LineageNode := EntityParticipatingInLineage;
LineageNode MAY_BE {Dataset, DataElement, Document, File, MetadataRecord, Assertion, SoftwareArtifact, Model, Publication, KnowledgeEntity};

SourceNode := EntityUsedAsInputOriginOrAncestor;
DerivedNode := EntityProducedFromOneOrMoreSourceNodes;
IntermediateNode := EntityBetweenOriginAndTargetInLineagePath;

RootSource := SourceNodeWithoutKnownEarlierSourceWithinCurrentLineageGraph;
RootSource != AbsoluteOriginalSourceUnlessGraphCompletenessEstablished;

LineageEdge := DirectedTypedRelationshipBetweenLineageNodes;
LineageEdge MAY_BE {DERIVED_FROM, GENERATED_BY, TRANSFORMED_FROM, EXTRACTED_FROM, AGGREGATED_FROM, REVISION_OF, DEPENDS_ON};

RelationshipDirection MUST_BE Preserved;

DirectLineage := ImmediateRelationshipBetweenSourceAndDerivedEntity;
IndirectLineage := RelationshipThroughOneOrMoreIntermediateNodes;
AncestorSource := SourceReachableByTraversingLineageEdgesBackward;
DescendantEntity := EntityReachableByTraversingLineageEdgesForward;

IF EntityB DERIVED_FROM EntityA
AND EntityC DERIVED_FROM EntityB
THEN EntityA MAY_BE AncestorSourceOf EntityC;

DirectSource != AncestorSource;

LineagePath := DirectedSequenceOfNodesAndEdgesConnectingSourceToTarget;
SourceTrace := TargetEntity -> TraverseBackward -> SourceAndAncestorEntities;
ImpactTrace := SourceEntity -> TraverseForward -> DependentAndDerivedEntities;

UpstreamLineage := SourcesActivitiesAndDependenciesLeadingToTarget;
DownstreamLineage := EntitiesActivitiesAndOutputsDependingOnSource;
Upstream != DownstreamByDefinition;

Activity := ProcessThatUsesGeneratesOrTransformsEntities;
ProcessingStep := DefinedActivityWithinWorkflowOrPipeline;
Generation := ActivityProducingEntity;
Usage := ActivityConsumingOrUsingEntity;

Transformation := ActivityChangingRepresentationStructureContentOrMeaning;
Transformation MAY_BE {Conversion, Normalisation, Cleaning, Enrichment, Aggregation, Extraction, Translation, Summarisation, Migration, FeatureEngineering};

Extraction := TransformationSelectingSubsetFieldsRecordsEntitiesOrAssertionsFromSource;
Aggregation := TransformationCombiningMultipleInputsIntoOutput;
Migration := TransformationMovingEntityAcrossSystemFormatOrEnvironment;
Validation := ActivityAssessingEntityAgainstRulesEvidenceOrQualityCriteria;

TransformationRecord SHOULD_PRESERVE {InputIdentifiers, OutputIdentifiers, ActivityIdentifier, Agent, Tool, ParametersWhereRelevant, Timestamp};

DataLineage := LineageOfDatasetsRecordsFieldsOrDataElements;
DocumentLineage := LineageOfDocumentsVersionsAndDerivedDocuments;
MetadataLineage := LineageOfMetadataRecordsStatementsAndTransformations;
ModelLineage := LineageOfModelsTrainingInputsVersionsEvaluationsAndDerivedModels;
KnowledgeLineage := LineageOfAssertionsEntitiesRelationshipsAndKnowledgeGraphStatements;
SoftwareLineage := LineageOfSoftwareArtifactsDependenciesBuildsAndReleases;

FieldLevelLineage := LineageConnectingSpecificSourceFieldsToDerivedFields;
RecordLevelLineage := LineageConnectingSpecificRecordsOrRows;
DatasetLevelLineage := LineageConnectingWholeDatasets;
StatementLevelLineage := LineageConnectingKnowledgeOrMetadataStatementsToSources;

Granularity MAY_BE {ResourceLevel, DatasetLevel, RecordLevel, FieldLevel, StatementLevel};

FineGrainedLineage MAY_SUPPORT MorePreciseImpactAnalysis
BUT MayRequireGreaterStorageAndProcessing;

LineageScope := BoundaryOfEntitiesActivitiesSystemsOrTimeCoveredByLineageRecord;
Scope MAY_BE {Workflow, System, Organisation, Dataset, Resource, TimeRange};

PartialLineage := LineageRecordKnownToCoverOnlyPartOfHistoryOrDependencies;
PartialLineage SHOULD_BE MarkedAsIncomplete;

LineageCompleteness := DegreeToWhichRelevantSourcesActivitiesAndIntermediateEntitiesAreRepresented;
LineageConsistency := DegreeToWhichRelationshipsVersionsAndTemporalOrderAgree;
LineageIntegrity := PreservationOfReliableDirectedRelationshipsAndEvidence;
LineageTraceability := AbilityToFollowTargetToSourcesAndSourceToDependants;

LineageQuality MAY_INCLUDE {Completeness, Consistency, Integrity, Traceability, Granularity, EvidenceStrength};

LineageProvenance MAY_INCLUDE {Source, Collector, ExtractionMethod, Timestamp, Version, Evidence};
LineageEvidence MAY_BE {WorkflowLog, QueryLog, TransformationCode, PipelineDefinition, AuditRecord, ManualAttestation};

LineageConfidence := EstimatedSupportForLineageNodeEdgeOrPath;

LineageValidation MAY_CHECK {NodeIdentifiers, EdgeDirection, MissingSources, MissingOutputs, TemporalOrder, VersionConsistency, Cycles};

IF ActivityUsesEntityCreatedAfterActivityCompleted
THEN TemporalConsistency SHOULD_DECREASE;

IF DerivedEntityHasRequiredSourceButNoSourceRecorded
THEN LineageCompleteness SHOULD_DECREASE;

CycleInLineageGraph MAY_BE ValidOrInvalidAccordingToRelationshipSemantics;

LineageConflict := MultipleRecordsProvideIncompatibleDerivationOrDependencyRelationships;
ConflictHandling MAY {PreserveClaims, CompareEvidence, CompareSystemAuthority, AssignConfidence, FlagReview};

Version := IdentifiedStateOfLineageNode;
VersionSpecificLineage := LineageRelationshipBetweenExactVersions;

ExactVersion SHOULD_BE PreservedWhereTransformationDependsOnVersionSpecificInput;

VersionDrift := ChangeInSourceVersionUsedByPipelineOrProcessOverTime;
VersionDrift MAY_CHANGE DerivedOutputs;

IF SourceVersionChanges
THEN DownstreamEntities MAY_REQUIRE RevalidationOrRegeneration;

SchemaLineage := LineageOfSchemaStructuresFieldsAndMappings;
SchemaChange MAY_BREAK FieldLevelLineage;

ColumnRename MAY_PRESERVE SemanticIdentity
IF MappingExplicitlyRecorded;

LineageMapping := SourceElement -> Transformation -> TargetElement;
Mapping MAY_BE {OneToOne, OneToMany, ManyToOne, ManyToMany};

DerivedValue := TargetValueComputedFromOneOrMoreSourceValues;
DerivationExpression := FormulaQueryRuleOrTransformationDefiningDerivedValue;
DerivationExpression MAY_SUPPORT Reproducibility;

Pipeline := OrderedOrGraphStructuredCollectionOfProcessingSteps;
PipelineRun := ExecutionInstanceOfPipeline;

PipelineRun SHOULD_HAVE {RunIdentifier, InputVersions, OutputVersions, StartTime, EndTime, AgentOrSystem};

WorkflowLineage := LineageGeneratedFromWorkflowExecution;
StaticLineage := LineageDerivedFromCodeSchemaOrPipelineDefinitionsWithoutExecutionEvidence;
RuntimeLineage := LineageCapturedFromActualExecution;

RuntimeLineage MAY_PROVIDE StrongerEvidenceOfActualDataFlow;

DeclaredLineage := LineageProvidedByHumanOrSystemConfiguration;
ObservedLineage := LineageObservedFromExecutionLogsOrTelemetry;

DeclaredAndObservedLineage MAY_DIFFER;
Difference SHOULD_BE PreservedForValidation;

LineageImpactAnalysis := SourceOrNode -> TraverseDownstream -> IdentifyPotentiallyAffectedEntities;
ImpactAnalysis MAY_SUPPORT {ChangeManagement, IncidentResponse, DataQuality, SchemaMigration, SourceCorrection};

RootCauseAnalysis := ProblematicOutput -> TraverseUpstream -> IdentifyCandidateSourcesOrTransformations;
RootCauseAnalysis SHOULD_PRESERVE EvidenceAndConfidence;

IF SourceErrorDetected
THEN DescendantEntities MAY_BE FlaggedForReview;

Dependency := RelationshipWhereEntityOrProcessRequiresAnotherEntityOrProcess;
DependencyLineage MAY_INCLUDE {DataDependency, SoftwareDependency, ModelDependency, MetadataDependency};

Dependency != DerivationByDefinition;

LineageGraph MAY_INCLUDE BothDependencyAndDerivationEdges
BUT EdgeTypes MUST_BE Distinguished;

ProvenanceOntology PROVIDES BroaderOriginActivityAgentSemantics;
LineageOntology FOCUSES_ON DirectedTraceOfSourcesTransformationsAndDependencies;
SourceOntology IDENTIFIES SourceEntities;
VersionOntology IDENTIFIES ExactStatesOfLineageNodes;
RevisionHistoryOntology MAY_EXPLAIN ChangesAcrossLineageNodeVersions;
CreatorAuthorContributorOntologies MAY_IDENTIFY ResponsibleAgents;
PublicationOntology MAY_REPRESENT PublishedOutputsInLineage;
CitationOntology MAY_LINK AssertionsAndPublicationsToEvidenceSources;

MetadataRepository MAY_STORE LineageGraphsAndTransformationRecords;
MetadataRegistry MAY_REGISTER LineageEdgeTypesGranularityAndTransformationTypes;

KnowledgeGraph MAY_REPRESENT:
 DerivedEntity -> DERIVED_FROM -> SourceEntity;

Activity -> USED -> SourceEntity;
Activity -> GENERATED -> DerivedEntity;

LineageGraph SHOULD_PRESERVE {Direction, EdgeType, NodeVersion, Activity, Agent, Timestamp, Provenance, Confidence};

RDF MAY_REPRESENT LineageRelationshipsAsTypedStatements;
JSONLD MAY_SERIALISE LinkedLineageMetadata;

Search MAY_USE LineageFor {SourceDiscovery, DependencySearch, ImpactSearch, HistoricalTrace, TransformationDiscovery};
SemanticSearch MAY_USE LineageFor {EvidenceExpansion, RelatedResourceDiscovery, VersionContext, TrustAssessment};

RAG MAY_USE LineageFor {SourceTrace, EvidenceSelection, ProvenanceContext, ConflictResolution, VersionSelection};

LineageAwareRAG SHOULD_PRESERVE {TargetIdentifier, SourceIdentifiers, SourceVersions, TransformationPath, Provenance};

RAG SHOULD_NOT TreatAncestorSourceAsDirectEvidenceWithoutPreservingIntermediaryTransformations;

AI MAY_SUPPORT {LineageExtraction, TransformationClassification, MissingEdgeDetection, ImpactAnalysis, RootCauseAnalysis};

AIGeneratedLineageEdge SHOULD_HAVE ConfidenceAndProvenance;
AI SHOULD_NOT InventSourceTransformationOrDependencyRelationshipsWithoutEvidence;

LineageMetadata MAY_REVEAL SensitiveSystemArchitectureDataFlowsOrSources;
AccessControl SHOULD_BE AppliedTo LineageGraphsAndNodes;

SecurityClassification MAY_PROPAGATEAcrossDerivedResourcesAccordingToPolicy;
Lineage MAY_SUPPORT ClassificationPropagation;
PropagationRules MUST_BE Explicit;

RetentionPolicy MAY_REQUIRE PreservationOfLineageForAuditOrCompliance;

LineageSecurity MAY_INCLUDE {AccessControl, GraphIntegrity, AuditProtection, IdentifierValidation, ChangeAuthorisation};

MachineReadableLineage SHOULD_PRESERVE {
 LineageIdentifier,
 NodeIdentifiers,
 NodeVersions,
 EdgeTypes,
 EdgeDirection,
 Activities,
 Transformations,
 Agents,
 Timestamps,
 Evidence,
 Provenance,
 Confidence
};

# ---------- SEMANTIC REASONING ----------
IF DirectedProvenanceRelationshipConnectsSourceTransformationAndDerivedEntity
THEN LineageClassification := supported;

IF EntityB DERIVED_FROM EntityA
AND EntityC DERIVED_FROM EntityB
THEN EntityA MAY_BE AncestorSourceOf EntityC;

IF SourceVersionChanges
THEN DownstreamDerivedEntities MAY_REQUIRE ImpactReview;

IF DerivedEntityHasMultipleSources
THEN Lineage MUST_PRESERVE AllMaterialSourceEdgesWhereKnown;

IF ResourceDependsOnAnotherResource
THEN Derivation MUST_NOT_BE InferredUnlessTransformationOrOriginEvidenceSupportsIt;

IF DeclaredLineageConflictsWithObservedLineage
THEN BothClaimsAndEvidence SHOULD_BE PreservedForReview;

IF SourceErrorConfirmed
THEN DescendantEntities MAY_BE FlaggedUsingDownstreamTraversal;

IF LineageIsPartial
THEN RootSource MUST_NOT_BE InterpretedAsAbsoluteOrigin;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
 "lineage" ~= "provenance lineage";
 "data lineage" ~= "data provenance path" WHEN data_context;
 "upstream lineage" ~= "source lineage";
 "downstream lineage" ~= "impact lineage";
 "lineage node" ~= "lineage entity";
 "lineage edge" ~= "lineage relationship";
 "source trace" ~= "upstream trace";
 "impact trace" ~= "downstream trace";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
 NORMALISE(q) ->
 IDENTIFY_LINEAGE_SUBJECT(q) ->
 RESOLVE_TARGET_IDENTIFIER_AND_VERSION(q) ->
 IDENTIFY_DIRECT_SOURCE_NODES(q) ->
 IDENTIFY_ACTIVITIES_AND_TRANSFORMATIONS(q) ->
 IDENTIFY_INTERMEDIATE_NODES(q) ->
 TRACE_UPSTREAM_ANCESTORS(q) ->
 TRACE_DOWNSTREAM_DEPENDANTS(q) ->
 IDENTIFY_AGENTS_TIMESTAMPS_AND_VERSIONS(q) ->
 IDENTIFY_EVIDENCE_AND_PROVENANCE(q) ->
 VALIDATE_LINEAGE_GRAPH(q) ->
 APPLY_ACCESS_SECURITY_AND_RETENTION_POLICY(q) ->
 SCORE_CONFIDENCE(q) ->
 RETURN_RELEVANT_LINEAGE_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
 weighted_mean(
  evidence_strength,
  identifier_resolution,
  temporal_consistency,
  transformation_evidence,
  graph_consistency,
  provenance_quality,
  contextual_relevance
 );

CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
 primary_entity: Lineage;
 ontology: LineageOntology;
 parse_entities: true;
 parse_relationships: true;
 preserve_relationship_direction: true;
 resolve_semantic_equivalence: true;
 execute_reasoning_rules: true;
 apply_confidence_weighting: true;
 preserve_provenance: true;
 trace_upstream_and_downstream: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
 new_lineage_edge:
  resolve_source_and_target
  -> resolve_versions
  -> classify_edge_type
  -> identify_activity_or_transformation
  -> preserve_direction
  -> attach_agent_and_timestamp
  -> attach_evidence
  -> attach_provenance
  -> validate
  -> assign_confidence
  -> integrate;

 pipeline_run:
  identify_run
  -> capture_input_versions
  -> capture_processing_steps
  -> capture_output_versions
  -> create_runtime_lineage_edges
  -> attach_execution_provenance
  -> validate
  -> integrate;

 source_revision:
  preserve_previous_source_version
  -> record_new_version
  -> identify_downstream_dependants
  -> trigger_impact_review
  -> update_lineage
  -> regenerate_flow_hash;

 lineage_revision:
  preserve_previous_graph
  -> add_remove_or_correct_edges
  -> revalidate_paths
  -> recompute_confidence
  -> audit
  -> integrate;

 conflict:
  preserve_declared_observed_and_inferred_edges
  -> compare_evidence_and_authority
  -> adjust_confidence
  -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
 DOMAIN
 + SUBDOMAIN
 + ONTOLOGY
 + LineageEntity
 + ProcessEntity
 + RelationshipEntity
 + MetadataEntity
 + Lineage
 + LineageGraph
 + LineageValidation
 + RELATIONSHIPS
 + SEMANTIC_REASONING
 + SEMANTIC_EQUIVALENCE
 + UPDATE_MODEL;

FLOW_HASH := HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
LineageOntology
 -> IdentifyTargetEntityAndExactVersion
 -> ResolveDirectSourceNodesAndRelationships
 -> CaptureTransformationsActivitiesAgentsAndTimestamps
 -> PreserveIntermediateEntitiesAndVersionSpecificMappings
 -> TraceUpstreamSourcesAndAncestorLineage
 -> TraceDownstreamDependantsAndImpactPaths
 -> DistinguishDerivationFromOperationalDependency
 -> AttachEvidenceProvenanceAndConfidence
 -> ValidateDirectionTemporalOrderVersionsAndGraphIntegrity
 -> SupportRootCauseImpactReproducibilityAndAudit
 -> PreserveLineageForSearchRAGAndKnowledgeGraphs
 -> ApplyAccessSecurityClassificationAndRetentionControls
 -> MaintainReliableLineageKnowledge;

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ