Update (11/05/08): The link to the OBDA plugin and software required to develop the project has been updated. Follow this link to get it. For details on the installation, read the documentation provided. Note: There is an issue with recent version of MySQL which might give rise to different errors, use version 5.0.45 for this project.
The KBDB course will include the development of a project for the final grading. The project will amount for 59% of the course final mark.
Project Description
The objective of the project is to provide practical experience in the design and deployment an OBDA system. By the end of the project, you will know how to: design a simple ontology for a specific domain, design a database and understand how the schema of the database affects the OBDA system, design DB-Ontology mappings, use a OBDA-Enabled reasoner for query answering, deploy a stand alone applications that interact with OBDA-Enabled reasoners.
Organization
The project will be developed in 2-3 people teams. The project will be partially developed during lab sessions, where questions can be clarified.
Tasks
1) Choose a Domain of Discurse (DoD) of your interest. The choice of the domain is free, with the only requirement that it should be a domain for which considerable amounts of data could be handled. More over, the domain should be rich enough to allow for a non-trivial ontology to be developed. Examples are, Medical-Informatics domain (Hospital Management, Patient data handling), Astronomy (observation's data), Economy related (Bank data), Library administration. Communicate your choice as soon as you make it.
2) Ontology Creation. An ontology about the DoD should be made first in UML-Class diagrams, then translated into Description Logics assertions for insertion into Protégé (see the guide for this translation). Grading of the ontology will be made depending on how much of the language (DL-Lite-A) is exploited and the size of the ontology. The aim should be a medium-small sized ontology, 10-15 entities, 10-20 Relations, 20-30 concept attributes plus ISA (⊑) constraints, mandatory participation constraints, functionality assertions, domain and range restrictions for roles and attributes where suitable.
3) Database Creation. Create a MySQL 5 database schema for storing data about the selected DoD. The database should be able to maintain data about every aspect of the ontology, although, there doesn't have to be a 1 to 1 correspondance. Normalization should not be done trough all the relations of the schema, but only partially. Use a database instance generator to create 3 instances of the schema, with 10000, 100000 and 1000000 tuples respectively.
4) Mapping Creation. Use the OBDA plugin to map the database to the ontology. All entities (classes, properties, etc) should be populated with at least one mapping. Use richer SQL queries over the database for solving normalization issues. Use aggregation in the SQL queries to populate special attributes.
5) Application Development. Develop a light client for the OBDA-Enabled reasoner. Create a web-based application that allows to visualize the content of the ontology through HTML tables. The Application should at least allow one to inspect the instances of classes and roles, as well as inspect the value of the attributes of classes. Depending on the DoD, additional functionalities may be implemented that can be realized through specific queries over the ontology. Use XML DOM objects to generate the XML messages containing the queries. Use a XML SAX parser to read the response from the server and generate the user's HTML. Visual appeal and proper system-user interaction will contribute positively to the grade of the project.
The following is a task dependency graph that can help you organizing/distributing the workload.