Skip to main content

Version 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
Version Ontology
Kireth Semantic Research Archive

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

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "VersionOntology" v4.0

DOMAIN := MetadataOntologies
SUBDOMAIN := ProvenanceMetadata
ONTOLOGY := VersionOntology

ENTITY Version {
 definition: "An identifiable state of a resource, entity, dataset, model, software artifact, publication, ontology or metadata object at a particular point in its lifecycle, represented with identifiers, ordering, derivation, revision relationships, timestamps, status and provenance.";
 objectives: [VersionIdentification, StateTracking, VersionOrdering, RevisionLinking, CompatibilityTracking, ProvenancePreservation, MachineInterpretability];
}

VersionEntity := {Version, VersionIdentifier, VersionRecord, VersionNumber, VersionLabel, VersionStatus, ResourceState, VersionSequence};
RelationshipEntity := {PreviousVersion, NextVersion, RevisionOf, Supersedes, SupersededBy, DerivedFrom, BranchOf, MergeOf};
LifecycleEntity := {DraftVersion, CurrentVersion, ReleasedVersion, ArchivedVersion, DeprecatedVersion, SupersededVersion, RetractedVersion};
MetadataEntity := {Resource, Timestamp, ChangeSet, ResponsibleAgent, Provenance, Confidence, Compatibility, Approval};

Version REPRESENTS ResourceState;
Version HAS_IDENTIFIER VersionIdentifier;
Version MAY_HAVE VersionNumber;
Version MAY_PRECEDE Version;
Version MAY_BE_REVISION_OF Version;
Version MAY_SUPERSEDE Version;
Version MAY_BE_DERIVED_FROM Version;
Provenance SUPPORTS VersionRelationship;

VersionFlow :=
 Resource
 -> IdentifyVersionedResource
 -> ResolveResourceIdentity
 -> IdentifyResourceState
 -> AssignVersionIdentifier
 -> DetermineVersionNumberOrLabel
 -> LinkPreviousAndRelatedVersions
 -> RecordTimestampStatusAndChangeSet
 -> AttachResponsibleAgentAndProvenance
 -> ValidateVersionRelationships
 -> StoreVersionRecord
 -> EnableVersionAwareRetrieval
 -> MaintainAcrossLifecycle;

Version := IdentifiedStateOfResourceAtSpecificLifecyclePoint;

Resource MAY_BE {Document, Dataset, Software, Model, Publication, Ontology, Schema, MetadataRecord, Policy, KnowledgeGraph};

ResourceIdentity := PersistentConceptualIdentityAcrossOneOrMoreVersions;
VersionIdentity := IdentityOfSpecificResourceState;

ResourceIdentifier MAY_REMAIN StableAcrossVersions;
VersionIdentifier SHOULD_DISTINGUISH SpecificStates;

VersionIdentifier := StableReferenceToSpecificVersion;
VersionIdentifier MAY_BE {URI, IRI, UUID, SemanticVersion, SequentialVersion, DateVersion, HashIdentifier, CommitIdentifier, InternalIdentifier};

VersionRecord := StructuredMetadataRecordDescribingVersionIdentityRelationshipsAndState;

VersionNumber := HumanOrMachineReadableNumberAssignedToVersion;
VersionNumber MAY_BE {Integer, Decimal, SemanticVersion, DateBasedVersion, CustomVersion};

VersionLabel := HumanReadableLabelAssociatedWithVersion;
VersionLabel MAY_BE {v1, v2, Alpha, Beta, ReleaseCandidate, Stable, Latest};

Latest IS_CONTEXT_DEPENDENT;
Latest SHOULD_NOT_BE TreatedAsPersistentVersionIdentity;

SemanticVersion := StructuredVersionNumberUsingDefinedMajorMinorPatchSemantics;
SemanticVersion MAY_HAVE {Major, Minor, Patch, PreRelease, BuildMetadata};

MajorVersion := VersionComponentOftenUsedForBreakingOrIncompatibleChangeAccordingToPolicy;
MinorVersion := VersionComponentOftenUsedForBackwardCompatibleFeatureChangeAccordingToPolicy;
PatchVersion := VersionComponentOftenUsedForBackwardCompatibleCorrectionAccordingToPolicy;

SemanticVersionMeaning MUST_FOLLOW DeclaredVersioningScheme;

SequentialVersion := MonotonicallyOrderedVersionNumberAccordingToSystemPolicy;
DateVersion := VersionIdentifierDerivedFromDateOrTimestamp;
HashIdentifier := IdentifierDerivedFromResourceContentOrVersionState;

