CACS458 Knowledge Engineering

Knowledge EngineeringUnit 312 min read

Description Logics & Ontology Engineering: Structure, Rules & Real-World Use

Unit 3 of Knowledge Engineering explores how Description Logics (DL) formalize structured knowledge and how ontologies enable machines to understand and share it. Learn DL syntax, ontology layers (concepts/roles/axioms), OWL’s role, and real-world applications in eSewa, NEPSE, and medical systems—with visual traces of

TAKEAWAYS:

  • Description Logics (DL) are a family of formal knowledge representation languages that combine concepts (classes), roles (properties), and axioms (rules) to define structured hierarchies (e.g., Animal ∧ ¬Bird → Fly).
  • Ontologies are explicit, shared conceptualizations of a domain (e.g., "eSewa’s ontology defines User, Transaction, PaymentMethod with constraints like User → has(PhoneNumber)).
  • OWL (Web Ontology Language) extends RDF with DL to enable machine-readable semantics (e.g., owl:equivalentClass for synonyms like NepaliCitizen ≡ CitizenOfNepal).
  • Ontology engineering follows METHONTOLOGY: specification → conceptualization → formalization → implementation → evaluation (visualized as a pipeline).
  • Real-world impact: DL powers semantic search (e.g., NEPSE’s stock ontology), medical diagnosis (ICD-11 codes), and e-commerce (Daraz’s product hierarchies).
  • Exam focus: Compare DL vs. predicate logic, trace ontology reasoning, and explain OWL’s role in the Semantic Web stack (RDF → RDFS → OWL).

1. What is Description Logic (DL)?

DL is a formal logic for structured knowledge representation, combining:

  • Concepts (classes, e.g., Person, Employee).
  • Roles (properties, e.g., hasName, worksAt).
  • Axioms (rules, e.g., Employee → worksAt(Some Organization)).

Key Features

classDiagram
    class Concept {
        +Name: String
        +Definition: Axioms
    }
    class Role {
        +Name: String
        +Domain/Range: Concepts
    }
    class Axiom {
        +Type: Subsumption/Equivalence/Disjointness
        +Example: "Student → takes(Course)"
    }
    Concept "1" --> "0..*" Role : "has"
    Concept "1" --> "1..*" Axiom : "defines"

DL Syntax Examples

Notation Meaning Example
C ∩ D Intersection (AND) Bird ∩ ¬Penguin
C ∪ D Union (OR) Employee ∪ Student
¬C Negation (NOT) ¬Fly (non-flying things)
∃ r.C Existential ("has a") ∃ hasChild.Person
∀ r.C Universal ("all") ∀ worksAt.Organization
C ⊑ D Subsumption ("is-a") Student ⊑ Person

Worked Example: eSewa’s User Ontology

Scenario: eSewa defines users with constraints:

  • All users have a phone number.
  • Users can be verified or unverified.
  • Verified users can send money; unverified cannot.

DL Representation:

User ⊑ ∀ hasPhoneNumber.String
VerifiedUser ⊑ User ∩ ∃ canSendMoney.Amount
UnverifiedUser ⊑ User ∩ ¬∃ canSendMoney.Amount

Visual Trace:

graph TD
    A["User"] --> B["hasPhoneNumber: String"]
    A --> C["VerifiedUser"]
    A --> D["UnverifiedUser"]
    C -->|"canSendMoney"| E["Amount"]
    D -->|"¬canSendMoney"| F["Amount"]

2. Ontologies: The Backbone of Shared Knowledge

An ontology is a machine-readable specification of:

  • Concepts (classes),
  • Roles (properties),
  • Axioms (rules),
  • Individuals (instances).

Ontology Layers

mindmap
  root((Ontology))
    Concepts
      Classes: e.g., `Person`, `Vehicle`
      Hierarchies: `is-a`, `part-of`
    Roles
      Object Properties: `hasOwner`, `locatedAt`
      Data Properties: `hasName: String`
    Axioms
      Subsumption: `Student ⊑ Person`
      Equivalence: `NepaliCitizen ≡ CitizenOfNepal`
      Disjointness: `Cat ⊑ ¬Dog`
    Individuals
      Instances: `John: Person`, `Kathmandu: City`

Ontology Engineering Methodology (METHONTOLOGY)

flowchart LR
    A["Specification"] --> B["Conceptualization"]
    B --> C["Formalization"]
    C --> D["Implementation"]
    D --> E["Evaluation"]
    E -->|"Feedback"| B

Real-World Ontologies

Domain Ontology Example DL Snippet Why It Matters
eSewa User, Transaction, PaymentMethod Transaction ⊑ ∃ involves(User ∩ Verified) Prevents fraud by enforcing verification.
NEPSE Stock, Company, TradingRule Stock ⊑ ∀ listedOn.Exchange Ensures only valid stocks are traded.
Medical (ICD-11) Disease, Symptom, Treatment Diabetes ⊑ ∃ causes(Symptom) Enables symptom-to-disease reasoning.
Daraz Product, Category, Review Electronics ⊑ Product ∩ ∃ hasPrice.Numeric Powers semantic search (e.g., "budget laptops").

3. OWL: The Web Ontology Language

OWL is the W3C standard for ontologies, built on RDF and DL. It supports:

  • Class expressions (e.g., ∃ hasAuthor.Author).
  • Property hierarchies (e.g., subPropertyOf).
  • Individual assertions (e.g., John: Person).

OWL vs. RDF vs. RDFS

Feature RDF RDFS OWL
Purpose Data model (triples) Lightweight schema Full DL reasoning
Class Hierarchy No rdfs:subClassOf owl:equivalentClass, owl:disjointWith
Property Rules No rdfs:domain, rdfs:range owl:FunctionalProperty
Reasoning None Limited Full DL inference
Example Use Storing data (e.g., user profiles) Defining basic types eSewa’s transaction rules

OWL Worked Example: Ncell’s Customer Ontology

Scenario: Ncell defines:

  • Customers can be prepaid or postpaid.
  • Postpaid customers must have a contract.
  • Prepaid customers cannot exceed a data limit.

OWL Axioms:

@prefix : <http://example.org/ncell#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

:Customer rdfs:subClassOf :Person .
:PrepaidCustomer rdfs:subClassOf :Customer ;
    owl:equivalentClass [ owl:intersectionOf (
        :Customer
        [ owl:onProperty :hasPlan ; owl:hasValue :PrepaidPlan ]
    ) ] ;
    owl:disjointWith :PostpaidCustomer .
:PostpaidCustomer rdfs:subClassOf :Customer ;
    owl:equivalentClass [ owl:intersectionOf (
        :Customer
        [ owl:onProperty :hasContract ; owl:hasValue :Contract ]
    ) ] .
:PrepaidPlan owl:equivalentClass [ owl:intersectionOf (
    :Plan
    [ owl:onProperty :hasDataLimit ; owl:hasValue [ owl:datatype xsd:float ; xsd:value "10" ] ]
) ] .

Visualization:

graph TD
    A["Customer"] --> B["PrepaidCustomer"]
    A --> C["PostpaidCustomer"]
    B -->|"hasPlan"| D["PrepaidPlan"]
    C -->|"hasContract"| E["Contract"]
    D -->|"hasDataLimit"| F["10GB"]

4. Ontology Reasoning: How Machines "Think" with DL

Ontology reasoners (e.g., HermiT, Pellet) infer implicit knowledge from axioms. Example:

Given:

Student ⊑ Person
∀ takes.Course
∃ hasGPA.Numeric

Query: Is Alice a Person if Alice: Student? Trace:

  1. Alice: Student (given).
  2. Student ⊑ Person (axiom) → Alice ⊑ Person (inferred).

Real-World Trace: NEPSE’s Trading Rules Scenario: NEPSE’s ontology enforces:

  • Only listed companies can trade.
  • Trading requires a valid broker.

Axioms:

Stock ⊑ ∀ listedOn.Exchange
Trade ⊑ ∃ involves(Broker ∩ Valid)

Query: Can CompanyX trade if it’s not listed? Trace:

  1. CompanyX: Stock (given).
  2. Stock ⊑ ∀ listedOn.Exchange → If CompanyX has no listedOn, it cannot trade.

5. Applications of DL and Ontologies

A. Semantic Web

  • Linked Data: Ontologies enable machine-readable links between datasets (e.g., DBpedia connects Wikipedia to medical ontologies).
  • Example: Google’s Knowledge Graph uses ontologies to answer questions like "What movies starred Tom Hanks in 2020?".

B. E-Commerce (Daraz, Amazon)

  • Product Ontologies: Define Product ⊑ ∃ hasCategory.Category ∩ ∃ hasPrice.Numeric.
  • Use Case: When you search "budget smartphones under Rs. 20,000", the system infers:
    graph TD
        A["Search: 'budget smartphones <20k'"] --> B["hasCategory: Smartphone"]
        B --> C["hasPrice: Numeric"]
        C -->|"<20000"| D["Filtered Results"]

C. Healthcare (ICD-11, Hospital Systems)

  • Diagnosis Ontologies: Link symptoms to diseases (e.g., Fever ∩ Cough ⊑ ∃ causes(Disease ∩ Flu)).
  • Example: A hospital system might flag:
    graph TD
        A["Patient Symptoms"] --> B["Fever"]
        A --> C["Cough"]
        B -->|"∃ causes"| D["Disease: Flu"]
        C -->|"∃ causes"| D

D. Finance (Banks, NEPSE)

  • Loan Eligibility: Ontologies define rules like:
    LoanApplicant ⊑ Person ∩ ∃ hasCreditScore(Numeric ∩ ≥700)
    
  • Example: A bank’s system rejects an applicant if:
    graph TD
        A["Applicant"] --> B["hasCreditScore: 650"]
        B -->|"<700"| C["Rejected"]

6. Challenges and Limitations

Challenge Example Mitigation
Scalability Large ontologies (e.g., SNOMED CT) Use modular ontologies or OWL 2 DL.
Expressivity vs. Decidability Undecidable fragments in DL Stick to decidable profiles (e.g., EL++).
Maintenance Evolving domains (e.g., medical terms) Version control for ontologies.
Interoperability Merging ontologies from different sources Use alignment tools (e.g., Protégé).

7. Exam Tip: How to Score Full Marks

Do’s:

  • Compare DL vs. Predicate Logic:
    • DL is structured (concepts/roles/axioms) vs. PL’s unstructured formulas.
    • DL supports modular reasoning (e.g., Student ⊑ Person is reusable).
  • Trace Ontology Reasoning:
    • Show step-by-step inference (e.g., "Given A ⊑ B and X: A, infer X: B").
  • Link to OWL/RDF:
    • Always mention OWL’s role in the Semantic Web stack (RDF → RDFS → OWL).
  • Use Real-World Examples:
    • Tie answers to eSewa, NEPSE, or Daraz (e.g., "OWL enforces eSewa’s transaction rules").

Don’ts:

  • Don’t confuse ontologies with databases:
    • Ontologies are for semantic meaning; databases store data.
  • Don’t ignore axioms:
    • Always include rules (e.g., ⊑, ∃, ∀) in answers.
  • Don’t skip visuals:
    • Draw concept hierarchies or reasoning traces in exams.

Sample Exam Answer Structure

Question: "Explain the role of OWL in ontology engineering." Answer:

  1. Definition: OWL is a W3C standard for ontologies, built on RDF and DL.
  2. Key Features:
    • Supports class expressions (e.g., ∃ hasAuthor.Author).
    • Enables reasoning (e.g., inferring Student ⊑ Person).
  3. Real-World Use:
    • eSewa: Defines Transaction ⊑ ∃ involves(User ∩ Verified) to prevent fraud.
  4. Comparison:
    Feature OWL RDFS
    Reasoning Full DL inference Limited
    Property Rules FunctionalProperty, InverseOf domain, range
  5. Diagram:
    graph TD
        A["RDF"] --> B["RDFS"]
        B --> C["OWL"]
        C --> D["Semantic Web"]

8. Practice Questions (With Hints)

  1. Convert to DL: "All professors are employees. Some professors teach computer science." Hint: Use Professor ⊑ Employee and ∃ teaches.Course.

  2. Ontology Reasoning: Given:

    Vehicle ⊑ ∀ hasEngine.Engine
    Bike ⊑ Vehicle
    

    Can you infer Bike ⊑ ∀ hasEngine.Engine? Yes (subsumption).

  3. OWL vs. RDF: Which supports owl:equivalentClass? OWL (RDF alone cannot).

  4. Real-World Trace: How does Daraz use ontologies for product search? Hint: Product ⊑ ∃ hasCategory.Category ∩ ∃ hasPrice.Numeric enables filtering.


semantic web layer cake diagramThe stack: Unicode → XML → RDF → RDF Schema → OWL → Logic → Proof. (Image: Florian Thiery, CC BY-SA 4.0, via Wikimedia Commons)

Based on the TU BCA syllabus for Knowledge Engineering (CACS458), unit 3.

Discussion

Loading…