DBOWL is a persistent and scalable OWL reasoner. It stores the OWL-DL ontologies in a relational database, and supports Tbox queries (queries on the ontology structure), Abox inferences (reasoning on the ontology instances) and ECQ (Extended Conjunctive Queries) queries. Currently we are implementing a SPARQL query engine for DBOWL. In order to create the relational database for ontology storage, a Description Logic Reasoner is used. Thus, the consistency of the ontology as well as the inferences about the ontology structure is delegated to this reasoner and DBOWL focuses on reasoning on instances (large numbers of them). Both, Tbox queries and ECQ queries are implemented by translation to SQL. Abox inferences are implemented by java functions and SQL views.
DBOWL consists of two services, an OWL storage system and an OWL querying system. The OWL storage system stores the OWL ontology in the database. Starting from an OWL file, the class/subclass hierarchy (the concepts taxonomy), the property/subproperty hierarchy (the properties taxonomy) and the ontology structure information are computed using a description logic reasoner. Subsequently, a relational schema is created in order to store all this information. Ontology instances are obtained by parsing the OWL file using Jena, and they are stored in the corresponding database table. The relational schema is implemented using the Oracle database management system, and all the necessary information for implementing Tbox queries and Abox inferences is then stored in the database. Finally, the DBOWL reasoner evaluates the java functions implementing the Abox inference and creates the SQL views which contain the inferred instances. The DBOWL querying and reasoning system performs both Tbox queries and ECQ queries over the ontology stored in the relational database. The DBOWL reasoner operates as follows. The user sends a query to the query processor. It can be either a Tbox query or an ECQ query. If it is a Tbox query, the query planner sends the query to the Tbox translator which translates it to SQL, evaluates it using the database, and returns the result to the query planner. Otherwise, if the query is an ECQ query, the query planner uses the Abox translator in order to obtain an equivalent SQL query, evaluates it by accessing the database, and then returns the result to the query planner. Finally, the query planner returns the results to the user.
Figure 1. DBOWL Storage System.
Figure 2. DBOWL Query and reasoning system.