ContentHash MAY_SUPPORT {Integrity, Deduplication, ImmutableVersionIdentification};

SameContentHash MAY_INDICATE IdenticalBytes
BUT DoesNotNecessarilyEstablishSameConceptualResourceIdentity;

ResourceState := ContentStructureMetadataConfigurationOrModelStateRepresentedByVersion;
StateSnapshot := PreservedRepresentationOfResourceStateAtVersion;
Snapshot MAY_SUPPORT {Reconstruction, Comparison, Audit, Reproducibility};

VersionSequence := OrderedCollectionOfVersionsWithinDefinedBranchOrResourceHistory;
PreviousVersion := ImmediateEarlierVersionWithinDefinedSequence;
NextVersion := ImmediateLaterVersionWithinDefinedSequence;

IF VersionA PRECEDES VersionB
THEN VersionB FOLLOWS VersionA;

VersionOrder MAY_BE {Sequential, Temporal, Semantic, GraphBased};
VersionOrdering SHOULD_BE ExplicitlyDefined;
TemporalOrder MAY_DIFFER_FROM SemanticVersionOrder;

RevisionOf := RelationshipIndicatingVersionWasCreatedByRevisingEarlierVersion;
Supersedes := RelationshipIndicatingVersionReplacesEarlierVersionForDefinedPurpose;
SupersededBy := InverseRelationshipOf Supersedes;

IF VersionB SUPERSEDES VersionA
THEN VersionA IS_SUPERSEDED_BY VersionB;

DerivedFrom := RelationshipIndicatingVersionOrResourceWasProducedUsingEarlierVersionAsSource;
RevisionOf MAY_IMPLY DerivedFrom;
DerivedFrom DOES_NOT NecessarilyImply RevisionOf;

BranchOf := RelationshipIndicatingVersionBelongsToBranchDerivedFromEarlierState;
MergeOf := RelationshipIndicatingVersionCombinesMultipleParentVersions;

VersionGraph := Versions + DirectedTypedVersionRelationships;
VersionGraph MUST_PRESERVE Direction;

LinearVersionHistory := VersionGraphWithSinglePrimarySuccessorPath;
BranchingVersionHistory := VersionGraphWithMultipleSuccessorBranches;
MergeVersion := VersionWithMultipleParentVersions;

AncestorVersion := EarlierVersionReachableThroughVersionRelationships;
DescendantVersion := LaterVersionReachableFromVersion;

IF B REVISION_OF A
AND C REVISION_OF B
THEN A MAY_BE AncestorVersionOf C;

DirectPreviousVersion != AncestorVersion;

VersionStatus := LifecycleStateOfVersion;
VersionStatus MAY_BE {Draft, Proposed, Approved, Released, Current, Deprecated, Superseded, Archived, Retracted, Withdrawn};

DraftVersion := VersionStillUnderDevelopmentOrRevision;
ReleasedVersion := VersionMadeAvailableForUseOrDistribution;
CurrentVersion := VersionDesignatedAsCurrentForDefinedContext;
ArchivedVersion := VersionRetainedForHistoryPreservationOrAudit;
DeprecatedVersion := VersionStillExistingButDiscouragedForNewUse;
SupersededVersion := VersionReplacedByLaterVersion;
RetractedVersion := VersionWithdrawnBecauseOfIntegrityValidityOrPublicationIssue;

MultipleCurrentVersions MAY_EXISTAcrossBranchesPlatformsOrContexts;
CurrentVersion MUST_BE QualifiedByContextWhereAmbiguous;

VersionTimestamp := TimeAssociatedWithVersionCreationReleaseApprovalOrEffect;
Timestamp MAY_INCLUDE {CreatedAt, ModifiedAt, ApprovedAt, ReleasedAt, EffectiveAt};
TimestampType SHOULD_BE Explicit;

ChangeSet := StructuredRepresentationOfChangesFromRelatedEarlierVersion;
ChangeSet MAY_INCLUDE {Added, Removed, Modified, Renamed, Reordered, Replaced};

VersionDifference := DifferenceBetweenTwoVersionStates;
VersionDifference MAY_BE {TextDifference, StructuralDifference, MetadataDifference, SemanticDifference, BinaryDifference};

SyntacticDifference != SemanticDifferenceByDefinition;

BreakingChange := VersionChangeThatMayInvalidateConsumersInterfacesReferencesOrAssumptions;
NonBreakingChange := ChangeExpectedToPreserveDefinedCompatibility;

Compatibility := RelationshipDescribingWhetherVersionCanBeUsedWithAnotherVersionSystemOrInterface;
Compatibility MAY_BE {BackwardCompatible, ForwardCompatible, Incompatible, Unknown};

