Skip to main content

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

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

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "SourceOntology" v4.0

DOMAIN := MetadataOntologies
SUBDOMAIN := ProvenanceMetadata
ONTOLOGY := SourceOntology

ENTITY Source {
    definition:
        "An identifiable entity, resource, agent, record or evidence object
         from which information, data, metadata, assertions, derived resources
         or knowledge originate or are obtained.";
    objectives: [
        SourceIdentification,
        OriginTracking,
        EvidenceLinking,
        DerivationSupport,
        AuthorityAssessment,
        Traceability,
        MachineInterpretability
    ];
}

SourceEntity := {
    Source,
    SourceResource,
    PrimarySource,
    SecondarySource,
    TertiarySource,
    SourceIdentifier,
    SourceRecord,
    SourceVersion
};

EvidenceEntity := {
    Evidence,
    Citation,
    Reference,
    Assertion,
    Provenance,
    Confidence,
    Authority,
    Reliability
};

RelationshipEntity := {
    DerivedFrom,
    ObtainedFrom,
    ExtractedFrom,
    Cites,
    References,
    Supports,
    Contradicts,
    Verifies
};

MetadataEntity := {
    Creator,
    Publisher,
    Repository,
    Timestamp,
    Version,
    AccessDate,
    Licence,
    Rights
};

Source SUPPORTS Assertion;
DerivedResource IS_DERIVED_FROM Source;
Information MAY_BE_OBTAINED_FROM Source;
Extraction MAY_USE Source;
Citation REFERENCES Source;
Provenance IDENTIFIES Source;
SourceIdentifier IDENTIFIES Source;
SourceVersion SPECIFIES SourceState;

SourceFlow :=
    InformationOrDerivedResource
    -> IdentifySourceRequirement
    -> DiscoverCandidateSources
    -> ResolveSourceIdentity
    -> ResolveSourceVersion
    -> ClassifySourceType
    -> AssessAuthorityReliabilityAndRelevance
    -> AttachCitationAndProvenance
    -> ValidateSourceRelationship
    -> StoreSourceRecord
    -> EnableTraceabilityAndEvidenceRetrieval
    -> MaintainAcrossVersions;

Source :=
    IdentifiableOriginOfInformationDataEvidenceOrDerivedResource;

Source MAY_BE {
    Document,
    Dataset,
    Database,
    WebResource,
    Publication,
    ArchiveRecord,
    Person,
    Organisation,
    SoftwareSystem,
    Sensor,
    API,
    KnowledgeGraph
};

SourceResource :=
    ResourceUsedAsOriginInputEvidenceOrReference;

SourceIdentifier :=
    StableOrResolvableReferenceToSource;

SourceIdentifier MAY_BE {
    URI,
    IRI,
    DOI,
    ISBN,
    ISSN,
    UUID,
    AccessionIdentifier,
    InternalIdentifier
};

StableSourceIdentifier SHOULD_BE PreferredForMachineLinking;

SourceRecord :=
    StructuredMetadataRecordDescribingSourceIdentityContextAndProvenance;

SourceVersion :=
    IdentifiedStateOfSourceAtSpecificPointInTime;

ExactSourceVersion SHOULD_BE PreservedWhenDerivedOutputDependsOnVersionSpecificContent;

PrimarySource :=
    SourceProvidingOriginalFirstHandDirectOrAuthoritativeEvidenceAccordingToDomainContext;

SecondarySource :=
    SourceAnalysingInterpretingSummarisingOrDiscussingPrimaryOrOtherSources;

TertiarySource :=
    SourceCompilingIndexingOrSummarisingInformationFromPrimaryAndSecondarySources;

PrimarySecondaryTertiaryClassification IS_CONTEXT_DEPENDENT;

SameResource MAY_BE PrimarySourceInOneInquiryAndSecondarySourceInAnother;

OriginalSource :=
    EarliestKnownSourceWithinDefinedProvenanceGraph;

OriginalSource != AbsoluteOriginUnlessGraphCompletenessEstablished;

