FLOW ALGEBRA
Language Ontology
Kireth Semantic Research Archive
PAGE:
https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/descriptive-metadata/language-ontology.html
AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)
FLOW "LanguageOntology" v4.0
DOMAIN := MetadataOntologies
SUBDOMAIN := DescriptiveMetadata
ONTOLOGY := LanguageOntology
ENTITY LanguageMetadata {
definition:
"Descriptive metadata identifying the natural, signed, constructed or
otherwise defined language associated with a resource, metadata value
or linguistic expression, enabling discovery, filtering,
interpretation, localisation and semantic interoperability.";
objectives: [
LanguageIdentification,
ResourceDescription,
MultilingualDiscovery,
Localisation,
Filtering,
SemanticInteroperability,
MachineInterpretability
];
}
LanguageEntity := {
Language,
LanguageIdentifier,
LanguageCode,
LanguageLabel,
LanguageTag,
Dialect,
LanguageVariety,
Script
};
MetadataEntity := {
Resource,
MetadataRecord,
LanguageProperty,
LanguageValue,
TextualValue,
Provenance,
Confidence
};
ContextEntity := {
Region,
Locale,
Translation,
Transliteration,
MultilingualResource,
LanguageRole
};
LanguageMetadata DESCRIBES LanguageOf ResourceOrMetadataValue;
Resource MAY_HAVE Language;
TextualValue MAY_HAVE LanguageTag;
LanguageIdentifier IDENTIFIES Language;
Language MAY_USE Script;
LanguageVariety VARIANT_OF Language;
Translation MAPS ExpressionAcrossLanguages;
MetadataRecord CONTAINS LanguageStatement;
LanguageFlow :=
ResourceOrMetadataValue
-> IdentifyLinguisticContent
-> DetectOrAssignLanguage
-> ResolveCanonicalLanguageIdentifier
-> IdentifyLanguageRole
-> IdentifyScriptAndRegionWhereRelevant
-> ValidateLanguageTag
-> AttachProvenanceAndConfidence
-> StoreLanguageMetadata
-> IndexForFilteringAndDiscovery
-> MaintainLanguageMappings;
Language :=
SystemOfCommunicationRepresentedByLinguisticConventions;
Language MAY_BE {
NaturalLanguage,
SignLanguage,
ConstructedLanguage,
HistoricalLanguage
};
LanguageMetadata :=
MetadataStatementIndicatingLanguageAssociation;
LanguageStatement :=
ResourceOrMetadataValue
-> LanguageProperty
-> LanguageValue;
LanguageProperty MAY_BE {
language,
contentLanguage,
metadataLanguage,
titleLanguage,
descriptionLanguage
};
LanguageValue MAY_BE {
LanguageIdentifier,
LanguageCode,
LanguageTag,
LanguageLabel
};
LanguageIdentifier :=
StableOrStandardisedReferenceToLanguage;
LanguageCode :=
CodedRepresentationOfLanguage;
LanguageCode MAY_FOLLOW RecognisedStandardSuchAsISO639;
LanguageTag :=
StructuredTagRepresentingLanguageAndOptionalSubtags;
LanguageTag MAY_INCLUDE {
PrimaryLanguage,
Script,
Region,
Variant
};
BCP47StyleTag :=
language
[- script]
[- region]
[- variant];
LanguageLabel :=
HumanReadableNameOfLanguage;
LanguageLabel MAY_BE Multilingual;
ResourceLanguage :=
LanguageOfPrimaryIntellectualOrCommunicativeContentOfResource;
MetadataLanguage :=
LanguageUsedForMetadataValueOrRecord;
ResourceLanguage != MetadataLanguageByDefinition;
TitleLanguage :=
LanguageOfTitleValue;
DescriptionLanguage :=
LanguageOfDescriptionValue;
KeywordLanguage :=
LanguageOfKeywordLabel;
SubjectLabelLanguage :=
LanguageOfHumanReadableSubjectLabel;
MultilingualResource :=
ResourceContainingMeaningfulContentInMultipleLanguages;
MultilingualResource MAY_HAVE MultipleLanguageStatements;
PrimaryLanguage :=
MainLanguageOfResourceAccordingToMetadataPolicy;
SecondaryLanguage :=
AdditionalLanguagePresentInResource;
LanguageRole :=
SemanticRolePlayedByLanguageAssociation;
LanguageRole MAY_INCLUDE {
PrimaryContent,
SecondaryContent,
Metadata,
Translation,
OriginalLanguage
};
OriginalLanguage :=
LanguageOfOriginalExpressionOrSourceResource;
TranslatedLanguage :=
LanguageIntoWhichContentHasBeenTranslated;
Translation :=
SemanticTransformationOfExpressionFromSourceLanguageToTargetLanguage;
Translation SHOULD_PRESERVE MeaningAsFarAsPracticable;
TranslationRelationship :=
SourceExpression
-> TRANSLATED_TO
-> TargetExpression;
TranslatedResource MAY_REFERENCE OriginalResourceAndLanguages;
Script :=
WritingSystemUsedToRepresentLanguageExpression;
Script MAY_BE {
Latin,
Cyrillic,
Arabic,
Han,
OtherScript
};
Language MAY_USE MultipleScripts;
Script DOES_NOT NecessarilyDetermine Language;
Transliteration :=
RepresentationOfTextFromOneWritingSystemUsingAnotherWritingSystem;
Transliteration != Translation;
Transliteration SHOULD_PRESERVE LinguisticFormRatherThanTranslateMeaning;
Region :=
GeographicOrPoliticalAreaUsedToQualifyLanguageTagOrLocale;
LanguageRegionCombination MAY_REPRESENT RegionalLanguageUsage;
Locale :=
ConfigurationCombiningLanguageAndRegionalConventionsForSoftwareOrPresentation;
Locale MAY_INCLUDE {
Language,
Region,
NumberFormat,
DateFormat
};
Locale != LanguageByDefinition;
Dialect :=
LanguageVarietyAssociatedWithRegionCommunityOrSocialGroup;
LanguageVariety :=
DistinctVariantWithinOrRelatedToLanguage;
LanguageVariety SHOULD_HAVE ExplicitIdentifierWhereMetadataNeedsDistinction;
Macrolanguage MAY_GROUP MultipleIndividualLanguagesAccordingToStandard;
HistoricalLanguage :=
LanguageAssociatedPrimarilyWithHistoricalUsage;
ExtinctLanguage :=
LanguageWithoutNativeSpeakerCommunityAccordingToDefinedReferenceSource;
SignLanguage :=
NaturalLanguageExpressedPrimarilyThroughVisualManualModality;
ConstructedLanguage :=
LanguageIntentionallyCreatedRatherThanNaturallyEvolved;
UndeterminedLanguage :=
LanguageCannotBeReliablyIdentified;
NoLinguisticContent :=
ResourceHasNoApplicableNaturalLanguageContent;
UndeterminedLanguage != NoLinguisticContent;
LanguageDetection :=
Content
-> AnalyseLinguisticFeatures
-> PredictLanguage;
LanguageDetection MAY_BE {
Manual,
RuleBased,
Statistical,
MachineLearning,
AI
};
DetectedLanguage SHOULD_HAVE ConfidenceWhereAutomaticallyInferred;
LanguageConfidence :=
EstimatedSupportForLanguageIdentification;
IF LanguageConfidence < AcceptanceThreshold
THEN Detection MAY_REQUIRE Review;
ShortText MAY_REDUCE LanguageDetectionReliability;
MixedLanguageContent MAY_REQUIRE MultipleLanguageAssignments;
LanguageDetection SHOULD_NOT InferLanguageSolelyFromGeographicLocation;
LanguageNormalisation :=
InputLanguageLabelOrCode
-> ResolveCanonicalLanguageIdentifier;
Normalisation MAY_INCLUDE {
CodeCanonicalisation,
CaseNormalisation,
DeprecatedCodeMapping,
LabelResolution
};
DeprecatedLanguageCode SHOULD_MAP_TO CurrentPreferredCodeWhereStandardDefinesReplacement;
LanguageAlias :=
AlternativeNameOrCodeForSameLanguage;
LanguageDisambiguation :=
AmbiguousLanguageLabelOrCode
+ StandardContext
-> CanonicalLanguage;
SameLanguageName MAY_REFER_TO DifferentLanguageConceptsInDifferentContexts;
StableIdentifier SHOULD_BE UsedForMachineDisambiguation;
LanguageHierarchy MAY_INCLUDE {
LanguageFamily,
Language,
LanguageVariety
};
LanguageFamily :=
GroupOfHistoricallyOrLinguisticallyRelatedLanguages;
LanguageFamilyMembership != MutualIntelligibilityByDefinition;
BroaderLanguageConcept MAY_BE UsedForDiscovery
BUT ShouldNotReplaceSpecificKnownLanguage;
LanguageMapping :=
SourceLanguageIdentifier
-> MappingRelationship
-> TargetLanguageIdentifier;
Mapping MAY_BE RequiredAcrossDifferentStandardsOrCodeSets;
ExactMapping SHOULD_REQUIRE SameLanguageConcept;
MetadataSchema MAY_DEFINE LanguagePropertyAs {
Required,
Recommended,
Optional
};
MetadataSchema MAY_REQUIRE StandardLanguageCodeOrTag;
LanguageValidation MAY_CHECK {
CodeSyntax,
TagSyntax,
AllowedStandard,
DuplicateValue,
LanguageRole,
ScriptCompatibility
};
IF LanguageTagMalformed
THEN ValidationStatus := violation;
IF RequiredLanguageMissing
THEN MetadataCompleteness SHOULD_DECREASE;
DuplicateLanguageAssignment :=
SameCanonicalLanguageAndRoleAssignedMultipleTimesToSameResource;
DuplicateAssignments SHOULD_BE Consolidated;
LanguageProvenance MAY_INCLUDE {
Source,
Assigner,
DetectionMethod,
Timestamp,
ModelVersion
};
LanguageVersion :=
StateOfLanguageMetadataAtPointInResourceOrMetadataHistory;
ResourceRevision MAY_CHANGE LanguageMetadata;
LanguageIndex :=
SearchStructureMappingLanguageIdentifiersToResources;
LanguageIndex MAY_SUPPORT {
Filtering,
Faceting,
Browse,
QueryRouting
};
LanguageFacet :=
LanguageUsedAsSearchFilterDimension;
LanguageAwareSearch :=
QueryLanguage
+ ResourceLanguage
+ MetadataLanguage
-> RetrievalStrategy;
IF QueryLanguageMatchesResourceLanguage
THEN LanguageMatch MAY_CONTRIBUTE_TO Ranking;
CrossLingualSearch MAY_RETRIEVE ResourcesInDifferentLanguagesUsing {
Translation,
MultilingualEmbeddings,
ConceptMapping
};
SemanticSearch MAY_USE LanguageMetadataFor {
Filtering,
Ranking,
QueryRouting,
MultilingualRetrieval
};
LanguageMetadata MAY_GUIDE AppropriateTokenizerStemmerOrLanguageModel;
IncorrectLanguageIdentification MAY_REDUCE NLPAndSearchQuality;
Description MAY_HAVE LanguageTagIndependentOfResourceLanguage;
Title MAY_HAVE LanguageTagIndependentOfOtherMetadataValues;
Keywords MAY_HAVE LanguageSpecificLabels;
ControlledVocabulary MAY_HAVE MultilingualLabelsForSameConcept;
OntologyConceptIdentifier MAY_REMAIN LanguageIndependentWhileLabelsVaryByLanguage;
KnowledgeGraph MAY_REPRESENT:
Resource
-> HAS_LANGUAGE
-> LanguageEntity;
MetadataRepository MAY_STORE LanguageAssignments;
MetadataRegistry MAY_REGISTER LanguagePropertiesCodeSchemesAndMappings;
MetadataCatalogue MAY_USE LanguageForFacetingAndDiscovery;
DublinCore MAY_REPRESENT LanguageUsing dc:languageOrEquivalentProperty;
SchemaOrg MAY_REPRESENT LanguageUsing inLanguageOrDomainSpecificProperty;
RDF MAY_REPRESENT:
Resource
-> languageProperty
-> LanguageIdentifier;
JSONLD MAY_SERIALISE LanguageIdentifiersAndLanguageTaggedStrings;
HTML MAY_USE langAttributeToIndicateLanguageOfElementOrDocument;
HTTP MAY_USE ContentLanguageMetadataForRepresentationLanguageContext;
LanguageInteroperability MAY_REQUIRE {
SharedCodeStandard,
CanonicalIdentifiers,
LanguageTags,
MappingAcrossStandards
};
AI MAY_USE LanguageMetadataFor {
ModelSelection,
Translation,
Retrieval,
Classification,
Generation,
Localisation
};
AIGeneratedContent SHOULD_HAVE LanguageMetadataWhereRelevant;
RetrievalAugmentedGeneration MAY_USE LanguageFor {
SourceFiltering,
QueryMatching,
TranslationSelection,
ContextSelection
};
LanguageMetadata MAY_BE SensitiveInSomeContextsWhenCombinedWithOtherPersonalData;
PrivacyPolicy SHOULD_APPLY AccordingToResourceAndMetadataContext;
LanguageSecurity MAY_INCLUDE {
InputValidation,
TagValidation,
AccessControl,
ProvenanceIntegrity
};
MachineReadableLanguageMetadata SHOULD_PRESERVE {
CanonicalIdentifier,
CodeOrTag,
LanguageRole,
Provenance,
Confidence
};
# ---------- SEMANTIC REASONING ----------
IF MetadataValueIdentifiesLanguageAssociatedWithResourceOrMetadataExpression
THEN LanguageMetadataClassification := supported;
IF TextualMetadataValueHasLanguageTag
THEN Tag SHOULD_APPLY_TO ThatValueUnlessScopeDefinesOtherwise;
IF ResourceContainsMultipleSignificantLanguages
THEN MultipleLanguageAssignments MAY_BE Required;
IF LanguageCodeDeprecated
THEN PreferredCurrentCode SHOULD_BE UsedForNewMetadataWhereDefined;
IF LanguageDetectionConfidenceLow
THEN AutomaticAuthoritativeAssignment SHOULD_BE Restricted;
IF ScriptKnownButLanguageUnknown
THEN Script MUST_NOT BeTreatedAsLanguageIdentity;
IF LocaleKnown
THEN Language MAY_BE DerivedFromLocalePrimaryLanguageSubtag
BUT LocaleAndLanguage MUST_REMAIN Distinct;
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
"language metadata" ~= "resource language metadata";
"language code" ~= "coded language identifier" WHEN standard_context;
"language tag" ~= "structured language identifier";
"resource language" ~= "content language" WHEN resource_content_context;
"metadata language" ~= "language of metadata";
"language variety" ~= "linguistic variety";
"translated language" ~= "target language" WHEN translation_context;
"original language" ~= "source language" WHEN translation_context;
}
# ---------- QUERY FLOW ----------
QUERY(q) ->
NORMALISE(q) ->
IDENTIFY_RESOURCE_OR_METADATA_VALUE(q) ->
IDENTIFY_LANGUAGE_LABEL_CODE_OR_TAG(q) ->
RESOLVE_CANONICAL_LANGUAGE(q) ->
IDENTIFY_LANGUAGE_ROLE(q) ->
IDENTIFY_SCRIPT_REGION_AND_VARIETY(q) ->
IDENTIFY_TRANSLATION_RELATIONSHIPS(q) ->
IDENTIFY_PROVENANCE_AND_CONFIDENCE(q) ->
VALIDATE_LANGUAGE_METADATA(q) ->
RETURN_RELEVANT_LANGUAGE_KNOWLEDGE;
# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
weighted_mean(
source_reliability,
language_identification_strength,
code_validation,
contextual_consistency,
provenance_quality,
detection_confidence
);
CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
primary_entity: LanguageMetadata;
ontology: LanguageOntology;
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_language_assignment:
identify_resource_or_value
-> detect_or_receive_language
-> resolve_canonical_identifier
-> classify_language_role
-> identify_script_and_region
-> validate_tag
-> attach_provenance
-> assign_confidence
-> integrate;
language_revision:
preserve_previous_assignment
-> update_language_or_role
-> validate
-> update_index
-> recompute_confidence
-> regenerate_flow_hash;
code_standard_revision:
identify_deprecated_codes
-> map_to_current_identifiers
-> preserve_historical_values
-> validate_migration
-> integrate;
conflict:
preserve_provenance
-> compare_language_sources_or_detection
-> assess_context
-> adjust_confidence
-> flag_review;
}
# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
DOMAIN
+ SUBDOMAIN
+ ONTOLOGY
+ LanguageEntity
+ MetadataEntity
+ ContextEntity
+ LanguageMetadata
+ LanguageDetection
+ LanguageMapping
+ RELATIONSHIPS
+ SEMANTIC_REASONING
+ SEMANTIC_EQUIVALENCE
+ UPDATE_MODEL;
FLOW_HASH :=
HASH(FLOW_HASH_INPUT);
# ---------- TERMINAL ----------
LanguageOntology
-> IdentifyResourceOrMetadataExpression
-> DetectOrAssignLanguage
-> ResolveCanonicalLanguageIdentifier
-> DetermineContentMetadataOrTranslationRole
-> IdentifyScriptRegionAndVarietyWhereRelevant
-> ValidateLanguageCodeOrTag
-> AttachProvenanceAndConfidence
-> StoreLanguageMetadata
-> IndexForFilteringFacetingAndRouting
-> SupportMultilingualAndCrossLingualRetrieval
-> MaintainCodeMappingsAndVersionHistory
-> SupportAITranslationGenerationAndLocalisation
-> MaintainReliableLanguageKnowledge;
END FLOW
Download Code
Copy to Clipboard