BackwardCompatibility := NewVersionCanSupportDefinedUsesOfEarlierVersionAccordingToCompatibilityModel;
ForwardCompatibility := EarlierConsumerCanHandleDefinedNewerVersionRepresentationAccordingToModel;

Compatibility MUST_BE DefinedAgainst SpecificInterfaceSchemaOrConsumerContext;

VersionConstraint := RuleRestrictingAcceptableVersions;
VersionConstraint MAY_INCLUDE {ExactVersion, MinimumVersion, MaximumVersion, VersionRange, CompatibleRange};

Dependency MAY_REQUIRE VersionConstraint;
DependencyResolution := SelectVersionSatisfyingApplicableConstraints;

VersionConflict := MultipleDependenciesOrPoliciesRequireIncompatibleVersions;
ConflictHandling MAY {SelectCompatibleVersion, IsolateVersions, MigrateConsumer, FlagReview};

VersionAlias := AlternativeLabelPointingToVersion;
Alias MAY_BE {Latest, Stable, Production, LTS};

VersionAlias SHOULD_RESOLVE_TO ConcreteVersionIdentifierBeforeReproducibleUse;
LatestAlias MAY_CHANGE_OVER_TIME;

PinnedVersion := ExplicitlySelectedVersionIdentifierUsedToEnsureStableDependencyOrRetrieval;
ReproducibleWorkflow SHOULD_PREFER PinnedVersionWhereVersionDriftMatters;

VersionRelease := EventMakingVersionAvailable;
Release MAY_HAVE {ReleaseIdentifier, ReleaseDate, ReleaseNotes, PublisherOrAgent};

ReleaseNotes := HumanReadableDescriptionOfChangesInReleasedVersion;
ReleaseNotes MAY_SUMMARISE ChangeSet;
ReleaseNotes SHOULD_NOT ReplaceMachineReadableChangeDataWhereRequired;

ResponsibleAgent := AgentResponsibleForCreatingApprovingPublishingOrMaintainingVersion;
ResponsibleAgent MAY_BE {Person, Organisation, SoftwareAgent, AIModel, AutomatedService};

VersionCreator := AgentCreatingVersionState;
VersionApprover := AgentAuthorisingVersionWhereApprovalRequired;
VersionPublisher := AgentReleasingOrPublishingVersion;

Approval := AuthorisedDecisionAllowingVersionToBecomeEffectiveOrReleased;

IF ApprovalRequired
AND ApprovalMissing
THEN Version SHOULD_NOT BecomeAuthoritativeReleasedVersion;

VersionProvenance MAY_INCLUDE {SourceVersion, Creator, Activity, Tool, Timestamp, ChangeSet, Approval};
VersionEvidence MAY_BE {RepositoryRecord, Commit, ReleaseRecord, PublicationRecord, Checksum, AuditLog};

VersionConfidence := EstimatedSupportForInferredVersionIdentityOrRelationship;

VersionValidation MAY_CHECK {ResourceIdentity, VersionIdentifier, VersionOrder, ParentRelationships, Timestamp, Status, ChangeSet};

IF VersionReferencesItselfAsPreviousVersion
THEN ValidationStatus := violation;

IF VersionGraphContainsInvalidRevisionCycle
THEN GraphValidation SHOULD_FLAG Conflict;

IF SemanticVersionMalformedAccordingToDeclaredScheme
THEN VersionIdentifierValidation := violation;

VersionCompleteness := DegreeToWhichRequiredIdentityRelationshipStatusAndProvenanceMetadataArePresent;
VersionConsistency := DegreeToWhichIdentifiersOrderingRelationshipsAndTimestampsAgree;
VersionIntegrity := PreservationOfReliableVersionStateRelationshipsAndHistory;
VersionTraceability := AbilityToTraceVersionBackToSourcesParentsAndActivities;

VersionQuality MAY_INCLUDE {Completeness, Consistency, Integrity, Traceability, Reproducibility};

IdentifierCollision := SameVersionIdentifierAssignedToDifferentResourceStatesWithinRequiredUniqueScope;

IF IdentifierCollisionDetected
THEN VersionIntegrity SHOULD_BE ConsideredCompromised;

ImmutableVersion := VersionWhoseContentMustNotChangeAfterPublicationOrIdentification;

IF ImmutableVersionContentChanges
THEN NewVersionIdentifier SHOULD_BE Created;

