Skip to main content

Metadata Vocabulary Ontology

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

PAGE:
https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/foundations-of-metadata/metadata-vocabulary-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "MetadataVocabularyOntology" v4.0

# ---------- DOMAIN ----------
DOMAIN := MetadataOntologies
SUBDOMAIN := FoundationsOfMetadata
ONTOLOGY := MetadataVocabularyOntology

# ---------- PRIMARY ENTITY ----------
ENTITY MetadataVocabulary {
    definition:
        "A managed collection of metadata terms, concepts, labels, identifiers,
         definitions and semantic relationships used to describe resources
         consistently and support shared interpretation, discovery,
         interoperability and machine processing.";

    objectives: [
        TerminologyControl,
        SemanticConsistency,
        ResourceDescription,
        Interoperability,
        Discovery,
        VocabularyReuse,
        MachineInterpretability
    ];
}

# ---------- CORE ENTITIES ----------
VocabularyEntity := {
    MetadataVocabulary,
    Term,
    Concept,
    Label,
    Definition,
    Identifier,
    ConceptScheme,
    Namespace
};

RelationshipEntity := {
    Broader,
    Narrower,
    Related,
    Equivalent,
    Preferred,
    Alternative
};

GovernanceEntity := {
    VocabularyOwner,
    VocabularySteward,
    Status,
    Version,
    ChangeSet,
    Deprecation
};

UsageEntity := {
    MetadataProperty,
    MetadataValue,
    MetadataSchema,
    ApplicationProfile,
    MetadataRecord
};

# ---------- FUNDAMENTAL RELATIONSHIPS ----------
MetadataVocabulary CONTAINS TermOrConcept;
Concept HAS PreferredLabel;
Concept MAY_HAVE AlternativeLabel;
Concept MAY_HAVE BroaderConcept;
Concept MAY_HAVE NarrowerConcept;
Concept MAY_RELATE_TO OtherConcept;
Identifier IDENTIFIES Concept;
MetadataProperty MAY_USE VocabularyForAllowedValues;

# ---------- METADATA VOCABULARY FLOW ----------
DomainTerminologyNeed
    -> DefineVocabularyScope
    -> CollectCandidateTerms
    -> IdentifyConcepts
    -> AssignStableIdentifiers
    -> DefinePreferredLabels
    -> AddAlternativeLabels
    -> WriteDefinitions
    -> DefineSemanticRelationships
    -> ValidateVocabulary
    -> PublishAndRegister
    -> UseInMetadataSchemasAndRecords
    -> MaintainAndVersion;

# ---------- VOCABULARY ----------
Vocabulary :=
    ManagedSetOfTermsOrConceptsUsedForConsistentDescription;

Vocabulary MAY_BE {
    ControlledVocabulary,
    CodeList,
    Taxonomy,
    Thesaurus,
    OntologyVocabulary
};

# ---------- CONTROLLED VOCABULARY ----------
ControlledVocabulary :=
    VocabularyWhoseTermsAreManagedAccordingToDefinedRules;

ControlledVocabulary MAY_RESTRICT MetadataValuesToApprovedTerms;

# ---------- TERM ----------
Term :=
    WordPhraseCodeOrIdentifierUsedToRepresentConcept;

Term != ConceptByDefinition;

MultipleTerms MAY_REFER_TO SameConcept;

# ---------- CONCEPT ----------
Concept :=
    AbstractUnitOfMeaningRepresentedWithinVocabulary;

Concept SHOULD_HAVE {
    Identifier,
    PreferredLabel,
    Definition
};

# ---------- CONCEPT SCHEME ----------
ConceptScheme :=
    OrganisedCollectionOfConceptsAndRelationships;

# ---------- LABEL ----------
Label :=
    HumanReadableLexicalRepresentationOfConcept;

Label MAY_HAVE {
    Text,
    Language,
    Status
};

# ---------- PREFERRED LABEL ----------
PreferredLabel :=
    PrimaryHumanReadableLabelForConceptWithinLanguageOrContext;

Concept SHOULD_HAVE AtMostOnePreferredLabelPerLanguageUnderCommonVocabularyPolicy;

# ---------- ALTERNATIVE LABEL ----------
AlternativeLabel :=
    NonPreferredSynonymAbbreviationVariantOrOtherLabelForConcept;

AlternativeLabel SUPPORTS SearchAndTerminologyRecognition;

# ---------- HIDDEN LABEL ----------
HiddenLabel :=
    LabelUsedForLookupOrMatchingButNotNormalDisplay;

# ---------- DEFINITION ----------
ConceptDefinition :=
    ExplicitStatementOfConceptMeaning;

