The Ontology Works Remote Knowledge Server (RKS) extends the High Performance Knowledge Server (HPKS) to provide ontology-driven access to a wide variety of data sources external to the HPKS. These data sources include high-end relational database servers, spreadsheets, and tabular data in text files (e.g. Comma-Separated Values). Using the RKS service, a single knowledge server seamlessly accesses multiple remote data sources, integrating the remote information with the full semantic and logical capabilities of the HPKS. In this way, meaning associated implicitly with a data source can be made explicit in an ontology and thus made available to users in formulating queries against that data source.
Basic information that identifies the remote data source and its elements such as tables and columns is placed in the ontology.
Rules in the ontology connects this basic information to the concepts of the ontology. One key point is that much of this information is dynamic and the RKS follows changes in much of this basic information without requiring any editing of the application-defined ontology.
The ontology-to-remote-data-source mapping can be very rich. A complex rule of the ontology can rely on information located in multiple remote data sources. Ontological types can be defined through remote data sources and dynamically extend the type hierarchy of the ontology.
There are two modes of using the RKS, as an ontological data federation tool or as an ontological data warehouse. A single RKS/HPKS database may combine both approaches, federating some parts of some data sources and warehousing other parts of those data sources. The default approach of the RKS is to federate access to remote data sources: any query processing in the RKS/HPKS that requires information from a particular remote data source extracts that information when it is needed (under a transaction as appropriate). If two successive transactions of an RKS need access to a particular piece of remote information, then that information is extracted twice from the remote source. A key point is that these two transactions may possibly get different values.
The "warehousing" mode is invoked by requesting that a particular predicate (relation) in the ontology be "materialized" (cached). This stores the virtual table for that predicate in the HPKS, possibly extracting information from a number of remote data sources to determine the values that belong in the predicate's virtual table. Once the predicate is materialized, then the inferential definition of that predicate (the "virtual" definition) is disabled and only the extensional data (the materialization) is used to answer queries involving that predicate. (The materialization facility is not restricted to the RKS but is useful in any HPKS.
It is particularly useful for the RKS, however.)
There are two major parts of the RKS product. One part of the RKS is a collection of capabilities added to the HPKS to implement the extraction of data from a remote data source, transforming that remote data into the logical and semantic form appropriate to the HPKS, and making this transformed data available to the deductive engine of the HPKS. The other part of the RKS is the OntologyGenerator. This aids ontologists in creating the ontological description of the remote data sources.
The OntologyGenerator uses modeling information for a data source to create a logical description. This modeling information includes table and column names, column data types, primary keys of tables, and foreign key relationships among tables. This basic information is used to connect the remote tables and columns to the ontological concepts of a "reference" ontology. An ontologist enhances this automatically generated ontology with domain-specific knowledge to create an expressive and deep ontology that includes the remote data sources.
The remote data sources are of any type that can be accessed through JDBC (Java Database Connectivity) using a reasonably capable JDBC Driver. They may be managed by servers running on the same system as the HPKS server, or they may be on other hosts accessible to the host of the HPKS server.