MutableVersion := VersionLabelOrResourceStatePermittedToChangeAccordingToPolicy;
MutableVersion SHOULD_NOT BeUsedAsSoleReferenceForStrictReproducibility;

PublicationVersion := VersionOfPublishedResource;
DatasetVersion := VersionOfDataset;
SoftwareVersion := VersionOfSoftwareArtifact;
ModelVersion := VersionOfMachineLearningOrAIModel;
OntologyVersion := VersionOfOntology;
SchemaVersion := VersionOfSchema;
MetadataVersion := VersionOfMetadataRecordOrMetadataModel;
PolicyVersion := VersionOfAdministrativeOrGovernancePolicy;

EachVersionType MAY_HAVE DomainSpecificVersioningRules;

RevisionHistoryOntology SHOULD_LINK VersionsThroughRevisionEventsAndChangeSets;
ProvenanceOntology SHOULD_LINK VersionToSourceActivityAndAgent;
PublicationOntology MAY_DEFINE PublishedVersionEditionAndVersionOfRecord;
CitationOntology SHOULD_REFERENCE ExactVersionWhereClaimDependsOnVersion;
SourceOntology SHOULD_PRESERVE SourceVersionUsedForDerivation;
CrossReferenceOntology MAY_REQUIRE VersionMappingWhenTargetsChange;

MetadataRepository MAY_STORE VersionRecordsSnapshotsAndRelationships;
MetadataRegistry MAY_REGISTER VersionPropertiesSchemesStatusesAndCompatibilityTypes;

KnowledgeGraph MAY_REPRESENT:
 VersionB -> REVISION_OF -> VersionA;

VersionB -> SUPERSEDES -> VersionA;
Version -> VERSION_OF -> Resource;

VersionGraph SHOULD_PRESERVE {Direction, ParentVersions, Status, Timestamp, ChangeSet, Provenance, Confidence};

RDF MAY_REPRESENT VersionRelationshipsAsTypedStatements;
JSONLD MAY_SERIALISE LinkedVersionMetadata;

Search MAY_USE VersionMetadataFor {CurrentVersionSelection, HistoricalSearch, VersionFiltering, ReleaseFiltering, StatusFiltering};

SemanticSearch SHOULD_RESOLVE VersionAliasesBeforeReturningVersionSpecificClaims;

RAG MAY_USE VersionMetadataFor {SourceSelection, VersionSpecificCitation, Reproducibility, HistoricalComparison};

RAG SHOULD_PREFER ExactOrPinnedVersionWhereVersionSpecificEvidenceMatters;
RAG MUST_NOT MixIncompatibleVersionsWithoutExplicitContext;

VersionAwareRAG SHOULD_PRESERVE {ResourceIdentifier, VersionIdentifier, VersionStatus, RetrievalTimestamp, Provenance};

AI MAY_SUPPORT {VersionDetection, VersionMatching, ChangeClassification, CompatibilityAnalysis, VersionConflictDetection};

AIGeneratedVersionInference SHOULD_HAVE ConfidenceAndProvenance;
AI SHOULD_NOT InventVersionIdentifiersReleaseDatesOrVersionRelationships;

VersionMetadata MAY_CONTAIN SensitiveHistoricalOrOperationalInformation;
AccessControl SHOULD_BE AppliedTo RestrictedVersionsAndHistoricalStates;

RetentionPolicy MAY_CONTROL HowLongVersionsArePreserved;
ArchivedOrDeletedVersions MAY_REMAIN SubjectTo LegalHoldOrPreservationPolicy;

VersionSecurity MAY_INCLUDE {AccessControl, IdentifierIntegrity, HistoryIntegrity, Audit, ChangeAuthorisation, DigitalSigning};

MachineReadableVersion SHOULD_PRESERVE {
 ResourceIdentifier,
 VersionIdentifier,
 VersionNumber,
 VersionLabel,
 VersionStatus,
 ParentVersionIdentifiers,
 ChangeSet,
 Compatibility,
 ResponsibleAgents,
 Timestamps,
 Provenance,
 Confidence
};

# ---------- SEMANTIC REASONING ----------
IF IdentifiableResourceStateIsDistinguishedFromOtherStates
THEN VersionClassification := supported;

IF VersionB REVISION_OF VersionA
THEN VersionA MAY_BE PreviousOrAncestorVersionOf VersionB;

IF VersionB SUPERSEDES VersionA
THEN VersionA IS_SUPERSEDED_BY VersionB;

IF VersionAliasIsUsed
THEN Alias SHOULD_BE ResolvedToConcreteVersionForReproducibleProcessing;

IF ImmutableVersionChanges
THEN NewVersionIdentifier SHOULD_BE Required;