Definition SHOULD_DISTINGUISH ConceptFromRelatedConcepts;

# ---------- SCOPE NOTE ----------
ScopeNote :=
    GuidanceAboutHowConceptShouldBeUsedWithinVocabulary;

# ---------- EXAMPLE ----------
UsageExample MAY_CLARIFY IntendedMeaningOrApplicationOfConcept;

# ---------- IDENTIFIER ----------
ConceptIdentifier :=
    StableReferenceToVocabularyConcept;

Identifier MAY_BE {
    URI,
    IRI,
    Code,
    InternalIdentifier
};

# ---------- NOTATION ----------
Notation :=
    SymbolicOrCodedRepresentationOfConcept;

Notation MAY_BE UsedAsMetadataValue;

# ---------- NAMESPACE ----------
VocabularyNamespace :=
    IdentifierScopeForVocabularyTerms;

Namespace MAY_SUPPORT {
    Uniqueness,
    Resolution,
    Reuse
};

# ---------- BROADER ----------
BroaderRelationship :=
    ConceptA
    -> BroaderConcept
    -> ConceptB;

Broader MAY_REPRESENT HierarchicalSemanticRelation;

# ---------- NARROWER ----------
NarrowerRelationship :=
    ConceptB
    -> NarrowerConcept
    -> ConceptA;

BroaderAndNarrower MAY_BE InverseNavigationRelationships;

# ---------- RELATED ----------
RelatedRelationship :=
    AssociativeSemanticRelationshipBetweenConcepts;

Related SHOULD_NOT_BE UsedAsSubstituteForUndefinedMeaning;

# ---------- EQUIVALENCE ----------
VocabularyEquivalence :=
    RelationshipBetweenConceptsOrTermsWithSameOrCloselyCorrespondingMeaning;

Equivalence MAY_BE {
    Exact,
    Close,
    Contextual
};

# ---------- SYNONYM ----------
Synonym :=
    DifferentTermExpressingSameOrVerySimilarConceptInContext;

Synonym MAY_BE RepresentedAs AlternativeLabelRatherThanSeparateConcept;

# ---------- HOMONYM ----------
Homonym :=
    SameLexicalFormRepresentingDifferentConcepts;

StableConceptIdentifiers DISAMBIGUATE Homonyms;

# ---------- POLYSEMY ----------
Polysemy :=
    SingleTermHavingMultipleRelatedMeanings;

Vocabulary SHOULD_MODEL DistinctConceptsWhereMeaningDifferencesMatter;

# ---------- TAXONOMY ----------
Taxonomy :=
    ControlledVocabularyOrganisedPrimarilyByHierarchicalRelationships;

Taxonomy MAY_SUPPORT {
    Classification,
    Browsing,
    QueryExpansion
};

# ---------- THESAURUS ----------
Thesaurus :=
    ControlledVocabularyWithManagedEquivalenceHierarchicalAndAssociativeRelationships;

Thesaurus MAY_INCLUDE {
    PreferredTerms,
    NonPreferredTerms,
    BroaderTerms,
    NarrowerTerms,
    RelatedTerms
};

# ---------- CODE LIST ----------
CodeList :=
    ControlledSetOfCodesAndAssociatedMeanings;

CodeList MAY_BE UsedFor {
    Status,
    Country,
    ResourceType,
    Category
};

# ---------- ONTOLOGY RELATIONSHIP ----------
Ontology MAY_USE VocabularyTermsAsLabelsOrNamedConcepts;

Ontology MAY_DEFINE RicherLogicalSemanticsThanControlledVocabulary;

Vocabulary != OntologyByDefinition;

# ---------- SKOS RELATIONSHIP ----------
SKOS MAY_REPRESENT {
    Concept,
    ConceptScheme,
    PreferredLabel,
    AlternativeLabel,
    Broader,
    Narrower,
    Related
};

# ---------- LANGUAGE ----------
Vocabulary MAY_BE Multilingual;

Concept MAY_HAVE LabelsInMultipleLanguages;

# ---------- LANGUAGE TAG ----------
Label SHOULD_HAVE LanguageTagWhenMultilingualContextRequires;

# ---------- TRANSLATION ----------
TranslatedLabel SHOULD_PRESERVE ConceptMeaningRatherThanOnlyLexicalSimilarity;

# ---------- LEXICAL VARIANT ----------
LexicalVariant MAY_INCLUDE {
    SpellingVariant,
    Abbreviation,
    Acronym,
    SingularPluralVariant
};

