This study-unit introduces formal aspects of knowledge representation and reasoning, including a number of logic based formalisms for knowledge representations. For the assessment part of the unit, students were asked to use any third generation language of choice (I chose JavaScript) to carry out two tasks (more information found in assignment.pdf
):
- Implement a program that can read and parse clauses written in Conjunctive Normal Form (CNF) and perform reasoning on the resulting knowledge base. The user can then query the program to check if a query clause can be resolved to an empty clause.
- Implement a program that can construct an inheritence network based on input provided, and perform reasoning on the constructed network. The user can then query the program on possible inheritances.
Please note that the report explaining the solutions in detail can be found in report.pdf
and the code for each task can be found in the code
directory.
Figure 1 - Screenshots of query being solved (left) and not resolved (right)
Figure 2 - Screenshots of inheritence network with query handling