IF VersionStatusIsDeprecated
THEN NewUse MAY_BE Discouraged
BUT HistoricalUseAndReferences SHOULD_BE Preserved;

IF MaterialVersionChangeOccurs
THEN CitationsReferencesIndexesEmbeddingsOrDependentResources MAY_REQUIRE Revalidation;

IF VersionIdentifierCollisionOccurs
THEN VersionIntegrity SHOULD_DECREASE
AND Review SHOULD_BE Triggered;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
 "version" ~= "resource version" WHEN provenance_context;
 "version identifier" ~= "version ID";
 "previous version" ~= "predecessor version";
 "current version" ~= "active current version" WHEN defined_context;
 "version history" ~= "version sequence" WHEN linear_context;
 "semantic version" ~= "SemVer" WHEN semantic_versioning_context;
 "superseded version" ~= "replaced version";
 "pinned version" ~= "fixed version reference";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
 NORMALISE(q) ->
 IDENTIFY_RESOURCE(q) ->
 RESOLVE_RESOURCE_IDENTITY(q) ->
 IDENTIFY_VERSION(q) ->
 RESOLVE_VERSION_IDENTIFIER(q) ->
 IDENTIFY_VERSION_SCHEME_NUMBER_AND_LABEL(q) ->
 IDENTIFY_PARENT_PREVIOUS_AND_RELATED_VERSIONS(q) ->
 IDENTIFY_STATUS_TIMESTAMPS_AND_CHANGESET(q) ->
 IDENTIFY_COMPATIBILITY_AND_CONSTRAINTS(q) ->
 IDENTIFY_RESPONSIBLE_AGENTS_AND_PROVENANCE(q) ->
 VALIDATE_VERSION_GRAPH(q) ->
 APPLY_ACCESS_RETENTION_AND_SECURITY_POLICY(q) ->
 SCORE_CONFIDENCE(q) ->
 RETURN_RELEVANT_VERSION_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
 weighted_mean(
  identifier_strength,
  relationship_consistency,
  temporal_consistency,
  change_evidence,
  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: Version;
 ontology: VersionOntology;
 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;
 resolve_version_aliases: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
 new_version:
  identify_resource
  -> assign_version_identifier
  -> capture_resource_state
  -> identify_parent_versions
  -> assign_number_label_and_status
  -> capture_changeset
  -> identify_responsible_agents
  -> attach_timestamps
  -> attach_provenance
  -> validate
  -> integrate;

 version_revision:
  preserve_previous_version
  -> create_new_version_state
  -> compute_or_receive_changeset
  -> link_parent_and_successor
  -> update_statuses
  -> revalidate_dependants
  -> regenerate_flow_hash;

 release:
  identify_version
  -> verify_approval
  -> assign_release_status
  -> attach_release_date_and_notes
  -> preserve_provenance
  -> integrate;

 supersession:
  identify_old_and_new_versions
  -> validate_resource_identity
  -> create_supersedes_relationship
  -> update_status
  -> preserve_history
  -> integrate;

 conflict:
  preserve_competing_version_claims
  -> compare_identifiers_states_timestamps_and_evidence
  -> adjust_confidence
  -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
 DOMAIN
 + SUBDOMAIN
 + ONTOLOGY
 + VersionEntity
 + RelationshipEntity
 + LifecycleEntity
 + MetadataEntity
 + Version
 + VersionGraph
 + VersionValidation
 + RELATIONSHIPS
 + SEMANTIC_REASONING
 + SEMANTIC_EQUIVALENCE
 + UPDATE_MODEL;

FLOW_HASH := HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
VersionOntology
 -> IdentifyVersionedResourceAndPersistentResourceIdentity
 -> AssignStableVersionIdentifierNumberAndLabel
 -> CaptureResourceStateSnapshotAndVersionStatus
 -> LinkPreviousParentDerivedBranchAndMergeVersions
 -> RecordChangeSetCompatibilityTimestampsAndResponsibleAgents
 -> PreserveReleaseApprovalEvidenceAndProvenance
 -> ValidateVersionOrderingIdentifiersAndGraphConsistency
 -> ResolveAliasesToConcreteVersionsForReproducibility
 -> TrackCurrentDeprecatedSupersededArchivedAndRetractedStates
 -> RevalidateCitationsReferencesDependenciesAndAIRepresentationsAfterMaterialChanges
 -> SupportVersionAwareSearchRAGCitationAndKnowledgeGraphs
 -> ApplyAccessRetentionAndSecurityControls
 -> MaintainReliableVersionKnowledge;

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