# ---------- NORMALISATION ----------
TermNormalisation MAY_INCLUDE {
    CaseNormalisation,
    WhitespaceNormalisation,
    PunctuationNormalisation
};

Normalisation MUST_NOT CollapseDistinctConceptsIncorrectly;

# ---------- HIERARCHY ----------
VocabularyHierarchy :=
    DirectedStructureOfBroaderAndNarrowerConceptRelations;

# ---------- POLYHIERARCHY ----------
Concept MAY_HAVE MultipleBroaderConcepts;

Polyhierarchy SHOULD_PRESERVE AllValidHierarchicalContexts;

# ---------- ROOT CONCEPT ----------
RootConcept :=
    TopLevelConceptWithoutBroaderConceptWithinScheme;

# ---------- LEAF CONCEPT ----------
LeafConcept :=
    ConceptWithoutNarrowerConceptWithinCurrentScheme;

# ---------- CYCLE ----------
HierarchicalCycle :=
    ConceptReachableFromItselfThroughBroaderOrNarrowerPath;

Cycle MAY_BE InvalidForStrictTaxonomicHierarchy;

# ---------- MAPPING ----------
VocabularyMapping :=
    SourceConcept
    -> MappingRelationship
    -> TargetConcept;

Mapping MAY_BE {
    ExactMatch,
    CloseMatch,
    BroadMatch,
    NarrowMatch,
    RelatedMatch
};

# ---------- CROSS-VOCABULARY MAPPING ----------
VocabularyAConcept MAY_MAP_TO VocabularyBConcept;

Mapping SHOULD_HAVE {
    Type,
    Provenance,
    Confidence
};

# ---------- EXACT MATCH ----------
ExactMatch SHOULD_BE UsedOnlyWhenConceptsCanBeUsedInterchangeablyWithinIntendedMappingSemantics;

# ---------- CLOSE MATCH ----------
CloseMatch :=
    ConceptsSufficientlySimilarForSomeInteroperabilityButNotNecessarilyFullyInterchangeable;

# ---------- BROAD MATCH ----------
BroadMatch :=
    TargetConceptIsBroaderThanSourceConcept;

# ---------- NARROW MATCH ----------
NarrowMatch :=
    TargetConceptIsNarrowerThanSourceConcept;

# ---------- SEMANTIC DISTANCE ----------
VocabularyConcepts MAY_HAVE DifferentDegreesOfSemanticRelatedness;

Relatedness != Equivalence;

# ---------- METADATA PROPERTY ----------
MetadataProperty MAY_DECLARE VocabularyAsValueScheme;

# ---------- VALUE SCHEME ----------
ValueScheme :=
    DefinedSetOrStructureOfPermittedOrRecommendedMetadataValues;

# ---------- METADATA RECORD ----------
MetadataRecord MAY_REFERENCE VocabularyConceptIdentifierAsValue;

UsingIdentifierRatherThanOnlyLabel MAY_IMPROVE SemanticStability;

# ---------- METADATA SCHEMA ----------
MetadataSchema MAY_SPECIFY VocabularyForSelectedProperties;

# ---------- APPLICATION PROFILE ----------
ApplicationProfile MAY {
    RequireVocabulary,
    RestrictVocabularySubset,
    DefineLocalExtensions
};

# ---------- VOCABULARY EXTENSION ----------
LocalVocabularyExtension :=
    AddConceptsNeededByLocalApplicationWhilePreservingRelationshipToBaseVocabulary;

# ---------- REUSE ----------
VocabularyDesigner SHOULD_SEARCH ExistingVocabulariesBeforeCreatingDuplicateConcepts;

# ---------- REGISTRY ----------
MetadataRegistry MAY_REGISTER VocabularyAndConceptDefinitions;

# ---------- REPOSITORY ----------
MetadataRepository MAY_STORE VocabularyVersionsOrReferences;

# ---------- PUBLICATION ----------
VocabularyPublication SHOULD_PROVIDE {
    MachineReadableRepresentation,
    HumanDocumentation,
    StableIdentifiers,
    VersionInformation
};

# ---------- SERIALISATION ----------
Vocabulary MAY_BE SerialisedAs {
    RDF,
    JSONLD,
    XML,
    CSV,
    CustomFormat
};

# ---------- RESOLUTION ----------
ResolvableIdentifier MAY_RETURN ConceptDefinitionOrRepresentation;

# ---------- VERSION ----------
VocabularyVersion :=
    IdentifiedRevisionOfVocabularyOrConceptScheme;

