unbscholar.lib.unb.ca9798... · generating sadi semantic web services from declarative descriptions...

291
Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology, 2009 Master in Computer Science, Free University of Bozen-Bolzano, 2009 THIS DISSERTATION SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF Doctor Of Philosophy In the Graduate Academic Unit of Computer Science Supervisor(s): Christopher J.O. Baker, PhD, Dept. of Computer Science Harold Boley, PhD, Faculty of Computer Science Examining Board: Jos´ ee Tass´ e, PhD, Dept. of Computer Science Owen Kaser, PhD, Dept. of Computer Science Dongmin Kim, PhD, Faculty of Business External Examiner: Anna-Lena Lamprecht, PhD, Dept. of Information and Computing Sciences, Utrecht University This dissertation is accepted by the Dean of Graduate Studies THE UNIVERSITY OF NEW BRUNSWICK April, 2019 ©Mohammad Sadnan Al Manir, 2019

Upload: others

Post on 17-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Generating SADI Semantic Web Servicesfrom Declarative Descriptions

by

Mohammad Sadnan Al Manir

Master of Science (MSc), Vienna University of Technology, 2009Master in Computer Science, Free University of Bozen-Bolzano,

2009

THIS DISSERTATION SUBMITTED IN PARTIALFULFILLMENT OF THE REQUIREMENTS FOR THE

DEGREE OF

Doctor Of Philosophy

In the Graduate Academic Unit of Computer Science

Supervisor(s): Christopher J.O. Baker, PhD, Dept. of Computer ScienceHarold Boley, PhD, Faculty of Computer Science

Examining Board: Josee Tasse, PhD, Dept. of Computer ScienceOwen Kaser, PhD, Dept. of Computer ScienceDongmin Kim, PhD, Faculty of Business

External Examiner: Anna-Lena Lamprecht, PhD, Dept. of Informationand Computing Sciences, Utrecht University

This dissertation is accepted by the

Dean of Graduate Studies

THE UNIVERSITY OF NEW BRUNSWICK

April, 2019

©Mohammad Sadnan Al Manir, 2019

Page 2: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Abstract

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 for-

mulated 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 seman-

tic 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

ii

Page 3: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

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 au-

tomation 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 declar-

ative semantic mappings are written between source databases and domain

ontologies. In a second module, the inputs and outputs of a service are de-

fined in a service ontology with reference to domain ontologies. The third

module creates un-instantiated SQL queries automatically based on a seman-

tic 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 infrastruc-

ture.

iii

Page 4: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Acknowledgements

I would like to express my sincere gratitude to my supervisors Dr. Christo-

pher J. O. Baker and Dr. Harold Boley for their continuous support, guidance

and supervision throughout the PhD program.

The research reported herein had not been possible without the ideas, foun-

dation work and technical support by Dr. Alexerdre Riazanov.

I am grateful to the members of the examining committee - Dr. Owen Kaser,

Dr. Josee Tasse, Dr. Prabhat Mahanti, and Dr. Dongmin Kim for their

thorough review of this work that included many insightful observations and

helpful hints to improve the thesis.

I am also thankful to the external examiner Dr. Anna-Lena Lamprecht for

taking the time of her busy schedule to provide insightful reviews and inspi-

rational comments about the work.

Another source of inspiration for the thesis was from the RuleML community.

My gratitude goes to Dr. Tara Athan who was very helpful with her expertise

for one of my awards.

The financial support provided by IPSNP Computing Inc., Innovatia Inc.,

iv

Page 5: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

RuleML Inc., and Canadian Rivers Institute at UNB, to name a few, has

played an important role in funding my work.

Finally, I would like to thank my family and friends for enriching my life

beyond my academic endeavors and believing in me.

v

Page 6: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Table of Contents

Abstract ii

Acknowledgments iv

Table of Contents xiii

List of Tables xiv

List of Figures xvii

Abbreviations xviii

1 Introduction 1

1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Problem Statement . . . . . . . . . . . . . . . . . . . . 4

1.1.1.1 Protracted Modeling . . . . . . . . . . . . . . 4

1.1.1.2 Fallibility . . . . . . . . . . . . . . . . . . . . 5

1.1.1.3 Adoption Challenges . . . . . . . . . . . . . . 5

1.2 Thesis Contribution . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

vi

Page 7: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

2 Preliminaries 11

2.1 The Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 Standards . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.1.1 Simple Object Access Protocol (SOAP) . . . 14

2.2.1.2 Web Service Description Language (WSDL) . 14

2.2.1.3 Universal Description, Discovery, and Inte-

gration (UDDI) . . . . . . . . . . . . . . . . . 14

2.2.2 Representational State Transfer (REST) . . . . . . . . 15

2.3 Semantic Web . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3.1 Resource Description Framework . . . . . . . . . . . . 17

2.3.2 Propositional Logic . . . . . . . . . . . . . . . . . . . . 19

2.3.3 Horn Logic . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.4 First-Order Logic . . . . . . . . . . . . . . . . . . . . . 20

2.3.5 TPTP First-Order Formula . . . . . . . . . . . . . . . 21

2.3.6 VampirePrime Reasoner . . . . . . . . . . . . . . . . . 22

2.3.7 Description Logic . . . . . . . . . . . . . . . . . . . . . 22

2.3.8 Web Ontology Language . . . . . . . . . . . . . . . . . 24

2.3.8.1 OWL Development Environment . . . . . . . 26

2.3.9 PSOA RuleML . . . . . . . . . . . . . . . . . . . . . . 27

2.3.10 Linked Data . . . . . . . . . . . . . . . . . . . . . . . . 29

2.3.11 FAIR Data . . . . . . . . . . . . . . . . . . . . . . . . 30

2.3.12 SPARQL Protocol and Query Language . . . . . . . . 31

vii

Page 8: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

2.4 Semantic Web Services . . . . . . . . . . . . . . . . . . . . . . 31

2.4.1 SADI Semantic Web Services . . . . . . . . . . . . . . 34

2.4.1.1 Motivation . . . . . . . . . . . . . . . . . . . 34

2.4.1.2 Operation . . . . . . . . . . . . . . . . . . . . 35

2.4.1.3 Limitation . . . . . . . . . . . . . . . . . . . . 39

2.4.1.4 Querying SADI Services . . . . . . . . . . . . 40

2.4.1.5 Tools used for Adopting SADI Services . . . . 41

2.4.1.6 Manual and Automated Deployments . . . . . 43

2.4.1.7 Required Resources and Competencies . . . . 44

2.4.2 WSDL-based and REST-based Services . . . . . . . . . 47

2.4.2.1 WSDL-based Approach . . . . . . . . . . . . 47

2.4.2.2 REST-based Approach . . . . . . . . . . . . . 52

2.5 Databases and Ontologies . . . . . . . . . . . . . . . . . . . . 53

3 Valet SADI 58

3.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.1.1 Module-1: Semantic Mapping . . . . . . . . . . . . . . 59

3.1.1.1 Relational Database . . . . . . . . . . . . . . 61

3.1.1.2 Domain Ontology . . . . . . . . . . . . . . . . 61

3.1.1.3 Mapping Rules . . . . . . . . . . . . . . . . . 61

3.1.2 Module-2: Service Description . . . . . . . . . . . . . . 62

3.1.2.1 Service Ontology . . . . . . . . . . . . . . . . 62

3.1.3 Module-3: SQL-template Query Generator . . . . . . . 62

viii

Page 9: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

3.1.3.1 Service I/O to Semantic Query Converter . . 64

3.1.3.2 Ontology to TPTP Formula Translator . . . . 64

3.1.3.3 PSOA Rules to TPTP Formula Translator . . 64

3.1.3.4 VampirePrime Reasoner + Query Rewriter . . 64

3.1.4 Module-4: Service Generator . . . . . . . . . . . . . . . 64

3.2 Descriptions of the Modules . . . . . . . . . . . . . . . . . . . 65

3.2.1 Writing Mapping Rules . . . . . . . . . . . . . . . . . . 66

3.2.2 Writing Service Descriptions . . . . . . . . . . . . . . . 66

3.2.3 Automatic Generation of SQL-template Query . . . . . 68

3.2.4 Automatic Generation of Web Service Code . . . . . . 69

3.2.5 Querying SADI Services . . . . . . . . . . . . . . . . . 71

3.2.6 Target End Users . . . . . . . . . . . . . . . . . . . . . 73

4 Implementation of Valet SADI 76

4.1 Module-1: Semantic Mapping . . . . . . . . . . . . . . . . . . 77

4.1.1 Rules for Mapping Database to Ontology . . . . . . . . 79

4.2 Module-2: Service Description . . . . . . . . . . . . . . . . . . 82

4.3 Module-3: SQL-template Query Generator . . . . . . . . . . . 84

4.3.1 Service I/O to Semantic Query Converter . . . . . . . 90

4.3.2 Ontology to TPTP Formula Translator . . . . . . . . . 91

4.3.3 PSOA Rules to TPTP Formula Translator . . . . . . . 93

4.4 Module-4: Service Generator . . . . . . . . . . . . . . . . . . . 95

4.5 Structure of Valet SADI Codebase . . . . . . . . . . . . . . . . 98

ix

Page 10: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

5 Service Generation and Target Application Domain 100

5.1 Hospital-Acquired Infection (HAI) . . . . . . . . . . . . . . . . 101

5.2 Steps for Generating a SADI Service . . . . . . . . . . . . . . 101

5.2.1 Documenting Semantic Mapping Rules . . . . . . . . . 102

5.2.1.1 Relational Database . . . . . . . . . . . . . . 102

5.2.1.2 Domain Ontology . . . . . . . . . . . . . . . . 106

5.2.1.3 Mapping Rules in PSOA RuleML . . . . . . . 107

5.2.2 Declarative Description of Services . . . . . . . . . . . 110

5.2.2.1 Defining I/O of allY Services . . . . . . . . . 110

5.2.2.2 Defining I/O of getY ByX Services . . . . . . 111

5.2.3 Generating SQL-template Queries . . . . . . . . . . . . 113

5.2.3.1 Converting I/O into Semantic Query . . . . . 114

5.2.3.2 Translating Domain Ontology to TPTP-FOF 116

5.2.3.3 Translating PSOA Rules to TPTP-FOF . . . 116

5.2.3.4 Rewriting Schematic Answers to SQL . . . . 119

5.2.4 Generation of SADI Service Code . . . . . . . . . . . . 119

5.2.5 Additional SADI Services for HAI Surveillance . . . . . 121

5.2.5.1 Service Generation Time for Valet SADI . . . 124

6 Querying HAI Data with SADI Services 128

6.1 Query on Hospital-Acquired Infections . . . . . . . . . . . . . 129

6.1.1 Query Composition and Execution . . . . . . . . . . . 130

6.1.2 Automatic Composition of SPARQL Queries . . . . . . 133

x

Page 11: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

7 Preservation of Interoperability in Malaria Surveillance 136

7.1 Malaria Surveillance Today . . . . . . . . . . . . . . . . . . . 137

7.2 SIEMA Surveillance Platform . . . . . . . . . . . . . . . . . . 139

7.2.1 Resources . . . . . . . . . . . . . . . . . . . . . . . . . 139

7.2.1.1 Source Data and Standard Terminologies . . . 140

7.2.1.2 Agent-based Analytics Dashboard . . . . . . . 141

7.3 Service-based Querying of Malaria Data . . . . . . . . . . . . 142

7.3.1 Questions for Malaria Surveillance . . . . . . . . . . . . 144

7.3.2 Building SADI Services . . . . . . . . . . . . . . . . . . 145

7.3.2.1 Source Data and Vocabulary . . . . . . . . . 145

7.3.2.2 Description of SADI Services . . . . . . . . . 147

7.3.2.3 Service Registry . . . . . . . . . . . . . . . . 148

7.3.2.4 Provisioning of SADI Services . . . . . . . . . 149

7.3.2.5 Building Queries . . . . . . . . . . . . . . . . 150

7.4 Preservation of Interoperability . . . . . . . . . . . . . . . . . 152

7.4.1 Changes in the Service Ontologies . . . . . . . . . . . . 154

7.4.1.1 Example of Addition . . . . . . . . . . . . . . 155

7.4.2 Status of Services . . . . . . . . . . . . . . . . . . . . . 156

7.4.3 Reacting to Changes . . . . . . . . . . . . . . . . . . . 158

7.4.4 Rebuilding the Services using Valet SADI . . . . . . . 160

7.4.4.1 Modified Domain Ontology . . . . . . . . . . 161

7.4.4.2 Modified Malaria-specific Mapping Rules . . . 161

7.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

xi

Page 12: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

7.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

8 Conclusion and Future Work 168

8.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

8.2 Benefits of Valet SADI . . . . . . . . . . . . . . . . . . . . . . 175

8.3 SADI Service-based System Deployment . . . . . . . . . . . . 178

8.3.1 Surveillance for Hospital-Acquired Infections . . . . . . 179

8.3.2 Surveillance of Malaria Control and Intervention . . . . 180

8.3.3 Decision Support System in Agriculture . . . . . . . . 181

8.4 Open Problems of Valet SADI . . . . . . . . . . . . . . . . . . 182

8.5 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

Bibliography 222

A Sources for HAI SADI Services 223

A.1 Translated Domain Ontology . . . . . . . . . . . . . . . . . . . 223

A.2 Mapping Rules for Nallergy Table . . . . . . . . . . . . . . . . 237

A.3 Translated Mapping Rules . . . . . . . . . . . . . . . . . . . . 238

A.4 Generating SQL-template Query . . . . . . . . . . . . . . . . . 251

A.4.1 S1: allPatientId Service . . . . . . . . . . . . . . . . . 251

A.4.1.1 Resolution Proof Tree . . . . . . . . . . . . . 252

A.4.1.2 Generated Schematic Answers . . . . . . . . . 252

A.4.1.3 SQL-template Query . . . . . . . . . . . . . . 253

A.4.2 S2: getLastnameFirstnameByPatientId Service . . . . 254

xii

Page 13: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

A.4.2.1 Resolution Proof Tree . . . . . . . . . . . . . 254

A.4.2.2 Generated Schematic Answers . . . . . . . . . 254

A.4.2.3 SQL-template Query . . . . . . . . . . . . . . 256

A.4.3 S3: getAllergyByPatientId Service . . . . . . . . . . . . 257

A.4.3.1 Resolution Proof Tree . . . . . . . . . . . . . 257

A.4.3.2 Generated Schematic Answers . . . . . . . . . 257

A.4.3.3 SQL-template Query . . . . . . . . . . . . . . 258

A.5 Source Code of SADI Services . . . . . . . . . . . . . . . . . . 260

A.5.1 S1: allPatientId Service . . . . . . . . . . . . . . . . . 260

A.5.2 S2: getLastnameFirstnameByPatientId Service . . . . 261

A.5.3 S3: getAllergyByPatientId Service . . . . . . . . . . . . 263

A.6 Composing SPARQL Queries Incrementally on HYDRA . . . 265

Vita

xiii

Page 14: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

List of Tables

2.1 Symbols and logical meanings of TPTP constructors . . . . . 22

2.2 Syntax and semantics of SHOIN . . . . . . . . . . . . . . . . 24

2.3 SADI Service-based system deployments . . . . . . . . . . . . 45

4.1 Existing approaches for mapping RDBs to ontologies . . . . . 79

4.2 Reduction of SHOIN DL to FOL . . . . . . . . . . . . . . . 93

4.3 Mapping from PSOA constructs to TPTP-FOF constructs . . 94

5.1 Auto-generated SQL-template queries for S1, S2 and S3 . . . . 120

5.2 Auto-generated SQL-template queries for S4 to S11 . . . . . . 125

5.3 Time for generating S1 through S11 by Valet SADI . . . . . . 126

xiv

Page 15: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

List of Figures

2.1 Roles and operations of objects in a Web service architecture . 13

2.2 Semantic Web layer cake diagram . . . . . . . . . . . . . . . . 17

2.3 The four major stages in the development of the Web . . . . . 32

2.4 Interaction of client and service endpoint in SADI service . . . 39

2.5 Mapping approaches from RDB to ontology . . . . . . . . . . 56

3.1 Valet SADI architecture . . . . . . . . . . . . . . . . . . . . . 60

3.2 Authoring semantic mapping rules . . . . . . . . . . . . . . . . 67

3.3 Defining I/O of SADI services in ontologies . . . . . . . . . . . 68

3.4 Steps for generating SQL-template query automatically . . . . 70

3.5 Steps for automatic generation of SADI Web service code . . . 72

3.6 Querying source data using SADI services . . . . . . . . . . . 73

4.1 Implementing service generation at a glance . . . . . . . . . . 77

5.1 The Ottawa Hospital Data Warehouse . . . . . . . . . . . . . 103

5.2 Schema extract from The Ottawa Hospital Data Warehouse . 104

5.3 Hospital-Acquired Infections ontology . . . . . . . . . . . . . . 107

5.4 Mapping rules in PSOA RuleML for HAI ontology . . . . . . . 109

xv

Page 16: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

5.5 Output graph of allPatientIds . . . . . . . . . . . . . . . . . . 111

5.6 Input graph of getLastnameFirstnameByPatientId . . . . . . . 112

5.7 Output graph of getLastnameFirstnameByPatientId . . . . . . 112

5.8 Input graph of getAllergyByPatientId . . . . . . . . . . . . . . 113

5.9 Output graph of getAllergyByPatientId . . . . . . . . . . . . . 113

6.1 SQL query for HAI surveillance . . . . . . . . . . . . . . . . . 130

6.2 SPARQL query for HAI survevillance . . . . . . . . . . . . . . 132

6.3 Screenshot of the HAI surveillance query on HYDRA . . . . . 135

7.1 Architecture diagram of SIEMA surveillance framework . . . . 140

7.2 Screenshot of the analytics dashboard . . . . . . . . . . . . . . 143

7.3 Screenshots of malaria-specific ontology and RDB schema . . . 147

7.4 I/O of getInsecticideIdByIndoorResidualSprayingId . . . . . . 148

7.5 Input and output of getNameByInsecticideId . . . . . . . . . . 148

7.6 A fragment of the registry of SADI services . . . . . . . . . . . 149

7.7 Malaria-specific mapping rules in PSOA RuleML . . . . . . . 150

7.8 Original query about indoor residual spayring . . . . . . . . . 151

7.9 A complex query composed of SADI services on malaria . . . 153

7.10 Modified query about indoor residual spayring . . . . . . . . . 155

7.11 Difference in output of getNameByInsecticideId . . . . . . . . 156

7.12 Detection and identification of changes . . . . . . . . . . . . . 157

7.13 Status of the affected SADI services . . . . . . . . . . . . . . . 159

7.14 Fragment of the updated malaria-specific PSOA rules . . . . . 160

xvi

Page 17: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

7.15 Status of the rebuilt SADI service . . . . . . . . . . . . . . . . 162

A.1 q1: Query to find all patients . . . . . . . . . . . . . . . . . . . 265

A.2 q2: Extention of q1 to list first and last names . . . . . . . . . 265

A.3 q3: Extention of q2 with admitting facility . . . . . . . . . . . 266

A.4 q4: Extention of q3 with diagnosis information . . . . . . . . . 267

A.5 q5: Extention of q4 with start time of the procedure . . . . . . 268

A.6 q6: Extention of q5 with the antibiotic intake . . . . . . . . . . 269

A.7 q7: Extention of q6 with allergic reaction to penicillin . . . . . 270

xvii

Page 18: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

List of Symbols, Nomenclature

or Abbreviations

Symbols:

DB Relational databaseDB′ Database absractionQ Semantic queryKB Knowledge base consisting of mapping rules and domain ontologygetY ByX Output Y, Input XallY Output Ycex OWL Class ExpressionV VerticesE EdgesG GraphVcex OWL Class Expression as a VertexGI Input graph created from an OWL Class ExpressionGO Output graph created from an OWL Class ExpressionSi Java statement for reading data valueSo Java statement for writing data valueSSQL−template SQL statement for a template querySJava Ordered list of statements in Javaτpsoa(.) Translation function for mappingϕ Antecedent in a mapping ruleψ Consequent in a mapping rule

xviii

Page 19: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Acronyms:

OWL Web Ontology LanguageRDF Resource Description FrameworkRPC Remote Procedure CallsPSOA Positional-Slotted Object-ApplicativeOID Object IDentifierRIF Rule Interchange FormatTPTP Thousands of Problems for Theorem ProversFOL First-Order LogicDL Description LogicSADI Semantic Automatic Discovery & IntegrationHAI Hospital-Acquired InfectionTOHDW The Ottawa Hospital Data WarehoseSSI Surgical Site InfectionICD International Classification of DiseasesSIEMA Semantics, Interoperability, and Evolution for Malaria AnalyticsMIS Malaria Information SystemGTS Global Technical StrategyVSMOM Vector Surveillance and ManagementMIRO Mosquito Insecticide Resistance OntologyPHont Public Health OntologyCDC Center for Disease Control and PreventionAPI Application Programming InterfaceOBDA Ontology-based Data Access

xix

Page 20: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 1

Introduction

In this chapter, we provide a motivation behind proposing a framework for

generating SADI Semantic Web services automatically from their declara-

tive input and output descriptions. We explain why existing approaches are

time-consuming, error-prone and they remain unattractive to data providers

and end users alike. We list our contributions in order to address these

shortcomings and elaborate how this thesis is organized.

1.1 Overview

Data today is primarily stored in relational databases (RDBs) as RDB en-

gines offer scalability, efficiency, reliability, and optimized performance in

query execution. Data in RDBs are described by bespoke schemas which es-

sentially represent concepts of a particular domain and relations among them

1

Page 21: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

using constraints, indices etc. In order to retrieve information from databases

users need to have knowledge of Structured Query Language (SQL). Knowl-

edge, on the other hand, is stored and represented in ontologies, designed

to unambiguously capture the precise meaning of a domain. Ontologies use

standardized terms shared by a community of practice. While users of ontolo-

gies in a domain can express and formalize queries using these terminologies,

querying actual data from a database may remain problematic without good

understanding of the data schemas or knowledge of SQL. Semantic query-

ing [1] of relational databases has been used as a solution to address this

problem. Semantic querying is based on the automatic application of domain

knowledge written in the form of axioms or rules such that users familiar with

the domain ontologies can formulate queries using the terminologies of their

domain without having any knowledge of the underlying database schema.

A number of existing approaches [1–3] to semantic querying of RDBs use

some kind of semantic mappings to map RDBs to Web Ontology Language

(OWL) ontologies or Resource Description Framework (RDF) vocabularies

as the target schemas which are aligned to our work in this thesis. These

mappings define an interpretation of data from a RDB in terms of the con-

cepts and relations defined in the target schema. The implementations then

use these mappings to either completely translate the relational data which

is known as the warehouse approach, or apply them in query time which is

known as the mediator approach.

In the warehouse approach, data in relational databases are materialized

2

Page 22: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

(i.e. RDFized) to create a RDF triplestore and made available for querying

or browsing. An advantage of this approach is that even large triplestores

can be processed very efficiently due to the availability of mature highly-

optimized query engines. The limitation is that every time new data are

added, they have to be RDFized before they can be queried. Triplify [4] and

Minerva [5] are examples of tools supporting the warehouse approach. The

mediator approach uses query rewriting where queries in terms of the target

semantic schema are converted to equivalent queries in terms of the source

relational schema. Live datasets can be queried using this approach, hence

it is very popular. Some of the systems that implement query rewriting are

reported here in [2, 6–10].

In contrast, certain tasks such as allowing temporal arithmetics or combining

relational data with non-relational data using specialized algorithms are diffi-

cult to express and implement with declarative semantic mappings. Riazanov

et al. addressed these challenges in a clinical intelligence settings [11, 12].

To address such challenges the (now decade old) SADI framework was in-

troduced. The SADI framework facilitates the federated querying of multi-

ple heterogeneous, distributed and autonomous data sources, such as online

databases and algorithmic resources [13–16]. Therefore, the SADI service-

based approach copes well with the challenge faced during data integration

and remains the main motivation behind the use of semantic querying based

on the SADI Semantic Web services. For use by a domain expert lacking suf-

ficient technical knowledge in RDBs, a set of SADI Semantic Web services

3

Page 23: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

can be deployed on top of RDBs in order to retrieve information.

1.1.1 Problem Statement

In this thesis, we investigate the challenges faced during the deployment of

semantic querying based on the SADI Semantic Web services. In previous

SADI service-based deployments [11–14,16,17] more than 700 SADI services

were created and deployed in various domains and these operations were

accomplished manually where the following challenges were identified:

1.1.1.1 Protracted Modeling

A SADI service that can be used to query a database must be able to read

input values from an RDF input, compose an SQL query to run on the RDB

engine, and return data as an RDF output. Therefore, creating a SADI

service requires knowledge of data modeling in RDF, ontology modeling in

OWL, the SQL query language, a programming language such as Java or

Perl, and potentially knowledge of the SPARQL query language to test the

services. All these competencies are typically acquired over a long period

of time by an expert such as a Semantic Web engineer. Once the modeling

of input and output is decided, an experienced engineer still needs a fair

amount of time to fully deploy the service depending on the complexity of

the modeling and the SQL query. As a result, creating a large number of

services is time-consuming when it is done manually even by an experienced

engineer. A goal of this thesis is to investigate how to speed up this process.

4

Page 24: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

1.1.1.2 Fallibility

When a SADI service is created manually, each of the steps from modeling

input and output to writing SPARQL queries mentioned above is prone to

human errors. We investigate how to automate the generation of error-free

source code that can read data values from input data and write data values

into output data in the uniform RDF format, and to automate the generation

of a correct SQL query from the declarative input and output descriptions.

However, when declarative semantic mappings are used explicitly, they are

also prone to errors because when either the database schema or the ontolo-

gies or both evolve, the mappings need to be modified as well. As automatic

mapping tools are yet to mature, a goal of this thesis is to investigate devising

rules so that mapping rules can be generated at least semi-automatically.

1.1.1.3 Adoption Challenges

Data providers typically expose their data for public use through Application

Programming Interfaces (APIs) securely, limiting access to only specific fields

of a complete data warehouse. To reach a wider user base APIs are published

in many popular languages albeit this is difficult to maintain. The expertise

required to access data using the APIs is typical of Software Engineers but

remains a challenge to non-technical users. Further to this, due to a lack of

semantics in the APIs, software agents cannot discover the data automati-

cally. A goal of this thesis is to investigate if a data provider could benefit

from exposing their data using Semantic Web services beside the current

5

Page 25: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

API-based approach.

1.2 Thesis Contribution

The contributions of this thesis are listed below:

1. We propose a novel architecture to automate the generation of SADI

Semantic Web services. The architecture is called Valet SADI and com-

prises four modules (numbered as Module-1 to Module-4) which work

together as a pipeline. In Module-1, declarative semantic mappings

are produced from the source database and the domain ontologies. In

Module-2, the input and output of a service are defined in a separate

service ontology with reference to the domain ontologies and a seman-

tic query is produced from them. In Module-3, uninstantiated SQL

queries are produced automatically with respect to the semantic query,

the database, and the domain ontologies. Finally in Module-4, source

code for a complete and functional SADI service containing the SQL

query is produced and the service is deployed in a registry after compi-

lation and packaging. While the inputs in Module-1 and Module-2 are

verified and made available manually, the tasks assigned for Module-

3 and Module-4 run without any human intervention. The modular

design keeps the door open for further improvements and reuse.

2. We have customized existing resources and developed algorithms in

order to execute the tasks assigned for each module. For declarative

6

Page 26: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

semantic mappings we propose rules written in the PSOA RuleML

language.

3. In Module-3 we have developed a converter, a translator and extended

an existing translator, all of which produce their outputs in TPTP

format [18] which are necessary for generating the SQL query auto-

matically.

4. Our algorithm in the converter processes the input and output as

graphs and creates a semantic query. One of the translators uses the

declarative semantic mapping rules as input and translates them into

First-Order axioms in TPTP format. The other translator which trans-

lates domain ontologies in OWL into First-Order axioms in TPTP for-

mat has been extended from its current form in order to cope with the

latest features of ontologies expressed in OWL. We use the incremen-

tal query rewriting technique [6] in association with a full First-Order

reasoner VampirePrime [19] in order to generate the SQL queries.

5. To show the effective use of Valet SADI framework we have illustrated

two deployments for (i) surveillance of Hospital-Acquired Infections and

(ii) preservation of interoperability in malaria surveillance infrastruc-

ture.

6. We have created 11 SADI services using Valet SADI on top of an ex-

tract of The Ottawa Hospital data warehouse. We have demonstrated

7

Page 27: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

how complex queries can be formulated using these services. The tar-

get queries illustrated here are similar to the queries used in a previous

work [12] where services were created manually. We document the

required efforts and time spent for generating these services automat-

ically using the Valet SADI framework, once the semantic mapping

rules were specified.

7. In the second deployment we supported yet another surveillance infras-

tructure called SIEMA [20]. SIEMA is different from the other deploy-

ment based on The Ottawa Hospital the way it uses Valet SADI. In this

surveillance framework, for malaria intervention, access to distributed

data resources in relational databases across various regions are made

possible by deploying SADI services. The rapid deployment of SADI

services on top of these databases is possible due to Valet SADI’s ability

to create services quickly. A feature of this type of deployment is that

resources tend to evolve over time and services may fail to return data

if they are not updated to cope with the changes. This results in a loss

of semantic interoperability among the resources in SIEMA. In order to

preserve interoperability, Valet SADI is used a second time to regener-

ate and re-deploy the corrupted services such that the service-downtime

is minimized and the surveillance system remains operational.

8

Page 28: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

1.3 Thesis Outline

The rest of the thesis is organized as follows:

In Chapter 2, we provide the background and resources required for the rest of

the thesis. We review the existing Semantic Web services from the viewpoint

of SADI Semantic Web services. We briefly describe PSOA RuleML as the

choice for semantic mapping rules. Moreover, we describe the relationship

between relational databases and ontologies in Semantic Web.

In Chapter 3, we introduce the Valet SADI architecture with a compact

diagram. We then expand the diagram and describe in modules in detail,

each with their assigned tasks.

In Chapter 4, we document a number of algorithms developed and how ex-

isting resources were used to implement the operations of each module.

In Chapter 5, we build 11 SADI services using Valet SADI to demonstrate the

effectiveness of the framework. We deployed the services in a registry on top

of an extract of The Ottawa Hospital data warehouse. We show that Valet

SADI took merely a few seconds on an average to build each of these services

once semantic mapping rules were available and the inputs and outputs of

the services were defined.

In Chapter 6, we illustrate how services can be used and invoked from a

SPARQL query to return answers about infections from the database to the

end users. We present the query in raw SPARQL syntax to run on the

SHARE query client. We present the same query in graphical form available

9

Page 29: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

on the HYDRA query client, which is translated to a raw SPARQL form

automatically, and run the query on the client.

In Chapter 7, we present the SIEMA platform for malaria surveillance and

intervention which was built with Valet SADI, a reporting tool presented as a

dashboard, and software agents. We demonstrate how SADI services built by

Valet SADI are used to access distributed malaria data across various regions.

We then demonstrate what happens to SIEMA if any of the resources evolve,

effectively rendering the services unable to return data. We show how the

dashboard reports loss of interoperability of the surveillance system due to

evolving changes in the system. Finally, we show how Valet SADI can be used

in order to restore the surveillance operations by regenerating the services

and, as a result, preserves the interoperability of SIEMA.

In Chapter 8, we summarize the contributions, defend our claims regard-

ing the advantages Valet SADI provides, look at the open problems of the

architecture, and list future work.

10

Page 30: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 2

Preliminaries

In this chapter, the resources and technologies underlying the work in this

thesis are introduced. Apart from the core concepts, the chapter also ad-

dresses some related works and makes comparisons with some of the notions

mentioned in this work.

2.1 The Web

The Web was created as a distributed hypertext system. The distributed

nature of the Web is the reason for the success that we see today. The Web

is based on three main standards: URI, HTML and HTTP. URIs identify re-

sources on the Web, HTML [21] is the cornerstone language used for creating

contents on the Web and display on the browser, and HTTP is the protocol

which provides methods such as GET, POST, HEAD, PUT, DELETE, for

11

Page 31: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

transmitting the HTML documents to the Web browsers [22].

2.2 Web Service

Web services are programmable application logic which can be invoked and

executed using standard Web protocols such as HTTP. Extensible Markup

Language (XML) [23] is considered as the standard format for exchanging

messages by the Web services. The Web service architecture is described in

Figure 2.1 in terms of a service-oriented architecture [24]. The figure shows

the essential roles of a Service Requester and a Service Provider, and an

optional role of a Service Registry of a Web service for the operations they

perform.

The service provider creates Web services and their definitions which can

be published into a service registry. The service requester uses the service

definitions to find the binding information of the necessary services from the

registry. This information allows the requester to to bind and invoke the ser-

vices directly through the service provider dynamically. The service registry

provides a searchable index of service descriptions which are published by

the provider. The registry is optional because the requester can obtain the

descriptions from other sources such as local files or even FTP sites.

12

Page 32: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 2.1: Roles and operations of objects in a Web service architecture

2.2.1 Standards

There are three main Web service standards introduced during the early

2000s. In 1999, W3C working group started the discussion of using XML for

distributed applications which resulted in the introduction of Web service

standard SOAP in 2000. Another Web service standard WSDL was intro-

duced in the following year in 2001. Almost around the same time, UDDI

was proposed as a Web service standard destined to be interrogated by the

SOAP messages and to provide access to WSDL document via its registry.

These standards are briefly described below:

13

Page 33: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

2.2.1.1 Simple Object Access Protocol (SOAP)

SOAP provides a lightweight protocol which uses XML technologies to ex-

change messages over a variety of protocols. SOAP offers syntactic service

interoperability and the messages are sent to network end points which can

be implemented in any platform using Remote Procedure Calls (RPC), Com-

ponent Object Model (COM) objects, or Perl scripts. The features of SOAP

standards were further explained in detail in [25].

2.2.1.2 Web Service Description Language (WSDL)

WSDL [26] provides a grammar in XML to describe the communication and

message formats in a structured way. A service is defined as a collection

of network endpoints or ports in a WSDL document. The endpoints and

messages are defined in an abstract manner which allow them to be reused.

A WSDL document comprises data type definitions, message, the action

supported by the service, operations supported by one or more network end-

points, binding of data, combination of a binding and a network address, and

a collection of endpoints. WSDL 2.0 [27] was introduced later to address the

need for RESTful Web services.

2.2.1.3 Universal Description, Discovery, and Integration (UDDI)

UDDI [28] provides a platform-independent XML-based registry where i)

Web service providers publish the WSDL document, ii) consumers can search

for services and retrieve the WSDL document when the service is found, and

14

Page 34: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

iii) consumers, after finding the document, can invoke the service using a

SOAP message and receive output as a SOAP message after the service

is executed. Although UDDI was proposed as means of universal service

discovery, it did not take off as expected due to lack of public interest. Among

the reasons are low degree of voluntary registration of services due to the fact

that they lacked quality-control of the registered services and no support for

active crawling.

2.2.2 Representational State Transfer (REST)

Representational State Transfer (REST) was proposed by Roy Fielding in

[29]. Whereas the Web service standards mentioned above may carry out

an arbitrary set of operations, Web services which are REST compliant ac-

complish tasks using a uniform set of stateless operations. Fielding listed a

number of constraints for designing a REST architecture. Some of these are:

i) the client-server architectural style which separates concerns of the partic-

ipants such that user interface concerns are separate from the data storage

concerns, ii) the nature of communication must be stateless to ensure that a

request of a client must be self-reliant and contains all necessary information

to be understood by the server, iii) the data within a response to the request

must be declared explicitly or implicitly cacheable so that they can be reused

later for similar requests, iv) the components should have uniform interface

in order to simplify the overall architecture and improve the visibility of the

interactions between these components, v) the components are allowed to be

15

Page 35: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

layered hierarchically in order to restrict each component to its immediate

layer during their interactions, and vi) an optional feature of the client’s abil-

ity to download and execute code in the form of applets or scripts in order

to reduce the number of features to be pre-implemented.

RESTful Web services are easier to create and invoke than SOAP service

because they do not have the description layers and interacting is simple due

to the existing methods such as GET and POST. Although there are certain

criticisms of RESTful Web service due to their lack of Quality-of-Service,

security, and reliability, there are ongoing efforts to address them [30].

2.3 Semantic Web

Semantic Web offers a way of incorporating knowledge modeling and auto-

matic deduction on the Web using standardized languages. The innovations

of technology standards have been led by the World Wide Web Consortium

(W3C) body and facilitated information exchange and interoperability across

the boundaries of the Web.

Since early 1990s, Tim Berners-Lee has pushed for the Semantic Web with a

goal of Web of data instead of the Web of documents. The roadmap for the

Semantic Web was coined in an article in [31] and was later widely accepted

when Scientific American published “The Semantic Web” in 2001 [32]. Since

the, different bodies in W3C have recommended a number of standards which

laid the foundation [33] of Semantic (Web) technologies. These standards

16

Page 36: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

include Resource Description Framework (RDF) and its schema RDFS in

2004, Web Ontology Language (OWL), SPARQL Protocol and RDF Query

Language in 2008, and rule-based language Rule Interchange Format (RIF) in

2013. Figure 2.2 illustrates how the existing standards XML, URI, Unicode

fit in the Semantic Web layer cake diagram [34].

Figure 2.2: Revised Semantic Web layer cake

2.3.1 Resource Description Framework

Resource Description Framework (RDF) [35] is a formal language for de-

scribing data and allows applications to exchange them without losing their

original meaning. An RDF document represents a directed graph consisting

of a set of nodes having directed links among them. RDF uses Uniform Re-

17

Page 37: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

source Identifiers (URI) as names of resources which is a generalization of the

Uniform Resource Locators (URL). However, data values are encoded not by

URIs but as literals of a certain datatype. RDF also features so-called blank

nodes which do not carry any name. Data in RDF is represented by asser-

tions in the form of a subject-predicate-object called a triple. Collectively,

the triples form graphs where the subjects and the objects are the nodes and

the predicates link them.

Notation 3 (N3) [36], N-Triples, and Turtle are among the widely used syn-

taxes to represent a RDF document. The N3 syntax, proposed by Tim

Berners-Lee in 1998, is considerably more complex with features like path

and rules, while the latter two are simpler and essentially part of N3. Al-

though these syntaxes are easy to comprehend, not all programming lan-

guages provide support for them while there is abundant support for XML

such as the XML-based serialization RDF/XML.

RDF Schema language (RDFS) [37] complements RDF by adding schema

knowledge to the data. The vocabularies used by RDFS are merely generic

language constructs to semantically enrich the RDF data but are not topic-

specific. The vocabularies have semantics containing hierarchical information

of classes and properties as well as property restrictions on domain and range,

which allow RDFS documents to be machine-processable.

Ontologies are another Semantic Web mechanism for describing vocabularies

using one of the Web Ontology Languages (OWLs) which allow more expres-

sive ways to define a domain of interest than that of RDFS. The foundation

18

Page 38: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

of ontologies are based on Description Logics, most of which are decidable

subsets of First-Order Logic built on top of Propositional Logic. Some of

these logics and the associated tools relevant to this thesis based on these

logics are briefly described below.

2.3.2 Propositional Logic

Propositional Logic [38] is a subset of Formal Logic that deals with atomic

propositions which cannot be decomposed further. Each proposition has a

truth value, either true or false, and depends on the truth values of the propo-

sition symbols in combination with the logical operators of the proposition.

The language of propositional logic has the alphabet consisting of

• proposition symbols p, q etc

• logical connectives ∧ (conjunction), ∨ (disjunction), → (implication),

↔ (equivalent or bi-implication), ¬ (negation), ⊥ (falsity)

• auxiliary symbols (, )

2.3.3 Horn Logic

A horn clause [38] is a clause which contains at most one positive literal. The

general formula of such a clause can be represented as follows:

¬p1 ∨ ¬p2 ∨ . . . ∨ ¬pn ∨ q

19

Page 39: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

which can be rewritten as a horn logic implication as follows:

(p1 ∧ p2 ∧ . . . ∧ pn) =⇒ q

Thus a horn clause can be expressed i) as a rule with one positive literal

and at least one negative literal, ii) a fact with one positive literal and zero

negative literal, and iii) a negated goal with zero positive literal and at least

one negative literal.

Horn rules are a tractable subset of FOL and efficient procedures have been

developed for reasoning over a knowledge base built from them. The se-

mantics of Horn logic is based on the minimal Herbrand model as well as

procedural semantics based on the SLD-resolution [39].

2.3.4 First-Order Logic

First-Order Logic (FOL) [38] which is also called Predicate Logic, is built

on top of Propositional Logic. Atomic propositions in propositional logic are

interpreted as predicates in FOL. FOL consists of terms, predicates, logical

quantifiers ∃ and universal quantifiers ∀, where a term can be a variable,

a constant or a function. These are the building blocks of a FOL formula

and from where the truth value of a FOL formula is deduced. FOL is more

expressive than propositional logic and it allows us to describe properties of

objects and relations between objects in interpreting constants as objects,

predicates as relations and functions as functional relations.

20

Page 40: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

A FOL Horn clause is a disjunction of literals with one positive literal, with

all variables universally quantified, which can be rewritten into a rule-like

form as shown above. The function-free First-Order Horn logic is known as

(monotonic) Datalog [40].

2.3.5 TPTP First-Order Formula

Thousands of Problems for Theorem Provers (TPTP) [18] is a collection

of test problems for automated theorem provers which has a syntax for its

intuitive readability and strength to encode all kinds of problems. The TPTP

language is based on a core language which is built upon Church’s simple

theory of types called THFO [41] and it supports four different languages:

First-Order Form (FOF) and Clause Normal Form (CNF) for untyped First-

Order Logic, typed First-Order Form (TFF) and Typed Higher-Order (THF).

A TPTP-FOF problem is a list of annotated formulas of the form:

fof (name, role, formula, source, useful info)

where name is a given name to the formula, role describes the role of the

formula such as ‘axiom’ or ‘theorem’ or ‘conjecture’, formula is the encoding

of the formula in the FOL language, and the rest are optional. Table 2.1 lists

typical symbols and logical meanings of the constructors of TPTP-FOF.

21

Page 41: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Symbol Logical Meaning∼ not& and| or= equal! = unequal=> implication?[v1, v2, . . .] existential quantifier![v1, v2, . . .] universal quantifier

Table 2.1: Symbols and logical meanings of TPTP constructors

2.3.6 VampirePrime Reasoner

VampirePrime is an open source reasoner originating from Vampire [42], a

mature high-performance reasoner for full FOL. It supports standard tasks

such as checking consistency and entailment.

2.3.7 Description Logic

Description Logics (DLs) were originally designed to provide a precise se-

mantic characterization in a formal and structured way for network-based

systems [43]. DLs are expressed in predicate level with no variables present

in the formalism which is more understandable to human users than FOL.

Most of the DLs are decidable subsets of FOL.

The SHOIN language is an expressive DL which with inverse roles I and

is restricted to unqualified number restriction N [44].

Let A, RA and I be pairwise disjoint sets of concept names, abstract role

names, and individual names. The set of roles are defined by RA ∪ {R− | R

22

Page 42: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

∈ RA} and Inv(R) is defined such that Inv(R) = R− and Inv(R−) = R.

A knowledge base K is a finite set of axioms in SHOIN . For two roles S,

R in K, the transitive reflexive closure of v on roles is defined as S @∗ R in

K if S = R, S v R ∈ K, Inv(S) v Inv(R) ∈ K, or there exists some role Q

such that S @∗ Q in K and Q @∗ R in K. A role R is called simple in K if

for each role S such that S @∗ R in K, Trans(S) /∈ K and Trans(Inv(S)) /∈

K, where Trans(S) refers to object role transitivity for S (see Table 2.2).

The semantics of SHOIN is defined using an interpretation I = (4I , ·I)

consisting of a non-empty domain 4I and a mapping ·I , which interprets

atomic and complex concepts, roles and nominals (i.e. individual constants).

The symbol ] means set cardinality.

The interpretation I satisfies K if and only if it satisfies each axiom in K. A

SHOIN concept C is satisfiable with respect to K if and only if there is an

interpretation I with C I 6= ∅ that satisfies K. A concept C is subsumed by a

concept D with respect to K if and only if C I v DI for each I satisfying K.

Two concepts are equivalent with respect to K if and only if they subsume

each other with respect to K. A knowledge base K1 entails a knowledge base

K2 if and only if every interpretation of K1 is also an interpretation of K2.

The syntax and semantics of SHOIN are shown in Table 2.2.

23

Page 43: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Constructor Name Syntax Semanticsatomic concept A A AI ⊆ 4Iabstract role RA R RI ⊆ 4I ×4Iindividuals I o oI ⊆ 4Iinverse role R− (R−)I = (RI)−conjunction C 1 u C 2 (C 1 u C 2)I = C I1 ∩ C I2disjunction C 1 t C 2 (C 1 t C 2)I = C I1 ∪ C I2negation ¬C 1 (¬C 1)I = 4I \ C I1oneOf {o1, . . .} {o1, . . .}I = {oI1 , . . .}exists restriction ∃R.C (∃R.C )I = {x | ∃y.〈x, y〉 ∈ RI and y ∈ CI}value restriction ∀R.C (∀R.C )I = {x | ∀y.〈x, y〉 ∈ RI → y ∈ CI}atleast restriction > n R (> n R)I { x | ]({y.〈x, y〉 ∈ RI}) > n}atmost restriction 6 n R (6 n R)I { x | ]({y.〈x, y〉 ∈ RI}) 6 n}Axiom Name Syntax Semanticsconcept inclusion C 1 v C 2 C I1 ⊆ C I2object role inclusion R1 v R2 RI1 ⊆ RI2object role transitivity Trans(R) RI = (RI)+

individual inclusion a : C aI ∈ CIindividual inclusion 〈a, b〉 : R 〈aI , bI〉 ∈ RIindividual equality a = b aI = bIindividual inequality a 6= b aI 6= bI

Table 2.2: Syntax and semantics of SHOIN

2.3.8 Web Ontology Language

While an RDFS document allows for the derivation of implicit knowledge,

it has a limited expressiveness such as not being able to model cardinality

restrictions. The Web Ontology Language (OWL) is the recommended stan-

dard for modeling of ontologies on the Web. OWL is based on Description

Logics (DLs) [45] which are the formal knowledge representation language.

An OWL ontology is expressed using classes and properties (or roles) as in

RDFS and individuals as RDF to define instances of classes, which are the

24

Page 44: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

basic building blocks for modeling an ontology. A property has a domain and

range. Properties can be either object properties (link to other individuals)

or data properties (have literal values). Properties in OWL can be functional,

inverse, transitive and symmetric. OWL enables complex class expressions

using restrictions. Classes can be defined using set operators, constraints on

properties (cardinality, range, value), and universal and existential restric-

tions.

There are two main specifications of OWL and both are W3C recommenda-

tions: OWL 1.0 in 2004 [46] and OWL 2 in 2009 [47]. OWL 1.0 has three

sublanguages which have various degrees of expressiveness. They are OWL

Full, OWL DL, and OWL Lite. While OWL DL contains only OWL Lite,

OWL Full contains both OWL DL and OWL Lite.

1. OWL Lite: This is the least expressive language of the three, is de-

cidable, and its worst-case computational complexity is ExpTime. It

supports named classes, named properties, individuals, property values,

intersection, union, negation, existential and universal value restriction,

and unqualified number restrictions.

2. OWL DL: Contains OWL Lite, hence more expressive. It is also

decidable but its worst-case computational complexity is NExpTime.

Including all OWL Lite features, it supports arbitrary number restric-

tions, property value and enumeration.

3. OWL Full: Contains the above two languages, hence it is the most

25

Page 45: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

expressive of all. However OWL Full does not restrict the way they are

used, as a result there is no computational guarantee.

OWL 2 is more recent and is fully backward compatible with OWL 1.0, but

is more expressive. There are three OWL 2 profiles which are sublanguages

of OWL 2 DL. They are:

1. OWL EL: It supports ontologies with a large number of classes and

properties and reasoning can be performed in a polynomial time with

respect to the size of the ontology.

2. OWL QL: It supports efficient query answering in applications that

have large volumes of instance data.

3. OWL RL: Restricts modeling constructs, so this lightweight ontology

language resembles an OWL-based rule language, which can operate

directly on the RDF serialisation of OWL. This allows the implemen-

tation of OWL RL reasoning over existing RDF databases that support

some form of production rules for inferencing.

2.3.8.1 OWL Development Environment

As ontologies are gaining much attention across various domains, researchers

have been working on a wide range of ontology development tools. Among

them OntoStudio [48], protege [49], Swoop [50], TopBraid [51] are worth

mentioning. However, protege has been supported by a strong community

26

Page 46: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

of academic, government, and corporate users over the years because of the

active community, W3C support and extensible open source environment.

Among the syntaxes protege uses the Manchester OWL Syntax [52] for all

expressions. The expression editor allows a user to create class expressions

very easily, especially because of an autocomplete feature. The input and

output of each SADI service are defined as OWL class expressions in a service

ontology. Throughout the rest of the document, whenever the input and

output of a SADI service are defined, they are assumed to be authored in

protege in Manchester OWL Syntax.

2.3.9 PSOA RuleML

Positional-Slotted Object-Applicative (PSOA) RuleML [53, 54] is an object-

relational rule language generalizing Positional-Slotted Language (POSL)

[55], Object-Oriented (OO) RuleML [56], Frame logic (F-logic) [57], and Rule

Interchange Format-Basic Logic Dialect RIF-BLD [58]. PSOA RuleML pro-

vides positional-slotted object-applicative (psoa) atoms, integrating object

identifiers with applications of predicates to positional and/or slotted argu-

ments.

The characterization of PSOA RuleML given here has been specialized for

our purpose.1 The language introduces psoa atoms including the following

ones, where memberships are a special case of the form o#f(), abbreviated1For PSOA’s complete evolution see http://wiki.ruleml.org/index.php/PSOA R

uleML#References.

27

Page 47: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

as o#f:

o#f(+[t1,1...t1,n1 ]...+ [tm,1...tm,nm ] p1->v1 ... pk->vk)

In a psoa atom, o is the Object IDentifier (OID) which uniquely identifies

the object described by the tuples and/or slots.

A psoa atom integrates three types of information: 1) The class membership

o#f makes f the type of instance o; 2) every tupled argument [ti,1 . . . ti,n1 ]

associates o with a sequence of terms; 3) every slotted argument pi->vi as-

sociates o with an attribute pi and its value vi; .

PSOA RuleML uses such generalized (psoa) atoms as facts, as/in conclu-

sions of rules, and as/in conditions (premises of rules or top-level queries).

The conditions are formulas, which are used as queries or premises in rules.

Conjunctions and disjunctions of formulas are indicated by And, and Or, re-

spectively. Existentially quantified variables are denoted by Exists while

the list of free variables is preceded by Var+. An atomic formula is a (psoa)

atom, an equality formula, or a subclass formula. A (psoa) term is a constant,

variable, expression, or External expression.

A clause consisting of an atomic formula is a fact. A clause that is an impli-

cation constitutes a rule with an atomic formula or a conjunction of atomic

formulas for its conclusion and an atomic formula or a conjunction or dis-

junction of formulas for its condition. Conclusions can have existentially

(Exists-)quantified OID variables. An Assert wraps a knowledge base con-

28

Page 48: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

taining any number of clauses (rules and/or facts).

We would like to recall the example Rule-defined anonymous family frame

(updated from Example 1 in [53]) to discuss a typical rule and two facts.

The Assert contains a universally quantified implication formula, followed

by two ground facts. The Forall quantifier around the implication declares

universal argument variables ?Hu, ?Wi, ?Ch (given in the left-hand side

source version) as well as universal OID variables ?2, ?3, ?4 (generated for the

right-hand side objectified version). The Exists quantifier (generated for the

objectified version) around the conclusion declares an existential OID variable

?1. The infix :- separates the conclusion from the condition, deriving an

OID-existential family frame from a married relation And from a kid of the

husb Or wife.Assert (

Forall ?Hu ?Wi ?Ch (

family(husb->?Hu wife->?Wi child->?Ch) :-

And(married(?Hu ?Wi)

Or(kid(?Hu ?Ch) kid(?Wi ?Ch))) )

married(Joe Sue)

kid(Sue Pete)

)

Assert (

Forall ?Hu ?Wi ?Ch ?2 ?3 ?4 (

Exists ?1 (

?1#family(husb->?Hu wife->?Wi child->?Ch)) :-

And(?2#married(?Hu ?Wi)

Or(?3#kid(?Hu ?Ch) ?4#kid(?Wi ?Ch))) )

_1#married(Joe Sue)

_2#kid(Sue Pete)

)

2.3.10 Linked Data

The term Linked Data was coined in Tim Berners-Lee’s design note in 2006

[59] which refers to a set of best practices for publishing structured data

on the Web. These are: using URIs as names of things, using HTTP URIs

29

Page 49: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

for looking up those names, returning useful information when the names

are looked up, including links to other URIs so that more things can be

discovered.

The note also suggests rating of publishing Linked Data to determine the

quality. In recent years the amounts of Linked Data that are available on

the Web have grown considerably and data sources have become increasingly

inter-linked to form a Linked Data Cloud [60].

2.3.11 FAIR Data

FAIR data principles [61] are a set of guidelines and best practices for making

objects and the associated metadata open and reusable. The acronym FAIR

is the abbreviation of Findable, Accessible, Interoperable, and Reusable, re-

spectively. The principles for data to be FAIR compatible are briefly de-

scribed below:

• Data should have rich metadata with unique and persistent identifier,

and stored in a searchable registry so that they are findable.

• Data should be retrievable by their identifier with proper authentica-

tion using an open protocol. Even if data are no longer available, the

metadata should be accessible.

• In order to attain interoperability, metadata should use a formal, ac-

cessible, shared and broadly applicable language for knowledge repre-

sentation.

30

Page 50: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

• In order to be reusable, data should have a clear license for use and

should provide accurate information on provenance.

2.3.12 SPARQL Protocol and Query Language

SPARQL is a query language alike SQL but for querying data that can be

mapped to RDF. The SPARQL specification [62] is a widely adopted W3C

recommendation. Queries in SPARQL contain a graph pattern (a set of

triples containing variables) and when processed, matching RDF graphs are

returned from the RDF dataset. It provides a number of advanced functions

for constructing advanced query patterns, for stating additional filtering con-

ditions, and for formatting the final output. The named graph support of

SPARQL allows an input dataset to be separated into multiple parts where

each can be named and accessed by URIs. SPARQL offers a number of op-

tions for working with these graphs and allows one to use the URIs of such

graphs within queries.

2.4 Semantic Web Services

The journey towards implementing Semantic Web services is realized best

by Figure 2.3. One way is along the vertical path via Web Services, by

complementing e.g. WSDL with Semantics. The other way is along the

horizontal path via Semantic Web, using only standards of the Semantic

technologies such as OWL, RDF(S).

31

Page 51: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 2.3: The four major stages in the development of the Web

The current Web service standards and their uses are limited because the

functionality they provide are expressed using syntactic descriptions. The

syntactic descriptions are not suitable for software agents to perform auto-

matic discovery, orchestration, and execution which are done mostly manu-

ally. As the contents and services are not marked up semantically, they lack

support for the vision towards Semantic Web.

The vision for Semantic Web Services (SWS) is to utilize semantic technolo-

gies to achieve automatic discovery, invocation, composition and execution

of Web services [63, 64]. In order to achieve this goal Web services need to

be augmented or marked up with semantic descriptions so that they can be

interpreted and reasoned about by semantic-aware software clients.

Cabral et al. list three key criteria in [65] for Semantic Web services: i)

activities which include publishing, discovery, selection, composition, invoca-

32

Page 52: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

tion, deployment and ontology management, ii) architecture which includes a

register, a reasoner, a matchmaker, a decomposer and an invoker, and iii) ser-

vice ontology which may include input, output, precondition, post-condition,

cost, category, atomic service and composite service.

For Semantic Web services the activities and the service ontologies are the two

most important factors because the service ontology describes the elements of

the services’ semantic descriptions and the activities are among the features

a service needs to implement regardless of the architecture.

The following list briefly defines the activities:

• Publishing refers to the advertising of description of a service’s capa-

bility in a registry.

• Discovery refers to the event of matching a given query to the services

which depends on their semantic descriptions. The descriptions typi-

cally involve name, input, output, preconditions and postconditions.

• Selection refers to the event of choosing between two or more matching

services, based on other criteria, such as cost or category.

• Composition or choreography refers to the automatic or semi-automatic

composition of larger services from other services, and the control of

how that composition is executed.

• Invocation refers to the actual invocation of the service, like preparing

inputs and dealing with exceptions.

33

Page 53: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

• Deployment refers to mechanism for deploying an instance of a service

in a registry which may be independent of the publishing of its semantic

description [65].

• Ontology management refers to the management of the domain and

service ontologies in terms of accessibility, updating and maintenance.

In this thesis, the Semantic Automated Discovery and Integration (SADI) [66]

framework is chosen for creating Semantic Web services. A brief description

of SADI services comes next.

2.4.1 SADI Semantic Web Services

The RESTful Semantic Automated Discovery and Integration (SADI) Web

services exchange RDF data and OWL expressions are used to define their

functionality. SADI services and SADI-related tools use the myGrid/Moby

[67] service ontology to extend the service descriptions with service name,

description, input, output etc. and encode the service metadata graph with

them so that software clients can discover and invoke the services.

2.4.1.1 Motivation

The original motivation for the development of SADI was the complexity

of discovering, accessing, and integrating public data and software in the

domain of bioinformatics. RDF enables automated merging of data sets and

OWL enables automated logical reasoning over data. The SADI framework

34

Page 54: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

provides a set of best practices for publishing data and software resources

that would simultaneously offer the benefits of Semantic Web standards and

technologies, such as the ability to automatically merge data sets and to

automatically compute logical inferences from data. This way, the problem

of incompatible data models, schemas, and software interfaces which hinders

the combined use of numerous bioinformatics databases and software tools

available online, will be solved to greater degree. Although SADI has been

motivated by bioinformatics, it is applicable to other domains.

2.4.1.2 Operation

A SADI service operates by attaching new properties to an input URI de-

scribed with an input RDF graph ensuring related input and output instances

from a service invocation are explicitly linked. This explicit relationship be-

tween the service’s input and output saves a client from the task of tracking

input-output relationships on its own, and ensures that the RDF produced by

service invocations forms a connected graph that is queryable in a meaningful

manner. In the input and output descriptions, the predicates in the property

assertions are fixed for a SADI service. These specifications, known as the

semantic description of the service, specify the service functionality. For in-

stance, a SADI service having an output predicate has facility description in

an ontology may be invoked by the query clients to retrieve the description

of the facility to which the patient is admitted.

Metadata about a service is retrievable as an RDF document by issuing

35

Page 55: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

an HTTP GET to the service URL, while service invocation is realized by

issuing an HTTP POST to the service URL with an input RDF document

as the request body. The response to a service invocation is likewise an RDF

document. SADI also imposes minimal constraints on data modeling as it

does not provide any rules about how service input and output data should

be modeled in RDF. Thus, service providers are free to encode the data using

any OWL or RDFS ontologies deemed suitable. Generally, the DL family of

OWL has been recommended.

Within the RDF metadata document for the service, all metadata items must

be represented as part of a single, connected RDF graph whose root URI is

the URL of the service. The metadata graph must include the following

items:

• An input OWL class describing the expected structure of the input

RDF graphs consumed by the service

• An output OWL class describing the expected structure of the output

RDF graphs generated by the service

Among others, the metadata contains service name as a human readable label

for the service and a human readable description of the service functionality.

SADI services may use the myGrid/Moby2 service ontology to encode the

service metadata graph.2http://www.mygrid.org.uk/mygrid-moby-service/

36

Page 56: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

The ability to describe service interfaces using OWL classes provides a machine-

readable representation of the service interface which allows automation of

various data and service matchmaking tasks such as service identification, in-

put extraction, and forming execution chains of services including reasoning.

The primary purpose of the input OWL class is to identify and extract valid

input instances for a service from a given RDF data set. Each SADI service

has exactly one input OWL class which must either be referenced by or di-

rectly included in the metadata graph for the service. The most important

consideration when authoring an input OWL class is that the conditions for

class membership should be defined using necessary and sufficient (‘if and

only if’) conditions. In OWL, necessary conditions (‘if’) are defined using

the rdfs:subClassOf property whereas necessary and sufficient conditions (‘if

and only if’) are defined using the owl:equivalentClass property. The output

OWL class provides a machine readable description of the output instances

produced by a service, which facilitates the automated identification of ser-

vices that produce data of interest to either human or software clients. Each

SADI service has exactly one output OWL class which must be either ref-

erenced by or directly included in the metadata graph for the service. Each

input instance that is sent to a service produces exactly one output instance,

and each pair of corresponding input and output instances always have the

same URI.

Figure 2.4 shows the transaction steps for a simple SADI service, which

retrieves the name of the disease when a patient name is given. A series of

37

Page 57: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

transactions occurred between the client (on left) and the service endpoint

(on right) using GET and POST. In A, the client calls HTTP GET on the

service endpoint at http://cbakerlab.unbsj.ca:8080/getDiagnosisB

yPatientId. In B, the service description is returned with a reference to

the input and output of the service. In C, the client sends the input data

value ‘1’ as the ID of the patient to the service endpoint using HTTP POST.

The root node http://cbakerlab.unbsj.ca:8080/pat by ID?ID=1 which

is of type (rdf:type) Patient is shown as the input graph. In D, the

service strips the data value, executes the services to find the string-valued

Arthritis as the diagnosis for the patient, attaches it using the property

has diagnosis , and returns to the client as the output.

38

Page 58: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 2.4: Execution steps between a client and a service endpoint for aSADI service

2.4.1.3 Limitation

According to the SADI design-pattern, the unique constraint is that the

URI of the input individual and the URI of the output individual must

be identical. Due to this reason, a typical SADI service is in the form of

getY ByX, where the output Y is retrieved based on the input X and is then

39

Page 59: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

connected to the input, decorating X using an explicit relationship.

Although services in the form of getY ByX meet most demands, there are

cases where no input X is required. In a prior work, Al Manir et al. demon-

strated in [68] that a set of SADI services were deployed where allY services

were used to retrieve all instances of an attribute Y from a table of a rela-

tional database. The work identified the need for SADI services in the form

of allY where no inputs are required to be present. While these allY services

were created manually, they still suffer from similar problems in generating

getY ByX services which are error-prone and time-consuming.

2.4.1.4 Querying SADI Services

A service registry allows users to query metadata about a collection of ser-

vices, in order to discover services that accomplish a task. SHARE [69] is a

specialized open-source query engine which allows end users to discover, or-

chestrate, and invoke SADI services from SPARQL queries. SHARE does not

search an existing RDF dataset for a subgraph with a specified triple pattern

structure. Instead, SHARE utilizes the SADI framework by matching indi-

vidual triple patterns in the SPARQL query against SADI service interface

descriptions in OWL to discover services capable of generating those triple

patterns. Thus the RDF data required to answer any given SPARQL query is

dynamically generated in response to the query. Note that while distributed

SPARQL endpoints may provide some data relevant to the query, other data

may be dynamically generated through execution of an application or algo-

40

Page 60: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

rithm since all resources are exposed as Web services, thus making the nature

of the underlying data resource opaque to the client.

The services are discovered by finding a match to the predicates attached to

the input URIs after comparing both the semantic descriptions of the service

input and the output OWL class. Each triple pattern in the SPARQL query

is resolved by checking the predicates in the service registry. The discovered

services are then orchestrated and invoked to execute the desired tasks. Even

if the inverse of a predicate is used, SHARE is still able to discover the

service by looking at the ontology. The output triples are produced through

the binding of subject/object values to the corresponding variables in the

SPARQL query. To generate the complete output every triple in the query

is resolved.

HYDRA3 is a commercial query engine for SADI services, developed by IP-

SNP Computing Inc. HYDRA can be used as a Java API, a simple command

line application or through an intelligent GUI supporting ad hoc query com-

position by non-technical users by combining Google-style keyword-based

querying with query graph editing.

2.4.1.5 Tools used for Adopting SADI Services

Since its inception, SADI has been employed in a number of Semantic Knowl-

edge management tools and there are others emerging because of its simplic-

ity.3http://ipsnp.com/hydra/

41

Page 61: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

The IO Informatics’s Sentient Knowledge Explorer4 is a retrieval, integration,

visualization, query, and exploration environment for semantically rich data.

The SADI plug-in allows the tool to discover SADI services with the help

of Semanticscience Integrated Ontology (SIO) [70]. By converting the input

OWL class definition into an equivalent SPARQL query and with the help

of SIO-compliant metadata the services are discovered.

Another well known adoption of SADI is the semantically guided workflow

management system Taverna [71]. Areas where Taverna has been used in-

clude astronomy, bioinformatics, biodiversity, and digital preservation. The

SADI plugin allows SADI services to be accessed from Taverna. The plugin

allows users to build workflow and interactive service discovery. From the

SADI services in the registry, Taverna can search for the service that con-

sume the datatype as an output of the existing workflow node using output

ports.

Another workflow management system which is becoming increasingly pop-

ular among biologists is Galaxy [72]. Galaxy is a Web server and it allows

a user to store and analyse data as well as send the output of one tool as

input to the next. This process facilitates creating workflows which then can

be extracted. With the SADI-Galaxy tool [73], a SADI service becomes a

Galaxy tool that has features such as data storage, history, workflow cre-

ation, and publication. The semi-automated packing and unpacking of data

into RDF keeps provision for other Galaxy tools to be combined with the4http://io-informatics.com/

42

Page 62: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

SADI-Galaxy.

An attempt to automatically configure a large number of SADI services was

demonstrated in [74]. More than 22,000 SADI services have been made avail-

able through the utilization of descriptive metadata on top of OpenLifeData -

a well-curated Linked dataset based on enriched Bio2RDF’s RDFS semantics

to OWL expressivity. Each triple pattern for the dataset becomes a SADI

service which requires some pre-processing with the help of configuration

files. This technique enables the generation of SADI services automatically

and the application is limited to Linked Data.

Except for OpenLifeData, most tools require that the services are to be

created and deployed in the service registry. In most cases the data sources

are Linked Data in RDF format and service creation is a tedious process

which is error-prone and time consuming. As most of the data on the Web

are still in legacy form e.g. Relational Databases, adoption of SADI could

get a wider audience other than the biology community if service creation

can be automated in large scale and RDBs could be a point of focus as much

as Linked Data.

2.4.1.6 Manual and Automated Deployments

Over the years, a number of systems have been deployed based on SADI ser-

vices. The resources used for these deployments include but are not limited

to scientific literature, statistical and financial data in agriculture, biomedical

images, data on Hospital-Acquired Infections, data on malaria intervention

43

Page 63: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

and control, toxicological data on fish and ecology, data on mutation impact,

data on durg-drug interactions in personal health, lipidomics data, chemioin-

formatics data, and Linked Data in life sciences.

To deploy SADI service-based systems with these resources, a number of

SADI services were either created manually or automatically. In some of

these systems where services were generated automatically, the source data

were in the form of Linked Data and not the relational databases. With Valet

SADI, we have deployed a few systems where services were generated on top

of RDBs, not on Linked Data. Example of such deployments were done for

agriculture, the new version of clinical intelligence and malaria analytics.

Any other deployments where services were generated automatically were

done on top of Linked Data. Table 2.3 shows the domain on which SADI

services were deployed, their references, and whether services were created

manually or automatically or both.

2.4.1.7 Required Resources and Competencies

Certain resources and competencies are required to generate a SADI service.

Typically, SADI services can be used as data services for accessing struc-

tured and unstructured data and algorithmic services for performing specific

computations over a set of data. As our work involves source data that re-

side in relational databases, our focus remains on the list of resources and

competencies for generating data-specific SADI services.

44

Page 64: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Table 2.3: SADI Service-based system deployments

Domain of Implementation References Service GenerationAgriculture [68] Manual + AutomaticClinical intelligence (older version) [11,12] ManualClinical intelligence (new version) [75,76] AutomaticMalaria analytics [20] AutomaticMutation impact text-mining [13] ManualLipidomics [14] ManualEcotoxicology [17] ManualFish toxicology [16] ManualBIO2RDF Linked Data [74] AutomaticBiomedical image [77] ManualChemioinformatics [15] ManualPersonal health [78] Manual

Knowledge of Ontology Modeling: The input and output definitions of

a SADI service are expressed in OWL in a service ontology. The vocabularies

used in these definitions are referenced in terms of the domain ontologies.

If certain vocabularies are missing, they need to be created in the domain

ontology so that they can be reused in the definition in the service ontologies.

Moreover, logical connectives in axioms can be used to impose restrictions

on these vocabularies. Therefore, having expertise in ontology modeling is

critical for defining a SADI service.

Knowledge of Data Modeling: While a SADI service only consumes

RDF as input and produces RDF as the output, the source data is stored in

relational tables in the database. Hence, it is necessary to know the modeling

of both the relational schema as well as the RDF data model.

45

Page 65: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Knowledge of a Database Query Language: All source data are stored

in relational tables and accessing these tables requires expertise in SQL

query language. Typically, database programmers are familiar with database

schema and their expertise is needed to write SQL queries to retrieve data

from the database.

Knowledge of a Programming Language: The program code required

to implement a SADI service can be divided in three blocks: i) input code

retrieving the input values from the RDF input, ii) code with an instantiated

SQL query statement with the values retrieved in the previous block, and

iii) output code creating the RDF output instance using the results after

executing the SQL query in the previous block. Writing these code blocks

requires expertise in programming languages such as Java, Perl, and Python.

Knowledge of SPARQL Query Language: Once the services are gen-

erated and deployed, they can be invoked and executed from SADI-specific

query clients such as SHARE or HYDRA. The clients execute W3C standard

SPARQL queries submitted by the end users. Statements in a SPARQL query

are resolved and subsequently the SADI services are discovered, invoked, or-

chestrated, and executed in order. This is why knowledge of SPARQL queries

are necessary in order to return the results to the end users.

46

Page 66: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

2.4.2 WSDL-based and REST-based Services

We will focus our attention to service-oriented implementations of SWS,

namely WSDL-based and REST-based services. Although SADI is a REST-

based service-oriented approach, comparison with WSDL-based approaches

will be addressed wherever possible.

2.4.2.1 WSDL-based Approach

Semantic Annotations for WSDL (SAWSDL) [79], which was developed from

WSDL-S [80], is a lightweight bottom-up specification for annotating WSDL

service descriptions. The specification is called Semantic Annotations for

WSDL and XML Schema. SAWSDL defines an extension layer over WSDL

that allows the semantics to be attributed to various WSDL components. The

attributes can be applied to elements both in WSDL and in XML Schema

in order to annotate WSDL interfaces, operations and the input and output

messages.

SAWSDL discards the precondition and effect attributes that were parts

of WSDL-S, and it aims to be compatible with existing specifications and

improve the automation of discovery and composition. In SAWSDL, the

attribute sawsdl:modelReference is added to the elements of the inputs

and outputs whose values would be URIs that point to concepts in an ontol-

ogy. The attributes loweringSchemaMapping and liftingSchemaMapping

are used to provide mappings of XML datatypes to and from a semantic data

model such as RDF, respectively. The required mappings might be accom-

47

Page 67: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

plished with XSLT for the lifting transformation and SPARQL followed by

XSLT for the lowering transformation. SAWSDL can be used as an adaptor

layer that maps a WSDL service to the expected behavior of a SADI service.

A composition platform named SemanticSCo [81] can be cited as a recent at-

tempt to support the semi-automated composition of RESTful web services

semantically annotated using SAWSDL.

Web Ontology Language for Service OWL-S [82], in contrast to SAWSDL,

follows a top-down approach for modeling of Semantic Web services, where

the semantics of the service is described independently of the actual real-

ization of the service implementation and then the semantics is grounded

in the underlying description such as WSDL. The separation ensures that

implementation details are not influencing the semantics.

OWL-S is inherently an OWL ontology comprising three interrelated sub-

ontologies:

• Profile: Refers to the purpose of the service with functional and non-

functional properties. The functional properties are used to enable

advertising, construction of service requests, and matchmaking. The

functional propeties are represented by Inputs, Outputs, Preconditions

and Effects (IOPE) properties as well as structural descriptions.

• Process model: Refers to the mechanism of the service execution. It

specifies how a client may interact with the service for invocation, en-

actment, composition, monitoring and recovering from failures. The

48

Page 68: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

root class Process in the model has three subclasses: i) atomic process

which can be invoked by one message, completes execution in one step

and returns one message; ii) composite process which can be decom-

posed into simpler processes via control structures for different paths

of execution, and iii) simple process which are merely abstractions that

can be realized by either an atomic process or a composite process but

cannot be invoked.

• Grounding: Refers to the way constructs of the process model are

mapped to concrete message formats and protocols. This is basically

mapping from the ontological description to a concrete specification of

a service, typically to WSDL.

The OWL language together with the OWL-S vocabulary makes up the

OWL-S Web service specification language. The combination of OWL-S

with UDDI registries facilitate service discovery [83]. OWL-S also offers au-

tomatic service composition as shown in [84, 85]. OWL-S does not contain

variables which are required to specify all necessary states and descriptions

in the precondition and effects of IOPE. A way to resolve this problem is to

allow rule languages such as Semantic Web Rule Language (SWRL) [86] for

defining rules for preconditions and effects.

Among recent contributions, a framework [87] for auto-processing informa-

tion was described by extending OWL-S. In Internet of Things (IoT), Web

Services are commonly used to describe the entity functions in the trans-

49

Page 69: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

action process and conventional Web services cannot fully meet the needs

of execution and control of the transactions. The goal of the framework

is to manage, query, and combine entities and observation data using Se-

mantic technologies so that IoTs can be directed towards the Semantic Web

of Things (SWoT) [88]. Another OWL-S extension called OWLS-LO was

proposed recently in the e-Learning domain [89].

Web Service Modeling Ontology (WSMO) [90] also follows a top-down ap-

proach for modeling Semantic Web services. The conceptual background

of WSMO lies in the Web Service Modeling Framework (WSMF) which

has specified a family of languages called Web Service Modeling Language

(WSML) [91].

The four main components of WSMF are the ontologies that define the ter-

minologies, goals as the request types, Web services, and the mediators that

help in interacting among the components.

WSML-Core is defined by the intersection of Description Logic and Horn

logic and has the least expressive power. WSML-DL extends WSML-Core

and captures the expressiveness of the SHOIN (D). WSML-Flight extends

WSML-Core and uses features from OWL Full. WSML-Rule also extends

WSML-Core with Horn logic based on minimal model semantics. WSML-Full

combines all WSML variants under a First-Order umbrella with extensions

to support specific features of WSML-Rule, such as minimal model semantics

and default negation.

The Web service descriptions in WSMO consist of precondition (input in

50

Page 70: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

OWL-S), postcondition (output in OWL-S), assumption (precondition in

OWL-S), and effect (effect in OWL-S). Although lack of interest in re-

cent years were noticed in WSMO, its lighter-weight variants such as Mi-

croWSMO [92] and WSMO-Lite [93] are currently getting more attention.

Semantic Web Services Framework (SWSF) [94] focuses on workflows and has

its own language for defining the Semantic Web Services Ontology (SWSO)

called Semantic Web Services Language (SWSL). Whereas OWL-S uses De-

scription Logics, SWSL uses First-Order Logic. As a result, the SWSL is

more expressive than the languages used in OWL-S and there is support

for URIs, XML built-in types, XML namespaces, and XML import. SWSF

provides a more comprehensive and rich behavioral process model for web

services that introduces concepts for control, ordering, states and exceptions.

There are two sublanguages of SWSL having similar syntax but different se-

mantics. One of them is SWSL-FOL which is used for the service ontologies.

The other is SWSL-Rules which is used for reasoning of the use of services.

In comparison to OWL-S, WSMO, and SWSF, SADI is a simpler standard

that is limited to the description of stateless services. SADI uses OWL on-

tologies only for defining the schema of input data, output data, and service

execution parameters, and not to define the effects or choreography of a

service. The choreography of a SADI service is fixed to one of two pos-

sibilities, corresponding to synchronous services and asynchronous services

respectively. Both WSMO and SWSF are more expressive than SADI and

OWL-S because of their use of logic programming via WSML and SWSL.

51

Page 71: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

2.4.2.2 REST-based Approach

In REST-based approaches, existing RESTful Web services are semantically

described.

hRESTS (HTML for RESTful Services) [92] is an HTML microformat for

describing RESTful Web Services which aims to provide machine-readable

representation of common Web service and API descriptions. In hRESTS,

the attribute values are: service, operation, method, input and output. The

microformat in hRESTS serves as the basis for extensions for both SA-REST

and MicroWSMO.

Semantic Annotations for REST (SA-REST) [95] uses RDFa [96] or GRDDL

[97] to embed semantic annotations into HTML/XHTML. SA-REST services

provide support for interoperability of dynamic mashups. The SA-REST

extension defines classes for describing the data format and programming

language binding properties of Web APIs which allow developers to search

in homogeneous groups and create mashups.

MicroWSMO extends hRESTS to add semantics annotations through adopt-

ing the SAWSDL extensions. WSMO-Lite [93] is a light-weight version of the

WSMO service ontology, that can be used to describe services on top of Mi-

croWSMO and also SAWSDL. Its aim is to reduce the overhead in describing

services and to be able to annotate RESTful Web services. MicroWSMO is

a SAWSDL-like layer on top of hRESTS.

RESTfulGrounding [98] uses a new grounding ontology in OWL-S to seman-

tically describe RESTful Web services. In Semantic Bridge for Web Services

52

Page 72: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

(SBWS) [99], a service is described using the Web Application Description

Language (WADL) by creating a monolithic XML file containing all the in-

formation about the service interface.

With the increasing amount of Linked Data being added everyday several

types of Semantic Web services have emerged. Linked Data Services (LIDS)

[100] focuses on describing data services using RDF and SPARQL where

by augmenting Linked Datasets dynamically with data extracted from Web

APIs.

Linked Open Services (LOS) [101] provide semantic wrappers for WSDL and

Web APIs to function as RDF producers and consumers. It describes the

functionality of services, using RDF and graph patterns, and then describes

their composition using SPARQL queries. A LOS specifies not only what

graph patterns a service consumes and produces but also how the input

RDF is consumed and produced using SPARQL constructs.

A detailed comparison of the Semantic Web services framework listed above

is out of scope of this thesis. Interested readers are encouraged to look at [102]

for details.

2.5 Databases and Ontologies

Ontology is defined as “a formal, explicit specification of a shared conceptu-

alization” [103]. Ontologies contain a vocabulary of an abstract model in the

form of concepts and the relationships between the concepts. Ontologies cap-

53

Page 73: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

ture general knowledge and they can be accepted by a group and be shared.

A relational database represents the structure and integrity of the data. The

schema is developed for a specific application and it is not intended to be

shared by others.

The main differences of an ontology and a database are given below:

• A database is a collection of information that has been organized in a

specific manner while an ontology is a “specification of a conceptual-

ization”.

• Database contents are typed while everything in the ontology is a con-

cept.

• Concepts have either datatype property or object property while a

database table has attributes and relationship with other tables.

• Concepts and properties in the ontology can be organized by hierar-

chies.

• Databases encode application semantics implicitly, ontologies explicitly.

• By design, ontologies are trivially extensible. Database schemas are

brittle.

In general, ontologies are more expressive and have richer semantics than

relational schemas, but that does not mean that a relational schema does

54

Page 74: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

not encode domain semantics. These semantics are implicit in the relational

schema.

Generally, extracting information from relational database and rendering

them to be used in an ontology involves one of the following strategies:

• creating from scratch a new ontology based on information extracted

from a relational database

• generating RDF statements that conform to one or more predefined

ontologies and reflect the contents of a relational database

• answering semantic queries directly against a relational database

• discovering correspondences between a relational database and a given

ontology

A comprehensive survey of these strategies is reported in [104] in detail.

A simplified high-level diagram of these strategies is seen in Figure 2.5. For

an existing ontology, the domain should be compatible with the database

schema and contents so that meaningful (i.e. semantic) mappings can be

defined. On the other hand, the existence of a domain ontology is not a

prerequisite in the creation of a new ontology, which is expanded throughout

the left branch.

The methods that create a new ontology are further subdivided in two sub-

categories, depending on the domain of the generated ontology. On one

hand, there are approaches that develop an ontology with the domain of the

55

Page 75: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 2.5: Classification of approaches

relational model. The generated ontology, called a database schema ontol-

ogy, consists of concepts and relationships that reflect the constructs of the

relational model, mirroring the structure of the input relational database.

Since the generated ontology does not implicate any other knowledge do-

main, these approaches are mainly automatic relying on the input database

schema alone. On the other hand, there are methods that generate domain-

specific ontologies, depending on the domain described by the contents of the

input database.

The last classification category is the application of database reverse engi-

neering techniques in the process of creating a new domain-specific ontology.

56

Page 76: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Approaches that apply reverse engineering try to recover the initial con-

ceptual schema from the relational schema and translate it to an ontology

expressed in a target language. On the other hand, there are methods that

apply translation rules instead of reverse engineering techniques, from the

relational to the RDF Model and/or rely on the human expert for the def-

inition of complex mappings and the enrichment of the generated ontology

model.

In this thesis, we use the approach where one or more existing ontologies are

used to access databases which is popularly known as the mediator approach.

In this approach, a technique called query rewriting is used where a user

formulates queries using the terminologies of the existing ontologies, typically

in SPARQL. The queries are then converted to equivalent queries in terms

of the source database schema, typically as SQL queries.

57

Page 77: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 3

Valet SADI

In this chapter, an architecture of Valet SADI framework is presented. A

compact diagram of the architecture is introduced which gives an overview

of its components and how they interact with other other. There are four

separate modules in Valet SADI among which two expect inputs entered

manually by a human user and the two others use them in a series to au-

tomatically generate a complete package for a SADI Semantic Web service.

The compact overview diagram is later expanded with each module described

separately to allows the reader become familiar with their functionality in

detail.

58

Page 78: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

3.1 Architecture

Valet SADI works as a personal assistant for creating SADI Semantic Web

services automatically for retrieving information from the RDBs. Just like

a valet in a car parking lot, the implementation of this architecture takes

care of the critical task of creating the service’s source code from a mere

declarative description of the input and the output when suitable mapping

rules are available. Hence the architecture is named Valet SADI.

The workflow for the complete service generation process is illustrated by

the compact architecture diagram in Figure 3.1. The process relies on four

modules: a Semantic Mapping Module, a Service Description Module, an

SQL-template Query Generator Module, and a Service Generator Module,

forming a pipeline.

3.1.1 Module-1: Semantic Mapping

A core resource required for implementing semantic querying over a relational

database requires mapping of the database schema to relevant domain on-

tologies. The RDB represents information in tables using rows and columns.

Data in these tables are related according to common keys. Relevant parts

of the database schema may be manually mapped to the terminologies in

the domain ontology which may be represented using an expressive rule lan-

guage. PSOA rules have been demonstrated to be useful for such mappings,1

1http://wiki.ruleml.org/index.php/Rule-Based Data Access

59

Page 79: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 3.1: Architecture supporting the automation of SADI Semantic Webservices generation

hence PSOA RuleML is chosen as the rule language for mapping specifica-

tion in Valet SADI. Once the mapping rules are defined, they do not need

to be revisited anymore. However, any changes occurring in the database in

future which are used in the rules must be reflected in the mappings. This

will require the rules to be revisited and perhaps rewritten to ensure the

correct operations of the generated services. Further discussion and context

for the regeneration of SADI services with a set of revised mapping rules are

provided in Chapter 7 in detail.

60

Page 80: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

The three components comprising the Semantic Mapping Module are de-

scribed here:

3.1.1.1 Relational Database

A relational database presents information in tables with rows and columns.

A table is referred to as a relation as it is a collection of objects of the same

type (row). Data in a table can be related according to common keys and

the ability to retrieve related data from a table is the basis for the term

relational database. It is expected that data can be retrieved from multiple

tables through table-join based on the primary key and foreign key attributes.

3.1.1.2 Domain Ontology

The domain ontology in this module must correspond to the same domain

of the relational database, using ontology concepts, individuals, object prop-

erties, data properties, and possibly axioms. The higher the degree of the

correspondence, the easier it is to represent mappings between the two.

3.1.1.3 Mapping Rules

To access data from the relational database, queries are formulated using

the terminologies from the domain ontologies. Mapping between the domain

ontologies and the database schema is required to access the data. These

mappings are manually written using PSOA rules whose expressiveness ex-

tends the function-free (Datalog) expressiveness level of deductive databases

61

Page 81: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

and realizes the expressiveness level of Horn logic [54,105].

3.1.2 Module-2: Service Description

This module displays the tasks related to the service ontology. The input and

output of a SADI service are defined as OWL class expressions as previously

mentioned in Section 2.3.8.1. Each service would be represented by a service

ontology.

3.1.2.1 Service Ontology

In a service ontology, the input and output descriptions are defined as classes

by using concepts from the domain ontology and various OWL class con-

structs, such as property restrictions, and class intersections. These I/O

classes define the shape of RDF graphs that are eligible as service input and

those that can be expected as service output. In general terms, a URI with

an RDF graph describing it must be classified as an instance of a service

input class to be deemed legitimate input to the service. Likewise, an output

of a service must be classifiable as an instance of the output class.

3.1.3 Module-3: SQL-template Query Generator

In Valet SADI, the I/O OWL class definitions are used to generate an SQL

query to be placed in the code of the generated service. Three additional

inputs are also required for this purpose: i) the RDB abstraction which is a

62

Page 82: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

representation (i.e. a generalization) of facts from a table (e.g. patient(X) for

all patient(p1), . . ., patient(p100)), ii) the domain ontology which is implicitly

available for import (i.e. for reference) into the service ontology, and iii)

the semantic mapping rules. These inputs are submitted, in an appropriate

format – TPTP, to the VampirePrime reasoner [19], which implements a

technique called Incremental Query Rewriting (IQR) [6], and together with

some auxiliary SQL-specific code, produces an SQL query that can be used

to select the data from the source database. The input is represented with

formal parameters in the SQL query, corresponding to the relevant parts of

an input RDF graph, and for this reason the query is considered a template.

It is instantiated by substituting the formal parameters with specific input

values each time the service is executed.

The module, without needing any human intervention, thus creates an SQL-

template query with the help of five components (see Module-3 in Figure 3.1).

The reasoner produces schematic answers to a semantic query which are then

rewritten into an SQL-tempate query mentioned above [6]. In order for the

reasoner to resolve the query, it requires four separate inputs indicated by

the four incoming arrows all of which deliver the inputs in TPTP format: one

from the RDB, one from a converter, and two from the two translators. The

converter and the two translators are among our contributions in this module

which are described below. The reasoner and the query rewriter are reused

and readers interested in them can refer to [6] for details. The abstraction of

RDB is trivial, hence no converter or translators are necessary.

63

Page 83: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

3.1.3.1 Service I/O to Semantic Query Converter

This converter uses the input and output description expressed in OWL

syntax in the service ontology as its input and produces a semantic query as

its output in TPTP-FOF.

3.1.3.2 Ontology to TPTP Formula Translator

The translator takes the domain ontology as its input and translates it into

the equivalent TPTP-FOF as its output.

3.1.3.3 PSOA Rules to TPTP Formula Translator

This translator takes the mapping rules specified in PSOA RuleML syntax as

its input and translates them into the equivalent TPTP-FOF as its output.

3.1.3.4 VampirePrime Reasoner + Query Rewriter

The reasoner uses all 4 inputs and finds schematic answers to the semantic

query. The logical representation of these answers are converted into SQL.

3.1.4 Module-4: Service Generator

The service generator module generates Java source code for the SADI Web

service. The code is composed of three separate code-blocks: i) input code

block which reads input data values from the input RDF graph and stores

the reference in an object variable, ii) executable query code block which

64

Page 84: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

contains the instantiated SQL query statement within the WHERE clause,

and iii) output code block which creates the output RDF graph from the

result sets after the query is executed. In addition, this module also compiles

the code and deploys the Web service in the service registry by the Web

Service Deployer. Once the services are deployed in the service registry, the

end users are able to execute the services from the SPARQL query.

Overall, once the input and output descriptions are defined, the rest of the

service generation process becomes equivalent to clicking a Generate and De-

ploy button. With the mapping rules in place, it becomes significantly easier

to create and deploy services without having any knowledge of the under-

lying database schema than to generate them manually. While the SHARE

query engine requires the end users to have knowledge of SPARQL, the com-

mercial HYDRA query engine eliminates this shortcoming by providing a

graphical query canvas. The users can compose complex query graphs by

merely typing keywords on the query canvas, which is then automatically

converted to a query in SPARQL. The availability of such GUI-based query

engine in combination with the Valet SADI makes the creation, deployment,

and querying of services an efficient and less error-prone operation.

3.2 Descriptions of the Modules

The operations of each module are described below with supporting diagrams.

These diagrams depict the roles played by all components and the users

65

Page 85: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

associated with them.

3.2.1 Writing Mapping Rules

Figure 3.2 shows how mapping rules are written for a specific domain of

interest. The source data is represented by relational tables and typically

stored using one of the modern RDB systems. One or more domain ontologies

can be used to represent the source data. Terminologies in these ontologies

may have already been defined by experts in the domain and released as

part of ontologies on the Web. Thus, some terminologies may readily be

imported and reused from existing ontologies while others can be created

at the convenience of the users to represent the RDB schema. Given that

they share the same domain of interest, correspondence can be established

between these two formalisms. These correspondences may be expressed in

the form of expressive rules which facilitate access to source data.

3.2.2 Writing Service Descriptions

Once the domain ontology is ready with all necessary terminologies, either

by importing existing ones or creating them from scratch, the input and

output of a service can be defined. With the availability of modern and

user-friendly ontology development environments previously mentioned in

Section 2.3.8.1, it has become increasingly easier to define the I/O as OWL

class expressions. In the query engine, a SPARQL query can be used to

66

Page 86: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 3.2: Authoring semantic mapping rules for a domain of interest

execute one or more SADI services and each action of a data retrieval can

be identified and performed by a SADI service. Conventionally, a service

ontology contains the input and the output of a distinct service. Figure 3.3

shows how SADI services are defined in service ontologies in relation to the

domain ontology.

67

Page 87: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 3.3: Defining I/O of SADI services in ontologies

3.2.3 Automatic Generation of SQL-template Query

One of the most important technical contributions of the architecture lies in

the generation of a template query in SQL automatically. Once the input

and the output of a service is defined and the mapping rules are ready, the

generation process can begin. The reasoner takes four different inputs and

runs by generating schematic answers as the solutions to a semantic query.

One input is DB′ , which is an abstraction of the logical representation DB

of the relational database. The declarative input and output described in

OWL syntax are converted into an specialized semantic query Q in TPTP

format consisting of unary (concepts) and binary predicates (object and data

properties). The predicates converted from the output and the input descrip-

68

Page 88: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

tions correspond to the generation of SELECT and WHERE clause of the

template-SQL query, respectively. The knowledge base KB is a finite set

of FOL axioms corresponding to both the domain ontologies and the se-

mantic mapping rules. There are two translators: the Ontology to TPTP

Formula Translator translates the domain ontology into First-Order formu-

las in TPTP syntax while the PSOA Rules to TPTP Formula Translator

translates the mapping rules into the similar TPTP syntax. The creation

of the FROM clause depends on the DB′ and both elements in the KB.

VampirePrime reasoner uses resolution steps to generate schematic answers

where answers with similar proofs are obtained in bulk rather than wasting

reasoning steps leading to similar results or no results at all. An SQL-specific

Incremental Query Rewriter (IQR) is then used on the answers to generate

the SQL-template query. The generated query is termed as a template be-

cause the WHERE clause is only instantiated when a service is invoked and

executed. Figure 3.4 shows various inputs and processing steps for generating

the final template query. The execution steps for generating a few queries

related to one of the application domain in Hospital-Acquired Infections are

illustrated in Appendix A.4.

3.2.4 Automatic Generation of Web Service Code

The source code for the Web service is automatically generated once the SQL-

template query is successfully created. The source code contains all necessary

components of a typical Web application written in the Java programming

69

Page 89: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 3.4: Steps for generating SQL-template query automatically

language with parameters specified to act as a SADI Semantic Web service.

A processor called Generator traverses the input and the output from the

service ontology as graphs and creates the source code for reading the input

values from the RDF input graph and the code to generate the RDF output

70

Page 90: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

graph after the execution of the instantiated SQL query. The Generator also

places the SQL-template query in the source code so that it can be instan-

tiated properly with input values, if necessary. The service code blocks are

written in a ServiceName.java file, where ServiceName represents a unique

name. Several other source files are also dynamically generated such as the

DBConnecitons.java for connecting to the database with the access cre-

dentials specified in database.properties file, web.xml file containing the

configuration and deployment information, and index.jsp file for indexing

the Web application on the browser. Figure 3.5 shows all inputs for gener-

ating the source code of a typical layout of a SADI service presented as a

Maven2 Web application.

3.2.5 Querying SADI Services

Once the source code for a SADI Web service is generated, it is then compiled

and packaged for indexing in a SADI registry. End users execute queries to

services on a SADI-specific query engine. The queries are composed as W3C

standard SPARQL queries. When a query is submitted to the query engine,

it looks up services in the registry. Once they are discovered, the query en-

gine plans the execution steps of each query statement by orchestrating them

in order based on the OWL object/data properties and the types of classes

and individuals they are attached to. The services are then invoked for ex-

ecution in order. Each SADI service reads input values from an RDF input2https://maven.apache.org

71

Page 91: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 3.5: Steps for automatic generation of SADI Web service code

graph, instantiates the SQL-template query using those values, executes the

instantiated query on the source database, pulls results from the database,

and returns results as an RDF output graph. The engine integrates all re-

sults from the services and returns answers to the query to the end users.

Figure 3.6 shows how information stored in RDBs are returned as RDF via

the SADI services when end users submit SPARQL queries on a SADI query

engine.

72

Page 92: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 3.6: Querying source data in an RDB using SADI services fromSPARQL

3.2.6 Target End Users

The implementation of SADI services was initiated by targeting the integra-

tion of national and international bioinformatics data and resources which

are disparate yet inter-related. Contrary to the standard Web services, SADI

provided rich descriptions of functional requirements which allow service in-

teroperability, autonomous discovery as well as access to the resources in

real-time for bioinformatic researchers.

The adoption of SADI-specific deployment based on RDBs depends on build-

ing services manually as the first step and the ability to compose SPARQL

73

Page 93: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

queries for executing these services. Hence, expertise in certain areas are re-

quired as previously mentioned in Section 2.4.1.7. Such background knowl-

edge involve knowledge in ontology modeling, data modeling, RDB query

language such as SQL, programming language such as Java or Perl, and

SPARQL query language. Typically, software engineers in the area of Se-

mantic Technologies, say Semantic Web engineers, are known to acquire such

expertise and they would be able to deploy SADI services and query them.

Bioinformaticians are domain experts who could benefit from SADI service

deployments. Assuming that services have been manually created and de-

ployed by the Semantic Web engineers, they still need to be well-versed in

composing SPARQL query which requires considerable amount of time, ef-

fort and training. The intelligent GUI on HYDRA query engine allows these

group of users without expertise in writing SPARQL queries to automatically

create them from a graphical query canvas by merely typing keywords from

the domain. Users can create query graphs on HYDRA which are translated

into SPARQL queries automatically. This feature allows not only bioinfor-

maticians, but also experts in any domain, to compose SPARQL queries

using the terminologies they are familiar with.

However, building SADI services still remain a challenge for the Semantic

Web engineers because writing program code and SQL queries manually are

error-prone and time-consuming. The availability of the Valet SADI tool

reduces these problems to a great extent because program code for a SADI

service is written automatically without error in a few seconds and SQL

74

Page 94: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

queries are also generated automatically. With Valet SADI, the role of a

Semantic Web engineer can thus be limited to writing mapping rules instead

of a broad range of duties because once the mapping is available, SADI

services can be generated automatically from their I/O definitions.

With our Valet SADI tool, service generation becomes less error-prone and

more services can be created and deployed faster than ever before. Software

engineers with lower technical skills can be hired compared to those with

standard skills had the services been created manually.

Moreover, domain experts who are typically knowledgeable in ontology mod-

eling can consult with the engineers and participate in checking the mapping

rules. The final goal is to enable domain experts with sufficient training to

create SADI service automatically using Valet SADI.

75

Page 95: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 4

Implementation of Valet SADI

In this chapter, we present the formal algorithms for prototyping the gener-

ation of a SADI service. The inputs consumed and the outputs produced in

each module are accompanied by the corresponding algorithms where appli-

cable.

Figure 4.1 illustrates the roles of the algorithms used to generate a SADI ser-

vice. Algorithm 1 uses the input and output descriptions of a SADI service

and creates a graph for each of them. Algorithm 2 then uses these two graphs

as input and creates a semantic query Q. The domain ontology is translated

into First-Order formulas in TPTP syntax called TPTP-FOF according the

reduction formula listed in Table 4.2. The semantic mapping rules in PSOA

RuleML are also translated into TPTP-FOF according the mapping formu-

las listed in Table 4.3. Once the SQL-template queries are created from

the schematic answers by the reasoner and subsequently a query rewriter,

76

Page 96: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Algorithm 3 is used to create the service code for a SADI service with the

help of the input and the output graph created earlier. The generated code

reads input values based on the structure of the input graph, instantiates the

SQL-template query using these values, and creates the output based on the

structure of the output graph, when the service is executed.

Figure 4.1: Implementation of SADI service generation at a glance

4.1 Module-1: Semantic Mapping

There are several approaches to map a database to an ontology and a number

of them can be classified broadly into two categories depending on whether

77

Page 97: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

there is an existing ontology to map to or not. For an existing ontology,

mapping becomes challenging due to the fact that either creating a new

ontology at will or altering an existing ontology may not be allowed. This

is why mapping of an RDB to an existing ontology is difficult to automate

and they are created either completely manually as in [106, 107] or semi-

automatically as in [108], where user-inputs may be required in different

stages of the mapping process, or even automatically to an extent as in

[109, 110] which relies heavily on the data volume, lexical matching etc. for

the best possible mapping. Even with the automated approach, validation

of the mapping from an expert is necessary in order to retrieve the correct

answers.

Mapping of RDBs to the terminologies of the domain ontologies at the schema

level using axioms and/or rules are preferable to RDB materialization as

these rules are easy to write and modify whenever RDB schemas and/or

terminologies evolve over time. The goal is to find the best possible mapping

between these two formalisms. Several approaches described in [111–132]

aim to map the RDB schemas to the ontologies which allow interoperability

between the two formalisms. Together, these approaches cover a wide range

of challenges in mapping due to the fact that features that are common

in a complex RDB schema may not be so common in an ontology. The

principle examples of these discourses are one-to-many relations (foreign-key

attributes), simple inheritance, multiple inheritance, many-to-many relations

(with attributes), n-ary relations, among others. Table 4.1 shows how these

78

Page 98: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

RDB Schema-OntologyMapping Implementation Support

One-to-Many relations [111–116] [117–131]Simple inheritance [111,112,115,117–125,127–131]Multiple inheritance [117]Many-to-many relations [113–131]Many-to-many relations with attributes [115–117,123]n-ary relations [115,116,123–125]

Table 4.1: Approaches addressing typical discourse during mapping of RDBsto ontologies

problems have been addressed by existing mapping approaches over the years.

The fundamental difference between these approaches to ours is that the

answers are retrieved using a layer of SADI services, and we only need to

map at the schema level and not at the instance level.

4.1.1 Rules for Mapping Database to Ontology

To write the mapping rules, the positional psoa terms previously described in

Section 2.3.9 are used. Inspired by the existing approaches described above,

the following rules are used in Valet SADI to map the RDB schema and the

domain ontologies:

Rule 1: A table containing attributes without any foreign keys is mapped

to a class in the domain ontology. The types of services generated in this

scenario are allY, where all instances of Y are retrieved without requiring

any input and Y maps to an attribute in the table (see Section 5.2).

79

Page 99: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Rule 2: A table containing at least one foreign key is mapped to a class

in the domain ontology. For each foreign key, two object properties may be

used for mapping where one is mutually inverse of the other, if available.

The domain of the property refers to the instance of the current class and

the range refers to the instance of the referenced class.

Rule 3: A table containing a primary key which is also a foreign key ref-

erencing a table represents a simple inheritance as all tables of this type

are considered sub-tables in a hierarchy. Each of the sub-tables would be

mapped to class in the domain ontology which would be a subclass of the

class represented by the table referenced through the foreign key. In [133,134]

it was noted that to preserve simple inheritance in a hierarchy an entity can

be a member of at most one of the subclasses and every entity of a super-

class must belong to at least one subclass, also known as disjointment and

totalness, respectively.

Rule 4: A table containing a composite primary key (consisting of two or

more columns) whose components are also foreign keys whose fields are refer-

encing exactly two tables, is mapped to object properties where one is mutu-

ally inverse of the other. If the table of this category contains simple columns

which may have resulted from many-to-many relation with attributes, then

the combination of this rule and the following Rule 5 is applied.

80

Page 100: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Rule 5: A table containing a composite primary key whose components are

also foreign keys referencing more than two tables which do not contain any

duplicate of the simple attributes represents an n-ary relation. As OWL only

support unary and binary relations, a couple of solutions have been proposed

in [132] to address n-ary relations. One way to resolve is to create a new

class and n new properties where an instance of the relation linking the n

individuals is an instance of this class. A second way is applicable when the n-

ary relationship links individuals playing different roles in a structure without

any single individual acting as a subject of the relation. Unlike the previous

case, there is no subject and an individual is created to represent the relation

instance which links all participants. A class which corresponds to the bridge

table which relates to the classes representing the associated tables having is-

a relations is used for the mapping. If all records of the participating tables

are used then the representation of allValuesFrom restriction (i.e. value

restriction in Table 2.2) is used, otherwise someValuesFrom restriction (i.e.

exist restriction in Table 2.2) is used.

Rule 6: The rule addresses multiple inheritance in the RDB schema where

the tables are subclasses in more than one class or subclass relationship.

These tables in the RDB schema may look like bridge-tables as part of n-ary

relations in Rule 5 due to the fact that they are in fact weak entities whose

primary keys consist of two or more foreign keys referencing two or more

tables. However, the distinguishing feature is to assume that in addition

81

Page 101: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

to the primary key the table must contain inherited attributes belonging to

super-tables.

Each sub-table is mapped to a class which is a subclass of the classes corre-

sponding to the tables referenced by the foreign key of the sub-tables. Such

mapping essentially requires that a similar hierarchy is present in the domain

ontology.

Rule 7: For a primary key (or a column with UNIQUE constraint) in a

table, inverse functional equations (or inverse functional object property) are

used.

Rule 8: For a simple column i.e. without a foreign key constraint and

a column with NOT NULL constraint, data properties are used where the

domain is the class representing the table and the range is the datatype

expressed with XML schema. Similarly, mapping rules in the absence of

NOT NULL use data properties with the respective domain. However, the

range in this case may be specified as the type of available data or simply

without specifying any type information.

4.2 Module-2: Service Description

The input and output of a SADI service are described as OWL class ex-

pressions in a service ontology. The input and output of each service are

essentially graphs (see Section 2.4.1.2) because their instantiations represent

82

Page 102: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

RDF graphs. In this service description module, a graph is generated from

each of the input and output OWL class expression. Each of these graphs

will later be traversed for further processing in order to i) create the semantic

query Q, and ii) create the source code to read input values from the input

RDF instance and the source code to write output RDF instance after the

execution of the instantiated SQL query with the input values.

Algorithm 1 creates a directed graph from a valid OWL class expression cex

as an input. For an input class expression cexI and an output class expression

cexO, the algorithm produces a graph GI = (VI , EI) and an output graph

GO = (VO, EO), respectively.

In lines 2-4, the class expression and the set of vertices and edges are ini-

tialized. Due to the depth-first traversal of the entities in the OWL class

expressions, a stack is used as the data structure to keep track of the ver-

tices. In lines 5-19, an OWL class expression is traversed if it is an instance of

intersectionOf OWL expression (conjunction in Table 2.2). Line 6 adds the

instance of the expression to the set of vertices. If the expression starts with

an object or data property, lines 7-12 creates an edge and adds to the set of

edges. In lines 13-15, each operand is pushed to the stack. In lines 16-18,

each operand is recursively explored for continuing with the graph creation.

In lines 20-31, vertices and edges are created for an instance of the object-

SomeValuesFrom OWL class expression (exists restriction in Table 2.2). Line

30 is used to generate graph for the filler of the object property which may be

a simple or a complex class expression. This kind of class expression consists

83

Page 103: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

of a property and a class expression called a filler. In lines 32-43, vertices

and edges are added to the set of vertices and edges for an instance of the

objectExactCardinality OWL class expression (exists restriction with exact

cardinality in Table 2.2) in a similar way using a filler. In lines 44-66, vertices

and edges are added to the sets of vertices and edges for the instance of OWL

objectHasValue class expression (value restriction in Table 2.2). The edges

are object properties for all these instances. The range of the object prop-

erty is an individual, hence it is directly added to the set of vertices. In lines

67-86, data properties are added as the edges and datatypes are added as ver-

tices for the instance of dataSomeValuesFrom expression (exists restriction

in Table 2.2). In lines 87-106, vertices and edges are added for the instance

of dataExactCardinality expression (exists restriction with exact cardinality

in Table 2.2). Finally, in line 107 the graph is returned.

4.3 Module-3: SQL-template Query Genera-

tor

In order to generate an SQL-template query automatically, the method im-

plemented in [6], based on semantic querying, is used. The setting in that

work, similar to Valet SADI, involves an RDB containing the source data,

one or more expressive knowledge bases which are related to the schema of

the database, and a logical description of the relations in the RDB to link

them to the concepts and relations defined by the KB. The method is based

84

Page 104: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Algorithm 1 generateGraph(OWLClassExpression cex)Require: OWL Class Expression cex, an empty stack of vertices vStack,

initialize property label from parent node propLabelfrmP ar to nullEnsure: Return a rooted directed graph G = (V,E)

1: procedure generateGraph(OWLClassExpression cex)2: cex← ∅3: V ← ∅4: E ← ∅5: if cex is an instance of intersectionOf then6: Add vertex Vcex to V7: if propLabelfrmP ar has an object/data property label then8: if vStack is not empty then9: Add edge (pop(vStack), Vcex) to E with labelpropLabelfrmP ar

10: propLabelfrmP ar ← null11: end if12: end if13: for each operand ce in cex do14: push ce into vStack15: end for16: for each operand ce in cex do17: generateGraph(ce)18: end for19: end if20: if cex is an instance of objectSomeValuesFrom then21: if propLabelfrmP ar has an object/data property label then22: if vStack is not empty then23: Add vertex Vcex to V24: Add edge (pop(vStack), Vcex) to E with label

propLabelfrmP ar

25: propLabelfrmP ar ← null26: push cex into vStack27: end if28: end if29: propLabelfrmP ar ← object property attached to cex30: generateGraph(cexfiller)31: end if

85

Page 105: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

32: if cex is an instance of objectExactCardinality then33: if propLabelfrmP ar has an object/data property label then34: if vStack is not empty then35: Add vertex Vcex to V36: Add edge (pop(vStack), Vcex) to E with label

propLabelfrmP ar

37: propLabelfrmP ar ← null38: push cex into vStack39: end if40: end if41: propLabelfrmP ar ← object property attached to cex42: generateGraph(cexfiller)43: end if44: if cex is an instance of objectHasValue then45: if propLabelfrmP ar has no label then46: if vStack is not empty then47: Add vertex with named individual Vind of cex to V48: Add edge (pop(vStack), Vind) to E labeled with object

property49: else50: Add vertex Vcex to V51: Add vertex with named individual Vind of cex to V52: Add edge (Vcex, Vind) to E labeled with object property53: propLabelfrmP ar ← null54: push cex into vStack55: end if56: else57: Add vertex Vcex to V58: if vStack is not empty then59: Add edge (pop(vStack), Vcex) to E with label

propLabelfrmP ar

60: end if61: propLabelfrmP ar ← null62: push cex into vStack63: Add vertex with named individual Vind of cex to V64: Add edge (Vcex, Vind) to E labeled with object property65: end if66: end if

86

Page 106: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

67: if cex is an instance of dataSomeValuesFrom then68: if propLabelfrmP ar has no label then69: if vStack is not empty then70: Add vertex with datatype Vdatatype of cex to V71: Add edge (pop(vStack), Vdatatype) to E labelled with data

property72: else73: Add vertex Vcex to V74: Add vertex with datatype Vdatatype of cex to V75: Add edge (Vcex, Vdatatype) to E labelled with data property76: end if77: else78: if vStack is not empty then79: Add vertex Vcex to V80: Add edge (pop(vStack), Vcex) to E with label

propLabelfrmP ar

81: propLabelfrmP ar ← null82: Add vertex with named datatype Vdatatype of cex to V83: Add edge (Vcex, Vdatatype) to E labelled with data property84: end if85: end if86: end if87: if cex is an instance of dataExactCardinality then88: if propLabelfrmP ar has no label then89: if vStack is not empty then90: Add vertex with datatype Vdatatype of cex to V91: Add edge (pop(vStack), Vdatatype) to E labelled with data

property92: else93: Add vertex Vcex to V94: Add vertex with datatype Vdatatype of cex to V95: Add edge (Vcex, Vdatatype) to E labelled with data property

of cex96: end if

87

Page 107: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

97: else98: if vStack is not empty then99: Add vertex Vcex to V100: Add edge (pop(vStack), Vcex) to E with label

propLabelfrmP ar

101: propLabelfrmP ar ← null102: Add vertex with named datatype Vdatatype of cex to V103: Add edge (Vcex, Vdatatype) to E labelled with data property104: end if105: end if106: end if107: return G108: end procedure

on the use of resolution for incremental transformation of semantic queries

into sequences of SQL queries which can then be directly executed on the

RDB Management System (RDBMS).

The implementation of this method uses a FOL reasoner which does the

smart part of the job as a query preprocessor, in combination with a conven-

tional RDBMS which efficiently processes large volumes of data to answer

the generated SQL queries. The reasoner accepts a semantic query, the rele-

vant knowledge bases which combine the domain ontologies and the semantic

mappings together, and an abstraction of the database to generate a (possi-

bly infinite) number of expressions that are called schematic answers which

are then converted into SQL-template queries.

In order to answer a query over a RDB deductively modulo some KB,

where the DB can be represented as a collection of ground atomic facts,

a resolution-based FOL reasoner can be used. This approach is quite ineffi-

88

Page 108: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

cient because if the RDB is very large and the selectivity of the query is not

very high, many answers will be obtained with structurally identical proofs.

For example, a database containing facts patient(s1), . . . , patient(s100) from

a table of patient will provide 100 answers to the query patient(X) with a

refutational proof tree (see [6]). The reasoning becomes wasteful because the

number of proofs grows with the answers, in addition to the unsuccessful

attempts represented by derivations that do not lead to any answers.

Therefore, the main idea is that answers with similar proofs should be ob-

tained in bulk by using reasoning to find schematic answers to queries to

avoid wasteful repetitive resolution steps. Finding these answers is performed

by reasoning on an abstraction of the RDB in some resolution-based and

paramodulation-based calculus [135, 136] such that the schematic answers

can then be turned into regular RDBMS queries such as SQL.

The three inputs required for the resolution steps are: the semantic query

Q, the abstraction of the DB, and the KB representing both the domain

ontology and the semantic mapping.

The logical representation DB of the relational database is a set of ground

atomic non-equality formulas, each representing a row in a table in the

database. For example, a table containing facts patient(p1), . . . , patient(p100)

representing a table tbPatient can be generalized as patient(X), and thus an

abstraction of the table. As the abstraction is straightforward, no further

transformation tool is necessary in order to be used by the reasoner for gen-

erating schematic answers. On the other hand, the generation of a semantic

89

Page 109: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

query requires the use of a converter, while an ontology translator is used

on the domain ontology and a translator is used to translate the semantic

mapping rules. The conversion and translation processes are described next.

4.3.1 Service I/O to Semantic Query Converter

It was previously described in Section 2.4.1.2 that both the input and the

output of a SADI service are modeled such that they are rooted at the same

node. The converter described here creates a semantic query according to

this modeling. The creation of the query results from the combination of the

two graphs generated in Section 4.2.

The semantic query is Q = 〈φ〉 where the goal φ is a construct of the

form 〈X1, . . . , Xk〉〈Y1, . . . , Ym〉C, where C is a nonempty clause, k,m ≥ 0,

{X1, . . . , Xk, Y1, . . . , Ym} = vars(C), all Xi, Yj are pairwise distinct, all Xis

are distinguished variables, and all Yjs are undistinguished variables. With

the query Q the reasoner tries to find all distinguished variables Xi such

that there exist some Yj, such that φ(X,Y) is inconsistent with DB ∪ KB

using the refutational theorem proving [135]. The set Vdist contains the dis-

tinguished variables in Algorithm 2. Lines 2-10 loops through each edge in

a depth-first traversal order to create the predicates of the semantic query.

Each directed edge (v1, v2) in EI ∪ EO is checked for a label. If a label is

found, it is then checked against all object or data properties in the domain

ontologies. In line 11, the root node of GI is assumed as the root of both

GI and GO graphs in order to make sure that one of the predicates matches

90

Page 110: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

the explicit relationship between the input and output graph. A set for con-

taining the distinguished variables is initialized in line 12. In lines 13-19, the

distinguished variables are collected as data values from the data properties

by traversing only the output graph GO. The reason is generalization of the

requirement of having the output defined in both allY and getY ByX types of

services, while allY services requires no input. Lines 20-24 appear to return

the semantic query φ.

4.3.2 Ontology to TPTP Formula Translator

Most of the Description Logics (DLs) are specific subsets of First-Order Logic

(FOL). Thus DL interpretations have the same structures as FOL interpre-

tations based on the assumption that individuals are constants, concepts are

unary predicates and roles are binary predicates. As a result, reasoning prob-

lems in DLs are transferable to equivalent reasoning problems in FOL. Thus,

DLs can be reduced to FOL formulas, such as in a TPTP-FOF syntax which

can be processed in the FOL reasoner VampirePrime.

Table 4.2 shows the reduction from SHOIN DL1 to FOL where C and

C1 . . . Cn are concept expressions, and R is a role. The domain ontology

in Valet SADI is translated to TPTP-FOF sentences. A translated domain

ontology is added to Appendix A.1.1http://www.cs.man.ac.uk/˜ezolin/dl/

91

Page 111: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Algorithm 2 createSemanticQuery(GI , GO)Require: GI = (VI , EI), GO = (VO, EO)Ensure: A semantic query Q

1: procedure createSemanticQuery(GI , GO)2: for each (v1, v2) ∈ EI ∪ EO in a depth-first traversal order do3: if label((v1, v2)) 6= ∅ then4: if v2 a is an individual or a class then5: create a unary predicate label((v1, v2))(v2) and add to φ6: else7: create a binary predicate label((v1, v2))(v1, v2) and add toφ

8: end if9: end if

10: end for11: assume root of GI as the root of GO on φ12: Vdist ← ∅13: for each (vO1 , vO2) ∈ EO in a depth-first traversal order do14: if label((vO1 , vO2)) 6= ∅ then15: if label((vO1 , vO2)) is a data property then16: add vO2 to Vdist

17: end if18: end if19: end for20: if Vdist = ∅ then21: return null22: else23: return φ24: end if25: end procedure

92

Page 112: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Description Logics First-Order LogicC1 u . . . u Cn C1(x) ∧ . . . ∧ Cn(x)C1 t . . . t Cn C1(x) ∨ . . . ∨ Cn(x)¬C ¬C(x){o1, . . . , on} x = o1 ∨ . . . ∨ x = on

∃R.C ∃y.(R(x, y) ∧ C(y))∀R.C ∀y.(R(x, y)→ C(y))> nR ∃>ny.R(x, y)6 nR ∃6ny.R(x, y)C1 v C2 ∀x.(C1(x)→ C2(x))R1 v R2 ∀x, y.(R1(x, y)→ R2(x, y))Trans(R), R is transitive ∀x, y, z.(R(x, y) ∧R(y, z)→ R(x, z))a : C C(a)〈a, b〉 : R R(a, b)a = b a = ba 6= b ¬(a = b)R−, R is symmetric ∀x, y.(R(x, y)⇔ R(y, x))

Table 4.2: Reduction of SHOIN Description Logics to First-Order Logic

4.3.3 PSOA Rules to TPTP Formula Translator

The PSOA2TPTP translator [137] maps a KB and a query in the PSOA

RuleML presentation syntax exemplified in Section 2.3.9 to the TPTP in-

terchange language. The translated documents are then executed to answer

the query by the VampirePrime reasoner. The Valet SADI framework also

requires translation of the semantic mapping rules written in PSOA RuleML

to be used by VampirePrime. Since PSOA2TPTP was designed to answer

object-relational queries, one of its normalization steps (“objectification”) in-

troduces OIDs, which are not needed for our translation purposes, hence pre-

vent its reuse. This motivated us to implement a syntactic translator which

93

Page 113: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

translates the mapping rules containing positional terms into their equivalent

TPTP-FOF with positional arguments. The slotted terms in PSOA RuleML

are used to represent object-centered knowledge bases. Hence, translation of

slots has not been a considered as a requirement for implementing the Valet

SADI framework.

Inspired by PSOA2TPTP, we reuse the translation function τpsoa(.) for map-

ping PSOA constructs typically used in the mapping rules to a TPTP con-

struct. Table 4.3 shows the mapping of PSOA to TPTP-FOF constructs used

in our mapping rules. During the translation, the variables are converted to

uppercase as TPTP variables start with uppercase letters.

PSOA Constructs TPTP-FOF Constructs?v Va = b τpsoa(a) = τpsoa(b)p(x1 x2 . . . xn) p(τpsoa(x1), τpsoa(x2), . . . , τpsoa(xn))And(f1 . . . fn) (τpsoa(f1) & . . . & τpsoa(fn)Or(f1 . . . fn) (τpsoa(f1) | . . . | τpsoa(fn)Exists(?v1 . . .?vn f) ? [τpsoa(?v1) . . . τpsoa(?vn)] : τpsoa(f)Forall(?v1 . . .?vn f) ! [τpsoa(?v1) . . . τpsoa(?vn)] : τpsoa(f)ϕ : − ψ τpsoa(ψ) => τpsoa(ϕ)

Table 4.3: Mapping from PSOA constructs to TPTP-FOF constructs

For example, the following rule in the KB has two relations has last name

and db Npatient containing positional arguments stating that each patient

has a last name. The uninterpreted function identityForPatient with the

help of function identityForPatientToPatWID, which are inverse functional

to each other, is used to identify a unique patient (see lines 3-4 in Figure 5.4

94

Page 114: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

and their translations in Appendix A.3).

Forall ?patWID ?patFacWID ?patLastName ?patFirstName (

has_last_name(identityForPatient(?patWID) ?patLastName) :-

db_Npatient(?patWID ?patFacWID ?patLastName ?patFirstName))

The translated rule is expressed as a TPTP-FOF axiom as follows:

fof(attribute_patLastName_represents_last_name_of_patient,axiom,

! [PatWID, PatFacWID, PatLastName,PatFirstName] :

(db_Npatient(PatWID, PatFacWID, PatLastName,PatFirstName)

=>

has_last_name(identityForPatient(PatWID), PatLastName))

).

In Section 5.4, the mapping rules in PSOA RuleML are illustrated and their

translations are added in Appendix A.3.

4.4 Module-4: Service Generator

In Figure 3.5, we have shown what a typical SADI service consists of. Here,

we present an algorithm that only generates the source code for executing the

tasks of the service: extracting input values, instantiating SQL queries with

the values in place of formal parameters within the condition (i.e. WHERE

clause), and creating the output after the query is executed. The rest of

the auxiliary source files are dynamically generated from templates and the

95

Page 115: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

process is out of the scope of this chapter. In order to generate the code,

Algorithm 3 uses the graphs representing the input and output and the unin-

stantiated SQL statement SSQL−template generated in Module-3. Lines 3-14

shows how the input graph GI is traversed to create statements si to read

data values and instances of classes from the RDF input. In line 15, the

instantiated SQL statement is appended to the ordered list of statements

in SJava. Lines 16-25 shows how the graph GO representing the output de-

scription is traversed to generate the code for creating an RDF output graph

by adding the results from the execution, as data values with data proper-

ties and as individuals with object properties. Line 26 appears to return an

ordered list of statements.

In order for the service code to be generated automatically, the roles of Algo-

rithm 1, Algorithm 2, Table 4.2 and Table 4.3 have been thoroughly tested.

Although the subsequent chapters illustrate a number of services to show

the usefulness of these methodologies, not all of them are suitable during the

service generation. For example, a domain ontology may have disjunctive

class expressions (see disjunction in Table 2.2) which are translated by the

reduction formulas in Table 4.2. In the current Valet SADI implementation,

the service ontology does not support input or output of a service to be

expressed as disjunctive class expressions. The reason is that for a single dis-

junctive expression two or more services have to be generated from a single

definition, one for each operand. Although this seems like a restriction, disal-

lowing disjunctive expressions either in the input or the output can be easily

96

Page 116: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

complemented by defining two or more distinct services for each operand.

Algorithm 3 Generate SADI Service codeRequire: GI = (VI , EI), GO = (VO, EO), SSQL−template

Ensure: Ordered list of statements SJava

1: procedure generateSADICode(GI , GO, SSQL−template)2: SJava ← ∅3: for each (vI1 , vI2) ∈ EI do4: if label((vI1 , vI2)) 6= ∅ then5: if label((vI1 , vI2)) is a data property then6: create si to extract data value Ilit of vI27: instantiate SSQL−template with Ilit in place of condition8: else if vI2 is an individual or a class then9: create si to extract instance Iind of vI2

10: instantiate SSQL−template with Iind in place of condition11: end if12: append si to SJava

13: end if14: end for15: append SSQL−template to SJava

16: for each (vO1 , vO2) ∈ EO do17: if label((vO1 , vO2)) 6= ∅ then18: if label((vO1 , vO2)) is a data property then19: create so to add data value Olit as vO2

20: else if vO2 is an individual or a class then21: create so to add instance Oind as vO2

22: end if23: append so to SJava

24: end if25: end for26: return SJava

27: end procedure

97

Page 117: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

4.5 Structure of Valet SADI Codebase

The Java source of the Valet SADI framework is hosted on bitbucket2. The

implementation of the framework is organized into following 7 components:

• src: It contains the source code for all the algorithms listed in this chap-

ter and a list of resources. Among the resources, a validator is used to

ensure the I/O validity of the services, a JAXB library-based schema

definition for translating the domain ontology, the VampirePrime rea-

soner, and the skeletons and stub for creating the codebase of a SADI

service in Java.

• knowledgebase: It contains both the domain ontology and semantic

mapping rules. Both of the input rules in PSOA RuleML syntax and

its translation into TPTP-FOF are maintained.

• rdb: It contains a View of the relational database and its abstraction.

• semanticquery: It contains the semantic query created from the

declarative input and output definitions of the service in the service

ontology. Both Algorithm 1 and Algorithm 2 are used before the query

is created.

• schematicanswers: The answers are generated once the inputs in

Module-3 are fed to the VampirePrime reasoner. The answers are es-

sentially a set of results to the semantic query.2https://bitbucket.org/sadnanalmanir/valetsadi

98

Page 118: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

• sql:The SQL-specific query rewriter creates the SQL-template query

using the schematic answers.

Once the SQL-template query is created successfully, the source code

for a SADI service is created as a standalone Web application source.

99

Page 119: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 5

Service Generation and Target

Application Domain

In this chapter, we demonstrate how SADI Semantic Web services are gen-

erated automatically using the Valet SADI framework. For this we use a

schema extracted from The Ottawa Hospital Data Warehouse as the source.

We create an ontology as part of our knowledge base which describes the

domain corresponding to the schema. We show how to write declarative se-

mantic mappings between the schema and the ontology using PSOA RuleML

and how to define the input and the output of a service in OWL. We then

show the generation of SQL-template queries and code for a complete SADI

service. Although a total of 11 SADI services are generated, we only provide

the steps for 3 services in detail.

100

Page 120: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

5.1 Hospital-Acquired Infection (HAI)

The target application domain in this chapter is dedicated to the surveil-

lance for Hospital-Acquired Infections (HAI) which is a common scenario

in clinical intelligence. Infections acquired in hospitals are a serious prob-

lem costing millions of dollars every year. To address the problem access to

infections-related information should be available to experts such as surveil-

lance practitioners. In previous work [11, 12] a surveillance infrastructure

was set up to answer target queries using SADI services so that infections

related data could be quickly accessed by the practitioners who lack technical

expertise in querying relational databases. Although this approach showed

promising results, creating SADI services manually was found to be a tedious

process. With Valet SADI framework, service generation can be automated.

The services are used to retrieve data from a single table or multiple tables

through joins and return data as RDF. In the following sections, we list all

steps for generating SADI services automatically using Valet SADI.

5.2 Steps for Generating a SADI Service

A typical SADI service is uniquely named in the form of getY ByX, where the

output Y is retrieved based on the input X. A special case of a SADI service

is allY, where all instances of Y are retrieved without requiring any input.

The steps for generating a SADI service by Valet SADI, either as getY ByX

or as allY, are demonstrated next. The service getAllergyByPatientId is an

101

Page 121: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

example of getY ByX while the service allPatientIds is an example of allY.

5.2.1 Documenting Semantic Mapping Rules

In order to generate a SADI service using our framework, suitable declarative

semantic mappings must be established between the schemata of the source

data and the domain ontology. In this module, the mappings are expressed

using PSOA RuleML language.

5.2.1.1 Relational Database

Figure 5.1 shows the normalized data model of The Ottawa Hospital Data

Warehouse (TOHDW). In this model, the table Npatient contains 37 at-

tributes and the table Nservice contains 28 attributes. Similarly,

NhrProcedure, NhrDiagnosis, NhrAllergy, Nfacility, and NphmService

tables contain large numbers of attributes. Due to space constraints and

in order to simplify the illustration, an extract of this model is used con-

taining select tables and attributes. The extract is sufficient to illustrate

all the steps necessary for generating SADI services based on the declar-

ative semantic mappings between the schema and the domain ontologies.

The illustration can easily be extended to replicate service generation for the

complete TOHDW model.

The extract of the model is presented by the schema in Figure 5.2. The

schema contains tables representing patients, their allergies, the diagnoses

and the procedures performed on them, the facilities they are admitted in,

102

Page 122: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 5.1: The Ottawa Hospital Data Warehouse

and the services provided by the pharmacy for their medication.

In the schema extract, table Npatient contains basic information about all

patients; table NhrDiagnosis contains information about diagnoses, table

NhrAbstract contains general medical abstract information regarding the

diagnoses and procedures, table Nfacility contains description of the hos-

pital facilities, table Nallergy contains information about allergies, table

Nencounter contains records during the encounter of patients for various

services such as pharmacy, diagnosis etc., table Nservice contains generic

103

Page 123: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 5.2: Schema extract from The Ottawa Hospital Data Warehouse

information regarding services received by patients, and table NphmService

contains pharmacy-related records of the administered drugs.

The integer-valued attribute patWID is used to identify patients, hdgWID

identifies each diagnosis record, hraWID is the primary key for NhrAbstract,

facWID identifies a hospital facility, and algWID identifies an allergy. Diag-

nosis information in NhrDiagnosis for a patient in Npatient is accessed via

104

Page 124: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

the foreign key attribute hraPatWID in NhrAbstract. Attribute patFacWID

in Npatient refers to the facility the patient is admitted in while the at-

tribute algPatWID in Nallergy refers to the allergy status of a patient. The

attribute encWID is a unique identifier for each encounter entry, svcWID is

the unique identifier for each service entry such as pharmacy, radiology, labo-

ratory etc., svcEncWID is a pointer to a unique identifier for each encounter,

svcTableCd refers to the type of service, svcOrderedBy refers to the person

who ordered the service, svcPerformedBy refers to the person who performed

the service. The attribute phmWID is a unique identifier for each pharmacy

service entry, phmSvcWID is the foreign key for each service, phmOrderDesc

refers to the brand name/ingredient of the medication, phmStartDtm refers

to the start date/time, phmEndDtm refers to end date/time, phmStrength-

Desc refers to stregth description, and phmDosageForm refers to dosage form

(e.g. tablet).

Mapping may typically be guided case-by-case and by requirements of the

types of services to be generated. While in some cases domain ontologies

may be sufficiently rich in classes, properties, axioms to be mapped easily to

the RDB schema, there may be other cases where the ontologies lack corre-

sponding entities to map to the schema. This problem may be noticed in case

of RDB schemas as well. However, our approach is flexible to accommodate

changes or having multiple relations between tables, such as having has and

is afraid of relations between the two tables Npatient and Nallergy. For

modeling and generation of an additional service to work when a new prop-

105

Page 125: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

erty such as is afraid of is added, it is sufficient in Valet SADI to add a new

mapping rule using is afraid of, similar to an existing mapping rule which

uses the has property. Section 7.4 illustrates a scenario in the context of

change management for malaria surveillance where a mapping rule is needed

to be modified due to an unexpected change in the ontology.

5.2.1.2 Domain Ontology

In the domain ontology in Figure 5.3, the hierarchy of classes includes Per-

son, Patient (subclassed to Person), Diagnosis, Allergy, Facility, Procedure,

Service, Abstract, Encounter and Pharmacy.

The object properties represent the relations between entities in the domain

ontology. Among these properties has abstract record links diagnoses infor-

mation to medical abstract records, abstractRecordForPatient links abstract

records to patients, has diagnosis links patients to diagnoses, has allergy links

patients to allergies, has facility reference links patients to hospital facilities,

undergo procedure links patients with procedures performed on them, coun-

cel at links patients with their pharmacy, encountersPatient links encounter

information to a patient, service for encounter links service information to

encounter information, and prescription service links pharmacy information

to service information.

The data properties representing the literal values of the entities include

has diagnosis code specifying the codes of diagnoses, has adverse reaction to

specifying the name of the allergens, has facility description specifying the

106

Page 126: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

hospital facility, description of order specifying the medication, has start time

specifying the time of start, has first name and has last name specifying the

first and last name, respectively.

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix owl: <http://www.w3.org/2002/07/owl#> .@prefix terminology: <http://localhost:8080/healthcare/domain-ontologies/terminology.owl#> .@prefix : <http://localhost:8080/healthcare/domain-ontologies/terminology.owl#> .@prefix xml: <http://www.w3.org/XML/1998/namespace> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@base <http://localhost:8080/healthcare/domain-ontologies/terminology.owl> .<http://localhost:8080/healthcare/domain-ontologies/terminology.owl> rdf:type owl:Ontology ;owl:versionIRI <http://localhost:8080/healthcare/domain-ontologies/terminology.owl> .

# Object Propertiesterminology:abstractRecordForPatient rdf:type owl:ObjectProperty .terminology:has_abstract_record rdf:type owl:ObjectProperty .terminology:has_diagnosis rdf:type owl:ObjectProperty .terminology:has_facility_reference rdf:type owl:ObjectProperty .terminology:has_allergy rdf:type owl:ObjectProperty .terminology:undergo_procedure rdf:type owl:ObjectProperty .terminology:councel_at rdf:type owl:ObjectProperty .terminology:encountersPatient rdf:type owl:ObjectProperty .terminology:service_for_encounter rdf:type owl:ObjectProperty .terminology:prescription_service rdf:type owl:ObjectProperty .# Data Propertiesterminology:has_adverse_reaction_to rdf:type owl:DatatypeProperty .terminology:has_diagnosis_code rdf:type owl:DatatypeProperty .terminology:has_facility_description rdf:type owl:DatatypeProperty .terminology:description_of_order rdf:type owl:DatatypeProperty .terminology:has_first_name rdf:type owl:DatatypeProperty .terminology:has_last_name rdf:type owl:DatatypeProperty .terminology:has_start_time rdf:type owl:DatatypeProperty .# Classesterminology:Allergy rdf:type owl:Class .terminology:Diagnosis rdf:type owl:Class .terminology:Facility rdf:type owl:Class .terminology:Patient rdf:type owl:Class ;

rdfs:subClassOf terminology:Person .terminology:Person rdf:type owl:Class .terminology:Pharmacy rdf:type owl:Class .terminology:Procedure rdf:type owl:Class .terminology:Service rdf:type owl:Class .terminology:Abstract rdf:type owl:Class .terminology:Encounter rdf:type owl:Class .

Figure 5.3: Terminologies in the Hospital-Acquired Infections domain ontol-ogy terminology.owl

5.2.1.3 Mapping Rules in PSOA RuleML

Semantic mapping rules are specified based on the rules listed in Section 4.1.1.

The set of PSOA rules in Figure 5.4 illustrates the semantic mappings of

107

Page 127: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

the terminologies from the domain ontology to four relational tables, namely

Npatient, NhrDiagnosis, NhrAbstract and Nfacility. These rules define

a virtual RDF graph containing all triples that can be inferred from the table

records. Equations in lines 3-4, 13-16, 22-23, and 41-42 introduce and ax-

iomatise auxiliary uninterpreted functions like identityForPatient, map-

ping patient identifiers from the database to entities representing the corre-

sponding patients in the virtual semantic model, and the inverse functions like

identityForPatientTopatWID, mapping such patient entities back to the

identifiers from the database. Rules in lines 5-7, 24-26, and 43-45 classify the

entities as instances of the corresponding classes Patient, Diagnosis, and

Facility, respectively, in the virtual semantic model. Rules in lines 17-19,

27-32, 46-48, and 51-53 populate the properties abstractRecordForPatient,

has abstract record, has diagnosis code, has facility description,

and has facility reference from single records in the tables.

Due to space constraints, mapping rules for the Nallergy table are shown in

Appendix A.2. Lines 56-57 introduce and axiomatise auxiliary uninterpreted

function identityForAllergy mapping allergy identifiers in the table to

the virtual model while the inverse function identityForAllergytoalgWID

maps such allergy entities back to the identifiers from the table. Rules in lines

61-66 populate the properties is allergic to and has adverse reaction to

from records in the table.

108

Page 128: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

1 RuleML (2 Assert (3 Forall ?patWID (identityForPatientTopatWID(identityForPatient(?patWID)) = ?patWID)4 Forall ?P (identityForPatient(identityForPatientTopatWID(?P)) = ?P)5 Forall ?patWID ?patFacWID ?patLastName ?patFirstName (6 Patient(identityForPatient(?patWID)) :-7 db_Npatient(?patWID ?patFacWID ?patLastName ?patFirstName))8 Forall ?patWID ?patFacWID ?patLastName ?patFirstName (9 has_last_name(identityForPatient(?patWID) ?patLastName) :-10 db_Npatient(?patWID ?patFacWID ?patLastName ?patFirstName))11 )12 Assert (13 Forall ?hraWID (14 identityForAbstractTohraWID(identityForAbstract(?hraWID)) = ?hraWID)15 Forall ?P (16 identityForAbstract(identityForAbstractTohraWID(?P)) = ?P)17 Forall ?hraWID ?hraPatWID (18 abstractRecordForPatient(identityForAbstract(?hraWID) identityForPatient(?hraPatWID)) :-19 db_NhrAbstract(?hraWID ?hraPatWID))20 )21 Assert (22 Forall ?hdgWID (identityForDiagnosisTohdgWID(diagnosisEntity(?hdgWID)) = ?hdgWID)23 Forall ?P (identityForDiagnosis(identityForDiagnosisTohdgWID(?P)) = ?P)24 Forall ?hdgWID ?hdgHraWID ?hdgCd (25 Diagnosis(identityForDiagnosis(?hdgWID)) :-26 db_NhrDiagnosis(?hdgWID ?hdgHraWID ?hdgCd))27 Forall ?hdgWID ?hdgHraWID ?hdgCd (28 has_abstract_record(identityForDiagnosis(?hdgWID) identityForAbstract(?hdgHraWID)) :-29 db_NhrDiagnosis(?hdgWID ?hdgHraWID ?hdgCd))30 Forall ?hdgWID ?hdgHraWID ?hdgCd (31 has_diagnosis_code(identityForDiagnosis(?hdgWID) ?hdgCd) :-32 db_NhrDiagnosis(?hdgWID ?hdgHraWID ?hdgCd))33 )34 Assert (35 Forall ?Diag ?Abs ?Pat (36 has_diagnosis(identityForPatient(?Pat) identityForDiagnosis(?Diag)) :-37 And(has_abstract_record(identityForAbstract(?Abs) identityForPatient(?Pat))38 diagnois_encountered(identityForDiagnosis(?Diag) identityForAbstract(?Abs))))39 )40 Assert (41 Forall ?facWID (identityForFacilityTofacWID(identityForFacility(?facWID)) = ?facWID)42 Forall ?P (identityForFacility(identityForFacilityTofacWID(?P)) = ?P)43 Forall ?facWID ?facFacilityDesc (44 Facility(identityForFacility(?facWID)) :-45 db_Nfacility(?facWID ?facFacilityDesc))46 Forall ?facWID ?facFacilityDesc (47 has_facility_description(identityForFacility(?facWID) ?facFacilityDesc) :-48 db_Nfacility(?facWID ?facFacilityDesc))49 )50 Assert (51 Forall ?patWID ?patFacWID ?patLastName ?patFirstName (52 has_facility_reference(identityForPatient(?patWID) identityForFacility(?patFacWID)) :-53 db_Npatient(?patWID ?patFacWID ?patLastName ?patFirstName))54 )55 )

Figure 5.4: Mapping rules in PSOA RuleML between the schema extract andterminology.owl ontology

109

Page 129: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

5.2.2 Declarative Description of Services

In this module, the input and output of a SADI service are defined in a

service ontology as OWL class expressions, ideally using an ontology editing

tool such as protege (see 2.3.8.1). For convenience, the services are identified

as S1 through S11.

5.2.2.1 Defining I/O of allY Services

Only one instance of service-generation of this form is described here. The

service S1 is used to retrieve all instances of an attribute from a single table.

This is a special case of a SADI service because it generates output without

expecting any input (see 2.4.1.3).

S1: The service retrieves all patient ids from the Npatient table. The output

is an instance of the class Patient represented by an id and the input is

expressed as an enumerated individual of Patient which is distinguished by

the curly braces ({, }). It does not expect any value other than the root

node at the input level. Hence, the input is treated as a dummy input.

Name: allPatientIds

Input: {Patient}

Output: type value Patient

Source Table: Npatient

As an instance of allY services, the input definition is not processed because

no input values are expected for this type of services. The output defini-

110

Page 130: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

tion is processed according to the graph generation algorithm presented in

Section 4.2 and converted into the directed graph shown in Figure 5.5.

Figure 5.5: Output graph of allPatientIds

5.2.2.2 Defining I/O of getYByX Services

Whereas allY services are used to draw data from a single table without

expecting any input, getY byX services draw data Y from one or more tables

based on the input X. The service getLastnameFirstnameByPatientId is used

to retrieve data from a single table while the service getAllergyByPatientId

retrieves data from two tables using a table-join. More services drawing data

from multiple tables are listed in the subsequent sections.

S2: It retrieves the last name and the first name of a patient based on the

patient id from the Npatient table. The input is an instance of a Patient

represented by an id and the output decorates the input instance by adding

the last name and the first name as string literals using the has last name

and has first name properties, respectively.

Name: getLastnameFirstnameByPatientId

111

Page 131: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Input: type value Patient

Output: (has last name some string) and (has first name some string)

Source table: Npatient

The graphs generated from the input and the output definitions are repre-

sented in Figure 5.6 and Figure 5.7, respectively.

Figure 5.6: Input graph ofgetLastnameFirstnameByPatientId

Figure 5.7: Output graph ofgetLastnameFirstnameByPatientId

S3: It retrieves all allergens based on a patient id from Npatient and Nal-

lergy tables. The input is an instance of a Patient represented by an id and

the output decorates the input instance by adding an instance of Allergy

using the has allergy object property which is caused by the string-valued

allergens using the has adverse reaction to data property.

Name: getAllergyByPatientId

Input: type value Patient

Output: has allergy some ((type value Allergy) and (has adverse reaction to

some string))

Source table: Npatient and Nallergy

112

Page 132: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

The generated directed graphs for the input and the output are shown in

Figure 5.8 and Figure 5.9, respectively.

Figure 5.8: Input graph ofgetAllergyByPatientId

Figure 5.9: Output graph ofgetAllergyByPatientId

5.2.3 Generating SQL-template Queries

The following inputs are required to generate the SQL-template query: database,

a semantic query, the domain ontology as part of the knowledge base, and

the declarative semantic mapping rules as part of the knowledge base.

The tables in our database schema can be represented logically as follows:

db_Nfacility(facWID, facFacilityDesc)db_Npatient(patWID, patFacWID, patLastName, patFirstName)db_Nallergy(algWID, algPatWID, algAdverseReaction)db_Nencounter(encWID, encPatWID)db_Nservice(svcWID, svcEncWID, svcTableCd, svcOrderedBy, svcPerformedBy)db_NphmIngredient(phmWID, phmSvcWID, phmOrderDesc, phmStartDtm, phmEndDtm,

phmStrengthDesc, phmDosageForm)db_NhrAbstract(hraWID, hraEncWID, hraPatWID)db_NhrDiagnosis(hdgWID, hdgHraWID, hdgHraEncWID, hdgCd)db_NhrProcedure(hprcWID, hprcHraWID, hprcHraEncWID, hprcStartTime)

As predicate names in TPTP syntax (see Section 2.3.5) are constants which

start with lowercase letters, the table names are presented with a prefix

113

Page 133: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

db . Throughout the rest of the chapter, the rest of the predicates starting

with a capital letter are represented with a prefix p except for the answer

predicate which is a special predicate as part of the semantic query containing

distinguished variables only.

5.2.3.1 Converting I/O into Semantic Query

A converter is used to transform the I/O descriptions of a service into a

semantic query based on Algorithm 2 described in Section 4.3.1. The graphs

generated from the input and output service descriptions are traversed in

order to list the distinguished and undistinguished variables. The leaf nodes

matching the classes and individuals are converted into unary predicates

while the directed edges matching object properties and data properties are

converted into binary predicates. Concrete representations of the converted

I/O descriptions of services are illustrated below:

S1: The following semantic query is created by traversing the graph in Fig-

ure 5.5 where all distinguished variables are added to arguments of an answer

predicate. Variable Z0 is the distinguished variable here to be substituted

by a unique patient identifier.

p Patient(identityForPatient(Z0)), answer(Z0) (5.1)

S2: The semantic query is generated after traversing both graphs in Fig-

ure 5.6 and Figure 5.7. The distinguished variables Z1 and Z2 are added to

114

Page 134: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

the answer predicate as arguments which would be substituted for the last

and first name. The double-quote symbols around the undistinguished vari-

able Z0 indicate that it is to be expected as an input. Ultimately, Z0 will be

placed inside the WHERE clause of the SQL-template query as shown in [6].

p Patient(identityForPatient(''Z0'')),

p has last name(identityForPatient(''Z0''), Z1),

p has first name(identityForPatient(''Z0''), Z2),

answer(Z1, Z2)

(5.2)

S3: The semantic query generated from Figure 5.8 and Figure 5.9 consists of

has allergy and has adverse reaction to predicates. The distinguished vari-

able Z2 is added to the answer predicate and is expected to be substituted

by the name of the allergen. Among the undistinguished variables, Z0 will

be substituted during the instantiation of the SQL query.

p Patient(identityForPatient(''Z0'')),

p Allergy(identityForAllergy(Z1)),

p has allergy(entityForPatient(''Z0''), entityForAllergy(Z1)),

p has adverse reaction to(entityForAllergy(Z1), Z2), answer(Z2)

(5.3)

115

Page 135: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

5.2.3.2 Translating Domain Ontology to TPTP-FOF

The domain ontology is translated to TPTP-FOF axioms based on the trans-

lation schemes shown in Table 4.2. The translator uses an XML Schema Def-

inition (XSD) document for an OWL ontology and creates Java classes for

each OWL constructs by traversing the schema. A parser based on the JAXB

library [138] is used for parsing the schema. The generated Java classes are

then used to create Abstract Syntax Objects (ASOs) for OWL constructs.

Based on the formulas to reduce SHOIN (D) DL to FOL in Table 4.2, the

ASOs are translated to TPTP-FOF. Due to space constraints the complete

translation of the domain ontology terminology.owl is listed in Appendix A.1.

5.2.3.3 Translating PSOA Rules to TPTP-FOF

We illustrate only those translations of PSOA mapping rules which are rel-

evant to the services S1, S2, and S3. More rules and equations translated

from PSOA RuleML to TPTP-FOF are added to Appendix A.3.

Service S1: The following two equations and one rule are needed from the

semantic mapping rules corresponding to the lines 3-7 of the mapping rules

illustrated in Figure 5.4.

Each axiom has a unique identifier which can be randomly generated. For

clarity, an identifier such as inverse for entityForPatient 1 is used here to

show a translated TPTP-FOF axiom. Similar identifiers are used for the

rest of the translated rules.

116

Page 136: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( i n v e r s e f o r e n t i t y F o r P a t i e n t 1 , axiom ,

! [ PatWID ] : ( entityForPatientToPatWID ( ent i tyForPat i en t (PatWID) ) = PatWID

)

) .

f o f ( i n v e r s e f o r e n t i t y F o r P a t i e n t 2 , axiom ,

! [P ] : ( en t i tyForPat i en t ( entityForPatientToPatWID (P) ) = P)

) .

f o f ( t a b l e N p a t i e n t r e p r e s e n t s i n s t a n c e s o f c o n c e p t P e r s o n , axiom ,

! [ PatWID, PatFacWID , PatLastName , PatFirstName ] :

( db Npatient (PatWID, PatFacWID , PatLastName , PatFirstName )

=>

p Pat i ent ( ent i tyForPat i en t (PatWID) ) )

) .

S2: The translation of two rules map the last name and the first name to

an instance of a patient. The rule to map last name corresponds to the lines

8-10 of the mapping rule in Figure 5.4. The rule to map the first name can

be translated in a similar way.

f o f ( a t t r i b u t e P a t L a s t N a m e r e p r e s e n t s l a s t n a m e o f a P a t i e n t , axiom ,

! [ PatWID, PatFacWID , PatLastName , PatFirstName ] :

( db Npatient (PatWID, PatFacWID , PatLastName , PatFirstName )

=>

p has la s t name ( ent i tyForPat i en t (PatWID) , PatLastName ) )

) .

f o f ( a t t r i b u t e P a t F i r s t N a m e r e p r e s e n t s f i r s t n a m e o f a P a t i e n t , axiom ,

! [ PatWID, PatFacWID , PatLastName , PatFirstName ] :

( db Npatient (PatWID, PatFacWID , PatLastName , PatFirstName )

=>

p h a s f i r s t n a m e ( ent i tyForPat i en t (PatWID) , PatFirstName ) )

) .

117

Page 137: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

S3: The translation includes two identity equations and three rules. The

equations are used for the unique primary key of the Nallergy table. The

rest of the rules map the table Nallergy to the concept Allergy, two tables

Npatient and Nallergy using a foreign key, and an attribute for the allergen

called AlgAdverseReaction to a data value.

f o f ( i n v e r s e f o r i d e n t i t y F o r A l l e r g y 1 , axiom ,

! [ AlgWID ] : ( identityForAllergyToAlgWID ( i d e n t i t y F o r A l l e r g y (AlgWID) ) =

AlgWID)

) .

f o f ( i n v e r s e f o r i d e n t i t y F o r A l l e r g y 2 , axiom ,

! [P ] : ( i d e n t i t y F o r A l l e r g y ( identityForAllergyToAlgWID (P) ) = P)

) .

f o f ( t a b l e N a l l e r g y r e p r e s e n t s i n s t a n c e s o f c o n c e p t A l l e r g y , axiom ,

! [ AlgWID , AlgPatWID , AlgAdverseReaction ] :

( db Nal l e rgy (AlgWID , AlgPatWID , AlgAdverseReaction )

=>

p Al l e rgy ( i d e n t i t y F o r A l l e r g y (AlgWID) ) )

) .

f o f ( a t t r i b u t e A l g P a t W I D u s e d a s f o r e i g n k e y t o p a t i e n t , axiom ,

! [ AlgWID , AlgPatWID , AlgAdverseReaction ] :

( db Nal l e rgy (AlgWID , AlgPatWID , AlgAdverseReaction )

=>

p h a s a l l e r g y ( i d e n t i t y F o r P a t i e n t (AlgPatWID) , i d e n t i t y F o r A l l e r g y (AlgWID) ) )

) .

f o f ( a t t r i b u t e A l g A d v e r s e R e a c t i o n r e p r e s e n t s d a t a v a l u e o f a l l e r g y n a m e , axiom

,

! [ AlgWID , AlgPatWID , AlgAdverseReaction ] :

( db Nal l e rgy (AlgWID , AlgPatWID , AlgAdverseReaction )

=>

p h a s a d v e r s e r e a c t i o n t o ( i d e n t i t y F o r A l l e r g y (AlgWID) , AlgAdverseReaction ) )

) .

118

Page 138: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

5.2.3.4 Rewriting Schematic Answers to SQL

Now that all 4 inputs are ready in TPTP-FOF format, the VampirePrime

reasoner is used to generate schematic answers which are then converted into

the SQL-template query by an SQL-specific rewriter. The resolution over

RDB abstractions in the form of constrained clauses may produce (infinitely)

many schematic answers by the reasoner and consequently SQL queries by

the rewriter. The union of their answers covers the whole set of concrete

answers to the query as they are produced one by one.

The automatically generated SQL-template queries for S1, S2 and S3 are

shown in Table 5.1. For each of these 3 services, a proof tree produced

during the resolution step, the schematic answers to the semantic query,

and the steps involved during the conversion of schematic answers into SQL-

template queries are shown in Appendix A.4.

5.2.4 Generation of SADI Service Code

The Generator component uses the I/O graphs in Module-1 to create code

implementing the tasks assigned to a service. The tasks include reading the

input values in RDF, instantiating the SQL-template query with the input

values, and writing the results returned by service in RDF based on the

algorithm described in Section 4.4. The source code is generated based on

the methods provided by the JENA API [139]. The source code for all three

services are added to Appendix A.5.

119

Page 139: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Serv

ice

Form

Tab

leN

ame

SQL

-tem

plat

eQ

uery

S1

allY

Npa

tient

SELE

CT

TABL

E0.p

atW

IDA

SX

0FR

OM

Npa

tient

AS

TABL

E0

S2

getY

ByX

Npa

tient

SELE

CT

TABL

E0.p

atLa

stN

ame

AS

X1,

TABL

E1.p

atFi

rstN

ame

AS

X5

FRO

MN

patie

ntA

STA

BLE0

,N

patie

ntA

STA

BLE1

WH

ERE

TABL

E0.p

atW

ID=

''Z0'

'A

ND

TABL

E1.p

atW

ID=

''Z0'

'

S3

getY

ByX

Npa

tient

,Nal

lerg

y

SELE

CT

TABL

E2.a

lgA

dver

seR

eact

ion

AS

X6

FRO

MN

patie

ntA

STA

BLE0

,N

alle

rgy

AS

TABL

E1,

Nal

lerg

yA

STA

BLE2

WH

ERE

TABL

E0.p

atW

ID=

''Z0'

'A

ND

TABL

E1.a

lgPa

tWID

=''Z

0''

AN

DTA

BLE1

.alg

WID

=TA

BLE2

.alg

WID

Tabl

e5.1

:Aut

omat

ical

lyge

nera

ted

SQL-

tem

plat

eque

riesf

orS

1,S

2an

dS

3.T

heva

riabl

eZ0

inth

econ

ditio

nw

illbe

inst

antia

ted

byda

tava

lue

durin

gth

eex

ecut

ion

ofth

ese

rvic

e.

120

Page 140: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Steps for generating the rest of the services from S4 to S11 are not explained in

detail here due to space constraints. However, the descriptions of the services

and the automatically generated SQL-template queries are described next.

5.2.5 Additional SADI Services for HAI Surveillance

Service S4: The service retrieves the diagnosis id of a patient based on a

patient id. The input is an instance of a Patient represented by an id and

the output decorates the input instance by adding the instance of Diagnosis

using the has diagnosis property.

Name: getDiagnosisIdByPatientId

Input: type value Patient

Output: has diagnosis some (type value Diagnosis)

Source tables: Npatient, NhrAbstract, NhrDiagnosis

Service S5: The service retrieves the diagnosis code of a patient based on

a diagnosis id. The input is an instance of a Diagnosis represented by an id

and the output decorates the input instance by adding the ICD10 code as a

string using the has diagnosis code property.

Name: getDiagnosisCodeByDiagnosisId

Input: type value Diagnosis

Output: has diagnosis code some string

Source table: NhrDiagnosis

121

Page 141: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Service S6: The service retrieves the admitting facility of a patient based

on a patient id. The input is an instance of a Patient represented by

an id and the output decorates the input instance by adding the descrip-

tion of the admitting facility as a string using the has facility reference and

has facility description properties.

Name: getFacilityDescriptionByPatientId

Input: type value Patient

Output: has facility reference some ((type value Facility) and (has facility

description some string))

Source tables: Npatient, Nfacility

Service S7: The service retrieves the procedure id of a patient based on a

patient id. The input is an instance of a Patient represented by an id and

the output decorates the input instance by adding the instance of Procedure

using the undergo procedure property.

Name: getProcedureIdByPatientId

Input: type value Patient

Output: undergo procedure some (type value Procedure)

Source tables: NhrProcedure, NhrAbstract, Npatient

Service S8: The service retrieves the start time of the procedure of a pa-

tient based on a procedure id. The input is an instance of a Procedure rep-

resented by an id and the output decorates the input instance by adding the

122

Page 142: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

time the procedure is scheduled to start as a string using the has start time

property.

Name: getStartTimeByProcedureId

Input: type value Procedure

Output: has start time some dateTime

Source table: NhrProcedure

Service S9: The service retrieves the pharmacy id of a patient based on a

patient id. The input is an instance of a Patient represented by an id and

the output decorates the input instance by adding the instance of Pharmacy

using the councel at property.

Name: getPharmacyIdByPatientId

Input: type value Patient

Output: councel at some (type value Pharmacy)

Source tables: Npatient, Nencounter, Nservice, NhpmIngredient

Service S10: The service retrieves the start time of the medication pre-

scribed for a patient based on a pharmacy id. The input is an instance of a

Pharmacy represented by an id and the output decorates the input instance

by adding the time the medication is scheduled to start as a string using the

has start time property.

Name: getStartDateTimeByPharmacyId

Input: type value Pharmacy

Output: has start date some dateTime

123

Page 143: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Source table: NhpmIngredient

Service S11: The service retrieves the administered medication of a patient

based on a pharmacy id. The input is an instance of a Pharmacy represented

by an id and the output decorates the input instance by adding the descrip-

tion of the medication as a string using the description of order property.

Name: getOrderDescriptionByPharmacyId

Input: type value Pharmacy

Output: description of order some string

Source table: NhpmIngredient

The SQL-template queries for services S4 to S11 are listed in Table 5.2.

5.2.5.1 Service Generation Time for Valet SADI

The services listed in this chapter were generated using Valet SADI once the

semantic mapping rules and the definitions of the services were manually ver-

ified by an expert. Table 5.3 shows how much time it took for Valet SADI to

generate the source code which contains the automatically generated SQL-

template query. The tests were done on a machine with a 4-core Intel Core

i5-M520 CPU at 2.4GHz speed for each core and 4 Gigabytes of memory

running on an 32-bit Ubuntu 12.04 LTS operating system. On an average it

took a little more than 2 seconds for generating each service. Approximately,

25 seconds were needed to generate all 11 services and they were deployed

immediately in a service registry. During our tests we found that the time

124

Page 144: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Serv

ice

Typ

eD

escr

iptio

nSQ

L-te

mpl

ate

Que

ry

S4ge

tYB

yXR

etri

eve

diag

nosi

sid

for

apa

tient

id

SELE

CT

TAB

LE1.

hdgW

IDA

SX

3FR

OM

Npa

tient

AS

TAB

LE0,

Nhr

Dia

gnos

isA

STA

BLE

1,N

hrA

bstr

act

AS

TAB

LE2

WH

ER

ETA

BLE

0.pa

tWID

=''Z

0''

AN

DTA

BLE

2.hr

aPat

WID

=''Z

0''

AN

DTA

BLE

1.hd

gHra

WID

=TA

BLE

2.hr

aWID

S5ge

tYB

yXR

etri

eve

diag

nosi

sco

defo

ra

diag

nosi

sid

SELE

CT

TAB

LE0.

Hdg

Cd

AS

X2

FRO

MN

hrD

iagn

osis

AS

TAB

LE0,

Nhr

Dia

gnos

isA

STA

BLE

1W

HE

RE

TAB

LE0.

hdgW

ID=

''X0'

'A

ND

TAB

LE1.

hdgW

ID=

''X0'

'

S6ge

tYB

yXR

etri

eve

desc

ript

ion

ofth

ead

mitt

ing

faci

lity

for

apa

tient

id

SELE

CT

TAB

LE1.

facF

acili

tyD

esc

AS

X3

FRO

MN

patie

ntA

STA

BLE

0,N

faci

lity

AS

TAB

LE1

WH

ER

ETA

BLE

0.pa

tWID

=''X

0''

AN

DTA

BLE

0.pa

tFac

WID

=TA

BLE

1.fa

cWID

S7ge

tYB

yXR

etri

eve

proc

edur

eid

for

apa

tient

id

SELE

CT

TAB

LE1.

hprc

WID

AS

X3

FRO

MN

patie

ntA

STA

BLE

0,N

hrP

roce

dure

AS

TAB

LE1,

Nhr

Abs

trac

tA

STA

BLE

2W

HE

RE

TAB

LE0.

patW

ID=

''Z0'

'A

ND

TAB

LE2.

hraP

atW

ID=

''Z0'

'A

ND

TAB

LE1.

hprc

Hra

WID

=TA

BLE

2.hr

aWID

S8ge

tYB

yXR

etri

eve

star

ttim

eof

the

proc

edur

efo

ra

proc

edur

eid

SELE

CT

TAB

LE0.

hprc

Star

tTim

eA

SX

2FR

OM

Nhr

Pro

cedu

reA

STA

BLE

0,N

hrP

roce

dure

AS

TAB

LE1

WH

ER

ETA

BLE

0.hp

rcW

ID=

''Z0'

'A

ND

TAB

LE1.

hprc

WID

=''Z

0''

S9ge

tYB

yXR

etri

eve

phar

mac

yid

for

apa

tient

id

SELE

CT

TAB

LE0.

phm

WID

AS

X0

FRO

MN

phm

Ingr

edie

ntA

STA

BLE

0,N

serv

ice

AS

TAB

LE1,

Npa

tient

AS

TAB

LE2,

Nen

coun

ter

AS

TAB

LE3

WH

ER

ETA

BLE

2.pa

tWID

=''Z

0''

AN

DTA

BLE

3.en

cPat

WID

=''Z

0''

AN

DTA

BLE

0.ph

mSv

cWID

=TA

BLE

1.sv

cWID

AN

DTA

BLE

1.sv

cEnc

WID

=TA

BLE

3.en

cWID

S10

getY

ByX

Ret

riev

est

art

time

ofm

edic

atio

nfo

ra

phar

mac

yid

SELE

CT

TAB

LE0.

phm

Star

tDtm

AS

X2

FRO

MN

phm

Ingr

edie

ntA

STA

BLE

0,N

phm

Ingr

edie

ntA

STA

BLE

1W

HE

RE

TAB

LE0.

phm

WID

=''Z

0''

AN

DTA

BLE

1.ph

mW

ID=

''Z0'

'

S11

getY

ByX

Ret

riev

ede

scri

ptio

nof

the

pres

crib

edm

edic

atio

nfo

ra

phar

mac

yid

SELE

CT

TAB

LE0.

phm

Ord

erD

esc

AS

X1

FRO

MN

phm

Ingr

edie

ntA

STA

BLE

0W

HE

RE

TAB

LE0.

phm

WID

=''Z

0''

Tabl

e5.

2:A

utom

atic

ally

gene

rate

dSQ

L-te

mpl

ate

quer

ies

forS

4toS

11.

The

varia

ble

Z0in

the

cond

ition

will

bein

stan

tiate

dby

data

valu

edu

ring

the

exec

utio

nof

the

serv

ice.

125

Page 145: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

shown here is essentially spent on generating the SQL-template queries be-

cause the code generation is almost instantaneous. For cases with multiple

table-joins we found almost no difference in SQL generation.

Service No. Time (s)S1 2.5055S2 2.3774S3 2.3006S4 2.2075S5 2.2692S6 2.3133S7 2.1128S8 2.0887S9 2.0923S10 2.0921S11 2.0921Total 24.4515

Table 5.3: Time (sec) spent in generating S1 through S11 using the ValetSADI framework

The overall time for creating new services should also include the time for

establishing the necessary auxiliary resources, namely ontologies and schema

mappings in PSOA RuleML. If these resources are preexisting the creation

of services can be achieved with relative ease and timing described above.

Increasingly ontologies are made available to the community through subject-

specific registries or portals such as Bioportal [140]. The existence of these

portals can accelerate the discovery of ontologies necessary for the mappings

and the I/O definitions of the services. In cases where new mappings must

be established the human effort required to create declarative semantic map-

126

Page 146: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

pings must be considered in the overall speed of deployment.

While modeling of the service definitions may take a few minutes for a do-

main expert, semantic mappings generally take longer to write manually.

Although simple schemas are not difficult to map if the domain ontologies

have sufficient correspondences, the more complex the database schema is,

the more time it may take to produce mappings. Unless the database schema

and the terminologies change frequently, once the mapping rules are written

at the beginning, the automation of service generation still saves lot of time

and labor. As tools become more mature to produce mappings, the total

time can only be reduced, thereby allowing service creation even faster.

127

Page 147: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 6

Querying HAI Data with SADI

Services

In this chapter, we demonstrate how SPARQL queries are used to compose

complex queries on the Hospital-Acquired Infections data by invoking the

services generated automatically using the Valet SADI framework. We in-

troduce an authentic query on HAI and present an SQL statement for its

execution. The SQL statement shows the complexity of formulating such a

query in terms of multiple table-joins which is a difficult task for non-technical

users such as surveillance practitioners. We also show how a SPARQL query

can do the same job by invoking all the HAI services listed as S1 to S11.

Finally, we show how the graphical query interface on the HYDRA query

engine provides an end user to compose query easily.

128

Page 148: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

6.1 Query on Hospital-Acquired Infections

A Surgical Site Infection (SSI) sometimes occurs at the site of a surgical

incision when germs get into the incision. Generally SSIs develop within 30

days of an operation. Infections may develop later as well when implants are

used e.g. joint replacement operation. Although SSIs may be minor they are

the most common type of infections which lead to longer stay or readmission

to the hospital. One of the most preventative steps towards developing SSIs

is the timing of administering antibiotics just before a hip or a knee joint

replacement surgery. The recommended time is generally 30 minutes prior

to incision [141] and the antibiotics should not be administered more than 2

hours prior to surgery. Therefore, administering antibiotics for the patients

at risk of SSIs is of utmost importance. Hospitals generally store patients’

information in RDBs. By using SADI Web services, necessary information

from RDBs can be extracted and the antibiotics can be administered in time.

Let us assume that a surveillance practitioner is interested in the following

query

“Find the first and last name, start time of the procedure, descrip-

tion of the order of the antibiotic, and the start time for admin-

istering the medication for all patients who have been admitted

into the Orthopedic Surgery facility, diagnosed with Osteoarthritis

of knee (ICD-10-CM code M17 ) [142], are scheduled to undergo

a procedure for knee replacement but allergic to Penicillin as an

129

Page 149: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

antibiotic to avoid Surgical Site infections.”

6.1.1 Query Composition and Execution

In order to answer the query the surveillance practitioner needs to access all

9 tables in the schema in Figure 5.2 and integrate the data.

SELECT TABLE0.phmOrderDesc AS X1,TABLE1.phmStartDtm AS X2,TABLE5.patLastName AS X3,TABLE6.patFirstName AS X4,TABLE9.hprcStartTime AS X5FROM NphmIngredient AS TABLE0,Nservice AS TABLE1,Npatient AS TABLE2,NhrDiagnosis AS TABLE3,NhrProcedure AS TABLE4,NhrAbstract AS TABLE5,Nallergy AS TABLE6,Nfacility AS TABLE7,Nencounter AS TABLE8WHERE TABLE3.HdgCd = "M17"AND TABLE6.algAdverseReaction = "Penicillin"AND TABLE7.facFacilityDesc = "Orthopedic Surgery"AND TABLE0.phmSvcWID = TABLE1.svcWIDAND TABLE1.svcEncWID = TABLE8.encWIDAND TABLE2.patWID = TABLE4.hprcWIDAND TABLE2.patWID = TABLE5.hraPatWIDAND TABLE2.patWID = TABLE6.algPatWIDAND TABLE2.patWID = TABLE8.encPatWIDAND TABLE2.patFacWID = TABLE7.facWIDAND TABLE3.hdgWID = TABLE4.hprcWIDAND TABLE3.hdgHraWID = TABLE5.hraWIDAND TABLE4.hprcHraWID = TABLE5.hraWID

Figure 6.1: An SQL query asking “Find the first and last name, start time ofthe procedure, description of the order of the antibiotic, and the start time foradministering the medication for all patients who have been admitted into theOrthopedic Surgery facility, diagnosed with Osteoarthritis of knee (ICD-10-CM code M17 ), are scheduled to undergo a procedure for knee replacementbut allergic to Penicillin as an antibiotic to avoid Surgical Site infections.”

130

Page 150: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

An SQL statement which may answer the query is shown in Figure 6.1 which

uses a number of joins to retrieve the answers. A database programmer

posses such skills but a practitioner or a clinician is not expected to have

such expertise. However, as a domain expert they are familiar with the

domain terminologies and can formalize queries in SPARQL. As query clients

such as SHARE and HYDRA allow users to execute SPARQL queries on

SADI services, the surveillance practitioners can integrate the information

by invoking them from the SPARQL query.

The following SPARQL query invokes all services S1 through S11 on either

SHARE or HYDRA in order to answer the query. Line 1 retrieves the unique

identifiers of all patients by invoking S1, lines 2-4 are used to retrieve the

unique identifiers based on the identifiers of the patients while lines 5-6 are

used to find out which diagnosis codes match the ICD-10 code M17, lines 7-8

are used to retrieve both the last names and first names of these patients,

lines 9-10 retrieve those who are undergoing a procedure, lines 11-12 are used

to retrieve the start time of the procedure, lines 13-14 are used to find the

services for patients’ medication administration, line 15 is used to find the

start time for administering the medication, line 16 is used to identify the

medication ordered for the patients, lines 17-19 are used to find out which

patients are allergic to Penicillin, and lines 20-22 are used to identify

those patients who are admitted to the Orthopedic Surgery facility of the

hospital.

131

Page 151: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

PREFIX ito: <http://cbakerlab.unbsj.ca:8080/ont/ipsnp_time_ontology.owl#>PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIX domain-terms: <http://localhost:8080/healthcare/domain-ontologies/terminology.owl#>SELECT ?description ?first_name ?last_name ?medication_start_time ?surgery_start_timeWHERE{

# Invocation of allPatientIds service1 ?Patient rdf:type domain-terms:Patient .2 ?Diagnosis rdf:type domain-terms:Diagnosis .3 # Invocation of getDiagnosisIdByPatientId service4 ?Patient domain-terms:has_diagnosis ?Diagnosis .

# Invocation of getDiagnosisCodeByDiagnosisId service5 ?Diagnosis rdf:type domain-terms:Diagnosis ;6 domain-terms:has_diagnosis_code "M17"ˆˆxsd:string .

# Invocation of getLastnameFirstnameByPatientId service7 ?Patient domain-terms:has_last_name ?last_name ;8 domain-terms:has_first_name ?first_name .9 ?Procedure rdf:type domain-terms:Procedure .

# Invocation of getProcedureIdByPatientId service10 ?Patient domain-terms:undergo_procedure ?Procedure .

# Invocation of getStartTimeByProcedureId service11 ?Procedure rdf:type domain-terms:Procedure ;12 domain-terms:has_start_time ?surgery_start_time .13 ?Pharmacy rdf:type domain-terms:Pharmacy .

# Invocation of getPharmacyIdByPatientId service14 ?Patient domain-terms:councel_at ?Pharmacy .

# Invocation of service getStartDateTimeByProcedureId15 ?Pharmacy domain-terms:has_start_time ?medication_start_time ;

# Invocation of getOrderDescriptionByPatientId service16 domain-terms:description_of_order ?description .

# Invocation of getAllergyByPatientId service17 ?Patient domain-terms:has_allergy ?Allergy .18 ?Allergy rdf:type domain-terms:Allergy ;19 domain-terms:has_adverse_reaction_to "Penicilin"ˆˆxsd:string .

# Invocation of getFacilityDescriptionByPatientId service20 ?Facility rdf:type domain-terms:Facility .21 ?Patient domain-terms:has_facility_reference> ?Facility .22 ?Facility domain-terms:has_facility_description "Orthopedic Surgery"ˆˆxsd:string .}

Figure 6.2: A SPARQL query asking “Find the first and last name, starttime of the procedure, description of the order of the antibiotic, and thestart time for administering the medication for all patients who have beenadmitted into the Orthopedic Surgery facility, diagnosed with Osteoarthritisof knee (ICD-10-CM code M17 ), are scheduled to undergo a procedure forknee replacement but allergic to Penicillin as an antibiotic to avoid SurgicalSite infections.”

The SPARQL query can be executed either on the SHARE or on the HY-

DRA query client to retrieve the answers. All 11 services were automatically

discovered, orchestrated, invoked and executed by the query clients.

132

Page 152: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

6.1.2 Automatic Composition of SPARQL Queries

Although SHARE provides an auto-complete feature as part of its interface

to a SPARQL query composer, the user needs to know how to formalize them.

The large SPARQL query shown in Figure 6.2 is quite complex and requires

proficiency in SPARQL language. Since average users are not expected to

have such skills, visual interface could be an alternative approach which

would allow them to compose queries graphically hiding the syntax behind

the scene.

Recent developments in query platforms such as OptiqueVQS [143], FedViz

[144], QueryVOWL [145], faceted search [146], and yearsSparqlFilterFlow

[147] show increasing interests in providing visual SPARQL query creation

capabilities. In a similar fashion, the HYDRA query engine provides a GUI

which facilitates a relatively easier way of creating and executing SPARQL

queries with SADI services.

Users can enter a series of keywords on the HYDRA query canvas and editable

query graphs can be generated and modified. The variables in the queries

can be added and modified until the end user is satisfied with the query.

These features allow users to compose queries without having to know any

SPARQL syntax, and therefore queries can be composed relatively quickly.

The manually created SPARQL query shown in Figure 6.2 can thus be cre-

ated on the HYDRA GUI relatively easily using the keyword-based approach

graphically. The query graph composed on the GUI is shown in Figure 6.3

which is equivalent to the raw SPARQL query in Figure 6.2.

133

Page 153: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

A series of SPARQL queries build on HYDRA GUI for HAI surveillance are

shown in Appendix A.6. The complexity of the queries grows progressively

as new nodes and edges are added to the query graph. One or more of these

edges represent a service from S1 to S11 created by Valet SADI.

134

Page 154: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

re6.

3:Sc

reen

shot

ofth

equ

ery

crea

ted

onH

YD

RA

GU

Ius

ing

all1

1SA

DI

serv

ices

aski

ng“F

ind

the

first

and

last

nam

e,st

art

time

ofth

epr

oced

ure,

desc

riptio

nof

the

orde

rof

the

antib

iotic

,and

the

star

ttim

efo

radm

inist

erin

gth

em

edic

atio

nfo

rall

patie

nts

who

have

been

adm

itted

into

the

Ort

hope

dic

Surg

ery

faci

lity,

diag

nose

dw

ithO

steo

arth

ritis

ofkn

ee(I

CD

-10-

CM

code

M17

),ar

esch

edul

edto

unde

rgo

apr

oced

ure

for

knee

repl

acem

ent

but

alle

rgic

toPe

nici

llin

asan

antib

iotic

toav

oid

Surg

ical

Site

infe

ctio

ns.”

135

Page 155: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 7

Preservation of Interoperability

in Malaria Surveillance

According to the World Health Organization (WHO), malaria surveillance is

presently weakest in countries and regions with the highest malaria burden.

A core obstacle is that the data required to perform malaria surveillance

is fragmented in multiple data silos distributed across geographical regions.

Furthermore, consistent integrated malaria data sources are few and a low

degree of interoperability exists between them. As a result, it is difficult to

identify disease trends and plan for effective interventions.

The Semantics, Interoperability, and Evolution for Malaria Analytics (SIEMA)

platform [20] for malaria surveillance is based on semantic data federation.

Using SIEMA approach, it is possible to access distributed data, extend

and preserve interoperability between multiple dynamic distributed malaria

136

Page 156: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

resources and facilitate detection of system changes that can interrupt the

mission-critical global surveillance activities.

7.1 Malaria Surveillance Today

Malaria is an infectious disease with significant impact on developing coun-

tries. In 2016 alone, there were 445,000 deaths worldwide [148] and globally

more than 200 million cases of malaria have been reported in 91 countries.

Populations in sub-Saharan African countries are most susceptible, with 80%

of observed cases and recorded deaths worldwide [149, 150]. Whereas a de-

crease in case incidence has been observed since 2010, the rate of decline

appears to have stalled, in part due to lack of adequate surveillance and in-

tervention programs. An essential prerequisite for accelerating the decline of

the disease and the optimal targeting of resources is an efficient surveillance

infrastructure that can reliably deliver robust data sets. Poor data quality

and sparseness and the coordination between different surveillance systems

are ongoing challenges for the malaria surveillance community [151]. The

increasing number of stakeholders including international organizations, gov-

ernments, NGOs, and private sectors [152] that contribute in gathering the

data can lead to siloed heterogeneous information systems and data sources

which need to be integrated [153]. Overall, infrastructures for malaria surveil-

lance are brittle [154] and stakeholders do not have sufficient confidence in

the aggregated data sets to adopt any conclusions that could be meaningfully

137

Page 157: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

derived [155].

A comprehensive study [156] has shown that Malaria Information Systems

(MIS) that can collect, store, analyze, and provide feedback to developers

based on real-time information are few. They are generally limited by the

absence of real-time data aggregation, inconsistent decision support, and

low levels of resolution e.g. no mapping to households, and no extrapola-

tion across geographical borders. In specific cases where an MIS [157–159]

has been upgraded with improved visualization and reporting tools, other

challenges remain unresolved. Data entered from field stations are managed

centrally and updates occurring at the central data source are not reflected in

the field level immediately. Also, the options to generate reports are generally

predetermined, hence ad-hoc queries cannot be answered without introducing

significant overhaul of the systems. Consequently, the types of surveillance

queries that can be run to derive actionable knowledge in a timely manner

are relatively few.

Furthermore, eleven widely used Web platforms were studied in order to as-

sess how internet and Web technologies are used in the fight against malaria

[160]. The elements of this study were focused on data, metadata, Web

services and categories of users. The results revealed that although heteroge-

neous spatiotemporal malaria data came from multiple disciplines, they were

rarely updated dynamically, no metadata was used to standardize them, Web

services were inflexible for reuse and non-standardized, and the platforms pri-

marily served the scientific communities. The authors opined that in order

138

Page 158: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

to improve these systems, interoperability through standardization is neces-

sary. The WHO’s Global Technical Strategy (GTS) [161] also identifies that

surveillance challenges in sub-Saharan African countries exist partly because

mechanisms for facilitating data integration from distributed data silos and

ensuring system interoperability are lacking.

7.2 SIEMA Surveillance Platform

We introduce a prototype surveillance and change management platform,

known as SIEMA, built from a combination of third party tools, commu-

nity developed terminologies and custom algorithms. The methodology and

core infrastructure used to facilitate interoperable access to distributed data

sources using SADI Semantic Web services are illustrated using an architec-

ture diagram in Figure 7.1. A dashboard that reports on terminology changes

that can render SADI services inactive, jeopardizing system interoperability,

is briefly mentioned which allows end users to control and reactively rebuild

services to preserve interoperability and minimize service downtime.

7.2.1 Resources

The SIEMA surveillance platform relies on the coordination and customiza-

tion of a number of existing frameworks, and software and custom developed

algorithms. The architecture diagram in Figure 7.1 describes these resources

in an abstract representation of the SIEMA platform first introduced in [162].

139

Page 159: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 7.1: Architecture diagram of SIEMA surveillance framework

Resources such as SADI Semantic Web service, Query Clients for SADI Ser-

vices, and Valet SADI have already been introduced before. Therefore, we

only focus on the rest of the resources below:

7.2.1.1 Source Data and Standard Terminologies

The current research focuses on middleware for enabling discovery of data

sets and tools for agile query composition, but deployments of these method-

140

Page 160: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

ologies beyond prototypes will require full access to malaria data. Existing

data repositories such as the Scalable Data Integration for Disease Surveil-

lance [163] or Global Malaria Mapper [164] would be target resources for

building service descriptions and including them in a generic registry. How-

ever, a recent study [160] suggests that in order to facilitate change man-

agement and semantic interoperability these data sources must be repre-

sented by standard terminologies related to their domain. Rather than defin-

ing new terminologies, it is a best practice to use community adopted do-

main terminologies, if available, for defining the services. For this purpose,

several ontologies are leveraged including Ontology for Vector Surveillance

and Management (VSMO) [165], the Malaria Ontology (IDOMAL) [166],

the Mosquito Insecticide Resistance Ontology (MIRO) [167] and the Public

Health Ontology (PHont) [168]. CDISC [169] also offers relevant ontologies.

7.2.1.2 Agent-based Analytics Dashboard

Detecting changes in the source data schema as well as the domain and ser-

vice ontologies is a prerequisite step for change management. Studies on

the evolution of large domain ontologies [170] have shown that the vocabu-

laries are subject to change [171] because they have shared authorship, and

they evolve to represent new knowledge. Because of the high degree of de-

pendency between system components in a relational data schema, even a

small change in a data schema could result in cascading impacts across an

application stack. In a previous work, we presented features of a web-based

141

Page 161: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

analytics dashboard for detecting and reporting changes [172]. Underpinning

the dashboard, software agents enable two key actions; i) detecting changes

and identifying their types, and ii) restoring the modified component to an

operational state through repair and rebuilding. The types of changes we

accommodate are; addition (i.e. extension), deletion (i.e. obsoleting), re-

naming (i.e. refining) of components in domain ontologies and service on-

tologies [173, 174], such as concepts, property restrictions, individuals, and

axioms. Meurice et al. [175] illustrates how changes in the source data such

as tables and their attributes, datatypes and indices can be identified, which

can then be reported on the dashboard. Likewise, changes to saved queries

and the corresponding service dependencies can be detected. Further details

of the agents designed to capture changes in various components of the in-

frastructure and their interaction with other software agents in the system

are reported in [162]. Figure 7.2 shows a snapshot of the landing page of the

dashboad.

7.3 Service-based Querying of Malaria Data

The target surveillance queries are inspired by the objectives stated in the

National Malaria Control Program by the Ugandan Ministry of Health [176].

These objectives resemble authentic queries for a surveillance practitioner in

the malaria domain. These questions have been converted into formal queries

by semantically presenting them as one or more SADI services. This section

142

Page 162: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

re7.

2:La

ndin

gpa

geof

Age

nt-b

ased

anal

ytic

sdas

hboa

rd.T

heda

shbo

ard

dete

ctsc

hang

esin

theS

IEM

Aco

mpo

nent

san

did

entifi

esth

eir

type

s.T

hech

ange

sar

ecu

rren

tlyre

port

edfo

rdo

mai

non

tolo

gies

,ser

vice

onto

logi

es,r

elat

iona

ldat

abas

es,s

tatu

sof

the

serv

ices

and

the

affec

ted

quer

ies.

143

Page 163: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

illustrates how the queries can be represented using a combination of SADI

services on a graphical query canvas of the HYDRA query engine. They are

listed below:

• Q1. Which indoor residual sprayings used permethrin as an insecti-

cide?

• Q2. Which districts of Uganda that used permethrin-based long-

lasting insecticide-treated nets in 2015 saw a decrease in anopheles

gambiae s.s. population but no decrease of new malaria cases between

2015 and 2016?

• Q3. What are the future high-risk areas and at-risk time periods in

Uganda?

7.3.1 Questions for Malaria Surveillance

Primarily a series of widely used malaria control interventions have been

selected. The importance of Indoor Residual Spraying (IRS) has been well

established by numerous studies throughout the world, especially in Africa

[176,177], as an effective way of killing the mosquitoes that transmit malaria.

Hence, the first question in Q1 is about IRS with a specific insecticide. This

question is used as a running example in the rest of the paper. The use of

insecticide-treated bed nets is the second most effective intervention against

malaria. The question in Q2 is more complex to formalize and answer because

it requires aggregating information about bed nets from geographic locations,

144

Page 164: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

insecticides used, and a comparison of the status of mosquito populations

within a certain time frame in a specific location. In Q3, it is anticipated

that a malaria surveillance practitioner will be interested in predicting future

trends and outbreaks to improve the allocation of resources where they are

most needed. These three queries are considered as authentic target queries

and adopted as a basis for illustrating and evaluating the capabilities and

appropriateness of the proposed technical approach.

7.3.2 Building SADI Services

To answer the questions a list of SADI services has been created and deployed

in a registry. We will focus henceforth on how to create those services.

7.3.2.1 Source Data and Vocabulary

Vocabularies from one or more domain ontologies are used to define the in-

put and the output of a service. The data schema of the source data is also

necessary. The vocabularies and the data schema in Figure 7.3 are used to

define the SADI services. In the domain ontology, the hierarchy of classes in-

cludes VSMO:0001957 and MIRO:10000239 which represent the concepts of

spraying and insecticide, respectively. The object properties has insecticide

and located in are used to link the records of spraying to the records of in-

secticides and geographic regions. The data property has name represents

the literal values of names of the specific spraying activity, the geographic re-

gion, and the insecticide used. In the data schema, table spraying contains

145

Page 165: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

information about all spraying activities; table geographicregion contains

information about the locations where the insecticides were sprayed, and

table insecticide contains insecticide information. In table spraying, the

integer-valued attribute id is used to identify each spraying activity, attribute

name represents the name of the activity, location.id refers to the location

where the activity was performed, year represents the time it was performed,

and insecticide.id refers to the insecticide used in the spray. In table geo-

graphicregion, the integer-valued attribute id represents each region and the

attribute name represents the name of that region. Finally, in table insec-

ticide, the integer-valued attribute id represents a pesticide, the attribute

name identifies the name of the pesticide, and the attribute mode.of.action

decides if the pesticide is effective on mosquitoes which come in contact or

both contact & airborne. The attributes location.id and insecticide.id act as

foreign keys to the region and insecticide, respectively.

146

Page 166: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 7.3: Screenshots of the domain ontology in protege and the sourceschema

7.3.2.2 Description of SADI Services

The input and the output of every service are defined in a service ontol-

ogy using the terminologies from the domain ontologies. One such service

is getInsecticideIdByIndoorResidualSprayingId, which takes an instance of

spraying as input, that is any element whose type is indoor residual spray-

ing. The service returns an id representing an insecticide. The input is

decorated explicitly by the relation has insecticide. The descriptions of this

service are defined in Figure 7.4.

147

Page 167: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 7.4: Input (left) and output (right) descriptions of the servicegetInsecticideIdByIndoorResidualSprayingId

Another service is getNameByInsecticideId, which takes an instance of an

insecticide as input. The service returns a string as output, representing

the name of the insecticide in the data, decorating the input by the relation

has name. Figure 7.5 shows the I/O descriptions of this service.

Figure 7.5: Input (left) and output (right) description of the servicegetNameByInsecticideId

7.3.2.3 Service Registry

Once the services have been generated, they are stored in a service registry.

Figure 7.6 shows a fragment of the service registry that we use for malaria

surveillance. HYDRA uses the registry to discover the services that will be

called during the execution of the queries.

148

Page 168: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figure 7.6: A fragment of the registry of SADI services

7.3.2.4 Provisioning of SADI Services

Building SADI services are cumbersome, error-prone and tedious for non-

technical end users [11]. The steps for generating services automatically by

Valet SADI were illustrated in Chapter 5 in detail. Thus Valet SADI allows a

provision for accelerating the generation for these users once source data can

be accessed via a suitable mapping from the domain ontologies using rules

which are used to explain how to interpret the data. Figure 7.7 shows an

example of such mapping rules. Once these rules are available, Valet SADI

uses them to access the data by rewriting the description of the services into

correct queries for the mapped data schema.

149

Page 169: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

1 Forall ?insecticideID (identityForInsecticideToinsecticideID(2 identityForInsecticide(?insecticideID)) = ?insecticideID)3 Forall ?P (identityForInsecticide(identityForInsecticideToinsecticideID(?P)) = ?P)4 Forall ?id ?name ?mode.of.action (5 Insecticide(identityForInsecticide(?id)) :-6 db_insecticide(?id ?name))7 Forall ?id ?name ?mode.of.action (8 has_name(identityForInsecticide(?id) ?name) :-9 db_insecticide(?id ?name))

Figure 7.7: Example of malaria-specific mapping rules in PSOA RuleML

7.3.2.5 Building Queries

To illustrate query building, consider the question Q1 introduced in Sec-

tion 7.3, which is easily translated to a query. Its graph representation is

shown in Figure 7.8. The graphical user interface of HYDRA makes it easier

to build queries because relationships are easier to understand and process

in graph form than in SPARQL syntax.

The query in Figure 7.8 calls on four distinct SADI services:

i) allPublicHealthActivities

ii) getNameByPublicHealthActivityId

iii) getInsecticideIdByIndoorResidualSprayingId, and

iv getNameByInsecticideId

. Services in iii) and iv) are described above while the service in i) re-

trieves all identifiers of public health activities in Uganda and the service

in ii) retrieves the names of these activities. The branch on the right in

Figure 7.8 uses the services i), iii) and iv) while the left branch requires

150

Page 170: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

re7.

8:T

hegr

aph

repr

esen

tatio

nof

aqu

ery

for

the

ques

tion

“Whi

chin

door

resid

uals

pray

ings

used

perm

ethr

inas

anin

sect

icid

e?”

prep

ared

onth

eH

YD

RA

GU

I

151

Page 171: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

services i) and ii). The construction of queries is performed in an incremen-

tal fashion. The root node starts with the service allPublicHealthActivities,

which can then be extended either to the left or to the right. The service

getNameByPublicHealthActivityId is used on the left to name the interven-

tion represented by the variable inter name. The root node is then dec-

orated by the property has insecticide with the description of the service

getInsecticideIdByIndoorResidualSprayingId to represent an identifier of an

insecticide. Finally, the service getNameByInsecticideId is used to represent

the name of the insecticide with a value Permethrin. As queries become

more complex, the advantage of graph form over the raw SPARQL syntax

becomes evident. The graph-form of the question in Q2 is shown in Fig-

ure 7.9. Although the query graph is significantly more complex and larger

than the query in Q1, it is much easier to understand for any user than the

raw SPARQL representation. The descriptions of each service used in the

query graph of Q2, as well as in Q3 are avoided here due to space constraints.

7.4 Preservation of Interoperability

The previous section has outlined how, using Semantic Web services, it is pos-

sible to answer complex questions relevant to malaria surveillance. Special

attention is needed before considering the introduction of a new method-

ology in a dynamic context where data and middleware are not static. A

review [162] of several possible changes that could occur in a malaria surveil-

152

Page 172: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

re7.

9:W

hich

dist

ricts

ofU

gand

ath

atus

edpe

rmet

hrin

-bas

edlo

ng-la

stin

gin

sect

icid

e-tr

eate

dne

tsin

2015

saw

ade

crea

sein

anop

hele

sga

mbi

aes.s

.po

pula

tion

but

node

crea

seof

new

mal

aria

case

sbe

twee

n20

15an

d20

16?

153

Page 173: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

lance framework has been described and classified according to the degree

to which they impact data access and their likelihood to impact interoper-

ability of the system. In the following, an approach to address the notion of

change management through the introduction of change detection tools and

triggers for the reactive rebuilding of service to ensure service uptime will be

illustrated. Specifically, we discuss renaming and addition of terms that are

used in service ontologies and the use of a reporting tool for detecting and

displaying these types of changes.

7.4.1 Changes in the Service Ontologies

Whenever a definition of an existing service is modified, the associated ser-

vice ontology is changed but the code implementing the service remains un-

changed. As a result, when a service is invoked during the execution of a

query it fails to return the anticipated output because the terms used in

the code are incompatible with the new definition in the service ontology.

In the SIEMA framework the change capture agent implemented within the

dashboard detects the changes in the terms used in the service ontology by

comparing the modified version of the ontology to the one it was modified

from. The role of the change capture agent can be illustrated in the case of

a term addition.

154

Page 174: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

7.4.1.1 Example of Addition

To illustrate a scenario involving the addition of new terms, consider the

query in Figure 7.8 again. The mode of action, mentioned in the WHO

recommendation [178], plays an important role in choosing insecticides for

indoor residual spraying against malaria vectors.

Figure 7.10: Which indoor residual spraying used permethrin as an insecti-cide and which kind of mosquitoes will be affected by it?

Let us assume that the end user is interested in the query “Which in-

door residual spraying used permethrin as an insecticide and which kind

of mosquitoes will be affected by it?”. Figure 7.10 shows the graph rep-

resentation of such a query. To be able to answer this query, the exist-

ing service getNameByInsecticideId can be modified by adding the term

155

Page 175: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

has mode of action and the datatype xsd:string that it returns. The new

output description in Figure 7.11 is defined by adding the two terms to the

old description.

Figure 7.11: Old (left) and new (right) output description of the servicegetNameByInsecticideId

A change capture agent detects the changes of two terms, identifies them

as addition, and displays them on the dashboard in a tabular form. Fig-

ure 7.12 shows the consolidated information about the changes on the dash-

board which displays the time the changes were detected under the Times-

tamp column, the textual description of the change under the Description of

Change column, the types of changes identified as either addition under the

Entity Added column, deletion under the Entity Deleted column, or rename

under the Entity Renamed column, the list of services impacted under the

Affected Service column, and the list of queries impacted under the Affected

Query column.

7.4.2 Status of Services

At any time, the status of all deployed services in the registry is displayed on

the dashboard. Services can be either active which can be used in queries,

156

Page 176: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

re7.

12:

Det

ectio

nan

did

entifi

catio

nof

chan

ges

inth

ese

rvic

eon

tolo

gy

157

Page 177: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

or inactive which need to be repaired before using them again. Figure 7.13

displays a list of active and inactive services, which display in color as green

and red, respectively. The URI of the service is tabulated under the Service

URI column, the description is under Description, the time the service was

created is under Time of Creation, and the time the service was rebuilt is

under Time of Rebuild. The final column is Request Rebuild that allows

for placing an inactive service in a queue to be rebuilt and subsequently

redeployed in the service registry. The getNameByInsecticideId service is

shown in red because it became inactive due to the addition of terms in its

output definition.

7.4.3 Reacting to Changes

The addition of terms to the definition of an active service renders the service

description incompatible with the target functionality and existing service

code and renders associated queries dysfunctional. To resolve the inconsis-

tency, it is necessary to repair and rebuild the services in line with the new

requirements. Specifically, the end-user now wants to access the data that

was not previously available from a service, namely, in the current example

the mode of action of an insecticide. It is thus necessary to re-implement

the service corresponding to the altered service description ensuring the do-

main ontologies, the data schemata, and the PSOA semantic mapping rules

underpinning the service are accurate and will support the new target func-

tionality.

158

Page 178: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

re7.

13:

Stat

usof

SAD

Iser

vice

s.A

ctiv

ese

rvic

esar

esh

own

ingr

een

and

inac

tive

serv

ices

inre

d

159

Page 179: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Given that a data resource contains the information about the mode of ac-

tion of insecticides, the key question is whether the semantic mapping rules

already map that data to an existing concept or relation of the domain on-

tologies. If it is the case, all components required to rebuild the services

exist and it is possible to proceed to the next step in the Valet SADI rebuild.

Otherwise, it is necessary to identify missing rules and add them, or extend

a local domain ontology with missing concept or relation that exists in the

service ontology. Once this is done a rule must be created to define a new

mapping and making possible to rebuild the service.

1’ Forall ?insecticideID (identityForInsecticideToinsecticideID(2’ identityForInsecticide(?insecticideID)) = ?insecticideID)3’ Forall ?P (identityForInsecticide(identityForInsecticideToinsecticideID(?P)) = ?P)4’ Forall ?id ?name ?mode.of.action (5’ Insecticide(identityForInsecticide(?id)) :-6’ db_insecticide(?id ?name ?mode.of.action))7’ Forall ?id ?name ?mode.of.action (8’ has_name(identityForInsecticide(?id) ?name) :-9’ db_insecticide(?id ?name ?mode.of.action))10’ Forall ?id ?name ?mode.of.action (11’ has_mode_of_action(identityForInsecticide(?id) ?mode.of.action) :-12’ db_insecticide(?id ?name ?mode.of.action))

Figure 7.14: Fragment of the updated malaria-specific PSOA rules

7.4.4 Rebuilding the Services using Valet SADI

By leveraging Valet SADI’s auto-generation capability, the damaged service

can be quickly rebuilt and deployed once changes are detected, identified,

and a rebuild is requested. To illustrate this, we refer to the query shown

in Figure 7.10, that calls services retrieving data from the source database

schema shown in Figure 7.3 and list the changes below.

160

Page 180: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

7.4.4.1 Modified Domain Ontology

In the domain ontology, the data property has mode of action is added. As

a result, the service ontology becomes compatible and supports the extended

query as it only uses existing concepts and properties.

7.4.4.2 Modified Malaria-specific Mapping Rules

The PSOA rules are also modified to populate the newly added data property

has mode of action as shown in Figure 7.14. The lines 10’-12’ are added

in contrast to the original version in Figure 7.8. Valet SADI can rewrite

the modified input and output descriptions with the help of the mapping

rules, generate the SQL query and the complete program code automatically

to fetch answers from the source data. The services are thus rebuilt and

redeployed in the service registry so that the modified query returns the

correct answers. Figure 7.15 shows the updated status of the services. The

getNameByInsecticideId service is now shown in green because the service

was rebuilt by Valet SADI and redeployed in the service registry. The exact

time the service was rebuilt is tabulated along the Time of Rebuild column.

7.5 Discussion

Surveillance remains a challenge for the malaria community and many fac-

tors play a role in limiting access to relevant data resources for analysis and

reuse [160]. In this study, the suitability of a solution to the challenges of sys-

161

Page 181: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

re7.

15:

Stat

usof

serv

ices

afte

rbe

ing

rebu

iltby

Vale

tSA

DI

162

Page 182: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

tem interoperability, distributed data access, semantic integration of data and

semantic support for query composition has been investigated. The SIEMA

framework comprises a number technologies and standards and is further

customized to address the proposed targets needs and interests of surveil-

lance practitioners. The contribution takes three main directions. First,

using SADI web services allows for the easy access to distributed data. This

task is simplified further using Valet SADI, which enables a programmer to

create services in an efficient and straightforward way. Second, due to the

user interface features of the HYDRA query engine, SIEMA offers end-users

a more appealing way to build surveillance queries. HYDRA’s ability to

discover and call the services that are needed for a query permits the user

to simply use the data as an abstract construct without having to look at

its actual structure. Third, to make the system more robust and flexible a

dashboard has been introduced. The dashboard informs users when changes

have occurred that render the services and or queries inactive. This enables

users to know which queries may no longer be reliable and identify which

parts of the service infrastructure must be rebuilt to restore it to its fully

interoperable state. Deployed together this combination of technologies of-

fered by the SIEMA framework, is exhibiting key functionalities that are of

great value to the community.

The initial studies in malaria surveillance [162, 179] and other domains [11,

14,180] showed us that this approach is a viable solution for enhancing inter-

operability. The successful extension of this methodology to the malaria use

163

Page 183: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

case appears promising based on the results from the initial implementation.

The addition of a dashboard and Valet SADI extend the capabilities of the

SADI framework to make it suitable for change detection, service restoration

and preservation of interoperability.

Whereas a systematic evaluation of the many components of this framework,

individually and together, is beyond the scope of this initial study, we are

aware of other malaria surveillance systems in sub-Saharan African countries

have been reported and evaluated in part [159, 181] according to attributes

recommended by Center for Disease Control and Prevention (CDC) [182].

Indeed, it would be valuable to make some direct system comparisons. Re-

grettably, few technical details of these systems are reported and their key

features such as the architecture, supported datatypes and data quality, the

use of data representation standards, capacity for change management, and

degree of interoperability supported have not been disclosed. Without such

information it is not possible to compare them with SIEMA. It is apparent,

however, that the systems were designed for centralized data warehousing

rather than seamless access to distributed data, and this is a significant dis-

tinction.

A brief assessment of SIEMA according to attributes recommended by CDCP,

namely simplicity, data quality, flexibility, stability, timeliness, can be made

based on the initial experiments reported in the presented study to date.

To address the attribute of simplicity, the activity of creating surveillance

queries can be assessed. Whereas writing syntactic queries (SPARQL) for

164

Page 184: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

submission to a query client manually requires that a user has expertise with

the query language, the HYDRA GUI can save users time and allow more

complex surveillance queries to be composed by persons with less technical

skill [183]. Figure 7.8 shows a graphical representation of a query built with

the GUI which in turn is translated to SPARQL automatically. To address

the attribute of data quality SIEMA’s adoption of SADI ensures that W3C

standard OWL, RDF[S] is used to describe and format every piece of data

accessed through the framework. The attribute of flexibility is also met since

access to distributed data can be provisioned by using SADI services that are

easily deployed in a registry, making them discoverable and readily usable

for a variety of ad-hoc queries. Likewise, the attributes of stability and time-

liness of the system are met as the implemented dashboard tracks service

uptime, reporting failures immediately after detecting the faults. System

rebuilds with Valet SADI ensure stability so data can continue to be pro-

vided and the system stays operational if changes occur. In this way there

is a preservation of interoperability and any service downtime is kept to a

minimum.

Overall, it is anticipated that the ongoing trials with the SIEMA framework

will give the research and development team further insight into the real-

world requirements for interoperability and change management in malaria

surveillance leading to further improvements in adaptability and performance.

Given the critical need for timely integration of distributed data from multi-

ple heterogeneous sources in an efficient way, we hope to build co-operative

165

Page 185: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

partnerships between multiple disciplines, organizations, and sectors. In ad-

dition, insights gained from this research are likely transferable to a range of

global surveillance projects.

7.6 Conclusion

In this chapter, it has been demonstrated that authentic questions asked in

malaria surveillance can be formalized as queries and mapped to a combi-

nation of Semantic Web services designed to deliver target data from dis-

tributed data sources. It has been shown that using SIEMA and leveraging

terminologies from community developed ontologies offers flexibility both for

integrating data and easy query composition. The developed infrastructure

also offers a solution to the problem of change management, an important

process for maintaining interoperability and integrity of an integrated surveil-

lance system. Given that changes in the form of addition/renaming/deletion

of terminologies can frequently occur in the face of evolving system require-

ments, a change management dashboard was introduced. This makes it pos-

sible to identify important changes, report on the status of services as a con-

sequence of changes and offer users the option to rebuild inactive services.

The dashboard and service re-authoring routines serve as an important vehi-

cle to maintain system interoperability of mission-critical global surveillance

programs. The infrastructure has been implemented and its relevance has

been demonstrated with an authentic use case, with the goal of soliciting

166

Page 186: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

further requirements from the Malaria Analytics community. In future work

SIEMA will be deployed on live dynamic data sources.

167

Page 187: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Chapter 8

Conclusion and Future Work

In this chapter, we will summarize our main contributions which have been

published in various venues. We will also list some of the key benefits of our

work and provide arguments on their behalf. Finally, we will conclude this

chapter by describing some of the shortcomings of our work and list potential

research directions for future in order to improve the Valet SADI framework.

8.1 Contributions

In this work, we addressed the problem encountered in one aspect of semantic

querying paradigm where a large number of Semantic Web services need to

be deployed on top of one or more relational databases manually in order to

draw data by end users who are familiar with the domain of interest but lack

technical skills in querying databases. An infrastructure which can support

168

Page 188: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

such semantic querying capability could be assembled by provisioning two

technology stacks, a registry of Semantic Web services and a query client

which can discover, orchestrate, and invoke these services to execute them.

For SADI Semantic Web services query clients such as SHARE and HYDRA

do exist. However, a number of research studies and subsequent real-world

deployments of SADI services in [11–14, 16, 17] have proved that creating

SADI services manually is a time-consuming and error-prone endeavor, and

it requires understanding of a number of resources and competencies in cer-

tain technical areas. Acquiring the skills for a user requires efforts and per-

severance which are not expected of domain experts in non-technical fields.

In order to take full advantage of query clients we realized that SADI service

needs to be generated and deployed rapidly. Creating SQL queries to run

on the databases still remain a hurdle which renders the generation process

slow. Therefore, automation of generating both the service code and SQL

query has become a critical target of our work.

We have implemented the Valet SADI framework which is used to automate

the task of generating SADI Semantic Web services and SQL queries from

their declarative input and output descriptions. Valet SADI is inspired by

the paradigm of semantic querying where one or more relational databases

store the source data, and one or more expressive knowledge bases for a

domain exist, to which the database schema is related with such a degree

that suitable explicit mappings can be specified in the form of axioms or

rules. These mapping are logical description of the relations in the database

169

Page 189: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

to link them to the concepts and relations defined by the knowledge bases.

The goal of semantic querying is to permit end users to be able to formulate

queries logically using the terminologies in their domain (such as concepts,

relations) and answer them with respect to the knowledge bases and the

databases. The services generated by Valet SADI consume input values in

RDF format, execute SQL queries to retrieve answers from the source data

in one or more relational databases, and create output in RDF format. The

services are deployed in a service registry and are automatically discovered,

orchestrated, and invoked from a SPARQL query client when an end user

executes a SPARQL query.

In Chapter 1 we have provided an overview of existing approaches to accessing

information stored in relational databases from standardized knowledge bases

of domains of interests. We have listed the statements of problems when

Semantic Web service-based approaches were previously deployed. We have

concluded the chapter by providing our solutions to these problems in the

form of a framework.

In Chapter 2 we have briefly described the resources and technologies in

order to explain our contributions. The topics include the transition from

traditional Web towards the Semantic Web and traditional Web services to

Semantic Web services. We have explained the operations of SADI Semantic

Web services in particular, and how their operations compare to the oper-

ations of other Semantic Web services. We have concluded the chapter by

briefly mentioning the relationships between relational databases and the

170

Page 190: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Semantic Web.

In Chapter 3, we have introduced our main contribution as a framework

named Valet SADI with a compact diagram. The modular architecture of

Valet SADI offers a concise description of each component. There are four

modules which work in tandem to produce the final service and the compo-

nents in these modules integrate a number of essential inputs. In Module-1

the product is a set of semantic mapping rules which are defined manually

from the correspondence of one or more relational databases as one form of

input and domain ontologies as the knowledge base as the other input. In

Module-2, declarative input and output OWL class expressions are the inputs

described manually in a service ontology and the outputs are the graph rep-

resentations of these expressions. The tools in Module-3 process the outputs

both these modules and produce an (uninstantiated) SQL-template query

automatically. Finally, the components in Module-4 use the template query

and the graphs from Module-3 as their inputs to produce the source code of

a SADI service in Java along with the supporting source files, which are then

compiled, packaged, and deployed as a Web application service into a SADI

registry. During this whole process only Module-1 and Module-2 require hu-

man intervention. In order to assist explaining the tasks carried out by the

modules of the compact diagram, an expanded diagram for each module has

been included.

In Chapter 4, having introduced the architecture, we have developed a num-

ber of algorithms and reused existing resources to implement the operations

171

Page 191: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

of each module.

The mapping rules in Module-1 are written in a compact rule language in

PSOA RuleML and verified manually, possibly by a Semantic Web engineer.

We have provided a set of rules in Section 4.1.1 which are sufficient to create

simple mapping. Although rule languages such as RIF-BLD, RIF-PRD, Pro-

log have been in existence and they can be used for semantic mapping, PSOA

has become a viable alternative since its inception. Rules expressed in PSOA

RuleML allow a uniform representation of both positional and slotted argu-

ments in a single psoa term compared to RIF rules. For mapping, we have

used positional arguments because they are suitable for expressing relational

knowledge bases. We have chosen PSOA rules because without losing their

expressiveness they can be translated to First-Order formulas in TPTP syn-

tax which are compatible with the VampirePrime reasoner, although other

rule syntaxes could have been used if their translation to TPTP had been

available.

In order to generate graphs in Module-2 from OWL class expressions we have

developed an algorithm in Section 4.2 which uses some basic features of an

existing library for creating and traversing graphs [184].

The components in Module-4 integrate four inputs to generate an SQL-

template query. In Section 4.3.1 we have developed an algorithm which is

used by the converter to produce a semantic query in TPTP format from the

generated graphs in Module-2. For translating domain ontologies into TPTP-

FOF axioms, an existing translator has been extended by the latest OWL

172

Page 192: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

constructs. The translator uses the latest features from OWL-API [185] tool

for OWL ontologies. We have implemented another translator to perform a

direct translation of the semantic mapping rules written in PSOA RuleML

into TPTP-FOF axioms. The abstractions of the databases are direct repre-

sentations of the relations from the database schemas, hence no translation

is required. The VampirePrime reasoner uses the abstractions, the semantic

query, the translated domain ontology, and the translated mapping rules,

all in TPTP format, in order to generate schematic answers which are then

converted to SQL queries using an SQL generator. All these components

in Module-4 are used to transform the service descriptions into SQL queries

based on the Incremental Query Rewriting technique.

The Generator component in Module-4 integrates the SQL query capable of

joining multiple tables into the source code of a SADI service. The source

code for reading and writing RDF data are produced by traversing the graphs

generated in Module-2. We have developed an algorithm in Section 4.4 which

creates the source code for a SADI service automatically in such an order

that the statements i) read input values from RDF input data if available, ii)

instantiate the SQL query with the input values, and iii) create the output

data in RDF format with the results after executing the query and retrieving

the results. All other auxiliary source files are also automatically created

so that together they can be used as a Web application. The Web Service

Deployer is then used to compile, package, and index services in a registry.

After the services are deployed, SHARE and HYDRA can look up service

173

Page 193: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

descriptions matching an end user’s SPAQL query and invoke the service to

return results. The availability and consideration of the various features of

these clients also played a role in the design of Valet SADI and the realization

of the automation of service generation.

In Chapter 5, we have created 11 SADI services using Valet SADI. We have

demonstrated the operational steps implemented in each module for creating

a variety of SADI services. We have been able to generate the services within

a total of almost 25 seconds once the mapping and the services descriptions

were ready. We have tabulated the time taken by Valet SADI for each service.

In Chapter 6, we have demonstrated how SPARQL queries can be used to

discover, invoke and execute SADI services. The SPARQL query is shown

in a textual form which has been used in the SHARE query client. We

have built an equivalent graphical query on HYDRA, which can also import

queries in text form submitted to SHARE.

In Chapter 7 we have presented the SIEMA surveillance and change manage-

ment platform as one of the deployments. SIEMA supports the creation of

flexible surveillance queries across distributed data resources. It uses SADI

Semantic Web services to enable data access and improve interoperability

and the GUI-enabled semantic query engine HYDRA to implement the target

queries typical of malaria surveillance. We have implemented a custom algo-

rithm to detect changes to community-developed terminologies, data sources,

and services that are core to SIEMA. A dashboard reports these changes to

the user and detects loss of interoperability. Valet SADI is used in two stages,

174

Page 194: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

to create new services to enable distributed data access, and then again to

mitigate the impact of changes by rebuilding the affected services.

8.2 Benefits of Valet SADI

Several infrastructures were deployed using SADI services in order to im-

plement target queries from heterogeneous data sources. Although the de-

ployments provided improved ability for querying compared to the existing

systems, several drawbacks were identified because of the manual creation

of SADI services which are i) time consuming, ii) prone to errors, and iii)

unattractive to both data providers and query composers alike because i)

and ii) are the main barriers for adopting a service-based approach.

The automation provided by our Valet SADI framework addresses the above

shortcomings to a great extent. These benefits have been illustrated by

the real-world deployments for surveillance of Hospital-Acquired Infections

and malaria prevention and control, as part of global health surveillance

infrastructure.

A prototype SADI service-based surveillance infrastructure HAIKU [11] was

deployed where semantic querying was implemented on top of an extract

of The Ottawa Hospital Data Warehouse. In this prototype services were

created and deployed to answer sets of authentic queries. These services

were built manually by an experienced group of Semantic Web engineers and

researchers over a period of two years. Most of the time was spent on writing

175

Page 195: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

program codes and correct SQL queries. Our tests reveal that with a similar

infrastructure Valet SADI can create similar program code and SQL queries

in only 2 seconds, which speeds up the deployment of SADI-based systems

significantly.

One way HAIKU differs from our Valet SADI framework is the presence of

semantic mapping rules. Although the code generated by Valet SADI is not

error-prone, which the HAIKU prototype suffers from, the mapping rules still

have to be verified by an expert once they are created. Moreover, if there are

changes either in the ontologies or in the database schemas, the rules have to

be re-verified and rewritten to address the correct correspondences, which is

still manually done in our framework. There are several reports of mapping

tools that offer semi-automatic and sometimes automatic mapping depending

on the complexity of the schema and the ontologies. Some of them are two-

stage systems such as BootOX [186], Automap4OBDA [187] which produce

a target-agnostic ontology followed by an alignment to the target ontology.

IncMap [188] is an example of one-stage system which directly produces

the mapping. Among the other mapping tools ontop [189], MIRROR [190],

COMA++ [191], MASTRO [192] are notable. However, each of these tools

have shortcomings because they fail to detect n : m (i.e. many-to-many

relations), due to junction table, and n : 1 class-table relationships, due to

column splitting. Many of them do not utilize annotation properties and miss

out on many properties matching for tables having 1 : 1 relationship with

other tables. For these reasons a combination of mapping tools are sometimes

176

Page 196: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

used depending on the features of the schemas and the ontologies, and their

correspondence. Most of the tools cannot automate a mapping if there is

a low degree of lexical correspondence. This is primarily why successful

automation of mapping is difficult to achieve, and needs human intervention.

There is very likely an incorrect correspondence as the schema or the ontology

or both evolve over time. Similarly, semantic mapping in the Valet SADI

architecture needs to go through manual verification to avoid errors, and the

absence of an automated mapping is not considered a shortcoming. Given

the modular architecture it is conceivable that future 3rd party mapping

tools with high accuracy could be incorporated.

Valet SADI offers ease of use for data providers who are interested in shar-

ing their data and for query composers who are end users able to formalize

SPARQL queries to retrieve answers from these data.

Data providers generally permit end users to access their data by providing

an Application Programming Interface (API) in various languages so that

they can be securely accessed. The parameters described in these APIs are

syntactic in nature which application developers with technical expertise un-

derstand and can build custom applications on top. If the data providers

were to expose these data using Semantic Web services such as SADI, ma-

chines (query clients) could find the data based on the semantics embedded

in them. Instead of providing multiple APIs to attract a wide range of ap-

plication developers which is difficult to maintain, Valet SADI can be used

to build registries full of SADI services very quickly. While it is one thing

177

Page 197: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

for a data provider to offer an API, it is more attractive to offer many ser-

vices which are easily findable and accessible, as described by the recent

introduction of the FAIR data principle [61].

End users also benefit when there are sufficient number of services exposing

source data. One of the key advantages of the SADI query client HYDRA

is that end users with less technical skills can compose SPARQL queries

graphically by typing key phrases on the HYDRA GUI. The query graph is

automatically converted into the equivalent SPARQL query which the user

does not required any expertise in. Due to the existence of this type of query

client, the pool of end users that could adopt SADI is potentially quite large

to build and share queries.

8.3 SADI Service-based System Deployment

A number of SADI service-based systems have been deployed where mission-

critical tasks on more than one data resources have been performed. With

Valet SADI the services were built quickly and with SHARE and HYDRA the

services were automatically discovered, orchestrated, invoked and executed

from an SPARQL query in an orderly fashion based on an intelligent query

planning. Some of the key deployments are briefly summarized below:

178

Page 198: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

8.3.1 Surveillance for Hospital-Acquired Infections

The availability of Valet SADI in combination with HYDRA allows domain

experts/end users to pose authentic queries with a high degree of complexity

which would previously have been achieved by a software developer. A num-

ber of SADI service-based systems have been deployed where mission-critical

tasks on more than one data resources have been performed. In most of these

cases the services were built manually. One of these is an infrastructure for

surveillance of infections [11], where a list of authentic target queries were ex-

ecuted by using SADI services. The services were built manually which was

time-consuming. In Chapter 5- 6 it was illustrated how surveillance tasks for

Hospital-Acquired Infectious (HAI) diseases can be performed by using a set

of 11 SADI services created by out Valet SADI framework. Once semantic

mappings were written and the input and the outputs of a SADI services

were created, Valet SADI took approximately 25 seconds to create all of the

11 SADI services. In Chapter 6 we have demonstrated a complex SPARQL

query which requires invoking all services to execute a complex query involv-

ing all tables in the schema shown in Section 5.2.1.1. The SPARQL query

was executed successfully on both SHARE and HYDRA and the results re-

turned by the services were integrated and shown to the end users which

were verified.

The queries were evaluated on SHARE and HYDRA query clients which

returned correct results.

179

Page 199: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

8.3.2 Surveillance of Malaria Control and Intervention

The speed at which Valet SADI can be used to build services has proved to

be very useful in the context of surveillance and in particular, surveillance

in global health. The ongoing challenges in this sector arise from the fact

that the environment they are operated in requires access to distributed

resources across different regions. Few surveillance systems deployed in sub-

Saharan African countries which have been reported in [156] can cope with

the challenge because they lack real-time aggregation of sparse resources. The

majority of these systems are operated on centralized databases and among

them a few [157–159] have been upgraded with improved visualization and

reporting tools, while the main challenge to integrate distributed resources

remains unresolved.

In a surveillance system overlooking distributed resources, when resources

are independently managed and poorly coordinated, changes occurring in

resources in one location are not reflected globally, resulting in a loss of in-

teroperability of the system. Our recent work in [162] identified that when

resources evolve over time, the changes occurring in them need to be managed

properly to avoid the loss of interoperability. Next, SADI web services were

deployed on top of distributed resources in [179] to demonstrate the effective-

ness of SPARQL queries on distributed resources. A dashboard (see 7.2.1.2)

implemented for detecting and identifying the changes and their types is re-

ported in [172]. The types of changes detected in domain ontologies and

service ontologies are addition (i.e. extension), deletion (i.e. obsoleting), re-

180

Page 200: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

naming (i.e. refining) of terminologies. In the source database, changes are

detected if they occur in tables and their attributes, data types and indices.

Likewise, changes to saved queries and the corresponding service dependen-

cies can be detected. The integration of Valet SADI with the dashboard led

to a viable solution for the interoperability problem.

The integration is seamless across various regions because the schemas in the

backend are accessed using meaningful terminologies which are standardized

during the ontology development. The availability of HYDRA gives end

users access to the services from anywhere across the region. The dashboard

detects any changes in resources and reports them to the authority so that a

service which is affected by them can be noticed immediately. This reports

loss of interoperability of the surveillance system which needs to be restored

to minimize the downtime of the affected service. This can be done simply

by regenerating the service which is done by bringing Valet SADI back to

regenerating the same service with the new changes. The SIEMA architecture

illustrated in Figure 7.1 shows interactions among Valet SADI, the dashboard

and the invocation of Valet SADI again by automated software agents when

services are down due to changes. The deployment of SIEMA surveillance

system for malaria intervention has been described in detail in Chapter 7.

8.3.3 Decision Support System in Agriculture

Another deployment of SADI service using Valet SADI is reported in [68],

but not in detail in this thesis, which describes how agricultural consultants

181

Page 201: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

accessing distributed data silos can integrate relevant information to offer use-

ful information such as finding optimal crop varieties and computing profit

margins of each variety using a complex cost model. A total of 9 services

were created and deployed in a service registry. The range of queries include

helping a farmer decide what eggplant variety to plant, finding how much

the farmer hopes to harvest based on the potential profit margin, choosing

pesticide and its effect on bees. Among the services there are 4 services

in which SQL queries are used to retrieve data from the tables. Therefore,

these services were generated by Valet SADI. The rest of the services per-

form various computations only, and were beyond the scope of the current

implementation.

8.4 Open Problems of Valet SADI

The independent deployments of SADI services in three different areas prove

the usefulness of the Valet SADI framework in setting up a registry of services

for querying relational data semantically, which is a speedy and less error-

prone operation and offers benefits to data providers as well as end users. The

framework also offers an avenue towards preserving system interoperability

in support of change management when minimizing downtime is critically

important. This feature opens a door to many domains where a service-

based semantic querying infrastructure can be deployed on top of single or

distributed relational databases.

182

Page 202: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

However, it is observed that Valet SADI suffers from a few limitations. The

services created by Valet SADI are essentially query services, hence they

are read only. Currently there are no support for create, update and delete

operations to be performed by services created by the tool.

The mapping rules in Valet SADI need to be created and verified manually

until either the ontologies or the database schemas evolve. Most of the map-

ping tools are based on the Ontology-based Data Access (OBDA) principle,

and to our knowledge there are no mapping tools which automate the cre-

ation of mapping rules in an expressive language such as PSOA RuleML.

Although the OBDA mapping tools have considerably matured over time,

the mappings they produce still need to be verified by experts manually. Un-

til such tools are available the mapping rules will be prone to error, especially

where the database and/or the ontologies evolve.

The deployment of SADI service-based decision support system in agriculture

shows a trivial limitation of generating services from declarative input and

output descriptions. Specifically a declarative expression denotes what an

input or an output should be, but does not say how to get there. Therefore,

even simple computations cannot be expressed in OWL expressions which,

in turn, cannot be implemented in a SADI service automatically. Thus,

a system requiring some computing services cannot be created completely

automatically by Valet SADI.

183

Page 203: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

8.5 Future Work

In the short-term future, one of the goals is to develop a tool which produces

mapping rules in PSOA RuleML automatically. We believe that a rudimen-

tary mapping tool can be developed fairly quickly based on the mapping

rules described in Section 4.1.1 if the structure of the relational schema and

the domain ontologies are simple and there is a certain degree of lexical cor-

respondence. There are tools such as AutoMap4OBDA [187], Map-on [193],

Karma [194], OptiqueVQS [195] which offer users a visual mapping experi-

ence and are currently getting much attention. Therefore, we would like to

provide a comparable GUI to make the mapping experience attractive for

the adopters of Valet SADI.

During our work on the deployment of SIEMA (see Chapter 7) we have

learned that field workers in many parts of the world collect data manually

and store them in simple spreadsheets (e.g. comma separated values (*.csv),

Excel (*.xlsx)). We have had similar experience during the deployment of

SADI service-based decision support system [68] in the agriculture domain.

This made us aware of the potential of reaching a wider range of users and the

importance of Valet SADI if it can be used to generate services automatically

and deploy them quickly on top of spreadsheets. Therefore, another area for

future extensions lies in the inclusion of simple spreadsheets as the source

data in Valet SADI.

Another potential area of future work is in ability to determine the number

184

Page 204: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

of potential services that can be generated by the Valet SADI framework au-

tomatically by looking at the database schemas and the domain ontologies.

Our attempts, although not documented in this thesis, have shown that this

can be accomplished because simple input and output OWL class expressions

can be automatically created by randomly combining classes and properties

from the domain ontologies. However, these expressions might not be seman-

tically meaningful to the end users and may need to be verified manually by

domain experts. There is also no guarantee that any SQL queries can be gen-

erated from these exercises by Valet SADI. However, this is an interesting

problem area where more research and experiments are needed.

The usefulness of Valet SADI framework has been proven in SIEMA for pre-

serving semantic interoperability while accessing distributed resources across

different regions. Simply by using Valet SADI in two stages with a supporting

dashboard, we were able to resolve the loss of interoperability which occurs

during the evolution of resources. In future, we would like to run more tests

in this regard by replicating the SIEMA model in other domains.

185

Page 205: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Bibliography

[1] Norman W. Paton, Robert Stevens, Patricia G. Baker, Carole A. Goble,

Sean Bechhofer, and Andy Brass. Query Processing in the TAMBIS

Bioinformatics Source Integration System. In SSDBM, pages 138–147,

1999.

[2] Diego Calvanese, Giuseppe De Giacomo, Domenico Lembo, Maurizio

Lenzerini, Antonella Poggi, Mariano Rodriguez-Muro, Riccardo Rosati,

Marco Ruzzi, and Domenico Fabio Savo. The MASTRO system for

ontology-based data access. Semantic Web, 2(1):43–53, 2011.

[3] Christian Bizer. D2RQ - treating non-RDF databases as virtual RDF

graphs. In In Proceedings of the 3rd International Semantic Web Con-

ference (ISWC2004), 2004.

[4] Soren Auer, Sebastian Dietzold, Jens Lehmann, Sebastian Hellmann,

and David Aumueller. Triplify: light-weight linked data publication

from relational databases. In Juan Quemada, Gonzalo Leon, Yoelle S.

Maarek, and Wolfgang Nejdl, editors, Proceedings of the 18th Interna-

186

Page 206: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

tional Conference on World Wide Web, WWW 2009, Madrid, Spain,

April 20-24, 2009, pages 621–630. ACM, 2009.

[5] Jian Zhou, Li Ma, Qiaoling Liu, Lei Zhang, Yong Yu, and Yue Pan.

Minerva: A scalable OWL ontology storage and inference system. In

Riichiro Mizoguchi, Zhongzhi Shi, and Fausto Giunchiglia, editors, The

Semantic Web - ASWC 2006, First Asian Semantic Web Conference,

Beijing, China, September 3-7, 2006, Proceedings, volume 4185 of Lec-

ture Notes in Computer Science, pages 429–443. Springer, 2006.

[6] Alexandre Riazanov and Marcelo A. T. Aragao. Incremental Query

Rewriting with Resolution. Canadian Semantic Web II. Springer US,

2010.

[7] N Rishe. SemanticSQL. High Performance Database Research Center,

School of Computer Science, Florida International University, 1998.

[8] Christian Bizer and Richard Cyganiak. D2r server-publishing relational

databases on the semantic web. In Poster at the 5th International

Semantic Web Conference, volume 175, 2006.

[9] Orri Erling and Ivan Mikhailov. RDF Support in the Virtuoso DBMS.

In Networked Knowledge-Networked Media, pages 7–24. Springer, 2009.

[10] Dejing Dou, Paea LePendu, Shiwoong Kim, and Peishen Qi. Inte-

grating databases into the semantic web through an ontology-based

187

Page 207: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

framework. In Data Engineering Workshops, 2006. Proceedings. 22nd

International Conference on, pages 54–54. IEEE, 2006.

[11] Alexandre Riazanov, Artjom Klein, Arash Shaban-Nejad, Gregory W.

Rose, Alan J. Forster, David L. Buckeridge, and Christopher J.O.

Baker. Semantic querying of relational data for clinical intelligence:

a semantic web services-based approach. J. Biomedical Semantics, 4:9,

2013.

[12] Alexandre Riazanov, Gregory W Rose, Artjom Klein, Alan J Forster,

Christopher J.O. Baker, Arash Shaban-Nejad, and David L Buckeridge.

Towards clinical intelligence with SADI semantic web services: a case

study with hospital-acquired infections data. In Proceedings of the 4th

International Workshop on Semantic Web Applications and Tools for

the Life Sciences, pages 106–113. ACM, 2011.

[13] Alexandre Riazanov, Jonas Bergman Laurila, and Christopher J.O.

Baker. Deploying mutation impact text-mining software with the SADI

Semantic Web Services framework. BMC bioinformatics, 12(4):S6,

2011.

[14] Leonid L. Chepelev, Alexandre Riazanov, Alexandre Kouznetsov,

Hong Sang Low, Michel Dumontier, and Christopher J.O. Baker. Pro-

totype Semantic Infrastructure for Automated Small Molecule Classi-

fication and Annotation in Lipidomics. BMC Bioinformatics, 12:303,

2011.

188

Page 208: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[15] Leonid L Chepelev and Michel Dumontier. Semantic Web integration

of Cheminformatics resources with the SADI framework. Journal of

Cheminformatics, 3(1):16, 2011.

[16] Matthew M. Hindle, Alexandre Riazanov, Edward S. Goudreau,

Christopher J. Martyniuk, and Christopher J.O. Baker. Leveraging

SADI Semantic Web Services to Exploit Fish Ecotoxicology Data. In

Christopher J.O. Baker, Helen Chen, Ebrahim Bagheri, and Weichang

Du, editors, Proceedings of the 3rd Canadian Semantic Web Sympo-

sium (CSWS2011), Vancouver, British Columbia, Canada, August 5,

2011, volume 774 of CEUR Workshop Proceedings, pages 19–33. CEUR-

WS.org, 2011.

[17] Alexandre Riazanov, Matthew M. Hindle, E. Scott Goudreau, Chris

Martyniuk, and Christopher J.O. Baker. Ecotoxicology Data Feder-

ation with SADI Semantic Web Services. In Adrian Paschke, Albert

Burger, Paolo Romano, M. Scott Marshall, and Andrea Splendiani, ed-

itors, Proceedings of the 5th International Workshop on Semantic Web

Applications and Tools for Life Sciences, Paris, France, November 28-

30, 2012, volume 952 of CEUR Workshop Proceedings. CEUR-WS.org,

2012.

[18] G. Sutcliffe. The TPTP Problem Library and Associated Infrastruc-

ture: The FOF and CNF Parts, v3.5.0. Journal of Automated Reason-

ing, 43(4):337–362, 2009.

189

Page 209: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[19] Alexandre Riazanov. VampirePrime reasoner. Available at http://ri

azanov.webs.com/software.htm.

[20] Sadnan Mohammad Al Manir, Hael Jon Brenas, J.O. Christopher

Baker, and Arash Shaban-Nejad. A Surveillance Infrastructure for

Malaria Analytics: Provisioning Data Access and Preservation of In-

teroperability. JMIR Public Health Surveill, 4(2):e10218, Jun 2018.

[21] Dave Raggett, Arnaud Le Hors, and Ian Jacobs. HTML 4.01 specifi-

cation. W3C Recommendation, W3C - World Wide Web Consortium,

December 1999.

[22] T. Berners-Lee, R. Fielding, and H. Frystyk. Hypertext Transfer Pro-

tocol – HTTP/1.0. RFC 1945 (Informational), May 1996.

[23] Tim Bray, Jean Paoli, C Michael Sperberg-McQueen, Eve Maler, and

Francois Yergeau. Extensible Markup Language (XML) 1.0, 2008.

[24] K Gottschalk, S Graham, Heather Kreger, and J Snell. Introduction

to Web services architecture. IBM Systems Journal, 41:170 – 177, 02

2002.

[25] Don Box, David Ehnebuske, Gopal Kakivaya, Andrew Layman, Noah

Mendelsohn, Henrik Frystyk Nielsen, Satish Thatte, and Dave Winer.

Simple Object Access Protocol (SOAP) 1.1. W3C Note, World Wide

Web Consortium, May 2000. See http://www.w3.org/TR/SOAP/.

190

Page 210: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[26] Erik Christensen, Francisco Curbera, Greg Meredith, and Sanjiva

Weerawarana. Web Services Description Language (WSDL) 1.1. W3C,

1.1 edition, March 2001. http://www.w3c.org/TR/wsdl.

[27] Roberto Chinnici, Jean-Jacques Moreau, Arthur Ryman, and Sanjiva

Weerawarana. Web Service Description Language (WSDL) Version

2.0 Part 1: Core Language. W3C Working Draft, World Wide Web

Consortium (W3C), 10 May 2005.

[28] Luc Clement, Andrew Hately, Claus von Riegen, and Tony Rogers.

UDDI spec technical committee draft 3.0. 2. Technical report, 2004.

[29] Roy Thomas Fielding. Architectural Styles and the Design of Network-

based Software Architectures. PhD thesis, 2000.

[30] Jim Webber, Savas Parastatidis, and Ian S. Robinson. REST in Prac-

tice - Hypermedia and Systems Architecture. O’Reilly, 2010.

[31] Tim Berners-Lee. Semantic Web Road map. https://www.w3.org/D

esignIssues/Semantic.html, [Accessed 1 Jan. 2019], June 2016.

[32] Tim Berners-Lee, James Hendler, Ora Lassila, et al. The Semantic

Web. Scientific American, 284(5):28–37, 2001.

[33] Dean Allemang and James A. Hendler. Semantic Web for the Working

Ontologist - Effective Modeling in RDFS and OWL, Second Edition.

Morgan Kaufmann, 2011.

191

Page 211: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[34] T Berners-Lee, W Hall, JA Hendler, K O’Hara, N Shadbolt, and DJ

Weitzner. A framework for web science. Foundations and Trends in

Web Science, 1(1):1–130, 2006.

[35] J. J. Klyne and Carroll G. Resource Description Framework (RDF):

Concepts and Abstract Syntax. Technical report, W3C, 2004.

[36] Tim Berners-Lee, Dan Connolly, Lalana Kagal, Yosi Scharf, and Jim

Hendler. N3Logic : A Logical Framework For the World Wide Web.

Theory and Practice of Logic Programming, 8(3):249 – 269, 2008.

[37] Dan Brickley and R.V. Guha. RDF Vocabulary Description Language

1.0: RDF Schema. W3C Recommendation, 2004.

[38] Irving M Copi, Carl Cohen, and Kenneth McMahon. Introduction to

logic. Routledge, 2016.

[39] J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag,

Berlin, Heidelberg, 1984.

[40] Serge Abiteboul, Richard Hull, and Victor Vianu, editors. Foundations

of Databases: The Logical Level. Addison-Wesley Longman Publishing

Co., Inc., Boston, MA, USA, 1st edition, 1995.

[41] Christoph Benzmuller, Florian Rabe, and Geoff Sutcliffe. THF0 - the

core of the TPTP language for higher-order logic. In Automated Rea-

soning, 4th International Joint Conference, IJCAR 2008, Sydney, Aus-

tralia, August 12-15, 2008, Proceedings, pages 491–506, 2008.

192

Page 212: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[42] Alexandre Riazanov and Andrei Voronkov. The design and implemen-

tation of VAMPIRE. AI Commun., 15(2-3):91–110, 2002.

[43] Franz Baader, Diego Calvanese, Deborah McGuinness, Peter Patel-

Schneider, and Daniele Nardi. The description logic handbook: Theory,

implementation and applications. Cambridge university press, 2003.

[44] Ian Horrocks and Peter F. Patel-Schneider. Reducing OWL entailment

to description logic satisfiability. J. Web Sem., 1(4):345–357, 2004.

[45] Franz Baader, editor. The Description Logic Handbook: Theory, Im-

plementation, and Applications . Cambridge University Press, 2003.

[46] Deborah L. McGuinness and Frank van Harmelen. OWL Web Ontology

Language: Overview, W3C Recommendation, 10 February 2004.

[47] P. Hitzler, M. Krotzsch, B. Parsia, P. F. Patel-Schneider, and

S. Rudolph. OWL 2 Web Ontology Language Primer. W3C Recom-

mendation 27 October 2009., 2009.

[48] Moritz Weiten. Ontostudio® as a ontology engineering environment.

In Semantic knowledge management, pages 51–60. Springer, 2009.

[49] Holger Knublauch, Ray W Fergerson, Natalya F Noy, and Mark A

Musen. The Protege OWL plugin: An open development environment

for semantic web applications. In International Semantic Web Confer-

ence, pages 229–243. Springer, 2004.

193

Page 213: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[50] Aditya Kalyanpur, Bijan Parsia, Evren Sirin, Bernardo Cuenca Grau,

and James A. Hendler. Swoop: A Web Ontology Editing Browser. J.

Web Sem., 4(2):144–153, 2006.

[51] TopQuadrant™. TopBraid Composer™- Maestro Edition (TBC-

ME). https://www.topquadrant.com/products/topbraid-composer/,

2007. [Accessed 1 Jan. 2019].

[52] Matthew Horridge, Nick Drummond, John Goodwin, Alan L Rector,

Robert Stevens, and Hai Wang. The Manchester OWL syntax. In

OWLed, volume 216, 2006.

[53] Harold Boley. A RIF-Style Semantics for RuleML-Integrated

Positional-Slotted, Object-Applicative Rules. In Nick Bassiliades,

Guido Governatori, and Adrian Paschke, editors, RuleML Europe,

volume 6826 of Lecture Notes in Computer Science, pages 194–211.

Springer, 2011.

[54] Harold Boley. PSOA RuleML Bridges Graph and Relational Databases.

RuleML Technical Memo, July 2018, http://wiki.ruleml.org/in

dex.php/PSOA RuleML Bridges Graph and Relational Databases,

ALP Newsletter, Feature Articles, July 6 2018. https://www.cs.nms

u.edu/ALP/2018/07/psoa-ruleml-bridges-graph-and-relation

al-databases/.

194

Page 214: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[55] Harold Boley. Integrating Positional and Slotted Knowledge on the

Semantic Web. Journal of Emerging Technologies in Web Intelligence,

4(2):343–353, November 2010. Academy Publisher, Oulu, Finland, ht

tp://ojs.academypublisher.com/index.php/jetwi/article/vie

w/0204343353.

[56] Harold Boley. Object-oriented RuleML: User-level Roles, URI-

grounded Clauses, and Order-sorted Terms. In Proceedings of the Sec-

ond International Conference on Rules and Rule Markup Languages for

the Semantic Web, LNCS-RuleML’03, pages 1–16, Berlin, Heidelberg,

2003. Springer-Verlag.

[57] Michael Kifer, Georg Lausen, and James Wu. Logical Foundations of

Object-Oriented and Frame-Based Languages. J. ACM, 42(4):741–843,

1995.

[58] Harold Boley and Michael Kifer. A Guide to the Basic Logic Dialect

for Rule Interchange on the Web. IEEE Trans. Knowl. Data Eng.,

22(11):1593–1608, 2010.

[59] Tim Berners-Lee. Linked Data - Design Issues. http://www.w3.org

/DesignIssues/LinkedData.html, 2006. [Accessed 1 Jan. 2019].

[60] Insight Centre for Data Analytics. The Linked Open Data Cloud.

https://lod-cloud.net/, [Accessed 1 Jan. 2019], June 2018.

195

Page 215: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[61] Mark D Wilkinson, Michel Dumontier, IJsbrand Jan Aalbersberg,

Gabrielle Appleton, Myles Axton, Arie Baak, Niklas Blomberg, Jan-

Willem Boiten, Luiz Bonino da Silva Santos, Philip E Bourne, et al.

The FAIR Guiding Principles for scientific data management and stew-

ardship. Scientific data, 3, 2016.

[62] SPARQL query language for RDF, W3C recommendation, 2008.

[63] S.A. McIlraith, T.C. Son, and Honglei Zeng. Semantic Web services.

Intelligent Systems, IEEE, 16(2):46–53, Mar-Apr 2001.

[64] The DAML Services Coalition: A. Ankolekar, M. Burstein, J. R. Hobbs,

O Lassila, D. L. Martin, S. A. McIlraith, S. Narayanan, M. Paolucci,

T. Payne, K. Sycara, and H. Zeng. DAML-S: Semantic Markup ForWeb

Services. In Proccedings of Semantic Web WorkShop (SWWS 2001),

2001.

[65] Liliana Cabral, John Domingue, Enrico Motta, Terry R. Payne, and

Farshad Hakimpour. Approaches to Semantic Web Services: an

Overview and Comparisons. In Christoph Bussler, John Davies, Di-

eter Fensel, and Rudi Studer, editors, ESWS, volume 3053 of Lecture

Notes in Computer Science, pages 225–239. Springer, 2004.

[66] Mark Wilkinson, Benjamin Vandervalk, and Luke McCarthy. The

Semantic Automated Discovery and Integration (SADI) Web ser-

196

Page 216: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

vice Design-Pattern, API and Reference Implementation. Journal of

Biomedical Semantics, 2(1):8, 2011.

[67] Katy Wolstencroft, Pinar Alper, Duncan Hull, Chris Wroe, Phillip W.

Lord, Robert Stevens, and Carole A. Goble. The myGrid ontology:

bioinformatics service discovery. International Journal of Bioinformat-

ics Research and Applications, 3 3:303–25, 2007.

[68] Mohammad Sadnan Al Manir, Bruce Spencer, and Christopher J.O.

Baker. Decision Support for Agricultural Consultants With Semantic

Data Federation. International Journal of Agricultural and Environ-

mental Information Systems (IJAEIS), 9(3):87–99, 2018.

[69] Benjamin P. Vandervalk, E. Luke McCarthy, and Mark D. Wilkinson.

SHARE: A semantic web query engine for bioinformatics. In The Se-

mantic Web, Fourth Asian Conference, ASWC 2009, Shanghai, China,

December 6-9, 2009. Proceedings, pages 367–369, 2009.

[70] Michel Dumontier, Christopher J.O. Baker, Joachim Baran, Alison

Callahan, Leonid L. Chepelev, Jose Cruz-Toledo, Nicholas R. Del Rio,

Geraint Duck, Laura Ines Furlong, Nichealla Keath, Dana Klassen,

James P. McCusker, Nuria Queralt-Rosinach, Matthias Samwald, Na-

talia Villanueva-Rosales, Mark D. Wilkinson, and Robert Hoehndorf.

The Semanticscience Integrated Ontology (SIO) for biomedical research

and knowledge discovery. J. Biomedical Semantics, 5:14, 2014.

197

Page 217: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[71] Katherine Wolstencroft, Robert Haines, Donal Fellows, Alan R.

Williams, David Withers, Stuart Owen, Stian Soiland-Reyes, Ian Dun-

lop, Aleksandra Nenadic, Paul Fisher, Jiten Bhagat, Khalid Belha-

jjame, Finn Bacall, Alex Hardisty, Abraham Nieva de la Hidalga,

Maria P. Balcazar Vargas, Shoaib Sufi, and Carole A. Goble. The

Taverna workflow suite: designing and executing workflows of Web

Services on the desktop, web or in the cloud. Nucleic Acids Research,

41(Webserver-Issue):557–561, 2013.

[72] Jeremy Goecks, Anton Nekrutenko, and James Taylor. Galaxy: a com-

prehensive approach for supporting accessible, reproducible, and trans-

parent computational research in the life sciences. Genome Biology,

11(8):R86, 2010.

[73] Mikel Egana Aranguren, Alejandro Rodrıguez Gonzalez, and Mark D.

Wilkinson. Executing SADI services in Galaxy. J. Biomedical Seman-

tics, 5:42, 2014.

[74] Alejandro Rodrıguez Gonzalez, Alison Callahan, Jose Cruz-Toledo,

Adrian Garcia, Mikel Egana Aranguren, Michel Dumontier, and

Mark D. Wilkinson. Automatically exposing OpenLifeData via SADI

semantic Web Services. J. Biomedical Semantics, 5:46, 2014.

[75] Mohammad Sadnan Al Manir, Alexandre Riazanov, Harold Boley,

Artjom Klein, and Christopher J.O. Baker. Valet SADI: Provision-

ing SADI web services for semantic querying of relational databases.

198

Page 218: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

In Proceedings of the 20th International Database Engineering & Appli-

cations Symposium, IDEAS ’16, pages 248–255, New York, NY, USA,

2016. ACM.

[76] Mohammad Sadnan Al-Manir, Alexandre Riazanov, Harold Boley,

Artjom Klein, and Christopher J.O. Baker. Automated Generation

of SADI Semantic Web Services for Clinical Intelligence. In Proceed-

ings of the International Workshop on Semantic Big Data, SBD ’16,

pages 6:1–6:6, New York, NY, USA, 2016. ACM.

[77] Syed Ahmad Chan Bukhari, Mate Levente Nagy, Paolo Ciccarese,

Michael Krauthammer, and Christopher J.O. Baker. iCyrus: A Seman-

tic Framework for Biomedical Image Discovery. In SWAT4LS, pages

13–22, 2015.

[78] Richard Boyce, Huijuan Wu, Ben Vandervalk, E. Luke McCarthy, Jose

Cruz-Toledo, Artjom Klein, Christopher J.O. Baker, Michel Dumon-

tier, and Mark D. Wilkinson. The SADI Personal Health Lens: A

Web Browser-Based System for Identifying Personally Relevant Drug

Interactions. In JMIR research protocols, 2013.

[79] Joel Farrell and Holger Lausen. Semantic Annotations for WSDL and

XML Schema. W3C working draft, World Wide Web Consortium,

2007.

199

Page 219: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[80] R. Akkiraju, J. Farrell, J.Miller, M. Nagarajan, M. Schmidt, A. Sheth,

and K. Verma. Web Service Semantics - WSDL-S, ” A joint UGA-IBM

Technical Note, version 1.0,. Technical report, April 2005.

[81] Gabriela DA Guardia, Luıs Ferreira Pires, Eduardo G da Silva, and

Clever RG de Farias. SemanticSCo: a Platform to Support the Seman-

tic Composition of Services for Gene Expression Analysis. Journal of

Biomedical Informatics, 2017.

[82] Mark Burstein, Jerry Hobbs, Ora Lassila, Drew Mcdermott, Sheila

Mcilraith, Srini Narayanan, Massimo Paolucci, Bijan Parsia, Terry

Payne, Evren Sirin, Naveen Srinivasan, and Katia Sycara. OWL-S:

Semantic markup for web services, 2004.

[83] Naveen Srinivasan, Massimo Paolucci, and Katia P. Sycara. An Ef-

ficient Algorithm for OWL-S Based Semantic Search in UDDI. In

SWSWPC, 2004.

[84] Matthias Klusch, Andreas Gerber, and Marcus Schmidt. Semantic

Web Service Composition Planning with OWLS-Xplan. In Proceedings

of the 1st Int. AAAI Fall Symposium on Agents and the Semantic Web,

pages 55–62, 2005.

[85] Evren Sirin, Bijan Parsia, Dan Wu, James A. Hendler, and Dana S.

Nau. HTN planning for Web Service composition using SHOP2. J.

Web Sem., 1:377–396, 2004.

200

Page 220: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[86] Ian Horrocks, Peter F. Patel-Schneider, Harold Boley, Said Tabet, Ben-

jamin Grosof, and Mike Dean. SWRL: A semantic web rule language

combining OWL and RuleML. Draft version, DARPA DAML Program,

December 2004.

http://www.daml.org/rules/proposal/.

[87] Chao Qu, Fagui Liu, Ming Tao, and Dacheng Deng. An OWL-S based

specification model of dynamic entity services for Internet of Things.

J. Ambient Intelligence and Humanized Computing, 7(1):73–82, 2016.

[88] Floriano Scioscia and Michele Ruta. Building a Semantic Web of

Things: issues and perspectives in information compression. In Se-

mantic Computing, 2009. ICSC’09. IEEE International Conference on,

pages 589–594. IEEE, 2009.

[89] Chaker Ben Mahmoud, Fathia Bettahar, Ikbel Azaiez, and Faıez

Gargouri. OWLS-LO: extending OWL-S to support learning object.

IJMSO, 11(1):61–70, 2016.

[90] Dumitru Roman, Uwe Keller, Holger Lausen, Jos de Bruijn, Ruben

Lara, Michael Stollberg, Axel Polleres, Cristina Feier, Cristoph Bus-

sler, and Dieter Fensel. WSMO - Web Service Modeling Ontology.

In DERI Working Draft 14, volume 1, pages 77–106, BG Amsterdam,

2005. Digital Enterprise Research Institute (DERI), IOS Press.

201

Page 221: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[91] J. de Bruijn, H. Lausen, A. Pollares, and D. Fensel. The Web Ser-

vice Modeling Language WSML: An Overview. In Proc. 3rd Euro-

pean Semantic Web Conference (ESWC 2006), number 4011 in LNCS.

Springer, 2006.

[92] Jacek Kopecky, Karthik Gomadam, and Tomas Vitvar. hRESTS: An

HTML Microformat for Describing RESTful Web Services. In Web

Intelligence, pages 619–625. IEEE Computer Society, 2008.

[93] Tomas Vitvar, Jacek Kopecky, Maciej Zaremba, and Dieter Fensel.

WSMO-Lite: Lightweight Semantic Descriptions for Services on the

Web. In ECOWS, pages 77–86. IEEE Computer Society, 2007.

[94] Steve Battle, Abraham Bernstein, Harold Boley, Benjamin Grosof,

Michael Gruninger, Richard Hull, Michael Kifer, David Martin, Sheila

McIlraith, Deborah McGuinness, et al. Semantic web services frame-

work (SWSF) overview. W3C member submission, 9, 2005.

[95] Jon Lathem, Karthik Gomadam, and Amit P. Sheth. SA-REST and

(S)mashups : Adding Semantics to RESTful Services. In ICSC, pages

469–476. IEEE Computer Society, 2007.

[96] Ben Adida, Mark Birbeck, Steven Pemberton, and Shane McCarron.

RDFa in XHTML: Syntax and processing. October 2008. http://ww

w.w3.org/TR/2008/REC-rdfa-syntax-20081014/.

202

Page 222: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[97] Dan Connolly. Gleaning Resource Descriptions from Dialects of Lan-

guages (GRDDL). W3C recommendation, W3C, September 2007.

http://www.w3.org/TR/2007/REC-grddl-20070911/.

[98] Otavio Freitas Ferreira Filho and Maria Alice Grigas Varella Ferreira.

Semantic Web Services: A RESTful Approach. In IADIS International

Conference WWWInternet 2009, pages 169–180. IADIS, 2009.

[99] Robert Battle and Edward Benson. Bridging the Semantic Web and

Web 2.0 with Representational State Transfer (REST). Web Semantics,

6(1):61–69, 2008.

[100] Sebastian Speiser and Andreas Harth. Integrating Data and Services

with Linked Data Services. In Grigoris Antoniou, Marko Grobelnik,

Elena Paslaru Bontas Simperl, Bijan Parsia, Dimitris Plexousakis,

Pieter De Leenheer, and Jeff Pan, editors, ESWC (1), volume 6643

of Lecture Notes in Computer Science, pages 170–184. Springer, 2011.

[101] Reto Krummenacher, Barry Norton, and Adrian Marte. Towards

Linked Open Services and Processes. In Arne-Jørgen Berre, Asuncion

Gomez-Perez, Kurt Tutschku, and Dieter Fensel, editors, Future Inter-

net - FIS 2010 - Proceedings of the Third Future Internet Symposium,

Berlin, Germany, September 20-22, 2010, volume 6369 of Lecture Notes

in Computer Science, pages 68–77. Springer, 2010.

203

Page 223: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[102] Areeb Alowisheq. EXPRESS: Resource-oriented and RESTful Seman-

tic Web services. PhD thesis, University of Southampton, October

2014.

[103] Rudi Studer, V Richard Benjamins, and Dieter Fensel. Knowledge

engineering: principles and methods. Data & Knowledge Engineering,

25(1-2):161–197, 1998.

[104] Dimitrios-Emmanuel Spanos, Periklis Stavrou, and Nikolas Mitrou.

Bringing relational databases into the Semantic Web: A survey. Se-

mantic Web, 3(2):169–209, 2012.

[105] Harold Boley. PSOA RuleML: Integrated Object-Relational Data and

Rules. In Wolfgang Faber and Adrian Paschke, editors, Reasoning Web.

Web Logic Rules (RuleML 2015) - 11th International Summer School

2015, Berlin, Germany, July 31- August 4, 2015, Tutorial Lectures,

volume 9203 of Lecture Notes in Computer Science. Springer, 2015.

[106] Huajun Chen, Zhaohui Wu, Yuxin Mao, and Guozhou Zheng. Dart-

Grid: a semantic infrastructure for building database Grid applications.

Concurrency and Computation: Practice and Experience, 18(14):1811–

1828, 2006.

[107] Nikolaos Konstantinou, Dimitrios-Emmanuel Spanos, Michael Chalas,

Emmanuel Solidakis, and Nikolas Mitrou. VisAVis: An Approach to an

Intermediate Layer between Ontologies and Relational Database Con-

204

Page 224: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

tents. In Flavius Frasincar, Geert-Jan Houben, and Philippe Thiran,

editors, WISM, volume 239 of CEUR Workshop Proceedings. CEUR-

WS.org, 2006.

[108] Y. An, A. Borgida, and J. Mylopoulos. Discovering the semantics of

relational tables through mappings. . Journal of Data Semantics, 7:1–

32, 2006.

[109] Wei Hu and Yuzhong Qu. Discovering Simple Mappings Between

Relational Database Schemas and Ontologies. In Karl Aberer, Key-

Sun Choi, Natasha Noy, Dean Allemang, Kyung-Il Lee, Lyndon J B

Nixon, Jennifer Golbeck, Peter Mika, Diana Maynard, Guus Schreiber,

and Philippe CudrÃľ-Mauroux, editors, Proceedings of the 6th Interna-

tional Semantic Web Conference and 2nd Asian Semantic Web Confer-

ence (ISWC/ASWC2007), Busan, South Korea, volume 4825 of LNCS,

pages 225–238, Berlin, Heidelberg, November 2007. Springer Verlag.

[110] R. Volz, S. Handschuh, S. Staab, L. Stojanovic, and N. Stojanovic. Un-

veiling the hidden bride: Deep Annotation for Mapping and Migrating

Legacy Data to the Semantic Web. Web Semantics, 2004.

[111] Chen He-ping, He Lu, and Chen Bin. Research and Implementation

of Ontology Automatic Construction Based on Relational Database.

2008 International Conference on Computer Science and Software En-

gineering, 5:1078–1081, 2008.

205

Page 225: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[112] Heru Agus Santoso, Su-Cheng Haw, and Ziyad Abdul-Mehdi. Ontology

extraction from relational database: Concept hierarchy as background

knowledge. Knowl.-Based Syst., 24:457–464, 2011.

[113] Justas Trinkunas and Olegas Vasilecas. Building ontologies from rela-

tional databases using reverse engineering methods. In CompSysTech,

2007.

[114] Farid Cerbah. Mining the Content of Relational Databases to Learn

Ontologies with Deeper Taxonomies. 2008 IEEE/WIC/ACM Interna-

tional Conference on Web Intelligence and Intelligent Agent Technol-

ogy, 1:553–557, 2008.

[115] Zhuoming Xu, Xiao Cao, Yisheng Dong, and Wenping Su. Formal Ap-

proach and Automated Tool for Translating ER Schemata into OWL

Ontologies. In Honghua Dai, Ramakrishnan Srikant, and Chengqi

Zhang, editors, PAKDD, volume 3056 of Lecture Notes in Computer

Science, pages 464–475. Springer, 2004.

[116] Igor Myroshnichenko and Marguerite C. Murphy. Mapping ER

Schemas to OWL Ontologies. In ICSC, pages 324–329. IEEE Com-

puter Society, 2009.

[117] Sujatha R. Upadhyaya and P. Sreenivasa Kumar. ERONTO: a tool for

extracting ontologies from extended E/R diagrams. In SAC, 2005.

206

Page 226: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[118] Shihan Yang and Jinzhao Wu. Mapping Relational Databases into

Ontologies through a Graph-based Formal Model. 2010 Sixth Interna-

tional Conference on Semantics, Knowledge and Grids, pages 219–226,

2010.

[119] Christian Bizer. D2R MAP - A Database to RDF Mapping Language.

In WWW, 2003.

[120] Nikolaos Konstantinou, Dimitrios-Emmanuel Spanos, Michael Chalas,

Emmanuel Solidakis, and Nikolas Mitrou. VisAVis: An Approach to

an Intermediate Layer between Ontologies and Relational Database

Contents. In WISM, 2006.

[121] Shihan Yang, Ying Zheng, and Xuehui Yang. Semi-automatically build-

ing ontologies from relational databases. 2010 3rd International Con-

ference on Computer Science and Information Technology, 1:150–154,

2010.

[122] Jesus Barrasa, Oscar Corcho, and Asuncion Gomez-Perez. R2O ,

an Extensible and Semantically Based Database-to-ontology Mapping

Language. 2004.

[123] Irina Astrova, Nahum Korda, and Ahto Kalja. Rule-Based Transfor-

mation of SQL Relational Databases to OWL Ontologies. 2007.

207

Page 227: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[124] Man Li, Xiao yong Du, and Shan Wang. Learning Ontology From Rela-

tional Database. In Proceedings of the Fourth International Conference

on Machine Learning and Cybernetics, page 3410, 2005.

[125] Zdenka Telnarova. Relational database as a source of ontology creation.

In IMCSIT, pages 135–139, 2010.

[126] Justas Trinkunas and Olegas Vasilecas. Building ontologies from rela-

tional databases using reverse engineering methods. In CompSysTech

’07: Proceedings of the 2007 international conference on Computer sys-

tems and technologies, pages 1–6, New York, NY, USA, 2007. ACM.

[127] Changjun Hu, Huayu Li, Xiaoming Zhang, and Chongchong Zhao. Re-

search and Implementation of Domain-Specific Ontology Building from

Relational Database. In ChinaGrid, pages 289–293. IEEE Computer

Society, 2008.

[128] Waqas Ahmed, Muhammad Ahtisham Aslam, Jun Shen, and Jianming

Yong. A light weight approach for ontology generation and change

synchronization between ontologies and source relational databases. In

Proceedings of the 2011 15th International Conference on Computer

Supported Cooperative Work in Design, CSCWD 2011, June 8-10,

2011, Lausanne, Switzerland, pages 208–214, 2011.

[129] Nadine Cullot, Raji Ghawi, and Kokou YÃľtongnon. DB2OWL : A

Tool for Automatic Database-to-Ontology Mapping. In Michelangelo

208

Page 228: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Ceci, Donato Malerba, and Letizia Tanca, editors, SEBD, pages 491–

494, 2007.

[130] Irina Astrova and Ahto Kalja. Towards the Semantic Web: Extracting

OWL Ontologies from SQL Relational Schemata. In Proceedings of

IADIS International Conference WWW/Internet, volume 62, page 66,

2006.

[131] Guohua Shen, Zhiqiu Huang, Xiaodong Zhu, and Xiaofei Zhao. Re-

search on the Rules of Mapping from Relational Model to OWL. In

Bernardo Cuenca Grau, Pascal Hitzler, Conor Shankey, and Evan Wal-

lace, editors, OWLED, volume 216 of CEUR Workshop Proceedings.

CEUR-WS.org, 2006.

[132] Natasha Noy and Alan Rector. Defining N-ary Relations on the Se-

mantic Web. Technical report, W3C World Wide Web Consortium,

2005. Editors Draft.

[133] Ramez Elmasri and Shamkant Navathe. Fundamentals of Database

Systems. Addison-Wesley Publishing Company, USA, 6th edition,

2010.

[134] Mohammed Reda Chbihi Louhdi, Hicham Behja, and Said Ouatik El

Alaoui. Transformation Rules for Building OWL Ontologies from Re-

lational Databases. 2013.

209

Page 229: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[135] Leo Bachmair and Harald Ganzinger. Resolution theorem proving. In

Robinson and Voronkov [196], pages 19–99.

[136] Robert Nieuwenhuis and Albert Rubio. Paramodulation-Based Theo-

rem Proving. In Robinson and Voronkov [196], pages 371–443.

[137] Gen Zou, Reuben Peter-Paul, Harold Boley, and Alexandre Riazanov.

PSOA2TPTP: A reference translator for interoperating PSOA RuleML

with TPTP reasoners. In Rules on the Web: Research and Applications

- 6th International Symposium, RuleML 2012, Montpellier, France,

August 27-29, 2012. Proceedings, pages 264–279, 2012.

[138] Joe Fialli and Sekhar Vajjhala. Java Architecture for XML Binding

(JAXB) 2.0. Java Specification Request (JSR) 222, October 2005.

[139] Jeremy J. Carroll, Ian Dickinson, Chris Dollin, Dave Reynolds, Andy

Seaborne, and Kevin Wilkinson. Jena: Implementing the Semantic

Web Recommendations. In Proceedings of the 13th International World

Wide Web Conference on Alternate Track Papers & Posters, WWW

Alt. ’04, pages 74–83, New York, NY, USA, 2004. ACM.

[140] Patricia L. Whetzel, Natalya Fridman Noy, Nigam H. Shah, Paul R.

Alexander, Csongor Nyulas, Tania Tudorache, and Mark A. Musen.

BioPortal: enhanced functionality via new Web services from the

National Center for Biomedical Ontology to access and use ontolo-

210

Page 230: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

gies in software applications. Nucleic Acids Research, 39(Web-Server-

Issue):541–545, 2011.

[141] Stijn Willem de Jonge, Sarah L Gans, Jasper J Atema, Joseph S

Solomkin, Patchen E Dellinger, and Marja A Boermeester. Tim-

ing of preoperative antibiotic prophylaxis in 54,552 patients and the

risk of surgical site infection: A systematic review and meta-analysis.

Medicine, 96(29), 2017.

[142] Organisation mondiale de la sante, World Health Organization, WHO

Staff, and WHO. The ICD-10 classification of mental and behavioural

disorders: clinical descriptions and diagnostic guidelines. http://www.

who.int/classifications/icd/en/bluebook.pdf [Accessed 1 Jan.

2019], 1992.

[143] Ahmet Soylu, Martin Giese, Ernesto Jimenez-Ruiz, Evgeny Khar-

lamov, Dmitriy Zheleznyakov, and Ian Horrocks. OptiqueVQS: towards

an ontology-based visual query system for big data. In Fifth Interna-

tional Conference on Management of Emergent Digital EcoSystems,

MEDES ’13, Luxembourg, Luxembourg, October 29-31, 2013, pages

119–126, 2013.

[144] Syeda Sana e Zainab, Muhammad Saleem, Qaiser Mehmood, Durre

Zehra, Stefan Decker, and Ali Hasnain. FedViz: A Visual Interface for

SPARQL Queries Formulation and Execution. In Proceedings of the

211

Page 231: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

International Workshop on Visualizations and User Interfaces for On-

tologies and Linked Data co-located with 14th International Semantic

Web Conference (ISWC 2015), Bethlehem, Pennsylvania, USA, Octo-

ber 11, 2015., page 49, 2015.

[145] Florian Haag, Steffen Lohmann, Stephan Siek, and Thomas Ertl. Vi-

sual Querying of Linked Data with QueryVOWL. In Joint Proceedings

of the 1st International Workshop on Summarizing and Presenting En-

tities and Ontologies and the 3rd International Workshop on Human

Semantic Web Interfaces (SumPre 2015, HSWI 2015) co-located with

the 12th Extended Semantic Web Conference (ESWC 2015), Portoroz,

Slovenia, June 1, 2015., 2015.

[146] Marcelo Arenas, Bernardo Cuenca Grau, Evgeny Kharlamov, Sarunas

Marciuska, and Dmitriy Zheleznyakov. Faceted search over RDF-based

knowledge graphs. J. Web Sem., 37-38:55–74, 2016.

[147] Florian Haag, Steffen Lohmann, and Thomas Ertl. SparqlFilterFlow:

SPARQL Query Composition for Everyone. In The Semantic Web:

ESWC 2014 Satellite Events - ESWC 2014 Satellite Events, Anissaras,

Crete, Greece, May 25-29, 2014, Revised Selected Papers, pages 362–

367, 2014.

[148] World Health Organization. World Malaria Report 2017, 2017. https:

//www.who.int/malaria/publications/world-malaria-report-20

17/en/ [Accessed 1 Jan. 2019].

212

Page 232: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[149] H Wang, M Naghavi, C Allen, RM Barber, A Carter, DC Casey,

FJ Charlson, AZ Chen, MM Coates, M Coggeshall, et al. Global,

regional, and national life expectancy, all-cause mortality, and cause-

specific mortality for 249 causes of death, 1980–2015: a systematic

analysis for the Global Burden of Disease Study 2015. The Lancet,

388(10053):1459–1544, 2016.

[150] World Health Organization et al. The health of the people: what works-

the African Regional Health Report 2014. World Health Organization,

Regional Office for Africa, 2014.

[151] Daniel J Bridges, Anna M Winters, and Davidson H Hamer. Malaria

elimination: surveillance and response. Pathogens and Global Health,

106(4):224–231, 2012.

[152] Adam Bennett, Anton LV Avancena, Jennifer Wegbreit, Chris Cotter,

Kathryn Roberts, and Roly Gosling. Engaging the private sector in

malaria surveillance: a review of strategies and recommendations for

elimination settings. Malaria Journal, 16(1):252, 2017.

[153] Jie Zheng, Jashon Cade, Brian P Brunk, David S Roos, Christian J

Stoeckert Jr, San James, Emmanuel Arinaitwe, Bryan Greenhouse,

Grant Dorsey, Steven Sullivan, et al. Malaria Study Data Integra-

tion and Information Retrieval Based on OBO Foundry Ontologies. In

ICBO/BioCreative, 2016.

213

Page 233: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[154] Leonard EG Mboera, Susan F Rumisha, Tabitha Mlacha, Benjamin K

Mayala, Veneranda M Bwana, and Elizabeth H Shayo. Malaria surveil-

lance and use of evidence in planning and decision making in Kilosa

District, Tanzania. Tanzania Journal of Health Research, 19(3), 2017.

[155] Kelechi Ohiri, Ndukwe Kalu Ukoha, Chike William Nwangwu,

Charles Chikodili Chima, Yewande Kofoworola Ogundeji, Alero Rone,

and Michael R Reich. An Assessment of Data Availability, Quality, and

Use in Malaria Program Decision Making in Nigeria. Health Systems

& Reform, 2(4):319–330, 2016.

[156] Colin Ohrt, Kathryn W Roberts, Hugh JW Sturrock, Jennifer Weg-

breit, Bruce Y Lee, and Roly D Gosling. Information systems to sup-

port surveillance for malaria elimination. The American Journal of

Tropical Medicine and Hygiene, 93(1):145–152, 2015.

[157] Clementine Fu, Sergio Lopes, Steve Mellor, Siddhi Aryal, Siv Sovan-

naroth, and Arantxa Roca-Feltrer. Experiences From Developing and

Upgrading a Web-Based Surveillance System for Malaria Elimination

in Cambodia. JMIR Public Health and Surveillance, 3(2), 2017.

[158] Guangyu Lu, Yaobao Liu, Claudia Beiersmann, Yu Feng, Jun Cao, and

Olaf Muller. Challenges in and lessons learned during the implementa-

tion of the 1-3-7 malaria surveillance and response strategy in China:

a qualitative study. Infectious diseases of poverty, 5(1):94, 2016.

214

Page 234: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[159] Baffa S Ibrahim, Aisha A Abubakar, Ummulkhulthum A Bajoga, and

Patrick M Nguku. Evaluation of the Malaria Surveillance System in

Kaduna State, Nigeria 2016. Online Journal of Public Health Infor-

matics, 9(1), 2017.

[160] Dominique Briand, Emmanuel Roux, Jean Christophe Desconnets,

Carmen Gervet, and Christovam Barcellos. From global action against

malaria to local issues: state of the art and perspectives of web plat-

forms dealing with malaria information. Malaria journal, 17(1):122,

2018.

[161] World Health Organization. Global Technical Strategy for Malaria

2016-2030. Technical report, June 2015.

[162] Jon Hael Brenas, Mohammad Sadnan Al Manir, Christopher J.O.

Baker, and Arash Shaban-Nejad. A Malaria Analytics Framework to

Support Evolution and Interoperability of Global Health Surveillance

Systems. IEEE Access, 5:21605–21619, 2017.

[163] Kate Zinszer, Arash Shaban-Nejad, Sonia Menon, Anya Okhma-

tovskaia, Lauren Carroll, Ian Painter, Neil Abernethy, and David Buck-

eridge. Integrated Disease Surveillance to Reduce Data Fragmentation–

An Application to Malaria Control. Online journal of public health

informatics, 7(1), 2015.

215

Page 235: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[164] World Health Organization. Global Malaria Mapper. www.who.int/

malaria/publications/world malaria report/global malaria m

apper/en/. [Accessed 1 Jan. 2019].

[165] Saul Lozano-Fuentes, Aritra Bandyopadhyay, Lindsay G Cowell, Al-

bert Goldfain, and Lars Eisen. Ontology for vector surveillance and

management. J Med Entomol, 50(1):1–14, Jan 2013.

[166] Pantelis Topalis, Elvira Mitraka, Vicky Dritsou, Emmanuel Dialynas,

and Christos Louis. IDOMAL: the malaria ontology revisited. Journal

of Biomedical Semantics, 4(1):16, Sep 2013.

[167] Mosquito Insecticide Resistance Ontology. https://bioportal.bioo

ntology.org/ontologies/MIRO. [Accessed 1 Jan. 2019].

[168] Anya Okhmatovskaia, Arash Shaban-Nejad, Maxime Lavigne, and

David L. Buckeridge. Addressing the Challenge of Encoding Causal

Epidemiological Knowledge in Formal Ontologies: A Practical Perspec-

tive. In e-Health - For Continuity of Care - Proceedings of MIE2014,

the 25th European Medical Informatics Conference, Istanbul, Turkey,

August 31 - September 3, 2014, pages 1125–1129, 2014.

[169] Clinical Data Interchange Standards Consortium (CDISC). Malaria

Therapeutic Area User Guide v1.0. https://www.cdisc.org/standa

rds/therapeutic-areas/malaria. [Accessed 1 Jan. 2019].

216

Page 236: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[170] Rachael P. Huntley, Tony Sawford, Maria J. Martin, and Claire

O’Donovan. Understanding how and why the Gene Ontology and its

annotations evolve: the GO within UniProt. GigaScience, 3(1):4, Mar

2014.

[171] Haridimos Kondylakis, Giorgos Flouris, and Dimitris Plexousakis. On-

tology and Schema Evolution in Data Integration: Review and As-

sessment. In On the Move to Meaningful Internet Systems: OTM

2009, Confederated International Conferences, CoopIS, DOA, IS, and

ODBASE 2009, Vilamoura, Portugal, November 1-6, 2009, Proceed-

ings, Part II, pages 932–947, 2009.

[172] Jon Hael Brenas, Mohammad Sadnan Al Manir, Christopher J.O.

Baker, and Arash Shaban-Nejad. A Change Management Dashboard

for the SIEMA Global Malaria Surveillance Infrastructure. In Proceed-

ings of the ISWC 2017 Posters & Demonstrations and Industry Tracks

co-located with 16th International Semantic Web Conference (ISWC

2017), Vienna, Austria, October 23rd - to - 25th, 2017., 2017.

[173] Patrick Lambrix, Zlatan Dragisic, Valentina Ivanova, and Craig

Anslow. Visualization for Ontology Evolution. In Proceedings of the

Second International Workshop on Visualization and Interaction for

Ontologies and Linked Data co-located with the 15th International Se-

mantic Web Conference, VOILA@ISWC 2016, Kobe, Japan, October

17, 2016., pages 54–67, 2016.

217

Page 237: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[174] Giorgos Flouris, Dimitris Manakanatas, Haridimos Kondylakis, Dim-

itris Plexousakis, and Grigoris Antoniou. Ontology change: classifica-

tion and survey. Knowledge Eng. Review, 23(2):117–152, 2008.

[175] Loup Meurice and Anthony Cleve. DAHLIA: A visual analyzer of

database schema evolution. In 2014 Software Evolution Week - IEEE

Conference on Software Maintenance, Reengineering, and Reverse En-

gineering, CSMR-WCRE 2014, Antwerp, Belgium, February 3-6, 2014,

pages 464–468, 2014.

[176] Ministry of Health - Republic of Uganda. National Malaria Control

Program. http://health.go.ug/programs/national-malaria-con

trol-program [Accessed 1 Jan. 2019].

[177] U.S. President’s Malaria Initiative. Rwanda Expands IRS to Refugee

Camp. http://www.africairs.net/2018/01/rwanda-expands-irs

-refugee-camp/. [Accessed 1 Jan. 2019].

[178] WHO Pesticide Evaluation Scheme (WHOPES). WHO recommended

insecticides for indoor residual spraying against malaria vectors, March

2015. http://www.who.int/whopes/Insecticides IRS 2 March 201

5.pdf?ua=1 [Accessed 1 Jan. 2019].

[179] Jon Hael Brenas, Mohammad Sadnan Al Manir, Kate Zinszer, Christo-

pher J.O. Baker, and Arash Shaban-Nejad. Exploring Semantic

Data Federation to Enable Malaria Surveillance Queries. In Build-

218

Page 238: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

ing Continents of Knowledge in Oceans of Data: The Future of Co-

Created eHealth - Proceedings of MIE 2018, Medical Informatics Eu-

rope, Gothenburg, Sweden, April 24-26, 2018, pages 6–10, 2018.

[180] Alexandre Riazanov, Jonas Laurila Bergman, and Christopher J.O.

Baker. Deploying mutation impact text-mining software with the SADI

Semantic Web Services framework. BMC Bioinformatics, 12(S-4):S6,

2011.

[181] Agboeze Joseph, Nguku Patrick, Nwankwo Lawrence, Okeke Lilian,

and Ajumobi Olufemi. Evaluation of Malaria Surveillance System in

Ebonyi state, Nigeria, 2014. Annals of Medical and Health Sciences

Research, 2017.

[182] Center for Disease Control and Prevention. Updated Guidelines

for Evaluating Public Health Surveillance Systems. Recommendations

from the Guidelines Working Group. https://www.cdc.gov/mmwr/p

review/mmwrhtml/rr5013a1.htm. [Accessed 1 Jan. 2019].

[183] Christopher J.O. Baker. HYDRA: A Graphical Query Interface for

SADI Semantic Web Services. https://www.iscb.org/cshals2014-

program/poster-presentations, 2014. [Accessed 1 Jan. 2019].

[184] Apache Software Foundation. Apache TinkerPop. Available at http:

//tinkerpop.apache.org/.

219

Page 239: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[185] Matthew Horridge and Sean Bechhofer. The OWL API: A Java API

for OWL ontologies. Semantic Web, 2(1):11–21, 2011.

[186] Ernesto Jimenez-Ruiz, Evgeny Kharlamov, Dmitriy Zheleznyakov,

Ian Horrocks, Christoph Pinkel, Martin G. Skjæveland, Evgenij

Thorstensen, and Jose Mora. BootOX: Practical Mapping of RDBs

to OWL 2. In Marcelo Arenas, Oscar Corcho, Elena Simperl, Markus

Strohmaier, Mathieu d’Aquin, Kavitha Srinivas, Paul T. Groth, Michel

Dumontier, Jeff Heflin, Krishnaprasad Thirunarayan, and Steffen

Staab, editors, The Semantic Web - ISWC 2015 - 14th International

Semantic Web Conference, Bethlehem, PA, USA, October 11-15, 2015,

Proceedings, Part II, volume 9367 of Lecture Notes in Computer Sci-

ence, pages 113–132. Springer, 2015.

[187] Alvaro Sicilia and German Nemirovski. AutoMap4OBDA: Automated

generation of R2RML mappings for OBDA. In European Knowledge

Acquisition Workshop, pages 577–592. Springer, 2016.

[188] Christoph Pinkel, Carsten Binnig, Ernesto Jimenez-Ruiz, Evgeny

Kharlamov, Andriy Nikolov, Andreas Schwarte, Christian Heupel, and

Tim Kraska. IncMap: A Journey towards Ontology-based Data Inte-

gration. volume P-265 of LNI, pages 145–164. GI, 2017.

[189] Diego Calvanese, Benjamin Cogrel, Elem Guzel Kalayci, Sarah

Komla Ebri, Roman Kontchakov, Davide Lanti, Martin Rezk, Mariano

220

Page 240: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Rodriguez-Muro, and Guohui Xiao. OBDA with the Ontop framework.

In Proceedings of the 23rd Italian Symposium on Advanced Database

Systems (SEBD), 2015.

[190] Luciano Frontino de Medeiros, Freddy Priyatna, and Oscar Cor-

cho. MIRROR: automatic R2RML mapping generation from relational

databases. In Philipp Cimiano, Flavius Frasincar, Geert-Jan Houben,

and Daniel Schwabe, editors, Engineering the Web in the Big Data Era

- 15th International Conference, ICWE 2015, Rotterdam, The Nether-

lands, June 23-26, 2015, Proceedings, volume 9114 of Lecture Notes in

Computer Science, pages 326–343. Springer, 2015.

[191] Hong Hai Do and Erhard Rahm. COMA - A system for flexible com-

bination of schema matching approaches. In VLDB 2002, Proceedings

of 28th International Conference on Very Large Data Bases, August

20-23, 2002, Hong Kong, China, pages 610–621. Morgan Kaufmann,

2002.

[192] Diego Calvanese, Giuseppe De Giacomo, Domenico Lembo, Maurizio

Lenzerini, Antonella Poggi, and Riccardo Rosati. MASTRO-I: Efficient

integration of relational data through DL ontologies, volume 250, pages

227–234. 2007.

[193] Alvaro Sicilia, German Nemirovski, and Andreas Nolle. Map-on: A

web-based editor for visual ontology mapping. Semantic Web, 8(6):969–

980, 2017.

221

Page 241: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

[194] Shubham Gupta, Pedro Szekely, Craig A Knoblock, Aman Goel,

Mohsen Taheriyan, and Maria Muslea. Karma: A system for map-

ping structured sources into the Semantic Web. In Extended Semantic

Web Conference, pages 430–434. Springer, 2012.

[195] Ahmet Soylu, Martin Giese, Ernesto Jimenez-Ruiz, Evgeny Khar-

lamov, Dmitry Zheleznyakov, and Ian Horrocks. OptiqueVQS: towards

an ontology-based visual query system for big data. In Proceedings of

the Fifth International Conference on Management of Emergent Digital

EcoSystems, pages 119–126. ACM, 2013.

[196] John Alan Robinson and Andrei Voronkov, editors. Handbook of Au-

tomated Reasoning (in 2 volumes). Elsevier and MIT Press, 2001.

222

Page 242: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Appendix A

Sources for HAI SADI Services

A.1 Translated Domain Ontology

The domain ontology translated into TPTP-FOF is hosted at https://bi

tbucket.org/sadnanalmanir/valetsadi/src/master/knowledgebase/d

omain-ontology/tptpfof/. The complete translation is listed here:

% Common axioms :

f o f ( ’ owl : Thing U dataDomain cover a l l model elements ’ , axiom , (

! [X] :

( p Thing (X)

| dataDomain (X) ) ) ) .

f o f ( ’ There i s at l e a s t one i n d i v i d u a l ’ , axiom , (

? [X] : p Thing (X) ) ) .

223

Page 243: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ There i s at l e a s t one data value ’ , axiom , (

? [X] : dataDomain (X) ) ) .

f o f ( ’ owl : Thing and dataDomain are d i s j o i n t ’ , axiom , (

! [X] : ˜ ( p Thing (X)

& dataDomain (X) ) ) ) .

f o f ( ’ owl : Nothing i s empty ’ , axiom , (

! [X] : ˜ p Nothing (X) ) ) .

f o f ( ’ i n t e g e r l i t e r a l s are d i s t i n c t from s t r i n g−without−language l i t e r a l s ’ ,

axiom , (

! [X,Y] : i n t L i t (X) != str ingLitNoLang (Y) ) ) .

f o f ( ’ i n t e g e r l i t e r a l s are d i s t i n c t from s t r i n g−with−language l i t e r a l s ’ ,

axiom , (

! [X,Y] : i n t L i t (X) != str ingLitWithLang (Y) ) ) .

f o f ( ’ i n t e g e r l i t e r a l s are d i s t i n c t from g e n e r a l typed l i t e r a l s ’ , axiom , (

! [X,Y] : i n t L i t (X) != typedLit (Y) ) ) .

224

Page 244: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ s t r i n g−without−language l i t e r a l s are d i s t i n c t from s t r i n g−with−

language l i t e r a l s ’ , axiom , (

! [X,Y] : str ingLitNoLang (X) != str ingLitWithLang (Y) ) ) .

f o f ( ’ s t r i n g−without−language l i t e r a l s are d i s t i n c t from g e n e r a l typed

l i t e r a l s ’ , axiom , (

! [X,Y] : str ingLitNoLang (X) != typedLit (Y) ) ) .

f o f ( ’ s t r i n g−with−language l i t e r a l s are d i s t i n c t from g e n e r a l typed

l i t e r a l s ’ , axiom , (

! [X] : str ingLitWithLang (X) != typedLit (Y) ) ) .

f o f ( ’ i n t L i t i s a const ructor ’ , axiom , (

! [X,Y] :

( i n t L i t (X) = i n t L i t (Y)

=> X = Y ) ) ) .

f o f ( ’ str ingLitNoLang i s a cons t ructor ’ , axiom , (

! [X,Y] :

( str ingLitNoLang (X) = str ingLitNoLang (Y)

=> X = Y ) ) ) .

f o f ( ’ str ingLitWithLang i s a const ructor ’ , axiom , (

! [X,Y] :

225

Page 245: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

( str ingLitWithLang (X) = str ingLitWithLang (Y)

=> X = Y ) ) ) .

f o f ( ’ typedLit i s a cons t ructor ’ , axiom , (

! [X,Y] :

( typedLit (X) = typedLit (Y)

=> X = Y ) ) ) .

% End o f common axioms .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s d i a g n o s i s must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s d i a g n o s i s (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s d i a g n o s i s must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s d i a g n o s i s (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

F a c i l i t y i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p F a c i l i t y (X)

226

Page 246: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

=> p Thing (X) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Procedure i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p Procedure (X)

=> p Thing (X) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#has las t name must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p has la s t name (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#has las t name must be a data value ’ , axiom , (

! [X,Y] :

( p has la s t name (X,Y)

=> dataDomain (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s f a c i l i t y r e f e r e n c e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s f a c i l i t y r e f e r e n c e (X,Y)

=> p Thing (X) ) ) ) .

227

Page 247: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s f a c i l i t y r e f e r e n c e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s f a c i l i t y r e f e r e n c e (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s a d v e r s e r e a c t i o n t o must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s a d v e r s e r e a c t i o n t o (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s a d v e r s e r e a c t i o n t o must be a data value ’ , axiom , (

! [X,Y] :

( p h a s a d v e r s e r e a c t i o n t o (X,Y)

=> dataDomain (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s f a c i l i t y d e s c r i p t i o n must be an i n d i v i d u a l ’ , axiom

, (

! [X,Y] :

( p h a s f a c i l i t y d e s c r i p t i o n (X,Y)

=> p Thing (X) ) ) ) .

228

Page 248: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s f a c i l i t y d e s c r i p t i o n must be a data value ’ , axiom , (

! [X,Y] :

( p h a s f a c i l i t y d e s c r i p t i o n (X,Y)

=> dataDomain (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#d i a g n o s i s e n c o u n t e r e d must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p d i a g n o s i s e n c o u n t e r e d (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#d i a g n o s i s e n c o u n t e r e d must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p d i a g n o s i s e n c o u n t e r e d (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

S e r v i c e i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p S e r v i c e (X)

=> p Thing (X) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Pharmacy i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

229

Page 249: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

( p Pharmacy (X)

=> p Thing (X) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s a b s t r a c t r e c o r d must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s a b s t r a c t r e c o r d (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s a b s t r a c t r e c o r d must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s a b s t r a c t r e c o r d (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#i s a l l e r g i c t o must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p i s a l l e r g i c t o (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#i s a l l e r g i c t o must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p i s a l l e r g i c t o (X,Y)

=> p Thing (Y) ) ) ) .

230

Page 250: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Abstract i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p Abstract (X)

=> p Thing (X) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Person i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p Person (X)

=> p Thing (X) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#encounte r sPat i ent must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p encounte r sPat i ent (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#encounte r sPat i ent must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p encounte r sPat i ent (X,Y)

=> p Thing (Y) ) ) ) .

231

Page 251: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s f i r s t n a m e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s f i r s t n a m e (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s f i r s t n a m e must be a data value ’ , axiom , (

! [X,Y] :

( p h a s f i r s t n a m e (X,Y)

=> dataDomain (Y) ) ) ) .

f o f ( ’ Subject o f http ://www. w3 . org /1999/02/22− rdf−syntax−ns#type must be an

i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p type (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http ://www. w3 . org /1999/02/22− rdf−syntax−ns#type must be an

i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p type (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Pat ient i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

232

Page 252: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

( p Pat i ent (X)

=> p Thing (X) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s d i a g n o s i s c o d e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p h a s d i a g n o s i s c o d e (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s d i a g n o s i s c o d e must be a data value ’ , axiom , (

! [X,Y] :

( p h a s d i a g n o s i s c o d e (X,Y)

=> dataDomain (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#d e s c r i p t i o n o f o r d e r must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p d e s c r i p t i o n o f o r d e r (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#d e s c r i p t i o n o f o r d e r must be a data value ’ , axiom , (

! [X,Y] :

( p d e s c r i p t i o n o f o r d e r (X,Y)

=> dataDomain (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#abstractRecordForPat ient must be an i n d i v i d u a l ’ , axiom

233

Page 253: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

, (

! [X,Y] :

( p abstractRecordForPat ient (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#abstractRecordForPat ient must be an i n d i v i d u a l ’ , axiom

, (

! [X,Y] :

( p abstractRecordForPat ient (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s a l l e r g y t o p a t i e n t r e f e r e n c e must be an i n d i v i d u a l

’ , axiom , (

! [X,Y] :

( p h a s a l l e r g y t o p a t i e n t r e f e r e n c e (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#h a s a l l e r g y t o p a t i e n t r e f e r e n c e must be an i n d i v i d u a l

’ , axiom , (

! [X,Y] :

( p h a s a l l e r g y t o p a t i e n t r e f e r e n c e (X,Y)

=> p Thing (Y) ) ) ) .

234

Page 254: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Al l e rgy i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p Al l e rgy (X)

=> p Thing (X) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Diagnos i s i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p Diagnos i s (X)

=> p Thing (X) ) ) ) .

f o f ( ’ http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s / termino logy . owl#

Encounter i s a s u b c l a s s o f owl : Thing ’ , axiom , (

! [X] :

( p Encounter (X)

=> p Thing (X) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#p r o c e d u r e r e f e r e n c e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p p r o c e d u r e r e f e r e n c e (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#p r o c e d u r e r e f e r e n c e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p p r o c e d u r e r e f e r e n c e (X,Y)

=> p Thing (Y) ) ) ) .

235

Page 255: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#s e r v i c e f o r e n c o u n t e r must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p s e r v i c e f o r e n c o u n t e r (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#s e r v i c e f o r e n c o u n t e r must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p s e r v i c e f o r e n c o u n t e r (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#p r e s c r i p t i o n s e r v i c e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p p r e s c r i p t i o n s e r v i c e (X,Y)

=> p Thing (X) ) ) ) .

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#p r e s c r i p t i o n s e r v i c e must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p p r e s c r i p t i o n s e r v i c e (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ Subject o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#c o u n c e l a t must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p c o u n c e l a t (X,Y)

=> p Thing (X) ) ) ) .

236

Page 256: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( ’ Object o f http :// l o c a l h o s t :8080/ h e a l t h c a r e /domain−o n t o l o g i e s /

termino logy . owl#c o u n c e l a t must be an i n d i v i d u a l ’ , axiom , (

! [X,Y] :

( p c o u n c e l a t (X,Y)

=> p Thing (Y) ) ) ) .

f o f ( ’ Class axiom #0 ’ ,axiom , (

! [X] :

( p Pat i ent (X)

=> p Person (X) ) ) ) .

A.2 Mapping Rules for Nallergy Table

The mapping rules expressed in PSOA RuleML is hosted at https://bitb

ucket.org/sadnanalmanir/valetsadi/src/master/knowledgebase/sem

anticmapping/psoaruleml/. The rules to map the Nallergy table are listed

here:1 RuleML (... ... ...... ... ...55 Assert (56 Forall ?algWID (identityForAllergyToalgWID(identityForAllergy(?algWID)) = ?algWID)57 Forall ?P (identityForAllergy(identityForAllergyToalgWID(?P)) = ?P)58 Forall ?algWID ?algPatWID ?algAdverseReaction (59 Allergy(identityForAllergy(?algWID)) :-60 db_Nallergy(?algWID ?algPatWID ?algAdverseReaction))61 Forall ?algWID ?algPatWID ?algAdverseReaction (62 is_allergic_to(identityForPatient(?algPatWID) identityForAllergy(?algWID)) :-63 db_Nallergy(?algWID ?algPatWID ?algAdverseReaction))64 Forall ?algWID ?algPatWID ?algAdverseReaction (65 has_adverse_reaction_to(identityForAllergy(?algWID) ?algAdverseReaction) :-66 db_Nallergy(?algWID ?algPatWID ?algAdverseReaction))67 )68 )

237

Page 257: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

A.3 Translated Mapping Rules

The translated PSOA RuleML mapping rules expressed as TPTP-FOF are

hosted at https://bitbucket.org/sadnanalmanir/valetsadi/src/mast

er/knowledgebase/semanticmapping/tptpfof/. These translated rules

are listed here:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: Npatient

%% TABLE PREDICATE: db Npatient

%% PRIMARY−KEY−TO−ENTITY FUNCTION: i d e n t i t y F o r P a t i e n t

%% INVERSE FOR PRIMARY−KEY−TO−ENTITY FUNCTION: identityForPatientToPatWID

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% S e t t i n g up primary key PatWID

% identityForPatientToPatWID i s an i n v e r s e f u n c t i o n f o r i d e n t i t y F o r P a t i e n t .

f o f ( i n v e r s e f o r e n t i t y F o r P a t i e n t 1 , axiom ,

! [ PatWID ] : ( identityForPatientToPatWID ( i d e n t i t y F o r P a t i e n t (PatWID) ) =

PatWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r P a t i e n t 2 , axiom ,

! [P ] : ( i d e n t i t y F o r P a t i e n t ( identityForPatientToPatWID (P) ) = P)

) .

% Mapping the a t t r i b u t e Npatient . patWID to e n t i t i e s o f the concept HAI :

Pat ient .

f o f ( t a b l e N p a t i e n t r e p r e s e n t s i n s t a n c e s o f c o n c e p t P e r s o n , axiom ,

! [ PatWID, PatFacWID , PatLastName , PatFirstName ] :

( db Npatient (PatWID, PatFacWID , PatLastName , PatFirstName )

=>

238

Page 258: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

p Pat i ent ( i d e n t i t y F o r P a t i e n t (PatWID) ) )

) .

f o f ( a t t r i b u t e P a t L a s t N a m e r e p r e s e n t s l a s t n a m e o f a P a t i e n t , axiom ,

! [ PatWID, PatFacWID , PatLastName , PatFirstName ] :

( db Npatient (PatWID, PatFacWID , PatLastName , PatFirstName )

=>

p has la s t name ( i d e n t i t y F o r P a t i e n t (PatWID) , PatLastName ) )

) .

f o f ( a t t r i b u t e P a t F i r s t N a m e r e p r e s e n t s f i r s t n a m e o f a P a t i e n t , axiom ,

! [ PatWID, PatFacWID , PatLastName , PatFirstName ] :

( db Npatient (PatWID, PatFacWID , PatLastName , PatFirstName )

=>

p h a s f i r s t n a m e ( i d e n t i t y F o r P a t i e n t (PatWID) , PatFirstName ) )

) .

f o f ( a t t r i b u t e P a t F a c W I D a s s i g n e d f k t o t a b l e N f a c i l i t y , axiom ,

! [ PatWID, PatFacWID , PatLastName , PatFirstName ] :

( db Npatient (PatWID, PatFacWID , PatLastName , PatFirstName )

=>

p h a s f a c i l i t y r e f e r e n c e ( i d e n t i t y F o r P a t i e n t (PatWID) , i d e n t i t y F o r F a c i l i t y (

PatFacWID) ) )

) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: N f a c i l i t y

%% TABLE PREDICATE: d b N f a c i l i t y

%% PRIMARY−KEY−TO−ENTITY FUNCTION: i d e n t i t y F o r F a c i l i t y

%% INVERSE FOR PRIMARY−KEY−TO−ENTITY FUNCTION: identityForFaci l i tyToFacWID

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% S e t t i n g up primary key FacWID

239

Page 259: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

% identityForFaci l i tyToFacWID i s an i n v e r s e f u n c t i o n f o r i d e n t i t y F o r F a c i l i t y

.

f o f ( i n v e r s e f o r e n t i t y F o r F a c i l i t y 1 , axiom ,

! [ FacWID ] : ( identityForFaci l i tyToFacWID ( i d e n t i t y F o r F a c i l i t y (FacWID) ) =

FacWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r F a c i l i t y 2 , axiom ,

! [P ] : ( i d e n t i t y F o r F a c i l i t y ( identityForFaci l i tyToFacWID (P) ) = P)

) .

% Mapping the a t t r i b u t e N f a c i l i t y . FacWID to e n t i t i e s o f the concept HAI :

F a c i l i t y .

f o f ( t a b l e N f a c i l i t y r e p r e s e n t s i n s t a n c e s o f c o n c e p t F a c i l i t y , axiom ,

! [ FacWID, FacFac i l i tyDesc ] :

( d b N f a c i l i t y (FacWID, FacFac i l i tyDesc )

=>

p F a c i l i t y ( i d e n t i t y F o r F a c i l i t y (FacWID) ) )

) .

% Mapping the a t t r i b u t e N f a c i l i t y . FacFac i l i tyDesc to the property HAI :

h a s f a c i l i t y d e s c r i p t i o n .

f o f ( a t t r ibute PatLas tName ass igns has la s t name , axiom ,

! [ FacWID, FacFac i l i tyDesc ] :

( d b N f a c i l i t y (FacWID, FacFac i l i tyDesc )

=>

p h a s f a c i l i t y d e s c r i p t i o n ( i d e n t i t y F o r F a c i l i t y (FacWID) , FacFac i l i tyDesc ) )

) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: NhrAbstract

%% TABLE PREDICATE: db NhrAbstract

240

Page 260: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

%% PRIMARY−KEY−TO−ENTITY FUNCTION: ident i tyForAbst rac t

%% INVERSE FOR PRIMARY−KEY−TO−ENTITY FUNCTION: identityForAbstractTohraWID

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% S e t t i n g up primary key hraWID

% identityForAbstractTohraWID i s an i n v e r s e f u n c t i o n f o r ident i tyForAbs t rac t

.

f o f ( i n v e r s e f o r e n t i t y F o r A b s t r a c t 1 , axiom ,

! [ HraWID ] : ( identityForAbstractTohraWID ( ident i tyForAbst rac t (HraWID) ) =

HraWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r A b s t r a c t 2 , axiom ,

! [P ] : ( i dent i tyForAbs t rac t ( identityForAbstractTohraWID (P) ) = P)

) .

% Mapping the a t t r i b u t e NhrAbstract . hraWID to e n t i t i e s o f the concept HAI :

Abstract .

f o f ( t a b l e N h r A b s t r a c t r e p r e s e n t s i n s t a n c e s o f c o n c e p t A b s t r a c t , axiom ,

! [ HraWID, HraEncWID , HraPatWID ] :

( db NhrAbstract (HraWID, HraEncWID , HraPatWID)

=>

p Abstract ( ident i tyForAbst rac t (HraWID) ) )

) .

% Mapping the a t t r i b u t e NhrAbstract . hraWID to e n t i t i e s o f the concept HAI :

Abstract .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: NhrDiagnosis

%% TABLE PREDICATE: db NhrDiagnosis

%% PRIMARY−KEY−TO−ENTITY FUNCTION: i d e n t i t y F o r D i a g n o s i s

%% INVERSE FOR PRIMARY−KEY−TO−ENTITY FUNCTION: identityForDiagnosisTohdgWID

241

Page 261: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% S e t t i n g up primary key hdgWID

% identityForDiagnosisTohdgWID i s an i n v e r s e f u n c t i o n f o r

i d e n t i t y F o r D i a g n o s i s .

f o f ( i n v e r s e f o r e n t i t y F o r D i a g n o s i s 1 , axiom ,

! [HdgWID] : ( identityForDiagnosisTohdgWID ( d i a g n o s i s E n t i t y (HdgWID) ) =

HdgWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r D i a g n o s i s 2 , axiom ,

! [P ] : ( i d e n t i t y F o r D i a g n o s i s ( identityForDiagnosisTohdgWID (P) ) = P)

) .

% Mapping the a t t r i b u t e NhrDiagnosis . hdgWID to e n t i t i e s o f the concept HAI :

Diagnos i s .

f o f ( t a b l e N h r D i a g n o s i s r e p r e s e n t s i n s t a n c e s o f c o n c e p t D i a g n o s i s , axiom ,

! [HdgWID, HdgHraWID, HdgHraEncWID , HdgCd ] :

( db NhrDiagnosis (HdgWID, HdgHraWID, HdgHraEncWID , HdgCd)

=>

p Diagnos i s ( i d e n t i t y F o r D i a g n o s i s (HdgWID) ) )

) .

% Mapping the a t t r i b u t e NhrDiagnosis . hdgCd to the property HAI :

h a s d i a g n o s i s c o d e .

f o f ( t a b l e N h r D i a g n o s i s r e p r e s e n t s h a s d i a g n o s i s c o d e , axiom ,

! [HdgWID, HdgHraWID, HdgHraEncWID , HdgCd ] :

( db NhrDiagnosis (HdgWID, HdgHraWID, HdgHraEncWID , HdgCd)

=>

p h a s d i a g n o s i s c o d e ( i d e n t i t y F o r D i a g n o s i s (HdgWID) , HdgCd) )

) .

242

Page 262: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

% Mapping the a t t r i b u t e NhrDiagnosis . hdgHraEncWID to the property HAI :

d iagnos i sEncountered .

f o f ( t a b l e N h r D i a g n o s i s r e p r e s e n t s d i a g n o s i s e n c o u n t e r e d , axiom ,

! [HdgWID, HdgHraWID, HdgHraEncWID , HdgCd ] :

( db NhrDiagnosis (HdgWID, HdgHraWID, HdgHraEncWID , HdgCd)

=>

p d i a g n o s i s e n c o u n t e r e d ( i d e n t i t y F o r D i a g n o s i s (HdgWID) , ident i tyForEncounter

(HdgHraEncWID) ) )

) .

% Mapping the a t t r i b u t e NhrDiagnosis . HdgHraWID to the property HAI :

hasAbstractRecord .

f o f ( t a b l e N h r A b s t r a c t r e p r e s e n t s i n s t a n c e s o f c o n c e p t A b s t r a c t , axiom ,

! [ HraWID, HraEncWID , HraPatWID ] :

( db NhrAbstract (HraWID, HraEncWID , HraPatWID)

=>

%p abstractRecordForPat ient ( ident i tyForAbst rac t (HraWID) ,

i d e n t i t y F o r P a t i e n t (HraPatWID) ) )

p abstractRecordForPat ient ( i d e n t i t y F o r P a t i e n t (HraPatWID) ,

ident i tyForAbst rac t (HraWID) ) )

) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

f o f ( t a b l e N h r D i a g n o s i s r e p r e s e n t s h a s d i a g n o s i s c o d e , axiom ,

! [HdgWID, HdgHraWID, HdgHraEncWID , HdgCd ] :

( db NhrDiagnosis (HdgWID, HdgHraWID, HdgHraEncWID , HdgCd)

=>

p d i a g n o s i s e n c o u n t e r e d ( i d e n t i t y F o r D i a g n o s i s (HdgWID) , ident i tyForAbs t rac t (

HdgHraWID) ) )

) .

f o f ( t a b l e N h r A b s t r a c t r e p r e s e n t s i n s t a n c e s o f c o n c e p t A b s t r a c t , axiom ,

243

Page 263: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

! [ HraWID, HraEncWID , HraPatWID ] :

( db NhrAbstract (HraWID, HraEncWID , HraPatWID)

=>

% both d i r e c t i o n s work

% p h a s a b s t r a c t r e c o r d ( i d e n t i t y F o r P a t i e n t (HraPatWID) , ident i tyForAbst rac t

(HraWID) ) )

p h a s a b s t r a c t r e c o r d ( ident i tyForAbs t rac t (HraWID) , i d e n t i t y F o r P a t i e n t (

HraPatWID) ) )

) .

f o f ( a r b i t r a r y r u l e , axiom ,

! [ PatWID, HraWID, HdgWID] :

(

(

p h a s a b s t r a c t r e c o r d ( ident i tyForAbs t rac t (HraWID) , i d e n t i t y F o r P a t i e n t (

PatWID) )

&

p d i a g n o s i s e n c o u n t e r e d ( i d e n t i t y F o r D i a g n o s i s (HdgWID) ,

ident i tyForAbst rac t (HraWID) )

)

=>

p h a s d i a g n o s i s ( i d e n t i t y F o r P a t i e n t (PatWID) , i d e n t i t y F o r D i a g n o s i s (HdgWID)

)

) ) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: Nal l e rgy

%% TABLE PREDICATE: db Nal l e rgy

%% PRIMARY−KEY−TO−ENTITY FUNCTION: i d e n t i t y F o r A l l e r g y

%% INVERSE FOR PRIMARY−KEY−TO−ENTITY FUNCTION: identityForAllergyToAlgWID

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% S e t t i n g up primary key AlgWID

% identityForAllergyToAlgWID i s an i n v e r s e f u n c t i o n f o r i d e n t i t y F o r A l l e r g y .

244

Page 264: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( i n v e r s e f o r e n t i t y F o r A l l e r g y 1 , axiom ,

! [ AlgWID ] : ( identityForAllergyToAlgWID ( i d e n t i t y F o r A l l e r g y (AlgWID) ) =

AlgWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r A l l e r g y 2 , axiom ,

! [P ] : ( i d e n t i t y F o r A l l e r g y ( identityForAllergyToAlgWID (P) ) = P)

) .

% Mapping the a t t r i b u t e Na l l e rgy . AlgWID to e n t i t i e s o f the concept HAI :

A l l e rgy .

f o f ( t a b l e N a l l e r g y r e p r e s e n t s i n s t a n c e s o f c o n c e p t A l l e r g y , axiom ,

! [ AlgWID , AlgPatWID , AlgAdverseReaction ] :

( db Nal l e rgy (AlgWID , AlgPatWID , AlgAdverseReaction )

=>

p Al l e rgy ( i d e n t i t y F o r A l l e r g y (AlgWID) ) )

) .

% Mapping the a t t r i b u t e Na l l e rgy . AlgAl lergyDesc to the property HAI :

h a s f a c i l i t y d e s c r i p t i o n .

f o f ( a t t r i b u t e A l g P a t W I D u s e d a s f o r e i g n k e y t o p a t i e n t , axiom ,

! [ AlgWID , AlgPatWID , AlgAdverseReaction ] :

( db Nal l e rgy (AlgWID , AlgPatWID , AlgAdverseReaction )

=>

p h a s a l l e r g y ( i d e n t i t y F o r P a t i e n t (AlgPatWID) , i d e n t i t y F o r A l l e r g y (AlgWID) ) )

) .

f o f ( a t t r i b u t e A l g A d v e r s e R e a c t i o n r e p r e s e n t s d a t a v a l u e o f a l l e r g y n a m e , axiom

,

! [ AlgWID , AlgPatWID , AlgAdverseReaction ] :

( db Nal l e rgy (AlgWID , AlgPatWID , AlgAdverseReaction )

=>

p h a s a d v e r s e r e a c t i o n t o ( i d e n t i t y F o r A l l e r g y (AlgWID) , AlgAdverseReaction ) )

245

Page 265: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: NhrProcedure

%% TABLE PREDICATE: db NhrProcedure

%% PRIMARY−KEY−TO−ENTITY FUNCTION: ident i tyForProcedure

%% INVERSE FOR PRIMARY−KEY−TO−ENTITY FUNCTION: identityForProcedureTohprcWID

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% S e t t i n g up primary key hprcWID

% identityForProcedureTohprcWID i s an i n v e r s e f u n c t i o n f o r

ident i tyForProcedure .

f o f ( i n v e r s e f o r e n t i t y F o r P r o c e d u r e 1 , axiom ,

! [ HprcWID ] : ( identityForProcedureTohprcWID ( ident i tyForProcedure (HprcWID

) ) = HprcWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r P r o c e d u r e 2 , axiom ,

! [P ] : ( ident i tyForProcedure ( identityForProcedureTohprcWID (P) ) = P)

) .

% Mapping the a t t r i b u t e NhrProcedure . hprcWID to e n t i t i e s o f the concept HAI :

Procedure .

f o f ( t a b l e N h r P r o c e d u r e r e p r e s e n t s i n s t a n c e s o f c o n c e p t P r o c e d u r e , axiom ,

! [ HprcWID , HprcHraWID , HprcHraEncWID , HprcStartTime ] :

( db NhrProcedure (HprcWID , HprcHraWID , HprcHraEncWID , HprcStartTime )

=>

p Procedure ( ident i tyForProcedure (HprcWID) ) )

) .

% Mapping the a t t r i b u t e NhrProcedure . hprcStartTime to the property HAI :

h a s s t a r t t i m e .

246

Page 266: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( t a b l e N h r P r o c e d u r e r e p r e s e n t s h a s s t a r t t i m e , axiom ,

! [ HprcWID , HprcHraWID , HprcHraEncWID , HprcStartTime ] :

( db NhrProcedure (HprcWID , HprcHraWID , HprcHraEncWID , HprcStartTime )

=>

p h a s s t a r t t i m e ( ident i tyForProcedure (HprcWID) , HprcStartTime ) )

) .

f o f ( tab l e NhrProcedure r epre s ent s procedure encounte rd , axiom ,

! [ HprcWID , HprcHraWID , HprcHraEncWID , HprcStartTime ] :

( db NhrProcedure (HprcWID , HprcHraWID , HprcHraEncWID , HprcStartTime )

=>

p p r o c e d u r e r e f e r e n c e ( ident i tyForProcedure (HprcWID) , ident i tyForAbs t rac t (

HprcHraWID) ) )

) .

f o f ( a r b i t r a r y r u l e f o r p r o c e d u r e f o r p a t i e n t , axiom ,

! [ PatWID, HprcWID , HraWID ] :

(

(

p h a s a b s t r a c t r e c o r d ( ident i tyForAbs t rac t (HraWID) , i d e n t i t y F o r P a t i e n t (

PatWID) )

&

p p r o c e d u r e r e f e r e n c e ( ident i tyForProcedure (HprcWID) , ident i tyForAbs t rac t

(HraWID) )

)

=>

p undergo procedure ( i d e n t i t y F o r P a t i e n t (PatWID) , ident i tyForProcedure (

HprcWID) )

) ) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: Nencounter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

247

Page 267: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

f o f ( i n v e r s e f o r e n t i t y F o r E n c o u n t e r 1 , axiom ,

! [EncWID] : ( identityForEncounterToEncWID ( ident i tyForEncounter (EncWID) )

= EncWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r E n c o u n t e r 2 , axiom ,

! [P ] : ( ident i tyForEncounter ( identityForEncounterToEncWID (P) ) = P)

) .

f o f ( t a b l e N e n c o u n t e r r e p r e s e n t s i n s t a n c e s o f c o n c e p t E n c o u n t e r , axiom ,

! [EncWID, EncPatWID ] :

( db Nencounter (EncWID, EncPatWID)

=>

p Encounter ( ident i tyForEncounter (EncWID) ) )

) .

f o f ( a t t r ibute EncPatWID ass i gned fk to tab l e Npat i ent , axiom ,

! [EncWID, EncPatWID ] :

( db Nencounter (EncWID, EncPatWID)

=>

p encounte r sPat i ent ( ident i tyForEncounter (EncWID) , i d e n t i t y F o r P a t i e n t (

EncPatWID) ) )

) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: Nserv i ce

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

f o f ( i n v e r s e f o r e n t i t y F o r S e r v i c e 1 , axiom ,

! [ SvcWID ] : ( identityForServiceToSvcWID ( i d e n t i t y F o r S e r v i c e (SvcWID) ) =

SvcWID)

) .

f o f ( i n v e r s e f o r e n t i t y F o r S e r v i c e 2 , axiom ,

248

Page 268: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

! [P ] : ( i d e n t i t y F o r S e r v i c e ( identityForServiceToSvcWID (P) ) = P)

) .

f o f ( t a b l e N s e r v i c e r e p r e s e n t s i n s t a n c e s o f c o n c e p t S e r v i c e , axiom ,

! [ SvcWID , SvcEncWID , SvcTableCd , SvcOrderedBy , SvcPerformedBy ] :

( db Nserv ice (SvcWID , SvcEncWID , SvcTableCd , SvcOrderedBy , SvcPerformedBy )

=>

p S e r v i c e ( i d e n t i t y F o r S e r v i c e (SvcWID) ) )

) .

f o f ( a t t r ibute SvcEncWID ass igned fk to tab l e Nencounter , axiom ,

! [ SvcWID , SvcEncWID , SvcTableCd , SvcOrderedBy , SvcPerformedBy ] :

( db Nserv ice (SvcWID , SvcEncWID , SvcTableCd , SvcOrderedBy , SvcPerformedBy )

=>

p s e r v i c e f o r e n c o u n t e r ( i d e n t i t y F o r S e r v i c e (SvcWID) , ident i tyForEncounter (

SvcEncWID) ) )

) .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% TABLE: NphmIngredient

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

f o f ( inver s e fo r ent i tyForPharmacy 1 , axiom ,

! [PhmWID] : ( identityForPharmacyToPhmWID ( identityForPharmacy (PhmWID) ) =

PhmWID)

) .

f o f ( inver s e fo r ent i tyForPharmacy 2 , axiom ,

! [P ] : ( identityForPharmacy ( identityForPharmacyToPhmWID (P) ) = P)

) .

f o f ( tab l e NphmIngred i ent r epre s ent s in s tance s o f concept Pharmacy , axiom ,

! [PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm,

PhmStrengthDesc , PhmDosageForm ] :

249

Page 269: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

( db NphmIngredient (PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm

, PhmStrengthDesc , PhmDosageForm)

=>

p Pharmacy ( identityForPharmacy (PhmWID) ) )

) .

f o f ( a t t r i b u t e N p h m I n g r e d i e n t a s s i g n e d f k t o t a b l e N s e r v i c e , axiom ,

! [PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm,

PhmStrengthDesc , PhmDosageForm ] :

( db NphmIngredient (PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm

, PhmStrengthDesc , PhmDosageForm)

=>

p p r e s c r i p t i o n s e r v i c e ( identityForPharmacy (PhmWID) , i d e n t i t y F o r S e r v i c e (

PhmSvcWID) ) )

) .

f o f ( a r b i t r a r y r u l e f o r p h a r m a c y f o r p a t i e n t , axiom ,

! [ PatWID, EncWID, SvcWID , PhmWID] :

(

(

p encounte r sPat i ent ( ident i tyForEncounter (EncWID) , i d e n t i t y F o r P a t i e n t (

PatWID) )

&

p s e r v i c e f o r e n c o u n t e r ( i d e n t i t y F o r S e r v i c e (SvcWID) , ident i tyForEncounter

(EncWID) )

&

p p r e s c r i p t i o n s e r v i c e ( identityForPharmacy (PhmWID) , i d e n t i t y F o r S e r v i c e (

SvcWID) )

)

=>

p c o u n c e l a t ( i d e n t i t y F o r P a t i e n t (PatWID) , identityForPharmacy (PhmWID) )

) ) .

f o f ( a t t r ibute PhmStar tDtm ass i gned to has s ta r t t ime , axiom ,

250

Page 270: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

! [PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm,

PhmStrengthDesc , PhmDosageForm ] :

( db NphmIngredient (PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm

, PhmStrengthDesc , PhmDosageForm)

=>

p h a s s t a r t t i m e ( identityForPharmacy (PhmWID) , PhmStartDtm ) )

) .

f o f ( a t t r i b u t e P h m O r d e r D e s c a s s i g n e d t o d e s c r i p t i o n o f o r d e r , axiom ,

! [PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm,

PhmStrengthDesc , PhmDosageForm ] :

( db NphmIngredient (PhmWID, PhmSvcWID, PhmOrderDesc , PhmStartDtm , PhmEndDtm

, PhmStrengthDesc , PhmDosageForm)

=>

p d e s c r i p t i o n o f o r d e r ( identityForPharmacy (PhmWID) , PhmOrderDesc ) )

) .

A.4 Generating SQL-template Query

A.4.1 S1: allPatientId Service

The proof tree generated during the resolutions in VampirePrime reasoner is

an important step towards finding the schematic answers. For each service,

the proof tree is listed belo for documentation purposes only and is not saved

in Valet SADI. However, the schematic answers to a semantic query is hosted

at https://bitbucket.org/sadnanalmanir/valetsadi/src/master/sch

ematicanswers/ while the SQL-template queries are hosted at https://bi

tbucket.org/sadnanalmanir/valetsadi/src/master/sql/template/.

For each service, the schematic answers and the corresponding SQL-template

251

Page 271: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

queries are listed below.

A.4.1.1 Resolution Proof Tree

1 % 114 . ˜ p Pat i ent ( ent i tyForPat i en t (X0) ) | <<answer>>(X0)

2 % 224 . p Pat i ent ( ent i tyForPat i en t (X0) ) | {{˜ db Npatient }}(X0 , X1 , X2 ,

X3)

3 % ∗ 227 . ˜ p Pat i ent ( ent i tyForPat i en t (X0) ) | <<answer>>(X0)

4 % ∗ 337 . p Pat i ent ( ent i tyForPat i en t (X0) ) | {{˜ db Npatient }}(X0 , X1 , X2

, X3)

5 % 373 . | {{˜ db Npatient }}(X0 , X1 , X2 , X3) \/ <<answer>>(X0)

A.4.1.2 Generated Schematic Answers

<gener i c answer >

<condi t ion >

< l i t e r a l p o l a r i t y =”neg”>

<atom p r e d i c a t e=”db Npatient”>

<arg>

<var sym=”X0”/>

</arg>

<arg>

<var sym=”X1”/>

</arg>

<arg>

<var sym=”X2”/>

</arg>

<arg>

<var sym=”X3”/>

</arg>

</atom>

</ l i t e r a l >

</condi t ion >

<conc lus ion >

< l i t e r a l p o l a r i t y =”pos”>

252

Page 272: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

<atom p r e d i c a t e=”answer”>

<arg>

<var sym=”X0”/>

</arg>

</atom>

</ l i t e r a l >

</conc lus ion >

</gener i c answer >

A.4.1.3 SQL-template Query

Separat ion r e s u l t s :

Generating : [ ˜ db Npatient (X0 , X1 , X2 , X3) ]

Test ing view l i t e r a l s : [ ]

Test l i t e r a l s : [ ]

F l a t t e n i n g r e s u l t s :

Dx = [ ˜ db Npatient (Y0 , Y1 , Y2 , Y3) ]

Generating = [ ˜ db Npatient (Y0 , Y1 , Y2 , Y3) ]

Test ing = [ ]

Ea = [ ˜ equal (Y0 , X0) ]

Ec = [ ]

Ed = [ ]

Table a l i a s e s :

˜ db Npatient (Y0 , Y1 , Y2 , Y3) −−> TABLE0

<s a i l g e n e r a t e d s q l q u e r y >

<query text >

SELECT TABLE0. patWID AS X0

FROM Npatient AS TABLE0

</query text >

<s q l v i e w s >

</s q l v i e w s >

253

Page 273: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

<var map>

{queryVar0=X0}

</var map>

</ s a i l g e n e r a t e d s q l q u e r y >

A.4.2 S2: getLastnameFirstnameByPatientId Service

A.4.2.1 Resolution Proof Tree

1 % 114 . ˜ p has la s t name ( ent i tyForPat i en t (” Z0 ”) ,X0) | ˜

p h a s f i r s t n a m e ( ent i tyForPat i en t (” Z0 ”) ,X1) \/ <<answer>>(X0 , X1)

2 % 222 . p h a s f i r s t n a m e ( ent i tyForPat i en t (X0) ,X1) | {{˜ db Npatient }}(

X0 , X2 , X3 , X1)

3 % 223 . p has la s t name ( ent i tyForPat i en t (X0) ,X1) | {{˜ db Npatient }}(

X0 , X2 , X1 , X3)

4 % ∗ 227 . ˜ p has la s t name ( ent i tyForPat i en t (” Z0 ”) ,X0) | ˜

p h a s f i r s t n a m e ( ent i tyForPat i en t (” Z0 ”) ,X1) \/ <<answer>>(X0 , X1)

5 % ∗ 335 . p h a s f i r s t n a m e ( ent i tyForPat i en t (X0) ,X1) | {{˜ db Npatient

}}(X0 , X2 , X3 , X1)

6 % ∗ 336 . p has la s t name ( ent i tyForPat i en t (X0) ,X1) | {{˜ db Npatient

}}(X0 , X2 , X1 , X3)

7 % ∗ 372 . ˜ p h a s f i r s t n a m e ( ent i tyForPat i en t (” Z0 ”) ,X0) | {{˜

db Npatient }}(” Z0 ” ,X1 , X2 , X3)

A.4.2.2 Generated Schematic Answers

<gener i c answer >

<condi t ion >

< l i t e r a l p o l a r i t y =”neg”>

<atom p r e d i c a t e=”db Npatient”>

<arg>

<const sym=”&quot ; Z0&quot ;”/>

</arg>

<arg>

<var sym=”X0”/>

254

Page 274: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

</arg>

<arg>

<var sym=”X1”/>

</arg>

<arg>

<var sym=”X2”/>

</arg>

</atom>

</ l i t e r a l >

< l i t e r a l p o l a r i t y =”neg”>

<atom p r e d i c a t e=”db Npatient”>

<arg>

<const sym=”&quot ; Z0&quot ;”/>

</arg>

<arg>

<var sym=”X3”/>

</arg>

<arg>

<var sym=”X4”/>

</arg>

<arg>

<var sym=”X5”/>

</arg>

</atom>

</ l i t e r a l >

</condi t ion >

<conc lus ion >

< l i t e r a l p o l a r i t y =”pos”>

<atom p r e d i c a t e=”answer”>

<arg>

<var sym=”X1”/>

</arg>

<arg>

<var sym=”X5”/>

</arg>

255

Page 275: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

</atom>

</ l i t e r a l >

</conc lus ion >

</gener i c answer >

A.4.2.3 SQL-template Query

Separat ion r e s u l t s :

Generating : [ ˜ db Npatient (” Z0 ” ,X0 , X1 , X2) , ˜ db Npatient (” Z0 ” ,X3 , X4 , X5) ]

Test ing view l i t e r a l s : [ ]

Test l i t e r a l s : [ ]

F l a t t en i n g r e s u l t s :

Dx = [ ˜ db Npatient (Y0 , Y1 , Y2 , Y3) , ˜ db Npatient (Y4 , Y5 , Y6 , Y7) ]

Generating = [ ˜ db Npatient (Y0 , Y1 , Y2 , Y3) , ˜ db Npatient (Y4 , Y5 , Y6 , Y7) ]

Test ing = [ ]

Ea = [ ˜ equal (Y2 , X1) , ˜ equal (Y7 , X5) ]

Ec = [ ˜ equal (Y0 , ” Z0 ”) , ˜ equal (Y4 , ” Z0 ”) ]

Ed = [ ]

Table a l i a s e s :

˜ db Npatient (Y0 , Y1 , Y2 , Y3) −−> TABLE0

˜ db Npatient (Y4 , Y5 , Y6 , Y7) −−> TABLE1

<s a i l g e n e r a t e d s q l q u e r y >

<query text >

SELECT TABLE0. patLastName AS X1 ,

TABLE1. patFirstName AS X5

FROM Npatient AS TABLE0,

Npatient AS TABLE1

WHERE TABLE0. patWID = ”Z0”

AND TABLE1. patWID = ”Z0”

</query text >

256

Page 276: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

<s q l v i e w s >

</s q l v i e w s >

<var map>

{queryVar0=X1 , queryVar1=X5}

</var map>

</ s a i l g e n e r a t e d s q l q u e r y >

A.4.3 S3: getAllergyByPatientId Service

A.4.3.1 Resolution Proof Tree

1 % 114 . ˜ p h a s a l l e r g y ( ent i tyForPat i en t (” Z0 ”) , e n t i t y F o r A l l e r g y (X0) ) |

˜ p h a s a d v e r s e r e a c t i o n t o ( e n t i t y F o r A l l e r g y (X0) ,X1) \/ <<answer>>(X1)

2 % 200 . p h a s a d v e r s e r e a c t i o n t o ( e n t i t y F o r A l l e r g y (X0) ,X1) | {{˜

db Nal l e rgy }}(X0 , X2 , X1)

3 % 201 . p h a s a l l e r g y ( ent i tyForPat i en t (X0) , e n t i t y F o r A l l e r g y (X1) ) |

{{˜ db Nal l e rgy }}(X1 , X0 , X2)

4 % 227 . ˜ p h a s a l l e r g y ( ent i tyForPat i en t (” Z0 ”) , e n t i t y F o r A l l e r g y (X0) ) |

˜ p h a s a d v e r s e r e a c t i o n t o ( e n t i t y F o r A l l e r g y (X0) ,X1) \/ <<answer>>(X1)

5 % ∗ 313 . p h a s a d v e r s e r e a c t i o n t o ( e n t i t y F o r A l l e r g y (X0) ,X1) | {{˜

db Nal l e rgy }}(X0 , X2 , X1)

6 % ∗ 314 . p h a s a l l e r g y ( ent i tyForPat i en t (X0) , e n t i t y F o r A l l e r g y (X1) ) |

{{˜ db Nal l e rgy }}(X1 , X0 , X2)

7 % ∗ 354 . ˜ p h a s a d v e r s e r e a c t i o n t o ( e n t i t y F o r A l l e r g y (X0) ,X1) | {{˜

db Nal l e rgy }}(X0 , ” Z0 ” ,X2) \/ <<answer>>(X1)

A.4.3.2 Generated Schematic Answers

<gener i c answer >

<condi t ion >

< l i t e r a l p o l a r i t y =”neg”>

<atom p r e d i c a t e=”db Nal l e rgy”>

<arg>

<var sym=”X0”/>

</arg>

257

Page 277: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

<arg>

<const sym=”&quot ; Z0&quot ;”/>

</arg>

<arg>

<var sym=”X1”/>

</arg>

</atom>

</ l i t e r a l >

< l i t e r a l p o l a r i t y =”neg”>

<atom p r e d i c a t e=”db Nal l e rgy”>

<arg>

<var sym=”X0”/>

</arg>

<arg>

<var sym=”X2”/>

</arg>

<arg>

<var sym=”X3”/>

</arg>

</atom>

</ l i t e r a l >

</condi t ion >

<conc lus ion >

< l i t e r a l p o l a r i t y =”pos”>

<atom p r e d i c a t e=”answer”>

<arg>

<var sym=”X3”/>

</arg>

</atom>

</ l i t e r a l >

</conc lus ion >

</gener i c answer >

A.4.3.3 SQL-template Query

258

Page 278: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Separat ion r e s u l t s :

Generating : [ ˜ db Nal l e rgy (X0 , ” Z0 ” ,X1) , ˜ db Nal l e rgy (X0 , X2 , X3) ]

Test ing view l i t e r a l s : [ ]

Test l i t e r a l s : [ ]

F l a t t e n i n g r e s u l t s :

Dx = [ ˜ db Nal l e rgy (Y0 , Y1 , Y2) , ˜ db Nal l e rgy (Y3 , Y4 , Y5) ]

Generating = [ ˜ db Nal l e rgy (Y0 , Y1 , Y2) , ˜ db Nal l e rgy (Y3 , Y4 , Y5) ]

Test ing = [ ]

Ea = [ ˜ equal (Y5 , X3) ]

Ec = [ ˜ equal (Y1 , ” Z0 ”) ]

Ed = [ ˜ equal (Y0 , Y3) ]

Table a l i a s e s :

˜ db Nal l e rgy (Y0 , Y1 , Y2) −−> TABLE0

˜ db Nal l e rgy (Y3 , Y4 , Y5) −−> TABLE1

<s a i l g e n e r a t e d s q l q u e r y >

<query text >

SELECT TABLE1. a lgAdverseReact ion AS X3

FROM Nal l e rgy AS TABLE0,

Na l l e rgy AS TABLE1

WHERE TABLE0. algPatWID = ”Z0”

AND TABLE0. algWID = TABLE1. algWID

</query text >

<s q l v i e w s >

</s q l v i e w s >

<var map>

{queryVar0=X3}

</var map>

</ s a i l g e n e r a t e d s q l q u e r y >

259

Page 279: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

A.5 Source Code of SADI Services

A.5.1 S1: allPatientId Service

p u b l i c c l a s s A l l P a t i e n t I d s extends S impleSynchronousServ i ceServ l e t

{

. . .

p u b l i c void proce s s Input ( Resource input , Resource output )

{

/∗ Assign input va lue s from the input RDF ∗/

// No input i s r e q u i r e d

/∗ I n s t a n t i a t e SQL Query ∗/

S t r i n g s q l q u e r y =

” SELECT TABLE0. patWID AS X0”+

” FROM Npatient AS TABLE0” ;

/∗ Create output RDF ∗/

// I n i t i a l i z e the empty output model

Model outputRDF = output . getModel ( ) ;

t ry {

// Connect to the MySQL source database

java . s q l . Statement stmt = MySqlDatabase . connect ion . createStatement ( ) ;

// Execute the SQL query

Resu l tSet r s = stmt . executeQuery ( s q l q u e r y ) ;

// I t e r a t e through each item from the r e s u l t s e t

whi l e ( r s . next ( ) ) {

// Create a r e s o u r c e f o r the p a t i e n t i d e n t i f i e r

Resource p a t i e n t i d = outputModel

. c r eateResource (” http : / / . . . / Pat ient by ID ?ID=” + r s . g e t S t r i n g (1 ) ) ;

// Set the type o f the r e s o u r c e

p a t i e n t i d . addProperty ( Vocab . type , Vocab . Pat ient ) ;

output . addProperty ( Vocab . type , Vocab . Pat ient ) ;

}

260

Page 280: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

}

catch ( Exception e ) {

. . .

}

}

}

/∗ Vocabu lar i e s f o r Resources and types ∗/

p r i v a t e s t a t i c f i n a l c l a s s Vocab

{

p r i v a t e s t a t i c Model m model = ModelFactory . createDefau l tMode l ( ) ;

p u b l i c s t a t i c f i n a l Resource Pat ient = m model

. c r eateResource (” http : / / . . . / t e r m i n o l o g i e s . owl#Pat ient ”) ;

p u b l i c s t a t i c f i n a l Resource Input = m model

. c r eateResource (” http : / / . . . / a l l P a t i e n t I d s . owl#Input ”) ;

p u b l i c s t a t i c f i n a l Resource Output = m model

. c r eateResource (” http : / / . . . / a l l P a t i e n t I d s . owl#Output ”) ;

p u b l i c s t a t i c f i n a l Property type m model

. c r eateProper ty (” http ://www. w3 . org /1999/02/22− rdf−syntax−ns#type ”) ;

}

A.5.2 S2: getLastnameFirstnameByPatientId Service

p u b l i c c l a s s getLastnameFirstnameByPatientId extends

S impleSynchronousServ i ceServ l e t

{

. . .

p u b l i c void proce s s Input ( Resource input , Resource output )

{

/∗ Get input value from the input RDF ∗/

S t r i n g Z0 = input . getURI ( ) . s u b s t r i n g ( ( ” http : / . . . / Pat ient by ID ?ID=”) .

l ength ( ) ) ;

/∗ I n s t a n t i a t e SQL Query ∗/

S t r i n g s q l q u e r y =

261

Page 281: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

” SELECT TABLE0. patLastName AS X1,”+

” TABLE1. patFirstName AS X5”+

” FROM Npatient AS TABLE0”+

” Npatient AS TABLE1”+

” WHERE TABLE0. patWID = ”+Z0+

” AND TABLE1. patWID = ”+Z0 ;

/∗ Create output RDF ∗/

Model outputRDF = output . getModel ( ) ;

t ry {

java . s q l . Statement stmt = MySqlDatabase . connect ion . createStatement ( ) ;

Resu l tSet r s = stmt . executeQuery ( s q l q u e r y ) ;

whi l e ( r s . next ( ) ) {

output . addProperty ( Vocab . type , Vocab . Pat ient ) ;

output . a d d L i t e r a l ( Vocab . has last name , r s . g e t S t r i n g (1 ) ) ;

output . a d d L i t e r a l ( Vocab . h a s f i r s t n a m e , r s . g e t S t r i n g (2 ) ) ;

}

}

catch ( Exception e ) {

. . .

}

}

}

/∗ Vocabu lar i e s f o r Resources and types ∗/

p r i v a t e s t a t i c f i n a l c l a s s Vocab

{

p r i v a t e s t a t i c Model m model = ModelFactory . createDefau l tMode l ( ) ;

p u b l i c s t a t i c f i n a l Resource Pat ient = m model

. c r eateResource (” http : / / . . . / t e r m i n o l o g i e s . owl#Pat ient ”) ;

p u b l i c s t a t i c f i n a l Resource Input = m model

. c r eateResource (” http : / / . . . / getLastnameFirstnameByPatientId . owl#Input ”) ;

p u b l i c s t a t i c f i n a l Resource Output = m model

. c r eateResource (” http : / / . . . / getLastnameFirstnameByPatientId . owl#Output ”) ;

p u b l i c s t a t i c f i n a l Property type = m model

262

Page 282: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

. c r ea teProper ty (” http ://www. w3 . org /1999/02/22− rdf−syntax−ns#type ”) ;

p u b l i c s t a t i c f i n a l Property has las t name = m model

. c r eateProper ty (” http : / / . . . / t e r m i n o l o g i e s . owl#has las t name ”) ;

p u b l i c s t a t i c f i n a l Property h a s f i r s t n a m e = m model

. c r eateProper ty (” http : / / . . . / t e r m i n o l o g i e s . owl#h a s f i r s t n a m e ”) ;

}

A.5.3 S3: getAllergyByPatientId Service

p u b l i c c l a s s getAl l e rgyByPat i ent Id extends S impleSynchronousServ i ceServ l e t

{

. . .

p u b l i c void proce s s Input ( Resource input , Resource output )

{

/∗ Get input value from the input RDF ∗/

S t r i n g Z0 = input . getURI ( ) . s u b s t r i n g ( ( ” http : / . . . / Pat ient by ID ?ID=”) .

l ength ( ) ) ;

/∗ I n s t a n t i a t e SQL Query ∗/

S t r i n g s q l q u e r y =

” SELECT TABLE2. a lgAdverseReact ion AS X6”+

” FROM Npatient AS TABLE0,”+

” Nal l e rgy AS TABLE1,”+

” Nal l e rgy AS TABLE2,”+

” WHERE TABLE0. patWID = ”+Z0+

” AND TABLE1. algWID = TABLE2. algWID ” ;

/∗ Create output RDF ∗/

Model outputRDF = output . getModel ( ) ;

t ry {

java . s q l . Statement stmt = MySqlDatabase . connect ion . createStatement ( ) ;

Resu l tSet r s = stmt . executeQuery ( s q l q u e r y ) ;

whi l e ( r s . next ( ) ) {

output . addProperty ( Vocab . type , Vocab . Pat ient ) ;

Resource A l l e r g y i n s t a n c e = outputRDF . createResource ( ) ;

263

Page 283: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

A l l e r g y i n s t a n c e . addProperty ( Vocab . type , Vocab . A l l e rgy ) ;

output . addProperty ( Vocab . h a s a l l e r g y , A l l e r g y i n s t a n c e ) ;

A l l e r g y i n s t a n c e . a d d L i t e r a l ( Vocab . h a s a l l e r g i c r e a c t i o n t o , r s . g e t S t r i n g

(1 ) ) ;

}

}

catch ( Exception e ) {

. . .

}

}

}

/∗ Vocabu lar i e s f o r Resources and types ∗/

p r i v a t e s t a t i c f i n a l c l a s s Vocab

{

p r i v a t e s t a t i c Model m model = ModelFactory . createDefau l tMode l ( ) ;

p u b l i c s t a t i c f i n a l Resource Al l e rgy = m model

. c r eateResource (” http : / / . . . / t e r m i n o l o g i e s . owl#Al l e rgy ”) ;

p u b l i c s t a t i c f i n a l Resource Pat ient = m model

. c r eateResource (” http : / / . . . / t e r m i n o l o g i e s . owl#Pat ient ”) ;

p u b l i c s t a t i c f i n a l Resource Input = m model

. c r eateResource (” http : / / . . . / getAl l e rgyByPat i ent Id . owl#Input ”) ;

p u b l i c s t a t i c f i n a l Resource Output = m model

. c r eateResource (” http : / / . . . / getAl l e rgyByPat i ent Id . owl#Output ”) ;

p u b l i c s t a t i c f i n a l Property type = m model

. c r eateProper ty (” http ://www. w3 . org /1999/02/22− rdf−syntax−ns#type ”) ;

p u b l i c s t a t i c f i n a l Property h a s a l l e r g y = m model

. c r eateProper ty (” http : / / . . . / t e r m i n o l o g i e s . owl#h a s a l l e r g y ”) ;

p u b l i c s t a t i c f i n a l Property h a s a l l e r g i c r e a c t i o n t o = m model

. c r eateProper ty (” http : / / . . . / t e r m i n o l o g i e s . owl#h a s a l l e r g i c r e a c t i o n t o ”) ;

}

264

Page 284: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

A.6 Composing SPARQL Queries Incremen-

tally on HYDRA

Figure A.1: Find all patients.

Figure A.2: List the first and last names of all patients.

265

Page 285: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

reA

.3:

List

first

and

last

nam

esof

allp

atie

nts

who

are

adm

itted

toth

eO

rtho

pedi

cSu

rger

yfa

cilit

y.

266

Page 286: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

reA

.4:L

istfir

stan

dla

stna

mes

ofal

lpat

ient

swho

are

adm

itted

toth

eO

rtho

pedi

cSu

rger

yfa

cilit

yan

ddi

agno

sed

with

Ost

eoar

thrit

isof

knee

(IC

D-1

0-C

Mco

deM

17).

267

Page 287: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

reA

.5:

List

first

and

last

nam

esof

allp

atie

nts

who

are

adm

itted

toth

eO

rtho

pedi

cSu

rger

yfa

cilit

y,di

agno

sed

with

Ost

eoar

thrit

isof

knee

(IC

D-1

0-C

Mco

deM

17),

and

the

star

ttim

eof

sche

dule

dpr

oced

ure.

268

Page 288: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

reA

.6:

List

first

and

last

nam

esof

allp

atie

nts

who

are

adm

itted

toth

eO

rtho

pedi

cSu

rger

yfa

cilit

y,di

agno

sed

with

Ost

eoar

thrit

isof

knee

(IC

D-1

0-C

Mco

deM

17),

the

star

ttim

eof

sche

dule

dpr

oced

ure,

desc

riptio

nof

the

orde

rof

the

antib

iotic

,and

the

star

ttim

efo

rad

min

ister

ing

the

med

icat

ion.

269

Page 289: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Figu

reA

.7:

List

first

and

last

nam

esof

allp

atie

nts

who

are

adm

itted

toth

eO

rtho

pedi

cSu

rger

yfa

cilit

y,di

agno

sed

with

Ost

eoar

thrit

isof

knee

(IC

D-1

0-C

Mco

deM

17),

the

star

ttim

eof

sche

dule

dpr

oced

ure,

desc

riptio

nof

the

orde

roft

hean

tibio

tic,a

ndth

est

artt

ime

fora

dmin

ister

ing

the

med

icat

ion

fort

hose

who

are

alle

rgic

toPe

nici

llin

asan

antib

iotic

.

270

Page 290: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

Vita

Candidate’s full name: Mohammad Sadnan Al Manir

University attended:Vienna University of Technology, Master of Science (MSc), 2009Free University of Bozen-Bolzano, Master in Computer Science, 2009Khulna University of Engineering & Technology, BSc Engineering inComputer Science & Engineering, 2005

Publications:1. Mohammad Sadnan Al Manir, Jon Hael Brenas, Christopher J. O. Baker,Arash Shaban-Nejad: A Surveillance Infrastructure for Malaria Analytics:Provisioning Data Access and Preservation of Interoperability.CoRR abs/1902.01877 (2019)2. Mohammad Sadnan Al Manir, Bruce Spencer, Christopher J. O. Baker:Decision Support for Agricultural Consultants With Semantic Data Federa-tion. IJAEIS 9(3): 87-99 (2018)3. Compson, Zacchaeus G. and Monk, Wendy A. and Curry, Colin J. andGravel, Dominique and Bush, Alex and Baker, Christopher J.O. and Manir,Mohammad Sadnan Al and Riazanov, Alexandre and Hajibabaei, Mehrdadand Shokralla, Shadi and Gibson, Joel F. and Stefani, Sonja and Wright,Michael T.G. and Baird, Donald J.: Linking DNA Metabarcoding and TextMining to Create Network-Based Biomon-itoring Tools: A Case Study onBoreal Wetland Macroinvertebrate Communities,Advances in Ecological Re-search, Academic Press, Volume 59, 2018, Pages 33-74,https://doi.org/10.1016/bs.aecr.2018.09.0014. Jon Hael Brenas, Mohammad Sadnan Al Manir, Kate Zinszer, Christopher

Page 291: unbscholar.lib.unb.ca9798... · Generating SADI Semantic Web Services from Declarative Descriptions by Mohammad Sadnan Al Manir Master of Science (MSc), Vienna University of Technology,

J. O. Baker, Arash Shaban-Nejad: Exploring Semantic Data Federation toEnable Malaria Surveillance Queries. MIE 2018: 6-105. Alec Gordon, Mohammad Sadnan Al Manir, Brandon Smith, Amir Hos-sein Rezaie, Christopher J. O. Baker: Design of a framework to support reuseof Open Data about agriculture. SWAT4LS 20186. Jon Hael Brenas, Mohammad Sadnan Al Manir, Christopher J. O. Baker,Arash Shaban-Nejad: A Malaria Analytics Framework to Support Evolutionand Interoperability of Global Health Surveillance Systems. IEEE Access 5:21605-21619 (2017)7. Jon Hael Brenas, Mohammad Sadnan Al Manir, Christopher J. O. Baker,Arash Shaban-Nejad: A Change Management Dashboard for the SIEMAGlobal Malaria Surveillance Infrastructure. International Semantic WebConference (Posters, Demos & Industry Tracks) 20178. Mohammad Sadnan Al Manir, Alexandre Riazanov, Harold Boley, ArtjomKlein, Christopher J. O. Baker: Valet SADI: Provisioning SADI Web Servicesfor Semantic Querying of Relational Databases. IDEAS 2016: 248-2559. Mohammad Sadnan Al Manir, Alexandre Riazanov, Harold Boley, ArtjomKlein, Christopher J. O. Baker: Automated generation of SADI semantic webservices for clinical intelligence. SBD@SIGMOD 2016: 610. Mohammad Sadnan Al Manir, Alexandre Riazanov, Harold Boley, ArtjomKlein, Christopher J. O. Baker: Automated Generation of SADI Web Ser-vices for Clinical Intelligence using Ruled-Based Semantic Mappings.SWAT4LS 2015: 203-20411. Mohammad Sadnan Al Manir, Christopher J. O. Baker: Offshore Hold-ings Analytics Using Datalog+ RuleML Rules. Challenge+DC@RuleML201412. Mohammad Sadnan Al Manir, Alexandre Riazanov, Harold Boley, Christo-pher J. O. Baker: Generating Semantic Web Services from Declarative De-scriptions. CSWS 2013: 33-3613. Mohammad Sadnan Al Manir, Alexandre Riazanov, Harold Boley, Christo-pher J. O. Baker: PSOA RuleML API: A Tool for Processing Abstract andConcrete Syntaxes. RuleML 2012: 280-28814. Mohammad Sadnan Al Manir: Towards RIF-OWL Combination: AnEffective Reasoning Technique in Integrating OWL and Negation-Free Rules.RuleML America 2011: 33-48