Skip to content

ObdalibQuestArchitecture

Guohui Xiao edited this page Nov 29, 2013 · 3 revisions

This page describe the core architecture of the Quest system (not including OWLAPI, QuestDB or QuestSesame). The description concerns Quest in virtual and classic modes.

Table of Contents

Core architecture

Quest core architecture is composed by 4 components that we now explain in detail:

  • Quest: The Quest component is responsible for the initialization of all the internal components. It maintains the state of the systems and provides access to Quest connections (see bellow). The Quest component is also responsible for pre-processing the system's input to assure that the query answering process is optimal.
  • QuestConnection: Quest connections allow users to maintain transactions. A user may obtain many connections from any given Quest instance. Using connections it is possible to obtains QuestStatements (see bellow), and commit or roll-back changes to the repository, as with traditional SQL connections.
  • QuestStatement: Quest statements are objects over that allow to query and update the repository. Quest statements functionality is similar to JDBC's Statement functionality except for a few internal differences, in particular, Quest statements are responsible for coordinating the different steps required to answer queries my means of query rewriting.
  • QuestResultSet: An object that allows scrolling over the results of a query, analogous to JDBC's ResultSets
A typical use of Quest then involves 4 steps: i) Initialization of a Quest instance, providing Quest with appropriate inputs, for example, TBox, JDBC connection parameters, etc., ii) Obtaining a QuestConnection object from the Quest instance, iii) Obtaining a QuestStatement from the QuestConnection to execute query/update operations over the statement and, last, iv) Closing any results sets, statements and connections to free the repository resources.

Quest

At runtime, Quest maintains the following components:

  1. Query pre-processor
  2. Query rewriter
  3. Query unfolder

QuestConnection

QuestStatement

Clone this wiki locally