# ---------- CHANGE ----------
VocabularyChange MAY_INCLUDE {
    AddConcept,
    RemoveConcept,
    ChangeLabel,
    ChangeDefinition,
    ChangeHierarchy,
    AddMapping
};

# ---------- CHANGE SET ----------
VocabularyChangeSet :=
    CollectionOfApprovedVocabularyChanges;

# ---------- DEPRECATION ----------
DeprecatedConcept :=
    ConceptRetainedForCompatibilityButDiscouragedForNewUse;

DeprecatedConcept SHOULD_REFERENCE ReplacementWhereAvailable;

# ---------- RETIREMENT ----------
RetiredConcept MAY_REMAIN ResolvableForHistoricalMetadataInterpretation;

# ---------- MERGE ----------
ConceptMerge :=
    MultipleConcepts
    -> SinglePreferredConcept;

Merge SHOULD_PRESERVE HistoricalIdentifiersAndMappings;

# ---------- SPLIT ----------
ConceptSplit :=
    ExistingConcept
    -> MultipleMoreSpecificConcepts;

Split MAY_REQUIRE MetadataMigration;

# ---------- MIGRATION ----------
VocabularyMigration :=
    UpdateMetadataValuesFromOldVocabularyVersionToNewVersion;

# ---------- COMPATIBILITY ----------
VocabularyVersioning SHOULD_DEFINE CompatibilityPolicy;

# ---------- GOVERNANCE ----------
VocabularyGovernance MAY_DEFINE {
    Owner,
    Steward,
    SubmissionProcess,
    Review,
    Approval,
    DeprecationPolicy
};

# ---------- OWNER ----------
VocabularyOwner :=
    AgentAccountableForVocabulary;

# ---------- STEWARD ----------
VocabularySteward :=
    AgentResponsibleForVocabularyQualityAndMaintenance;

# ---------- TERM PROPOSAL ----------
NewConceptProposal
    -> ReviewMeaning
    -> CheckDuplicate
    -> PlaceInStructure
    -> Approve
    -> Publish;

# ---------- DUPLICATE CHECK ----------
IF ProposedConceptEquivalentToExistingConcept
THEN ExistingConceptReuse SHOULD_BE Considered;

# ---------- QUALITY ----------
VocabularyQuality MAY_INCLUDE {
    DefinitionClarity,
    HierarchicalConsistency,
    LabelConsistency,
    Coverage,
    IdentifierStability
};

# ---------- COVERAGE ----------
VocabularyCoverage :=
    DegreeToWhichRequiredDomainConceptsAreRepresented;

# ---------- CONSISTENCY ----------
VocabularyConsistency :=
    DegreeToWhichLabelsDefinitionsAndRelationshipsDoNotConflict;

# ---------- VALIDATION ----------
VocabularyValidation MAY_CHECK {
    MissingPreferredLabel,
    DuplicateIdentifier,
    InvalidHierarchy,
    BrokenMapping,
    MissingDefinition
};

# ---------- PROVENANCE ----------
VocabularyConcept MAY_HAVE ProvenanceIncluding {
    Source,
    Author,
    Version,
    Timestamp
};

# ---------- CONFIDENCE ----------
AutomaticallySuggestedMapping MAY_HAVE ConfidenceScore;

HumanApprovedMapping MAY_HAVE DifferentGovernanceStatus;

# ---------- DISCOVERY ----------
VocabularyDiscovery :=
    Query
    -> SearchLabelsDefinitionsIdentifiers
    -> ReturnConcepts;

# ---------- SEMANTIC SEARCH ----------
SemanticSearch MAY_USE VocabularyFor {
    SynonymExpansion,
    ConceptExpansion,
    HierarchicalExpansion,
    QueryDisambiguation
};

# ---------- QUERY EXPANSION ----------
IF QueryMatchesConcept
THEN Search MAY_EXPAND_TO {
    AlternativeLabels,
    NarrowerConcepts,
    RelatedConcepts
}
ACCORDING_TO SearchPolicy;

# ---------- KNOWLEDGE GRAPH ----------
VocabularyConcepts MAY_BE NodesInKnowledgeGraph;

BroaderNarrowerRelatedAndMappingRelationships MAY_BE GraphEdges;

# ---------- AI ----------
AI MAY_USE MetadataVocabularyFor {
    Classification,
    EntityNormalisation,
    MetadataGeneration,
    Search,
    MappingSuggestion
};

# ---------- AI GENERATED TERM ----------
AIGeneratedVocabularyProposal SHOULD_BE ReviewedBeforeAuthoritativePublication;

# ---------- RAG ----------
RetrievalAugmentedGeneration MAY_USE VocabularyFor {
    QueryExpansion,
    SourceClassification,
    ConceptNormalisation,
    ContextSelection
};

