FLOW ALGEBRA
Subject Ontology
Kireth Semantic Research Archive
PAGE:
https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/descriptive-metadata/subject-ontology.html
AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)
FLOW "SubjectOntology" v4.0
DOMAIN := MetadataOntologies
SUBDOMAIN := DescriptiveMetadata
ONTOLOGY := SubjectOntology
ENTITY Subject {
definition:
"A descriptive metadata concept, topic, entity, discipline, theme or
domain representing what a resource is about and supporting
classification, discovery, filtering, semantic retrieval and
knowledge organisation.";
objectives: [
TopicalDescription,
ResourceClassification,
Discovery,
SemanticRetrieval,
KnowledgeOrganisation,
QueryExpansion,
Interoperability
];
}
SubjectEntity := {
Subject,
Resource,
Topic,
Theme,
Discipline,
Domain,
EntitySubject,
SubjectConcept
};
VocabularyEntity := {
ControlledVocabulary,
Taxonomy,
Thesaurus,
Ontology,
PreferredTerm,
AlternativeTerm,
ConceptIdentifier
};
MetadataEntity := {
MetadataRecord,
SubjectProperty,
SubjectValue,
Keyword,
Classification,
Provenance,
Confidence
};
Subject DESCRIBES Resource;
Resource HAS_SUBJECT Subject;
Subject MAY_BE_REPRESENTED_BY SubjectConcept;
SubjectConcept MAY_HAVE PreferredTerm;
SubjectConcept MAY_HAVE BroaderSubject;
SubjectConcept MAY_HAVE NarrowerSubject;
MetadataRecord CONTAINS SubjectStatement;
Subject MAY_BE_MAPPED_TO OntologyConcept;
SubjectFlow :=
Resource
-> AnalyseResourceContent
-> IdentifyCandidateSubjects
-> ResolveSubjectConcepts
-> MapToControlledVocabulary
-> DetermineSubjectSpecificity
-> RankSubjectRelevance
-> ValidateSubjectAssignments
-> AttachProvenanceAndConfidence
-> StoreInMetadataRecord
-> IndexForDiscovery
-> MaintainSubjectMappings;
Subject :=
TopicConceptEntityOrDomainAboutWhichResourceProvidesInformation;
Subject MAY_BE {
Topic,
Theme,
Discipline,
Domain,
NamedEntity,
Event,
Place,
TimePeriod
};
SubjectConcept :=
CanonicalSemanticRepresentationOfSubject;
SubjectValue :=
MetadataRepresentationOfSubjectAssignment;
SubjectValue MAY_BE {
FreeTextTerm,
ControlledTerm,
ConceptIdentifier,
EntityIdentifier
};
SubjectStatement :=
Resource
-> SubjectProperty
-> SubjectValue;
SubjectProperty MAY_BE {
subject,
topic,
category,
about
};
Topic :=
SpecificMatterDiscussedOrRepresentedByResource;
Theme :=
RecurringOrUnderlyingIdeaRepresentedByResource;
Discipline :=
EstablishedFieldOfStudyOrPracticeAssociatedWithResource;
Domain :=
BoundedAreaOfKnowledgeOrActivity;
EntitySubject :=
NamedEntityThatIsSubjectOfResource;
EntitySubject MAY_BE {
Person,
Organisation,
Place,
Event,
Object,
Work
};
Subject != KeywordByDefinition;
Keyword MAY_BE LexicalIndicatorOfSubject;
MultipleKeywords MAY_MAP_TO OneSubjectConcept;
OneKeyword MAY_BE AmbiguousAcrossMultipleSubjectConcepts;
ControlledSubject :=
SubjectSelectedFromManagedVocabularyTaxonomyThesaurusOrOntology;
UncontrolledSubject :=
FreeTextSubjectNotBoundToManagedConceptScheme;
ControlledSubject MAY_IMPROVE {
Consistency,
Disambiguation,
HierarchicalRetrieval,
Interoperability
};
ControlledVocabulary :=
ManagedSetOfTermsOrConceptsForSubjectDescription;
Taxonomy :=
HierarchicalOrganisationOfSubjectConcepts;
Thesaurus :=
ControlledVocabularyWithEquivalenceHierarchicalAndAssociativeRelations;
Ontology :=
FormalSemanticModelThatMayDefineSubjectConceptsAndRelationships;
PreferredTerm :=
PrimaryLexicalLabelForSubjectConcept;
AlternativeTerm :=
SynonymVariantOrNonPreferredLabelForSubjectConcept;
ConceptIdentifier :=
StableReferenceToSubjectConcept;
UsingConceptIdentifier MAY_BE MoreStableThanUsingLabelAlone;
BroaderSubject :=
MoreGeneralSubjectConcept;
NarrowerSubject :=
MoreSpecificSubjectConcept;
RelatedSubject :=
AssociativelyRelatedSubjectConcept;
IF SubjectA NARROWER_THAN SubjectB
THEN SubjectB BROADER_THAN SubjectA;
SubjectHierarchy :=
DirectedStructureOfBroaderAndNarrowerSubjectRelationships;
SubjectPath :=
BroadSubject
-> IntermediateSubjects
-> SpecificSubject;
SubjectDepth :=
HierarchicalDistanceFromSelectedTopSubject;
Polyhierarchy MAY_ALLOW SubjectConceptToHaveMultipleBroaderSubjects;
SubjectScope :=
SemanticBoundaryDefiningWhatSubjectConceptIncludesAndExcludes;
ScopeNote MAY_CLARIFY SubjectUsage;
SubjectSpecificity :=
DegreeToWhichSubjectPreciselyRepresentsResourceContent;
SubjectRelevance :=
DegreeToWhichSubjectRepresentsImportantResourceContentOrPurpose;
PrimarySubject :=
MainSubjectAssignedToResource;
SecondarySubject :=
AdditionalRelevantSubjectAssignedToResource;
Resource MAY_HAVE MultipleSubjects;
SubjectCoverage :=
DegreeToWhichAssignedSubjectsRepresentMajorResourceTopics;
OverlyBroadSubject MAY_REDUCE RetrievalPrecision;
OverlyNarrowSubject MAY_MissBroaderDiscoveryWithoutHierarchicalExpansion;
SubjectAssignment :=
Resource
-> AssignSubjectConcept
-> StoreSubjectMetadata;
SubjectAssignment MAY_BE {
Manual,
RuleBased,
Automatic,
AIAssisted
};
ManualSubjectAssignment :=
SubjectSelectedByHumanMetadataAgent;
AutomaticSubjectAssignment :=
SubjectPredictedBySoftware;
AIGeneratedSubject :=
SubjectSuggestedByAIModel;
GeneratedSubject SHOULD_HAVE {
MethodProvenance,
Confidence,
ValidationStatus
};
SubjectExtraction :=
ResourceContent
-> DetectTopicsEntitiesAndThemes
-> GenerateCandidateSubjects;
SubjectClassification :=
ResourceRepresentation
-> ClassificationModelOrRules
-> SubjectConcept;
SubjectConfidence :=
EstimatedSupportForSubjectAssignment;
IF SubjectConfidence < AcceptanceThreshold
THEN Subject MAY_REQUIRE HumanReview;
SubjectDisambiguation :=
AmbiguousTermOrEntity
+ ResourceContext
-> IntendedSubjectConcept;
Context MAY_INCLUDE {
Title,
Description,
Keywords,
Creator,
ResourceType
};
HomonymousSubjectLabel SHOULD_BE ResolvedUsingConceptIdentifierAndContext;
SubjectNormalisation MAY_INCLUDE {
LabelNormalisation,
IdentifierResolution,
VocabularyMapping,
LanguageNormalisation
};
SubjectLanguage :=
LanguageOfSubjectLabel;
MultilingualSubjectConcept MAY_HAVE LabelsInMultipleLanguages;
TranslatedSubjectLabel SHOULD_REFERENCE SameOrMappedConceptIdentifier;
SubjectMapping :=
SourceSubjectConcept
-> MappingRelationship
-> TargetSubjectConcept;
Mapping MAY_BE {
Exact,
Close,
Broader,
Narrower,
Related
};
CrossVocabularySubjectMapping MAY_SUPPORT Interoperability;
ExactMapping SHOULD_REQUIRE StrongSemanticEquivalence;
SubjectMerge :=
MultipleDuplicateOrEquivalentSubjectRepresentations
-> PreferredCanonicalConcept;
SubjectSplit :=
AmbiguousOrOverbroadSubjectConcept
-> MultipleDistinctConcepts;
VocabularyRevision MAY_REQUIRE SubjectMigration;
DeprecatedSubjectConcept SHOULD_REFERENCE ReplacementWhereAvailable;
MetadataSchema MAY_DEFINE SubjectPropertyAs {
Required,
Recommended,
Optional
};
MetadataSchema MAY_REQUIRE ControlledVocabularyForSubject;
SubjectValidation MAY_CHECK {
EmptyValue,
VocabularyMembership,
IdentifierValidity,
DuplicateAssignment,
Relevance,
Language
};
IF ControlledSubjectRequired
AND SubjectValueNotInAllowedScheme
THEN ValidationStatus := violation_or_warning
ACCORDING_TO policy;
DuplicateSubjectAssignment :=
SameCanonicalSubjectAssignedMoreThanOnceToSameResourceAndContext;
DuplicateCanonicalAssignments SHOULD_BE Consolidated;
SubjectProvenance MAY_INCLUDE {
Source,
Creator,
AssignmentMethod,
Timestamp,
ModelVersion
};
SubjectVersion :=
StateOfSubjectAssignmentAtPointInMetadataHistory;
ResourceChange MAY_REQUIRE SubjectReevaluation;
SubjectIndex :=
SearchStructureMappingSubjectConceptsToResources;
SubjectIndex MAY_SUPPORT {
ExactConceptSearch,
HierarchicalBrowse,
Faceting,
QueryExpansion
};
SubjectSearch :=
Query
-> ResolveSubjectConcept
-> RetrieveResources
-> RankResults;
SubjectFacet :=
SubjectConceptUsedAsFilteringDimension;
SubjectBrowse :=
StartAtBroadConcept
-> FollowNarrowerSubjects
-> RetrieveClassifiedResources;
IF QueryTargetsBroadSubject
THEN Search MAY_INCLUDE ResourcesAssignedToNarrowerSubjectsAccordingToPolicy;
IF QueryTargetsSpecificSubject
THEN Search MAY_OPTIONALLY IncludeBroaderContextForExplanation;
QueryExpansion MAY_USE {
PreferredTerms,
AlternativeTerms,
BroaderSubjects,
NarrowerSubjects,
RelatedSubjects
};
ExpansionPolicy SHOULD_BALANCE PrecisionAndRecall;
SemanticSearch MAY_USE SubjectFor {
QueryInterpretation,
ConceptMatching,
HierarchicalExpansion,
Ranking,
Filtering
};
SubjectConcept MAY_BE EmbeddedForSemanticSimilarity;
EmbeddingSimilarity MAY_SUGGEST RelatedSubjects
BUT DoesNotEstablishFormalSubjectRelationship;
KnowledgeGraph MAY_REPRESENT:
Resource
-> HAS_SUBJECT
-> SubjectConcept;
SubjectConcept MAY_CONNECT ResourceToBroaderDomainKnowledge;
Title MAY_PROVIDE StrongEvidenceForSubjectAssignment;
Description MAY_PROVIDE ContextForSubjectExtraction;
Keywords MAY_SUPPORT SubjectIdentification;
CreatorIdentity MAY_INFORM SubjectContext
BUT SHOULD_NOT AloneDetermineSubjectWithoutEvidence;
Classification MAY_OVERLAP_WITH SubjectMetadata
BUT ClassificationSchemeMayServeDifferentOrganisationalPurpose;
DublinCore MAY_REPRESENT SubjectUsing dc:subjectOrEquivalentProperty;
SchemaOrg MAY_REPRESENT ResourceTopicsUsing aboutKeywordsOrDomainSpecificProperties;
RDF MAY_REPRESENT:
Resource
-> subjectProperty
-> SubjectConceptOrLiteral;
JSONLD MAY_SERIALISE SubjectWithSemanticIdentifierAndContext;
MetadataRepository MAY_STORE SubjectAssignments;
MetadataRegistry MAY_REGISTER SubjectPropertiesVocabulariesAndMappings;
MetadataCatalogue MAY_USE SubjectsForBrowseSearchAndFaceting;
SubjectInteroperability MAY_REQUIRE {
SharedSubjectProperty,
StableConceptIdentifier,
VocabularyMapping,
LanguageLabels
};
AI MAY_USE SubjectMetadataFor {
Classification,
Retrieval,
Recommendation,
Clustering,
MetadataGeneration
};
RetrievalAugmentedGeneration MAY_USE SubjectFor {
SourceFiltering,
QueryExpansion,
ContextSelection,
ResourceRanking
};
PrivacyPolicy MAY_RESTRICT SubjectMetadataThatRevealsSensitiveInformation;
SubjectAccessControl MAY_APPLY_TO {
SubjectAssignment,
SubjectVocabulary,
DerivedClassification
};
SubjectSecurity MAY_INCLUDE {
InputValidation,
AccessControl,
ProvenanceIntegrity,
ChangeAuthorisation
};
MachineReadableSubject SHOULD_PRESERVE {
ConceptIdentifier,
PreferredLabel,
Vocabulary,
Provenance,
Confidence
};
# ---------- SEMANTIC REASONING ----------
IF MetadataConceptRepresentsWhatResourceIsAbout
THEN SubjectClassification := supported;
IF SubjectConceptHasStableIdentifier
THEN CrossSystemSubjectLinking MAY_BE MoreReliable;
IF SubjectA NARROWER_THAN SubjectB
AND Resource HAS_SUBJECT SubjectA
THEN Resource MAY_BE RelevantToQueryForSubjectB
ACCORDING_TO retrieval_policy;
IF MultipleLabelsResolveToSameSubjectConcept
THEN Search MAY_TreatThemAsLexicalAlternatives;
IF SameLabelResolvesToDifferentSubjectConcepts
THEN ContextualDisambiguation MUST_BE Applied;
IF SubjectConfidenceLow
THEN AutomaticAuthoritativeAssignment SHOULD_BE Restricted;
IF SubjectConceptDeprecated
THEN NewAssignments SHOULD_PREFER ReplacementWhereDefined;
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
"subject" ~= "resource subject" WHEN metadata_context;
"subject metadata" ~= "topical metadata";
"subject concept" ~= "topic concept";
"controlled subject" ~= "controlled subject heading";
"primary subject" ~= "main topic";
"secondary subject" ~= "additional topic";
"subject mapping" ~= "topic concept mapping";
"subject classification" ~= "topical classification";
}
# ---------- QUERY FLOW ----------
QUERY(q) ->
NORMALISE(q) ->
IDENTIFY_RESOURCE(q) ->
IDENTIFY_SUBJECT_TERMS(q) ->
RESOLVE_SUBJECT_CONCEPTS(q) ->
IDENTIFY_VOCABULARY(q) ->
IDENTIFY_BROADER_NARROWER_RELATED_SUBJECTS(q) ->
ASSESS_RELEVANCE_AND_SPECIFICITY(q) ->
IDENTIFY_PROVENANCE_AND_CONFIDENCE(q) ->
VALIDATE_SUBJECT_ASSIGNMENT(q) ->
RETURN_RELEVANT_SUBJECT_KNOWLEDGE;
# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
weighted_mean(
source_reliability,
subject_relevance,
concept_resolution_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: Subject;
ontology: SubjectOntology;
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_subject:
identify_resource
-> normalise_term
-> resolve_concept
-> map_vocabulary
-> assess_relevance
-> attach_provenance
-> assign_confidence
-> validate
-> integrate;
subject_revision:
preserve_previous_assignment
-> add_remove_or_replace_subject
-> update_index
-> revalidate
-> recompute_confidence
-> regenerate_flow_hash;
vocabulary_revision:
identify_affected_subjects
-> map_deprecated_concepts
-> preserve_historical_identifiers
-> validate_migration
-> integrate;
conflict:
preserve_provenance
-> compare_subject_meanings_or_sources
-> disambiguate_context
-> adjust_confidence
-> flag_review;
}
# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
DOMAIN
+ SUBDOMAIN
+ ONTOLOGY
+ SubjectEntity
+ VocabularyEntity
+ MetadataEntity
+ Subject
+ SubjectAssignment
+ SubjectMapping
+ RELATIONSHIPS
+ SEMANTIC_REASONING
+ SEMANTIC_EQUIVALENCE
+ UPDATE_MODEL;
FLOW_HASH :=
HASH(FLOW_HASH_INPUT);
# ---------- TERMINAL ----------
SubjectOntology
-> IdentifyResourceContentAndContext
-> DetectCandidateTopicsThemesAndEntities
-> ResolveCanonicalSubjectConcepts
-> MapSubjectsToControlledVocabulary
-> DetermineBroaderNarrowerAndRelatedConcepts
-> AssessSubjectRelevanceAndSpecificity
-> ValidateAssignmentsAndDuplicates
-> AttachProvenanceAndConfidence
-> StoreSubjectMetadata
-> IndexForBrowseFacetingAndSemanticSearch
-> MaintainMappingsVersionsAndDeprecations
-> SupportAIClassificationAndMachineConsumption
-> MaintainReliableTopicalKnowledge;
END FLOW
Download Code
Copy to Clipboard