FLOW_ALGEBRA DescriptionLogicOntology v1.0
TARGET_URL := "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/knowledge-representation-logic/description-logic-ontology.html"
LANGUAGE := "en-GB"
DOMAIN := MathematicalOntologies > MathematicalLogicOntologies > KnowledgeRepresentationLogic > DescriptionLogicOntology
BEGIN_FLOW
ENTITY DescriptionLogic {
TYPE := FormalKnowledgeRepresentationLogicFamily
DEFINITION := "A family of logic-based knowledge representation languages for describing concepts, individuals and binary relations with model-theoretic semantics and decidable reasoning fragments."
}
ENTITY Concept { TYPE := UnaryPredicateLikeClass }
ENTITY Role { TYPE := BinaryRelation }
ENTITY Individual { TYPE := DomainEntity }
RELATIONSHIP DescriptionLogic --represents--> Concept
RELATIONSHIP DescriptionLogic --represents--> Role
RELATIONSHIP DescriptionLogic --represents--> Individual
RELATIONSHIP DescriptionLogic --supports--> OntologyReasoning
RELATIONSHIP DescriptionLogic --relates_to--> FirstOrderLogic
INTERPRETATION {
I := (Delta_I, InterpretationFunction)
REQUIRE Delta_I nonempty
}
CONCEPT_INTERPRETATION {
C^I subseteq Delta_I
}
ROLE_INTERPRETATION {
R^I subseteq Delta_I x Delta_I
}
INDIVIDUAL_INTERPRETATION {
a^I in Delta_I
}
TOP_CONCEPT {
TOP^I := Delta_I
}
BOTTOM_CONCEPT {
BOTTOM^I := empty_set
}
CONCEPT_INTERSECTION {
(C AND D)^I := C^I intersect D^I
}
CONCEPT_UNION {
(C OR D)^I := C^I union D^I
REQUIRE language_supports_union
}
CONCEPT_NEGATION {
(NOT C)^I := Delta_I minus C^I
REQUIRE language_supports_negation
}
EXISTENTIAL_RESTRICTION {
(EXISTS R.C)^I :=
{x | EXISTS y: (x,y) in R^I AND y in C^I}
}
UNIVERSAL_RESTRICTION {
(FOR_ALL R.C)^I :=
{x | FOR_ALL y: (x,y) in R^I implies y in C^I}
}
TBOX {
TYPE := TerminologicalAxioms
}
ABOX {
TYPE := AssertionalAxioms
}
RBOX {
TYPE := RoleAxioms
}
GENERAL_CONCEPT_INCLUSION {
FORM := C subsumed_by D
SEMANTICS := C^I subseteq D^I
}
CONCEPT_EQUIVALENCE {
FORM := C equivalent_to D
SEMANTICS := C^I = D^I
}
DISJOINTNESS {
FORM := Disjoint(C,D)
SEMANTICS := C^I intersect D^I = empty_set
}
CONCEPT_ASSERTION {
FORM := C(a)
SEMANTICS := a^I in C^I
}
ROLE_ASSERTION {
FORM := R(a,b)
SEMANTICS := (a^I,b^I) in R^I
}
NEGATIVE_ROLE_ASSERTION {
FORM := NOT R(a,b)
REQUIRE language_support
}
INDIVIDUAL_EQUALITY {
a=b
SEMANTICS := a^I=b^I
}
INDIVIDUAL_DIFFERENCE {
a!=b
SEMANTICS := a^I!=b^I
}
ROLE_HIERARCHY {
R subrole_of S
SEMANTICS := R^I subseteq S^I
}
INVERSE_ROLE {
R^- := inverse_of_R
}
TRANSITIVE_ROLE {
R(x,y) AND R(y,z) -> R(x,z)
}
SYMMETRIC_ROLE {
R(x,y) -> R(y,x)
}
ASYMMETRIC_ROLE {
R(x,y) -> NOT R(y,x)
under applicable semantics
}
REFLEXIVE_ROLE {
FOR_ALL x: R(x,x)
}
IRREFLEXIVE_ROLE {
FOR_ALL x: NOT R(x,x)
}
FUNCTIONAL_ROLE {
FOR_ALL x,y,z:
R(x,y) AND R(x,z) -> y=z
}
INVERSE_FUNCTIONAL_ROLE {
FOR_ALL x,y,z:
R(y,x) AND R(z,x) -> y=z
}
NUMBER_RESTRICTION {
MIN := >=n R.C
MAX := <=n R.C
EXACT := =n R.C
REQUIRE language_fragment_support
}
NOMINAL {
FORM := {a}
INTERPRETATION := {a^I}
REQUIRE nominal_support
}
HAS_VALUE {
FORM := EXISTS R.{a}
}
SELF_RESTRICTION {
FORM := EXISTS R.Self
REQUIRE language_support
}
ALC {
FEATURES := {
AtomicConcepts,
TOP,
BOTTOM,
Negation,
Intersection,
Union,
ExistentialRestriction,
UniversalRestriction
}
}
AL {
TYPE := AttributiveLanguage
}
FL0 {
TYPE := RestrictedDescriptionLogic
}
EL {
TYPE := LightweightDescriptionLogicFamily
COMMON_STRENGTH := efficient_classification_for_large_ontologies
}
DL_LITE {
TYPE := LightweightDescriptionLogicFamily
COMMON_STRENGTH := query_answering_and_data_access
}
SROIQ {
TYPE := HighlyExpressiveDescriptionLogic
RELATIONSHIP := logical_basis_for_OWL2_DL
FEATURES_MAY_INCLUDE := {
TransitiveRoles,
RoleHierarchies,
Nominals,
Inverses,
QualifiedNumberRestrictions,
ComplexRoleInclusions
}
}
OWL_RELATIONSHIP {
OWL2_DL --closely_related_to--> SROIQ
REQUIRE profile_and_semantic_details
}
OWL_EL_RELATIONSHIP {
optimised_for large_taxonomies_and_classification
}
OWL_QL_RELATIONSHIP {
optimised_for query_answering_over_relational_data
}
OWL_RL_RELATIONSHIP {
optimised_for rule_based_reasoning
}
OPEN_WORLD_ASSUMPTION {
absence_of_assertion DOES_NOT imply negation
}
UNIQUE_NAME_ASSUMPTION {
different_names do_not_automatically_imply_different_individuals
}
MONOTONICITY {
adding_axioms does_not_remove_previous_entailments
under standard classical DL semantics
}
CONCEPT_SATISFIABILITY {
C satisfiable_wrt_KB
IFF EXISTS model I of KB with C^I nonempty
}
KB_CONSISTENCY {
KB consistent IFF EXISTS model satisfying all axioms
}
SUBSUMPTION {
KB entails C subsumed_by D
IFF every model_of_KB satisfies inclusion
}
EQUIVALENCE_TEST {
C equivalent_to D
IFF C subsumed_by D AND D subsumed_by C
}
DISJOINTNESS_TEST {
C and D disjoint
IFF KB entails C AND D subsumed_by BOTTOM
}
INSTANCE_CHECKING {
determine whether KB entails C(a)
}
ROLE_INSTANCE_CHECKING {
determine whether KB entails R(a,b)
}
CLASSIFICATION {
compute inferred concept hierarchy
}
REALISATION {
determine most_specific_named_concepts entailed_for_individual
}
REDUCTION_TO_SATISFIABILITY {
SUBSUMPTION C subsumed_by D
MAY test unsatisfiability_of C AND NOT D
in DLs supporting required constructors
}
INCONSISTENCY_DETECTION {
IF no model exists
THEN KB inconsistent
}
UNSATISFIABLE_CONCEPT {
C^I empty in every model_of_KB
}
TABLEAU_REASONING {
TYPE := DecisionProcedureFamily
PROCESS :=
expand constraints on individuals/nodes
apply constructor rules
detect clashes
branch where required
}
TABLEAU_NODE {
LABEL := SetOfConceptExpressions
}
EXISTENTIAL_RULE {
EXISTS R.C in label(x)
-> create_or_reuse y with R(x,y) and C in label(y)
under calculus conditions
}
UNIVERSAL_RULE {
FOR_ALL R.C in label(x)
AND R(x,y)
-> add C to label(y)
}
CONJUNCTION_RULE {
C AND D in label(x)
-> add C and D
}
DISJUNCTION_RULE {
C OR D in label(x)
-> branch_on C or D
}
CLASH {
C and NOT C in same node_label
OR other violated restriction
}
OPEN_BRANCH {
no clash and saturated
-> candidate_model
under calculus conditions
}
BLOCKING {
PURPOSE := ensure_termination_for_recursive_structures
REQUIRE calculus_specific_blocking_condition
}
MODEL_CONSTRUCTION {
saturated_clash_free_structure
-> canonical_or_candidate_model
under tableau theorem conditions
}
CACHE {
reuse reasoning_results_for_repeated_subproblems
}
NORMALISATION {
transform axioms/concepts into reasoner-friendly normal form
REQUIRE semantics_preserved
}
ROLE_CHAIN {
R1 o R2 subrole_of S
REQUIRE expressive_role_inclusion_support
}
REGULARITY_RESTRICTION {
complex_role_inclusions
MUST satisfy required regularity conditions
in SROIQ-style logics
}
SIMPLE_ROLE_RESTRICTION {
number_restrictions/self/disjointness interactions
MAY require role_simplicity
under expressive DL syntax
}
DOMAIN_AXIOM {
Domain(R)=C
CAN_BE_EXPRESSED_AS:
EXISTS R.TOP subsumed_by C
}
RANGE_AXIOM {
Range(R)=C
CAN_BE_EXPRESSED_AS:
TOP subsumed_by FOR_ALL R.C
}
DEFINED_CONCEPT {
C equivalent_to Description
}
PRIMITIVE_CONCEPT {
C subsumed_by Description
}
NECESSARY_CONDITION {
C subsumed_by D
}
NECESSARY_AND_SUFFICIENT {
C equivalent_to D
}
ONTOLOGY_CLASSIFICATION {
asserted_hierarchy
+ logical_axioms
-> inferred_hierarchy
}
INFERRED_SUBCLASS {
not_explicitly_asserted
but entailed_by_KB
}
INFERRED_EQUIVALENCE {
mutual_subsumption
-> equivalent_concepts
}
INFERRED_DISJOINTNESS {
entailed_empty_intersection
}
EXPLANATION {
Entailment -> SupportingAxioms
}
JUSTIFICATION {
subset_of_KB sufficient_for_entailment
}
MINIMAL_JUSTIFICATION {
justification subset-minimal
}
INCONSISTENCY_JUSTIFICATION {
subset_of_KB sufficient_for_inconsistency
}
QUERY_ANSWERING {
conjunctive_query_or_instance_query
-> certain_answers
under declared DL semantics
}
CERTAIN_ANSWER {
tuple t
such_that query holds
in every model_of_KB
}
ONTOLOGY_BASED_DATA_ACCESS {
ABBREVIATION := OBDA
Ontology + DataSourceMappings + Query
-> semantically_enriched_answers
}
QUERY_REWRITING {
query + ontology
-> rewritten_query_over_data
common_in DL-Lite/OWL-QL style approaches
}
DESCRIPTION_LOGIC_VS_FOL {
DLs := syntactically_restricted_fragments_or_relatives_of_FOL
PURPOSE := balance_expressivity_and_decidability
}
DESCRIPTION_LOGIC_VS_RULES {
DL := model_theoretic_class_and_role_reasoning
Rules := implication_or_production_style_reasoning
MAY_COMBINE_WITH_RESTRICTIONS := TRUE
}
DESCRIPTION_LOGIC_VS_DATABASE {
DL commonly_open_world
Database commonly_closed_world_for_querying
MUST_NOT_CONFLATE := TRUE
}
DESCRIPTION_LOGIC_VS_VALIDATION {
DL entailment := semantic_consequence
DataValidation := conformance_to_constraints
MUST_REMAIN_DISTINCT := TRUE
}
EXPRESSIVITY_DECIDABILITY_TRADEOFF {
adding_language_features
MAY increase reasoning_complexity
or threaten_decidability_without_restrictions
}
COMPLEXITY {
depends_on DL_fragment_and_reasoning_task
}
TRACTABLE_PROFILE {
restricted_language designed_for_polynomial_or_practical_reasoning
under profile-specific guarantees
}
APPLICATION_RELATIONSHIPS {
DescriptionLogic --supports--> Ontologies
DescriptionLogic --supports--> SemanticWeb
DescriptionLogic --supports--> KnowledgeRepresentation
DescriptionLogic --supports--> KnowledgeGraphs
DescriptionLogic --supports--> BiomedicalOntologies
DescriptionLogic --supports--> EnterpriseKnowledgeModels
DescriptionLogic --supports--> AutomatedReasoning
DescriptionLogic --supports--> DataIntegration
DescriptionLogic --supports--> ArtificialIntelligence
}
ONTOLOGY_LINKS {
PARENT := KnowledgeRepresentationLogicOntology
RELATED := {
KnowledgeRepresentationOntology,
PredicateLogicOntology,
FirstOrderLogicOntology,
OntologyOntology,
KnowledgeGraphOntology,
ConceptOntology,
RoleOntology,
SubsumptionOntology,
TableauReasoningOntology,
OWLOntology,
ModelTheoryOntology
}
}
SEMANTIC_EQUIVALENCE {
Concept ≈ Class WHEN description_logic_context
Role ≈ BinaryRelation
Individual ≈ Instance
ConceptInclusion ≈ SubsumptionAxiom
GCI ≈ GeneralConceptInclusion
}
CONSTRAINTS {
C1 := every concept role and individual MUST be interpreted in a declared DL semantics
C2 := TBox ABox and RBox knowledge SHOULD remain distinguishable
C3 := open-world absence MUST NOT be interpreted as explicit negation
C4 := unique-name assumption MUST NOT be assumed unless declared
C5 := constructor use MUST be valid for selected DL fragment
C6 := role-chain and number-restriction interactions MUST respect fragment restrictions
C7 := satisfiability consistency subsumption and instance checking MUST remain distinct reasoning tasks
C8 := asserted hierarchy MUST NOT be conflated with inferred hierarchy
C9 := query answers MUST respect selected entailment semantics
C10 := validation constraints MUST NOT be conflated with DL entailment
C11 := OWL profile claims MUST respect actual profile expressivity
C12 := transformations/normalisations MUST preserve intended model-theoretic semantics
}
REASONING_CHAIN Query Q {
IDENTIFY DL_fragment
IDENTIFY TBox
IDENTIFY ABox
IDENTIFY RBox
IDENTIFY query_type
VALIDATE syntax_and_fragment_restrictions
NORMALISE axioms_if_required
IF consistency_query:
RUN satisfiability_reasoner_on_KB
IF concept_satisfiability:
TEST model_exists_with_nonempty_concept
IF subsumption_query:
TEST C AND NOT D for unsatisfiability
when reduction_valid
IF classification:
COMPUTE inferred_subsumption_hierarchy
IF instance_query:
TEST whether KB entails C(a)
IF tableau_reasoning {
APPLY constructor_expansion_rules
DETECT clashes
APPLY blocking
RETURN open_or_closed_status
}
IF query_answering:
COMPUTE certain_answers_under_semantics
BUILD justification_if_requested
VALIDATE constraints
RETURN reasoning_result WITH semantic_trace
}
CONFIDENCE {
CORE_DESCRIPTION_LOGIC := 1.00
MODEL_THEORETIC_SEMANTICS := 1.00
ALC_CONSTRUCTORS := 1.00
SUBSUMPTION_REASONING := 1.00
TABLEAU_CORE := 1.00
OPEN_WORLD_DISTINCTION := 1.00
SROIQ_OWL2_RELATIONSHIP := 0.99
SPECIFIC_RESULT :=
IF fragment_axioms_and_query_complete THEN 1.00
ELSE REQUIRE missing_information
}
UPDATE_MODEL {
IMMUTABLE_CORE := {
ConceptRoleIndividualSemantics,
ModelTheory,
ConceptInclusion,
OpenWorldSemantics,
CoreReasoningTasks
}
EXTENSIBLE := {
DLFragments,
RoleConstructors,
NumberRestrictions,
TableauOptimisations,
OWLProfiles,
QueryAnsweringMethods,
ExplanationMethods,
ApplicationDomains,
RelatedOntologies
}
ON_NEW_KNOWLEDGE {
IDENTIFY new_axiom
VALIDATE fragment_syntax
CHECK role_restrictions
CHECK consistency
RECLASSIFY_if_required
UPDATE justifications
UPDATE confidence
}
}
AI_CONSUMPTION {
MACHINE_READABLE := TRUE
HUMAN_INTERPRETABLE := TRUE
RECURSIVE_REASONING := TRUE
ENTITY_RESOLUTION := TRUE
CONCEPT_RESOLUTION := TRUE
ROLE_RESOLUTION := TRUE
TBOX_REASONING := TRUE
ABOX_REASONING := TRUE
RBOX_REASONING := TRUE
SATISFIABILITY_REASONING := TRUE
SUBSUMPTION_REASONING := TRUE
CLASSIFICATION_REASONING := TRUE
INSTANCE_CHECKING := TRUE
TABLEAU_REASONING := TRUE
QUERY_ANSWERING := TRUE
JUSTIFICATION_GENERATION := TRUE
VALIDATION_REQUIRED := TRUE
}
FLOW_HASH {
TARGET := TARGET_URL
SUBJECT := "Description Logic Ontology"
VERSION := "1.0"
CANONICAL_SIGNATURE := HASH(TARGET + SUBJECT + DOMAIN + VERSION)
}
OUTPUT {
PRIMARY_ENTITY := DescriptionLogic
INTERPRETATION := "Description logics provide model-theoretic languages for representing concepts, individuals and binary relations while retaining well-defined automated reasoning tasks. Their constructors express class descriptions and role restrictions, while satisfiability, consistency, subsumption, classification and instance checking allow ontologies to derive knowledge beyond explicitly asserted facts."
}
END_FLOW
Download Code
Copy to Clipboard