# ---------- ACCESS CONTROL ----------
Vocabulary MAY_BE PublicOrRestrictedAccordingToPolicy;

# ---------- SECURITY ----------
MetadataVocabularySecurity MAY_INCLUDE {
    ChangeAuthorisation,
    RepositoryIntegrity,
    VersionIntegrity,
    Audit
};

# ---------- MACHINE CONSUMPTION ----------
MachineReadableVocabulary SHOULD_EXPOSE {
    StableIdentifiers,
    Labels,
    Definitions,
    Relationships,
    Status,
    Version
};

# ---------- SEMANTIC REASONING ----------
IF ManagedTermsOrConceptsAreUsedToConstrainOrNormaliseMetadataValues
THEN MetadataVocabularyClassification := supported;

IF TwoLabelsReferToSameConcept
THEN They MAY_BE ModelledAsPreferredAndAlternativeLabels;

IF SameLabelRefersToDifferentConcepts
THEN StableIdentifiers MUST_DISTINGUISH Them;

IF ConceptDeprecated
THEN NewMetadata SHOULD_PREFER ReplacementWhereAvailable;

IF HierarchicalCycleExistsInStrictTaxonomy
THEN VocabularyValidation SHOULD_FLAG Error;

IF ExactMatchEvidenceWeak
THEN Mapping SHOULD_NOT_BE ClassifiedAsExact;

IF MetadataUsesConceptIdentifiersInsteadOfUncontrolledLabels
THEN SemanticInteroperability MAY_INCREASE;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "metadata vocabulary" ~= "metadata controlled vocabulary" WHEN terms_are_managed;
    "controlled vocabulary" ~= "managed terminology";
    "vocabulary term" ~= "metadata term";
    "concept scheme" ~= "managed concept vocabulary";
    "preferred label" ~= "preferred term" WHEN thesaurus_context;
    "alternative label" ~= "non-preferred term" WHEN thesaurus_context;
    "vocabulary mapping" ~= "concept mapping";
    "vocabulary version" ~= "concept scheme revision";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_VOCABULARY(q) ->
    IDENTIFY_TERM_OR_CONCEPT(q) ->
    RESOLVE_IDENTIFIER(q) ->
    IDENTIFY_LABELS_AND_DEFINITION(q) ->
    IDENTIFY_HIERARCHICAL_RELATIONSHIPS(q) ->
    IDENTIFY_ASSOCIATIVE_RELATIONSHIPS(q) ->
    IDENTIFY_EXTERNAL_MAPPINGS(q) ->
    IDENTIFY_STATUS_VERSION_AND_PROVENANCE(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_VOCABULARY_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        definition_clarity,
        identifier_stability,
        relationship_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: MetadataVocabulary;
    ontology: MetadataVocabularyOntology;
    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;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
    new_concept:
        validate_identifier
        -> check_semantic_duplicate
        -> assign_preferred_label
        -> define
        -> place_in_concept_scheme
        -> attach_provenance
        -> integrate;

    new_mapping:
        validate_source_target
        -> classify_mapping_strength
        -> attach_confidence
        -> attach_provenance
        -> integrate;

    vocabulary_revision:
        preserve_previous_version
        -> apply_change_set
        -> validate_hierarchy
        -> update_mappings
        -> update_documentation
        -> recompute_confidence
        -> regenerate_flow_hash;

    deprecation:
        identify_replacement
        -> change_status
        -> preserve_identifier
        -> preserve_historical_labels
        -> integrate;

    conflict:
        preserve_provenance
        -> compare_definitions_or_relationships
        -> adjust_confidence
        -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + VocabularyEntity
    + RelationshipEntity
    + GovernanceEntity
    + UsageEntity
    + MetadataVocabulary
    + VocabularyMapping
    + VocabularyValidation
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
MetadataVocabularyOntology
    -> DefineVocabularyScope
    -> IdentifyConceptsAndTerms
    -> AssignStableConceptIdentifiers
    -> DefinePreferredAndAlternativeLabels
    -> CreateClearConceptDefinitions
    -> EstablishBroaderNarrowerAndRelatedRelationships
    -> MapConceptsAcrossExternalVocabularies
    -> ValidateHierarchyAndSemanticConsistency
    -> PublishMachineReadableConceptScheme
    -> ApplyVocabularyToMetadataSchemasAndRecords
    -> GovernVersionDeprecationAndMigration
    -> SupportSemanticSearchAndAIConsumption
    -> MaintainConsistentMetadataTerminology;

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