Generating SADI semantic web services from declarative descriptions
University of New Brunswick
Accessing information stored in databases remains a challenge for many types of end users. In contrast, accessing information from knowledge bases allows for more intuitive query formulation techniques. Whereas knowledge bases can be directly instantiated by the materialization of data according to a reference semantic model, a more scalable approach is to rely on queries formulated using ontologies rewritten as database queries at query time. Both of these approaches allow semantic querying, which involves the application of domain knowledge written in the form of axioms and declarative semantic mapping rules. In neither case are users required to interact with the underlying database schemas. A further approach offering semantic querying relies on SADI Semantic Web services to access relational databases. In this approach, services brokering access to specific data sets can be automatically discovered, orchestrated into workflows, and invoked to execute queries performing data retrieval or data transformation. This can be achieved using specialized query clients built for interfacing with services. Although this approach provides a successful way of accessing data, creating services requires advanced skills in modeling RDF data and domain ontologies, writing of program code and SQL queries. In this thesis we propose the Valet SADI framework as a solution for automation of SADI Semantic Web service creation. Valet SADI represents a novel architecture comprising four modules which work together to generate and populate services into queryable registries. In the first module declarative semantic mappings are written between source databases and domain ontologies. In a second module, the inputs and outputs of a service are defined in a service ontology with reference to domain ontologies. The third module creates un-instantiated SQL queries automatically based on a semantic query, the target database, domain ontologies and mapping rules. The fourth module produces the source code for a complete and functional SADI service containing the SQL query. The inputs to the first two modules are verified manually while the other modules are fully automated. Valet SADI is demonstrated in two use cases, namely, the creation of a queryable registry of services for surveillance of hospital acquired infections, and the preservation of interoperability in a malaria surveillance infrastructure.