AuthoritativeSource :=
    SourceRecognisedAsOfficialExpertOrControllingForSpecificClaimOrDomain;

AuthoritativeSource != NecessarilyPrimarySource;

CanonicalSource :=
    PreferredReferenceRepresentationOfSourceAmongEquivalentOrDuplicateRepresentations;

MirrorSource :=
    CopyOrReplicaOfAnotherSource;

Mirror SHOULD_REFERENCE CanonicalOrOriginSourceWhereKnown;

SourceLocation :=
    CurrentNetworkPhysicalOrRepositoryLocationOfSource;

Location != IdentityByDefinition;

Source MAY_MOVEWithout ChangingCanonicalIdentity;

Creator :=
    AgentResponsibleForCreatingSource;

Publisher :=
    AgentResponsibleForPublishingOrDistributingSource;

Repository :=
    SystemOrganisationOrArchiveHoldingSource;

SourceAuthority :=
    DegreeOrStatusOfRecognisedAuthorityForSpecificInformation;

Authority MAY_DEPEND_ON {
    Domain,
    Jurisdiction,
    Role,
    PublicationStatus,
    Governance
};

SourceReliability :=
    EstimatedConsistencyAccuracyAndTrustworthinessOfSourceForDefinedPurpose;

Reliability MAY_BE_FUNCTION_OF {
    Authority,
    EvidenceQuality,
    Provenance,
    HistoricalAccuracy,
    Independence
};

SourceRelevance :=
    DegreeToWhichSourceAddressesTargetQuestionAssertionOrResource;

SourceCurrency :=
    DegreeToWhichSourceVersionOrPublicationDateIsAppropriateForTimeSensitiveContext;

FreshnessRequirement MAY_DIFFER_BY DomainAndQuery;

OlderSource MAY_BE PreferredForHistoricalEvidence;

SourceCompleteness :=
    DegreeToWhichRequiredSourceInformationIsAvailable;

SourceIntegrity :=
    DegreeToWhichSourceHasNotBeenUnexpectedlyAltered;

SourceQuality MAY_INCLUDE {
    Authority,
    Reliability,
    Relevance,
    Currency,
    Completeness,
    Integrity
};

Evidence :=
    InformationUsedToSupportVerifyChallengeOrContextualiseAssertion;

Source MAY_PROVIDE Evidence;

EvidenceStrength :=
    DegreeToWhichEvidenceSupportsAssertion;

Assertion :=
    ClaimStatementOrKnowledgeProposition;

SourceAssertionRelationship MAY_BE {
    Supports,
    Contradicts,
    Verifies,
    Mentions,
    Contextualises
};

Supports :=
    SourceProvidesEvidenceConsistentWithAssertion;

Contradicts :=
    SourceProvidesEvidenceInconsistentWithAssertion;

Verifies :=
    SourceProvidesSufficientEvidenceForDefinedValidationProcess;

Mention != SupportByDefinition;

SourceMention :=
    SourceContainsReferenceToEntityTopicOrAssertionWithoutNecessarilySupportingIt;

Citation :=
    StructuredReferenceToSource;

Citation MAY_INCLUDE {
    Creator,
    Title,
    Publisher,
    Date,
    Identifier,
    Locator
};

CitationLocator :=
    LocationWithinSourceRelevantToCitation;

Locator MAY_BE {
    Page,
    Section,
    Paragraph,
    Timestamp,
    Fragment,
    DatasetRow
};

Reference :=
    LinkOrPointerToSource;

Citation SHOULD_RESOLVE_TO SourceWherePossible;

BrokenCitation :=
    CitationWhoseSourceOrLocatorCannotBeResolved;

BrokenCitation MAY_DECREASE Traceability;

AccessDate :=
    DateOnWhichDynamicOrWebSourceWasAccessed;

AccessDate MAY_BE ImportantFor MutableSources;

PublicationDate :=
    DateSourceWasPublished;

ModificationDate :=
    DateSourceWasModified;

RetrievedVersion :=
    ExactVersionOrSnapshotUsedDuringRetrieval;

