Given a small anatomy model that includes inheritance, parthood and ad hoc relations, the goal is to develop a Prolog system that incorporates the knowledge of the model. The system should provide deductive querying facilities and verification of model constraints expressed in a subset of natural language.
The anatomy model is formalised correcting some errors. During the process, different inheritance uses (generalization and specialization) and parthood relations (part for, has part and part of) are identified.
Furthermore, a domain specific language for encoding the model is developed taking advantage of the code-as-data nature of Prolog.
Finally, the natural language subset for expressing model constraints is turned into a definite clause grammar (DCG). The constraints are attached meaning by stepwise refinement of the formal definition of their semantics into executable Prolog code.
Knowledge Base/
: this directory contains all the source code of the project
- Report: a 30 page long PDF document describing the problem and the solution in detail
In order to run the knowledge base you only need a recent version of SWI-Prolog installed. Althought the project was developed using version 5.6, much older versions should work as well.
Additionally, the code should be easily portable to other Prolog distributions, as it largely complies with the ISO Prolog standard, although this fact has not been tested in practice.
- Source code (repository): GNU General Public License
- Documents (downloads): GNU Free Documentation License