Course Project


Monsoon 2018
Instructor: Raghava Mutharaju
IIIT-Delhi
IIIT Delhi

Logistics


  • Group project with team size of 2 or 3
  • Each group works on a different domain for designing and building an ontology
  • Two phases of the project
    • Design and build an ontology for the domain of your choice
    • Use that ontology in a chatbot to answer questions*
  • Expected deliverables
    • Demo (team)
    • Code, OWL files (team)
    • Report* (Individual)

*Template will be provided

Choice of domains


  • Healthcare
  • Movie
  • Transportation System
  • Sports (Cricket, Chess, Tennis, Football etc.)
  • Geography
  • Astronomy
  • University
  • Biomedicine
  • Chemical compounds

Ontology (min. requirements)

  • 15 classes
  • 2 and 3 levels of class hierarchy
  • 3-5 object properties
  • 3-5 data properties
  • Property hierarchy
    • 1-2 subproperty relations
    • 1 property chain (encouraged but optional)
  • Domain and Range for all the properties
  • 8-10 Existential class expressions
  • 1-3 Universal class expressions
  • 10 Individuals (2-3 differentAs)
  • 1 Enumerated class
  • 3-5 Disjoint classes
  • Use at least 2 ontology design patterns

*Cooking Recipe ontology would be updated to reflect these requirements

Questions for chatbot


  • Is A SubClassOf B
  • Is a instanceOf A
  • Is KB consistent
  • Add an axiom and check for consistency
  • Generate explanation for inconsistency
  • Use ObjectPropertyAssertion + Domain/Range, to infer type of the individual
  • Is p SubPropertyOf q
  • List characteristics of property p
    • Functional property etc.
    • Participates in a property chain, SubPropertyOf, ObjectPropertyAssertion, DataPropertyAssertion etc.
    • Domain, Range

Questions for chatbot


  • Check for corner cases
    • Class or property does not exist
    • Null or empty query
    • Class SubClassOf itself

Notations To Be Used


  • <?Class> SubClassOf <Class>
  • <Class> SubClassOf <?Class>
  • <?Individual> InstanceOf <?Class>
  • IsConsistent?
  • Add: <syntactically correct axiom>
  • Explain ClassExpression
  • GetTypes <Individual>
  • <?Property> SubPropertyOf <?Property>
  • CharacteristicsOf <Property>

<Class> indicates a specific class whereas <?Class> indicates any class. Same for properties

Chatbot library


  • A simple UI with a scrollable display area + a text box
  • A command line tool
  • Any chatbot library of your choice

Extra Credit


  • A simple UI (5%)
  • Chatbot library (5%)
  • Queries in natural language (10%)
    • Is <Individual> a <Class>?
    • What are the subclasses of <Class>?
    • How are <Class1> and <Class2> related to each other?
    • ...
    • Spell correction can also be used if the queries are in natural language
  • Support for synonyms in queries from WordNet (5%)
  • A chatbot integrated UI for adding axioms (5%-10%)
    • SubClassOf axioms
    • ObjectPropertyAssertions
    • ...