FLOW ALGEBRA
Keyword Ontology
Kireth Semantic Research Archive
PAGE:
https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/descriptive-metadata/keyword-ontology.html
AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)
FLOW "KeywordOntology" v4.0
DOMAIN := MetadataOntologies
SUBDOMAIN := DescriptiveMetadata
ONTOLOGY := KeywordOntology
ENTITY Keyword {
definition:
"A word, phrase or controlled term associated with a resource to
represent its subject, theme, entity, feature or discoverable concept
for indexing, retrieval, classification and semantic interpretation.";
objectives: [
ResourceDiscovery,
SubjectRepresentation,
Indexing,
SearchRecall,
Classification,
SemanticRetrieval,
MetadataInteroperability
];
}
KeywordEntity := {
Keyword,
Resource,
KeywordValue,
KeywordPhrase,
ControlledKeyword,
UncontrolledKeyword,
PreferredTerm,
AlternativeTerm
};
SemanticEntity := {
Concept,
Subject,
Entity,
TaxonomyConcept,
VocabularyTerm,
OntologyConcept,
Identifier
};
MetadataEntity := {
MetadataRecord,
KeywordProperty,
Language,
Provenance,
Confidence,
Source
};
Keyword DESCRIBES Resource;
Keyword REPRESENTS ConceptOrSubject;
MetadataRecord CONTAINS KeywordStatement;
ControlledKeyword REFERENCES VocabularyTerm;
VocabularyTerm MAY_HAVE PreferredTerm;
AlternativeTerm MAY_REFER_TO SameConcept;
Keyword MAY_SUPPORT SearchIndex;
KeywordFlow :=
Resource
-> AnalyseContentAndContext
-> IdentifyCandidateKeywords
-> NormaliseTerms
-> ResolveConceptsAndEntities
-> MapToControlledVocabularyWherePossible
-> RankKeywordRelevance
-> ValidateKeywords
-> AttachProvenanceAndConfidence
-> StoreInMetadataRecord
-> IndexForSearch
-> MaintainAndUpdate;
Keyword :=
LexicalTermOrPhraseAssociatedWithResource;
Keyword MAY_BE {
SingleWord,
MultiWordPhrase,
NamedEntity,
ControlledTerm,
FreeTextTerm
};
KeywordValue :=
TextualOrIdentifierBasedRepresentationOfKeyword;
KeywordPhrase :=
MultiTokenKeywordRepresentingSingleSearchableConceptOrExpression;
ControlledKeyword :=
KeywordSelectedFromManagedVocabularyTaxonomyThesaurusOrOntology;
UncontrolledKeyword :=
FreeTextKeywordNotRestrictedToManagedVocabulary;
ControlledKeyword MAY_IMPROVE {
Consistency,
Disambiguation,
Interoperability
};
UncontrolledKeyword MAY_IMPROVE {
Flexibility,
EmergingTermCoverage,
UserExpression
};
KeywordStatement :=
Resource
-> KeywordProperty
-> KeywordValue;
KeywordProperty MAY_BE {
keyword,
subjectKeyword,
indexTerm,
tag
};
Subject :=
TopicOrConceptRepresentedByResource;
Keyword MAY_INDICATE Subject
BUT Keyword != SubjectConceptByDefinition;
Concept :=
SemanticMeaningRepresentedByKeyword;
MultipleKeywords MAY_MAP_TO SameConcept;
SameKeyword MAY_MAP_TO DifferentConceptsAccordingToContext;
PreferredTerm :=
PrimaryVocabularyLabelForConcept;
AlternativeTerm :=
SynonymVariantAbbreviationOrNonPreferredLabelForConcept;
Synonym :=
LexicalAlternativeWithSameOrSimilarMeaningInContext;
SynonymExpansion MAY_IMPROVE SearchRecall;
Homonym :=
SameLexicalFormRepresentingDifferentConcepts;
HomonymousKeyword SHOULD_BE DisambiguatedUsingContext;
Polysemy :=
KeywordWithMultipleRelatedMeanings;
EntityKeyword :=
KeywordReferringToCanonicalNamedEntity;
EntityKeyword MAY_REFERENCE StableEntityIdentifier;
NamedEntity MAY_BE {
Person,
Organisation,
Place,
Product,
Event,
Work
};
KeywordLanguage :=
LanguageOfKeywordLabel;
MultilingualMetadata MAY_HAVE EquivalentKeywordsAcrossLanguages;
Keyword SHOULD_HAVE LanguageTagWhereRequired;
TranslatedKeyword :=
KeywordExpressionInAnotherLanguageRepresentingSameOrMappedConcept;
Translation SHOULD_PRESERVE ConceptMeaning;
KeywordNormalisation MAY_INCLUDE {
UnicodeNormalisation,
CaseNormalisation,
WhitespaceNormalisation,
PunctuationNormalisation,
Lemmatization
};
Normalisation SHOULD_NOT CollapseDistinctNamedEntitiesOrConceptsIncorrectly;
StemmedKeyword :=
SearchDerivedFormProducedByStemming;
StemmedForm SHOULD_NOT ReplaceCanonicalMetadataValueUnlessPolicyDefines;
SingularPluralVariants MAY_BE NormalisedForSearch
WHILE OriginalMetadataValue MAY_BE Preserved;
KeywordExtraction :=
ResourceContent
-> IdentifyCandidateTerms
-> ScoreCandidates
-> SelectKeywords;
KeywordExtraction MAY_BE {
Manual,
Statistical,
RuleBased,
NLPBased,
AIAssisted
};
ManualKeyword :=
KeywordSelectedByHumanMetadataAgent;
AutomaticKeyword :=
KeywordGeneratedBySoftware;
AIGeneratedKeyword :=
KeywordSuggestedByAIModel;
GeneratedKeyword SHOULD_HAVE {
MethodProvenance,
Confidence
};
CandidateKeyword :=
TermConsideredForMetadataAssignmentBeforeValidation;
KeywordRelevance :=
DegreeToWhichKeywordAccuratelyRepresentsResourceContentOrPurpose;
KeywordSpecificity :=
DegreeToWhichKeywordPreciselyDescribesResourceRatherThanBroadDomain;
KeywordCoverage :=
DegreeToWhichAssignedKeywordsRepresentImportantResourceTopics;
KeywordRedundancy :=
DegreeToWhichMultipleKeywordsProvideLittleAdditionalSemanticValue;
KeywordQuality MAY_INCLUDE {
Relevance,
Specificity,
Coverage,
Consistency,
Provenance
};
KeywordScoring MAY_USE {
Frequency,
Position,
StatisticalImportance,
SemanticSimilarity,
EntitySalience,
HumanJudgement
};
TFIDFLikeScore MAY_SUPPORT StatisticalKeywordExtraction;
EmbeddingSimilarity MAY_SUPPORT SemanticKeywordSelection;
HighEmbeddingSimilarity != GuaranteedCorrectKeywordAssignment;
KeywordRanking :=
CandidateKeywords
-> ScoreByRelevance
-> OrderCandidates;
KeywordThreshold :=
MinimumScoreRequiredForAutomaticAcceptanceAccordingToPolicy;
IF KeywordConfidence < Threshold
THEN Keyword MAY_REQUIRE ReviewOrExclusion;
ControlledVocabulary :=
ManagedSetOfPermittedOrPreferredTerms;
Keyword MAY_MAP_TO ControlledVocabularyTerm;
Taxonomy MAY_ORGANISE KeywordConceptsHierarchically;
Thesaurus MAY_DEFINE {
PreferredTerm,
AlternativeTerm,
BroaderTerm,
NarrowerTerm,
RelatedTerm
};
Ontology MAY_DEFINE ExplicitSemanticRelationshipsForKeywordConcepts;
SKOS MAY_REPRESENT KeywordVocabularyConceptsAndLabels;
VocabularyIdentifier SHOULD_BE StoredWhereMachineInteroperabilityRequires;
FreeTextKeyword MAY_BE LaterMappedTo ControlledConcept;
KeywordMapping :=
FreeTextOrSourceKeyword
-> ControlledConceptOrTargetKeyword;
Mapping MAY_BE {
Exact,
Close,
Broader,
Narrower,
Related
};
KeywordDisambiguation :=
Keyword
+ ResourceContext
-> IntendedConcept;
Context MAY_INCLUDE {
Title,
Description,
Creator,
ResourceType,
OtherKeywords
};
KeywordDeduplication :=
CandidateKeywordSet
-> DetectEquivalentOrNormalisedDuplicates
-> PreservePreferredRepresentation;
ExactDuplicateKeyword SHOULD_NOT UsuallyBeStoredMultipleTimesInSameContext;
NearDuplicateKeywords MAY_BE PreservedIfSemanticallyDistinct;
Tag :=
LightweightUserOrSystemAssignedLabel;
Tag MAY_FUNCTION_AS Keyword
BUT Tag MAY_HAVE LessFormalSemanticControl;
Hashtag :=
PlatformSpecificTaggedTerm;
Hashtag MAY_BE NormalisedToKeywordAccordingToApplicationPolicy;
IndexTerm :=
TermUsedForSearchIndexingOrSubjectAccess;
IndexTerm MAY_BE ControlledOrUncontrolled;
KeywordIndex :=
SearchStructureMappingKeywordsToResources;
KeywordIndex MAY_SUPPORT {
ExactLookup,
PrefixLookup,
Faceting,
QueryExpansion
};
InvertedIndex :=
KeywordOrTerm
-> SetOfMatchingResources;
KeywordSearch :=
QueryKeywords
-> MatchIndexedKeywords
-> RankResources;
ExactKeywordMatch MAY_HAVE StrongRetrievalSignal;
AlternativeTermMatch MAY_RETRIEVE ResourceUsingPreferredConcept;
KeywordBoost :=
RankingWeightAppliedToKeywordMatches;
Boost SHOULD_DEPEND_ON SearchIntentAndMetadataQuality;
KeywordFacet :=
KeywordOrConceptUsedAsFilterDimension;
Faceting MAY_USE ControlledKeywordsMoreReliablyThanUncontrolledTerms;
QueryExpansion MAY_USE {
Synonyms,
BroaderConcepts,
NarrowerConcepts,
RelatedConcepts
};
Expansion SHOULD_BALANCE PrecisionAndRecall;
SemanticSearch MAY_USE KeywordFor {
ConceptMatching,
QueryExpansion,
Ranking,
ResourceFiltering
};
Keyword MAY_BE ConvertedTo EmbeddingForSemanticSimilarity;
VectorRepresentation SHOULD_NOT Replace ExplicitKeywordIdentityWhenExactConceptIsKnown;
KnowledgeGraph MAY_REPRESENT {
ResourceNode,
KeywordConceptNode,
ResourceSubjectEdge
};
KeywordConcept MAY_LINK ResourceToBroaderSemanticKnowledge;
Description MAY_BE SourceFor KeywordExtraction;
Title MAY_BE HighWeightSourceFor KeywordExtraction;
Creator MAY_BE KeywordOnlyWhenApplicationSemanticsTreatCreatorAsDiscoverableKeyword;
MetadataSchema MAY_DEFINE KeywordPropertyAs {
Required,
Recommended,
Optional
};
MetadataSchema MAY_DEFINE MaximumOrMinimumKeywordCount;
ExcessiveKeywordCount MAY_REDUCE MetadataQualityOrSearchPrecision;
KeywordValidation MAY_CHECK {
EmptyValue,
DuplicateValue,
Language,
VocabularyMembership,
Relevance,
ProhibitedTerm
};
IF ControlledKeywordRequired
AND KeywordNotInVocabulary
THEN ValidationStatus := violation_or_warning
ACCORDING_TO policy;
KeywordProvenance MAY_INCLUDE {
Source,
Creator,
ExtractionMethod,
Timestamp,
ModelVersion
};
KeywordConfidence :=
EstimatedSupportForKeywordAssignment;
HumanCuratedKeyword MAY_HAVE GovernanceStatusDistinctFrom AutomaticKeyword;
KeywordVersion :=
StateOfKeywordAssignmentAtPointInResourceOrMetadataHistory;
ResourceChange MAY_REQUIRE KeywordReevaluation;
KeywordRemoval SHOULD_PRESERVE AuditHistoryWhereGovernanceRequires;
KeywordMerge :=
MultipleEquivalentKeywordRepresentations
-> PreferredKeywordOrConcept;
KeywordSplit :=
AmbiguousKeyword
-> MultipleDistinctConceptAssignments;
KeywordMigration MAY_BE RequiredWhenVocabularyConceptIsDeprecatedOrSplit;
DeprecatedKeywordConcept SHOULD_REFERENCE ReplacementWhereAvailable;
MetadataRegistry MAY_REGISTER KeywordVocabulariesAndProperties;
MetadataRepository MAY_STORE KeywordAssignmentsAndVocabularyReferences;
MetadataCatalogue MAY_USE KeywordsForDiscoveryAndFaceting;
Interoperability MAY_REQUIRE {
SharedKeywordProperty,
ControlledVocabulary,
StableConceptIdentifier,
LanguageTag
};
KeywordCrosswalk :=
MappingBetweenKeywordVocabulariesOrClassificationSystems;
AI MAY_USE KeywordsFor {
Retrieval,
Classification,
Recommendation,
Clustering,
MetadataGeneration
};
AIKeywordGeneration :=
Resource
-> AnalyseContent
-> GenerateCandidateKeywords
-> ScoreConfidence
-> Validate
-> StoreApprovedKeywords;
AIGeneratedKeywords SHOULD_NOT BeTreatedAsAuthoritativeWithoutPolicyAppropriateValidation;
RetrievalAugmentedGeneration MAY_USE KeywordsFor {
SourceFiltering,
QueryExpansion,
ContextSelection,
ResourceRanking
};
PrivacyPolicy MAY_RESTRICT KeywordsThatRevealSensitiveInformation;
KeywordSecurity MAY_INCLUDE {
InputValidation,
AccessControl,
ProvenanceIntegrity,
ChangeAuthorisation
};
MachineReadableKeyword SHOULD_PRESERVE {
ValueOrIdentifier,
Language,
ConceptMapping,
Provenance,
Confidence
};
# ---------- SEMANTIC REASONING ----------
IF MetadataTermRepresentsDiscoverableTopicThemeEntityOrFeatureOfResource
THEN KeywordClassification := supported;
IF KeywordMapsToControlledConcept
THEN ConceptIdentifier SHOULD_BE PreferredForMachineLinking;
IF MultipleLexicalKeywordsMapToSameConcept
THEN Search MAY_TreatThemAsSemanticAlternatives;
IF SameKeywordMapsToDifferentConcepts
THEN ContextualDisambiguation SHOULD_BE Applied;
IF KeywordConfidenceLow
THEN AutomaticAcceptance SHOULD_BE RestrictedAccordingToPolicy;
IF VocabularyConceptDeprecated
THEN NewKeywordAssignment SHOULD_PREFER ReplacementWhereDefined;
IF KeywordIsIrrelevantToResource
THEN KeywordQuality SHOULD_DECREASE;
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
"keyword" ~= "index keyword" WHEN metadata_search_context;
"keyword phrase" ~= "key phrase";
"controlled keyword" ~= "controlled index term";
"uncontrolled keyword" ~= "free-text keyword";
"preferred term" ~= "preferred keyword" WHEN vocabulary_context;
"alternative term" ~= "keyword synonym" WHEN vocabulary_context;
"keyword extraction" ~= "keyphrase extraction";
"keyword mapping" ~= "keyword concept mapping";
}
# ---------- QUERY FLOW ----------
QUERY(q) ->
NORMALISE(q) ->
IDENTIFY_RESOURCE(q) ->
IDENTIFY_KEYWORDS(q) ->
NORMALISE_KEYWORD_VALUES(q) ->
IDENTIFY_LANGUAGE(q) ->
RESOLVE_ENTITIES_AND_CONCEPTS(q) ->
MAP_TO_CONTROLLED_VOCABULARY(q) ->
ASSESS_RELEVANCE_AND_CONFIDENCE(q) ->
VALIDATE_KEYWORDS(q) ->
RETURN_RELEVANT_KEYWORD_KNOWLEDGE;
# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
weighted_mean(
source_reliability,
keyword_relevance,
concept_mapping_strength,
vocabulary_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: Keyword;
ontology: KeywordOntology;
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_keyword:
identify_resource
-> normalise_term
-> resolve_concept
-> map_vocabulary
-> assess_relevance
-> attach_provenance
-> assign_confidence
-> validate
-> integrate;
keyword_revision:
preserve_previous_assignment
-> add_remove_or_replace_keyword
-> update_index
-> revalidate
-> recompute_confidence
-> regenerate_flow_hash;
vocabulary_revision:
identify_affected_keywords
-> map_deprecated_concepts
-> preserve_historical_identifiers
-> validate_migration
-> integrate;
conflict:
preserve_provenance
-> compare_keyword_meanings_or_sources
-> disambiguate_context
-> adjust_confidence
-> flag_review;
}
# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
DOMAIN
+ SUBDOMAIN
+ ONTOLOGY
+ KeywordEntity
+ SemanticEntity
+ MetadataEntity
+ Keyword
+ KeywordExtraction
+ KeywordMapping
+ RELATIONSHIPS
+ SEMANTIC_REASONING
+ SEMANTIC_EQUIVALENCE
+ UPDATE_MODEL;
FLOW_HASH :=
HASH(FLOW_HASH_INPUT);
# ---------- TERMINAL ----------
KeywordOntology
-> IdentifyResourceContentAndContext
-> ExtractOrAssignCandidateKeywords
-> NormaliseLexicalForms
-> ResolveEntitiesSubjectsAndConcepts
-> MapToControlledVocabularyWhereAvailable
-> RankRelevanceAndSpecificity
-> ValidateDuplicatesVocabularyAndMeaning
-> AttachLanguageProvenanceAndConfidence
-> StoreKeywordMetadata
-> IndexForSearchFacetingAndQueryExpansion
-> MaintainVocabularyMappingsAndVersions
-> SupportSemanticSearchAndAIConsumption
-> MaintainReliableKeywordKnowledge;
END FLOW
Download Code
Copy to Clipboard