DynamicSource :=
    SourceWhoseContentMayChangeOverTime;

DynamicSource SHOULD_PRESERVE {
    AccessDate,
    VersionOrSnapshotWherePossible
};

Snapshot :=
    PreservedRepresentationOfSourceAtSpecificTime;

Snapshot MAY_SUPPORT ReproducibilityAndAuditability;

ArchivedSource :=
    SourcePreservedInArchiveOrRepository;

UnavailableSource :=
    SourceKnownButCurrentlyNotAccessible;

Unavailable != NonexistentByDefinition;

RestrictedSource :=
    SourceWhoseAccessIsLimitedByPolicy;

SourceAccessPolicy MAY_RESTRICT {
    Discovery,
    Metadata,
    Content,
    Download,
    Reuse
};

SourceRights MAY_INCLUDE {
    Copyright,
    Licence,
    UsageRestriction
};

SourceEligibility :=
    DeterminationWhetherSourceMayBeUsedForSpecificPurpose;

Eligibility MAY_DEPEND_ON {
    AccessPolicy,
    Licence,
    SecurityClassification,
    Quality,
    QueryPurpose
};

DerivedResource :=
    ResourceCreatedUsingOneOrMoreSources;

Derivation :=
    DerivedResource
    -> IS_DERIVED_FROM
    -> Source;

MultiSourceDerivation :=
    DerivedResource
    -> IS_DERIVED_FROM
    -> MultipleSources;

Aggregation :=
    DerivedResourceCreatedByCombiningSources;

Extraction :=
    DerivedResourceCreatedBySelectingInformationFromSource;

Transformation :=
    DerivedResourceCreatedByChangingRepresentationOrStructureOfSource;

SourceContribution :=
    DegreeOrRoleOfSourceInDerivedResource;

Contribution MAY_BE {
    PrimaryInput,
    SupportingInput,
    Context,
    ValidationSource
};

SourceLineage :=
    DirectedGraphConnectingDerivedResourcesToSourcesAndAncestorSources;

IF ResourceA DERIVED_FROM SourceB
AND SourceB DERIVED_FROM SourceC
THEN SourceC MAY_BE AncestorSourceOf ResourceA;

DirectSource != AncestorSource;

SourceChain :=
    OrderedOrGraphStructuredSequenceOfSourceRelationships;

SourceTrace :=
    TargetResourceOrAssertion
    -> FollowSourceRelationships
    -> SourceEntities;

SourceConflict :=
    MultipleSourcesProvideIncompatibleInformationAboutSameAssertionOrEntity;

ConflictHandling MAY {
    PreserveAllSources,
    CompareAuthority,
    CompareEvidence,
    CompareCurrency,
    AssignConfidence,
    FlagReview
};

SourceConflict SHOULD_NOT BeResolvedSolelyBySourceCount;

IndependentSources MAY_PROVIDE StrongerCorroborationThanCopiedSources;

SourceIndependence :=
    DegreeToWhichSourcesAreNotDerivedFromSameUnderlyingOrigin;

ApparentMultipleSources MAY_HAVE CommonAncestorSource;

SourceDeduplication :=
    IdentificationOfDuplicateMirrorOrNearDuplicateSources;

Deduplication SHOULD_PRESERVE ProvenanceAndCanonicalIdentity;

SourceEquivalence :=
    RelationshipIndicatingTwoRepresentationsReferToSameUnderlyingSource;

EquivalentSourceRepresentations MAY_HAVE DifferentLocationsFormatsOrIdentifiers;

SourceValidation MAY_CHECK {
    Identifier,
    Existence,
    Version,
    CitationLocator,
    AccessStatus,
    Provenance
};

IF SourceIdentifierCannotResolve
THEN ResolutionStatus MAY_BE MissingOrUnavailable;

IF ExactVersionRequiredButUnknown
THEN ReproducibilityConfidence SHOULD_DECREASE;

SourceProvenance MAY_INCLUDE {
    DiscoveryMethod,
    Retriever,
    RetrievalTime,
    Repository,
    Version
};

