FLOW ALGEBRA
Ontology Engineering Ontology
Kireth Semantic Research Archive
PAGE:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/semantic-computing/ontology-engineering-ontology-2.html
AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)
FLOW "OntologyEngineeringOntology" v4.0
DOMAIN := ComputingOntology
SUBDOMAIN := SemanticComputing
ONTOLOGY := OntologyEngineeringOntology
ENTITY OntologyEngineering {
definition:
"The systematic design, construction, evaluation, maintenance and
evolution of ontologies that explicitly represent concepts,
entities, properties, relationships, constraints and semantic
commitments within a domain.";
objectives: [
ConceptualModelling,
SemanticConsistency,
KnowledgeReuse,
Interoperability,
FormalRepresentation,
OntologyValidation,
ControlledEvolution
];
}
OntologyEntity := {
Ontology,
Concept,
Class,
Instance,
Property,
Relationship,
Axiom,
Constraint
};
EngineeringEntity := {
Requirement,
CompetencyQuestion,
OntologyModule,
DesignPattern,
Mapping,
Version,
ChangeSet,
Evaluation
};
SemanticEntity := {
Vocabulary,
Definition,
Identifier,
Namespace,
Annotation,
Provenance
};
LifecycleStage := {
Specification,
Conceptualisation,
Formalisation,
Implementation,
Evaluation,
Publication,
Maintenance,
Evolution
};
Ontology DEFINES ClassesAndProperties;
Class MAY_SUBCLASS_OF OtherClass;
Instance INSTANCE_OF Class;
Property CONNECTS_OR_DESCRIBES Entity;
Axiom CONSTRAINS OntologyMeaning;
Requirement GUIDES OntologyDesign;
CompetencyQuestion TESTS OntologyCoverage;
Version REPRESENTS OntologyState;
ChangeSet MODIFIES OntologyVersion;
OntologyEngineeringFlow :=
DomainNeed
-> GatherRequirements
-> DefineScope
-> WriteCompetencyQuestions
-> IdentifyExistingOntologies
-> ReuseOrAlignTerms
-> ConceptualiseDomain
-> DefineClassesAndRelationships
-> FormaliseAxiomsAndConstraints
-> ImplementOntology
-> ValidateAndReason
-> EvaluateAgainstRequirements
-> PublishAndDocument
-> MaintainAndEvolve;
OntologyRequirement :=
StatementOfKnowledgeRepresentationNeed;
Requirement MAY_INCLUDE {
DomainCoverage,
QuerySupport,
Interoperability,
Reasoning,
DataValidation
};
OntologyScope :=
DefinedBoundaryOfDomainKnowledgeRepresented;
Scope SHOULD_IDENTIFY {
IncludedConcepts,
ExcludedConcepts,
IntendedUsers,
IntendedApplications
};
CompetencyQuestion :=
NaturalLanguageQuestionOntologyShouldEnableSystemToAnswer;
CompetencyQuestions GUIDE {
Vocabulary,
Relationships,
QueryTesting,
Evaluation
};
Conceptualisation :=
AbstractModelOfRelevantDomainEntitiesConceptsAndRelationships;
Concept :=
AbstractMeaningUnitWithinDomainModel;
Concept SHOULD_HAVE {
PreferredLabel,
Definition,
Identifier
};
Class :=
CategoryOfEntitiesSharingDefinedCharacteristics;
ClassHierarchy :=
DirectedHierarchyOfSubclassRelationships;
Instance :=
IndividualEntityBelongingToClass;
Property :=
SemanticRelationOrAttribute;
Property MAY_BE {
ObjectProperty,
DatatypeProperty,
AnnotationProperty
};
ObjectProperty :=
RelationshipBetweenSemanticResources;
ObjectProperty MAY_HAVE {
Domain,
Range,
Inverse,
Cardinality,
Transitivity
};
DatatypeProperty :=
RelationshipFromEntityToLiteralValue;
OntologyAxiom :=
FormalStatementDefiningOrConstrainingMeaning;
Axiom MAY_INCLUDE {
Subclass,
Equivalence,
Disjointness,
PropertyRestriction,
Domain,
Range
};
IF ClassA SUBCLASS_OF ClassB
THEN EveryInstanceOfClassA IS_ALSO InstanceOfClassB;
EquivalentClass(A,B) :=
AAndBHaveSameClassExtensionUnderFormalSemantics;
DisjointClasses(A,B) :=
NoValidIndividualMayBelongToBothUnderDefinedSemantics;
PropertyDomain(P,A) MAY_ALLOW:
IF x P y
THEN x INSTANCE_OF A;
PropertyRange(P,B) MAY_ALLOW:
IF x P y
THEN y INSTANCE_OF B;
CardinalityConstraint MAY_DEFINE {
MinimumCount,
MaximumCount,
ExactCount
};
ClassRestriction :=
ConditionOnPropertyValuesOrRelationshipsRequiredForClassExpression;
Formalisation :=
ConceptualModel
-> LogicalOrMachineInterpretableRepresentation;
Ontology MAY_BE_IMPLEMENTED_USING {
RDF,
RDFS,
OWL,
OtherFormalKnowledgeRepresentationLanguage
};
RDF :=
GraphDataModelRepresentingStatementsAsTriples;
RDFS MAY_REPRESENT {
Class,
Subclass,
Property,
Domain,
Range
};
OWL MAY_REPRESENT {
ClassExpressions,
PropertyCharacteristics,
Equivalence,
Disjointness,
Restrictions
};
DescriptionLogic :=
FamilyOfFormalKnowledgeRepresentationLogicsUnderlyingManyOntologyLanguages;
OntologyExpressivity :=
RangeOfSemanticStructuresRepresentableByOntologyLanguageAndModel;
HigherExpressivity MAY_INCREASE ReasoningComplexity;
OntologicalCommitment :=
AssumptionsAboutEntitiesCategoriesAndRelationshipsAcceptedByOntology;
OntologyVocabulary :=
SetOfNamedClassesPropertiesIndividualsAndAnnotations;
Term SHOULD_HAVE StableIdentifier;
NamingConvention MAY_DEFINE {
IdentifierStyle,
Capitalisation,
SingularOrPluralPolicy,
Namespace
};
HumanReadableLabel MAY_DIFFER_FROM MachineIdentifier;
ClassOrProperty SHOULD_HAVE ClearDefinitionWherePractical;
OntologyAnnotation MAY_INCLUDE {
Label,
Definition,
Comment,
Source,
Example,
DeprecatedStatus
};
Namespace :=
IdentifierScopeForOntologyTerms;
IRI MAY_IDENTIFY OntologyResource;
IdentifierPersistence SUPPORTS LongTermInteroperability;
OntologyReuse :=
AdoptExistingOntologyTermsOrModulesInsteadOfRedefiningEquivalentConcepts;
Reuse MAY_REDUCE Duplication
BUT ExternalSemantics MUST_MATCH IntendedMeaning;
OntologyImport :=
IncludeOrReferenceExternalOntology;
OntologyModule :=
CoherentSubsetOfOntologyFocusedOnSpecificPurposeOrDomainArea;
Modularity MAY_IMPROVE {
Reuse,
Maintainability,
ReasoningPerformance
};
OntologyDesignPattern :=
ReusableModellingSolutionForRecurringSemanticProblem;
UpperOntology :=
HighLevelOntologyProvidingGeneralConceptsAcrossDomains;
DomainOntology :=
OntologyFocusedOnSpecificSubjectArea;
ApplicationOntology :=
OntologyTailoredToSpecificSystemOrUseCase;
TaskOntology :=
OntologyRepresentingActivitiesProcessesOrProblemSolvingTasks;
OntologyAlignment :=
EstablishCorrespondenceBetweenTermsInDifferentOntologies;
Alignment MAY_INCLUDE {
ExactMatch,
EquivalentClass,
BroaderMatch,
NarrowerMatch,
RelatedMatch
};
OntologyMapping :=
SourceTerm
-> TargetTermOrTransformation;
Mapping SHOULD_HAVE {
RelationType,
Confidence,
Provenance
};
OntologyMerge :=
CombineMultipleOntologiesIntoIntegratedOntology;
Merge REQUIRES {
IdentityResolution,
ConflictHandling,
NamespaceManagement
};
OntologyConflict MAY_INCLUDE {
NamingConflict,
DefinitionConflict,
HierarchyConflict,
ConstraintConflict
};
OntologyConsistency :=
AbsenceOfLogicalContradictionUnderChosenFormalSemantics;
Reasoner MAY_TEST Consistency;
ClassSatisfiability :=
WhetherClassCanPossiblyHaveInstancesWithoutContradiction;
UnsatisfiableClass MAY_INDICATE ModellingError;
OntologyClassification :=
ReasonerComputesInferredClassHierarchy;
AssertedHierarchy MAY_DIFFER_FROM InferredHierarchy;
Realisation :=
DetermineMostSpecificClassesForIndividuals;
OntologyInference :=
AssertedAxioms
-> LogicalReasoning
-> DerivedKnowledge;
OntologyValidation :=
CheckOntologyAgainstStructuralSemanticOrApplicationConstraints;
Validation MAY_INCLUDE {
SyntaxValidation,
LogicalConsistency,
ShapeValidation,
NamingChecks
};
OntologyEvaluation :=
AssessOntologyQualityAgainstRequirementsAndUseCases;
EvaluationDimension MAY_INCLUDE {
Accuracy,
Completeness,
Consistency,
Conciseness,
Clarity,
Reusability
};
ForEach CompetencyQuestion:
ExecuteRepresentativeQuery
-> DetermineWhetherOntologyCanRepresentAndRetrieveRequiredKnowledge;
OntologyCoverage :=
DegreeToWhichRequiredDomainConceptsAndRelationshipsAreRepresented;
Completeness IS_RELATIVE_TO ScopeAndRequirements;
RedundantAxiom :=
AxiomAlreadyLogicallyImpliedByOtherAxioms;
OntologyQuality SHOULD_BE AssessedFrom {
FormalCorrectness,
DomainAccuracy,
Usability,
Maintainability
};
OntologyDocumentation SHOULD_INCLUDE {
Purpose,
Scope,
Classes,
Properties,
Examples,
DesignDecisions,
Version
};
OntologyPublication MAY_INCLUDE {
MachineReadableFile,
HumanDocumentation,
PersistentIRI,
VersionMetadata
};
OntologyVersion :=
IdentifiedStateOfOntologyAtPointInEvolution;
OntologyChange MAY_INCLUDE {
AddClass,
RemoveClass,
RenameTerm,
ChangeDefinition,
AddProperty,
ModifyAxiom
};
ChangeSet :=
CollectionOfOntologyChangesBetweenVersions;
ChangeSet SHOULD_PRESERVE {
Author,
Timestamp,
Rationale
};
DeprecatedTerm :=
OntologyTermRetainedForCompatibilityButDiscouragedForNewUse;
DeprecatedTerm SHOULD_REFERENCE ReplacementWhereAvailable;
BreakingOntologyChange :=
ChangeThatMayInvalidateExistingDataQueriesMappingsOrApplications;
BreakingChange SHOULD_BE ExplicitlyVersionedAndDocumented;
OntologyMigration :=
TransformExistingDataOrMappingsToNewOntologyVersion;
OntologyEvolution :=
ControlledModificationOfOntologyAsDomainKnowledgeOrRequirementsChange;
OntologyGovernance MAY_DEFINE {
Maintainer,
ReviewProcess,
ReleasePolicy,
ChangeApproval,
DeprecationPolicy
};
CollaborativeOntologyEngineering MAY_INCLUDE {
DomainExpert,
OntologyEngineer,
DataEngineer,
ApplicationDeveloper
};
DomainExpert PROVIDES SubjectMatterKnowledge;
OntologyEngineer TRANSLATES DomainKnowledgeIntoSemanticModel;
OntologyProvenance MAY_INCLUDE {
Source,
Author,
Contributor,
Version,
Derivation
};
Requirement SHOULD_BE TraceableTo RelevantOntologyElementsWherePractical;
OntologyChange
-> IdentifyAffectedClassesPropertiesMappingsQueriesAndData
-> AssessCompatibility
-> PlanMigration;
OntologyTestSuite MAY_INCLUDE {
CompetencyQueries,
ConsistencyTests,
ExpectedInferences,
InvalidDataCases
};
OntologyRegressionTest :=
VerifyNewVersionPreservesExpectedPreviousBehaviourUnlessChangeIsIntentional;
OntologyEngineeringTool MAY_SUPPORT {
Editing,
Reasoning,
Validation,
Visualisation,
Diff,
Documentation
};
AI MAY_SUPPORT OntologyEngineeringThrough {
TermExtraction,
RelationshipSuggestion,
MappingSuggestion,
Documentation,
CompetencyQuestionGeneration
};
AIGeneratedOntologyChange SHOULD_BE ValidatedBeforeAcceptance;
Ontology MAY_SERVE_AS SemanticSchemaForKnowledgeGraph;
KnowledgeGraphInstanceData MAY_REVEAL MissingOrIncorrectOntologyStructures;
SemanticDatabase MAY_USE OntologyFor {
Schema,
Validation,
QueryExpansion,
Inference
};
SemanticSearch MAY_USE OntologyFor {
QueryExpansion,
EntityTyping,
ConceptMatching,
Disambiguation
};
OntologyEngineering SUPPORTS SemanticInteroperabilityByCreatingSharedMeaningModels;
OntologyEngineeringSecurity MAY_INCLUDE {
RepositoryAccess,
ChangeAuthorisation,
ReleaseIntegrity,
DependencyValidation
};
# ---------- SEMANTIC REASONING ----------
IF KnowledgeModelDefinesClassesPropertiesRelationshipsAndAxioms
THEN OntologyClassification := supported;
IF CompetencyQuestionCannotBeAnsweredBecauseRequiredConceptMissing
THEN OntologyCoverage MAY_BE Insufficient;
IF ReasonerFindsContradiction
THEN OntologyConsistency := false;
IF ClassIsUnsatisfiable
THEN ModellingReview SHOULD_BE Triggered;
IF ExternalOntologyTermHasDifferentMeaning
THEN Reuse SHOULD_NOT_BE Forced;
IF BreakingChangeIntroduced
THEN VersionAndMigrationPlan SHOULD_BE Updated;
IF NewAxiomChangesExpectedInference
THEN RegressionTests SHOULD_BE Reexecuted;
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
"ontology engineering" ~= "ontology development";
"ontology design" ~= "ontology modelling" WHEN context == semantic_knowledge_model;
"ontology alignment" ~= "ontology matching";
"ontology mapping" ~= "semantic ontology mapping";
"ontology evolution" ~= "ontology lifecycle evolution";
"ontology module" ~= "modular ontology component";
"competency question" ~= "ontology competency question";
"ontology design pattern" ~= "ODP";
}
# ---------- QUERY FLOW ----------
QUERY(q) ->
NORMALISE(q) ->
IDENTIFY_DOMAIN_AND_SCOPE(q) ->
IDENTIFY_REQUIREMENTS(q) ->
IDENTIFY_CLASSES_PROPERTIES_AXIOMS(q) ->
IDENTIFY_REUSE_AND_MAPPINGS(q) ->
IDENTIFY_CONSISTENCY_AND_VALIDATION(q) ->
IDENTIFY_VERSION_AND_CHANGE(q) ->
MAP_TO_ONTOLOGY_ENGINEERING_MODEL(q) ->
APPLY_REASONING(q) ->
SCORE_CONFIDENCE(q) ->
RETURN_RELEVANT_KNOWLEDGE;
# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
weighted_mean(
source_reliability,
formal_semantic_consistency,
domain_expert_support,
competency_coverage,
validation_evidence,
contextual_relevance
);
CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
primary_entity: OntologyEngineering;
ontology: OntologyEngineeringOntology;
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_requirement:
validate
-> classify_scope
-> create_or_update_competency_question
-> trace_to_ontology_elements
-> integrate;
new_ontology_term:
validate_identifier
-> define
-> place_in_hierarchy
-> attach_properties
-> integrate;
new_axiom:
validate_syntax
-> evaluate_semantics
-> run_reasoner
-> test_expected_inference
-> integrate;
ontology_revision:
preserve_previous_version
-> apply_change_set
-> run_validation
-> run_regression_tests
-> update_documentation
-> recompute_confidence
-> regenerate_flow_hash;
conflict:
preserve_provenance
-> compare_domain_and_formal_evidence
-> adjust_confidence
-> flag_review;
}
# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
DOMAIN
+ SUBDOMAIN
+ ONTOLOGY
+ OntologyEntity
+ EngineeringEntity
+ SemanticEntity
+ LifecycleStage
+ CompetencyQuestion
+ OntologyEvaluation
+ OntologyEvolution
+ RELATIONSHIPS
+ SEMANTIC_REASONING
+ SEMANTIC_EQUIVALENCE
+ UPDATE_MODEL;
FLOW_HASH :=
HASH(FLOW_HASH_INPUT);
# ---------- TERMINAL ----------
OntologyEngineeringOntology
-> DefineDomainNeedAndScope
-> GatherSemanticRequirements
-> CreateCompetencyQuestions
-> ReuseAndAlignExistingKnowledgeModels
-> ConceptualiseClassesPropertiesAndRelationships
-> FormaliseAxiomsAndConstraints
-> ImplementMachineInterpretableOntology
-> ValidateConsistencyAndSatisfiability
-> EvaluateCoverageAndQuality
-> PublishVersionAndDocumentation
-> TrackChangesAndDependencies
-> RunRegressionAndMigrationChecks
-> MaintainControlledOntologyEvolution;
END FLOW
Download Code
Copy to Clipboard