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
Download Code
Copy to Clipboard