SourceConfidence :=
    EstimatedSupportForSourceIdentityOrSourceAssertionRelationship;

SourceConfidence MAY_DEPEND_ON {
    IdentifierStrength,
    Resolution,
    Provenance,
    Authority,
    EvidenceMatch
};

SourceVersionHistory :=
    OrderedCollectionOfSourceVersions;

SourceRevision MAY_CHANGE {
    Content,
    Metadata,
    Location,
    IdentifierMapping
};

If SourceContentChanges
THEN DerivedAssertions MAY_REQUIRE RevalidationAccordingToUse;

PersistentIdentifier MAY_ALLOW StableReferenceAcrossLocationChanges;

SourceReplacement :=
    NewSourceSupersedingPreviousSourceForDefinedPurpose;

SupersededSource SHOULD_REMAIN InProvenanceHistoryWherePreviouslyUsed;

MetadataRepository MAY_STORE SourceRecordsAndCitationRelationships;

MetadataRegistry MAY_REGISTER SourceTypesIdentifiersAndEvidenceRelationships;

KnowledgeGraph MAY_REPRESENT:
    Assertion
    -> SUPPORTED_BY
    -> Source;

DerivedResource
    -> DERIVED_FROM
    -> Source;

SourceGraph SHOULD_PRESERVE {
    RelationshipType,
    Direction,
    Version,
    Provenance,
    Confidence
};

RDF MAY_REPRESENT SourceRelationshipsAsTypedStatements;

JSONLD MAY_SERIALISE LinkedSourceMetadata;

Search MAY_USE SourceMetadataFor {
    AuthorityFiltering,
    DateFiltering,
    RepositoryFiltering,
    SourceTypeFiltering
};

SemanticSearch MAY_RANK SourcesUsing {
    Relevance,
    Authority,
    Currency,
    Reliability
};

Ranking SHOULD_NOT ConvertHeuristicScoreIntoTruthClaim;

RAG MAY_USE SourceMetadataFor {
    Retrieval,
    Ranking,
    Citation,
    EvidenceSelection,
    ConflictResolution
};

RAGSourceRecord SHOULD_PRESERVE {
    SourceIdentifier,
    SourceVersion,
    RetrievalTimestamp,
    Locator,
    Provenance
};

AIOutputUsingSource SHOULD_PRESERVE SourceLinkageWhereSupported;

KnowledgeExtraction :=
    Source
    -> ExtractAssertionsEntitiesRelationships
    -> AttachSourceProvenance;

ExtractedAssertion SHOULD_REFERENCE SourceAndExtractionMethod;

AI MAY_SUPPORT {
    SourceDiscovery,
    SourceClassification,
    EntityResolution,
    CitationResolution,
    ReliabilityAssessment
};

AIGeneratedSourceAssessment SHOULD_BE TreatedAsInferenceNotAuthoritativeFactUnlessValidated;

SourceMetadata MAY_CONTAIN SensitiveOrRestrictedInformation;

PrivacySecurityAndAccessPolicy SHOULD_BE AppliedBeforeSourceDisclosure;

SourceSecurity MAY_INCLUDE {
    AccessControl,
    IdentifierValidation,
    LinkValidation,
    ProvenanceIntegrity
};

MachineReadableSource SHOULD_PRESERVE {
    SourceIdentifier,
    SourceType,
    Creator,
    Publisher,
    Repository,
    Version,
    Dates,
    CitationLocator,
    Rights,
    Provenance,
    Confidence
};

# ---------- SEMANTIC REASONING ----------
IF EntityProvidesOriginInputEvidenceOrReferenceForInformationOrDerivedResource
THEN SourceClassification := supported;

IF SourceIsPrimary
THEN It MUST_NOT AutomaticallyBeAssumedAuthoritativeForEveryClaim;

IF SourceIsAuthoritative
THEN AuthorityAppliesOnlyWithinRelevantScope;

IF DynamicSourceUsed
THEN AccessDateAndVersion SHOULD_BE PreservedWherePossible;

IF DerivedResourceUsesSource
THEN SourceRelationship SHOULD_BE PreservedInProvenance;

IF MultipleSourcesShareSameAncestor
THEN TheirIndependence SHOULD_NOT_BE Assumed;

IF SourceContradictsAssertion
THEN Conflict SHOULD_BE PreservedForEvaluation;

IF SourceVersionChanges
THEN VersionSensitiveDerivedAssertions MAY_REQUIRE Revalidation;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "source" ~= "information source" WHEN provenance_context;
    "source resource" ~= "provenance source";
    "primary source" ~= "first-hand source" WHEN evidence_context;
    "secondary source" ~= "interpretive source" WHEN evidence_context;
    "source identifier" ~= "source ID";
    "source trace" ~= "source provenance path";
    "source lineage" ~= "source derivation graph";
    "archived source" ~= "preserved source snapshot" WHEN snapshot_context;
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_TARGET_INFORMATION_OR_RESOURCE(q) ->
    IDENTIFY_SOURCE_REQUIREMENT(q) ->
    DISCOVER_CANDIDATE_SOURCES(q) ->
    RESOLVE_SOURCE_IDENTIFIERS(q) ->
    RESOLVE_SOURCE_VERSIONS(q) ->
    CLASSIFY_SOURCE_TYPES(q) ->
    ASSESS_AUTHORITY_RELIABILITY_RELEVANCE_AND_CURRENCY(q) ->
    IDENTIFY_CITATIONS_LOCATORS_AND_PROVENANCE(q) ->
    DETECT_SOURCE_CONFLICTS_AND_COMMON_ANCESTORS(q) ->
    APPLY_ACCESS_RIGHTS_AND_SECURITY_POLICY(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_SOURCE_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        identifier_strength,
        source_reliability,
        authority_relevance,
        evidence_match,
        provenance_quality,
        version_resolution,
        contextual_relevance
    );

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

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
    primary_entity: Source;
    ontology: SourceOntology;
    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;
    preserve_source_versions: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
    new_source:
        resolve_source_identity
        -> assign_source_identifier
        -> classify_source_type
        -> capture_creator_publisher_and_repository
        -> capture_version_and_dates
        -> attach_rights
        -> attach_provenance
        -> validate
        -> integrate;

    new_source_relationship:
        identify_target_assertion_or_resource
        -> identify_source
        -> classify_relationship
        -> attach_locator
        -> preserve_direction
        -> attach_evidence
        -> assign_confidence
        -> integrate;

    source_revision:
        preserve_previous_version
        -> record_new_version
        -> identify_affected_assertions_and_derivatives
        -> revalidate_version_sensitive_relationships
        -> update_index
        -> regenerate_flow_hash;

    conflict:
        preserve_all_sources
        -> identify_common_ancestry
        -> compare_authority_evidence_currency_and_relevance
        -> adjust_confidence
        -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + SourceEntity
    + EvidenceEntity
    + RelationshipEntity
    + MetadataEntity
    + Source
    + SourceLineage
    + SourceValidation
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
SourceOntology
    -> IdentifyInformationResourceOrAssertionRequiringSource
    -> DiscoverAndResolveCanonicalSourceIdentity
    -> AssignStableSourceIdentifierAndVersion
    -> ClassifyPrimarySecondaryTertiaryOrAuthoritativeRole
    -> RecordCreatorPublisherRepositoryDatesAndRights
    -> AttachCitationLocatorEvidenceAndProvenance
    -> AssessAuthorityReliabilityRelevanceCurrencyAndIntegrity
    -> TraceDirectAndAncestorSourceLineage
    -> DetectConflictsDuplicatesMirrorsAndCommonOrigins
    -> PreserveExactSourcesForDerivedResourcesAndAssertions
    -> ApplyAccessPrivacyRightsAndSecurityControls
    -> SupportSearchRAGCitationAndKnowledgeExtraction
    -> MaintainReliableSourceKnowledge;

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