=Paper=
{{Paper
|id=None
|storemode=property
|title=HarmonICS - a Tool for Composing Medical Services
|pdfUrl=https://ceur-ws.org/Vol-847/paper4.pdf
|volume=Vol-847
|dblpUrl=https://dblp.org/rec/conf/zeus/DoliwaHJNPPS12
}}
==HarmonICS - a Tool for Composing Medical Services==
HarmonICS - a Tool for Composing Medical Services ? Dariusz Doliwa1 , Wojciech Horzelski1 , Mariusz Jarocki1 , Artur Niewiadomski2 , Wojciech Penczek2,3 , Agata Półrola1 , and Jarosław Skaruz2 1 University of Łódź, FMCS, Banacha 22, 90-238 Łódź, Poland {doliwa,horzel,jarocki,polrola}@math.uni.lodz.pl 2 Siedlce University of Natural Sciences and Humanities, ICS, 3-go Maja 54, 08-110 Siedlce, Poland {artur,jskaruz}@ii.uph.edu.pl 3 Institute of Computer Science, PAS, Ordona 21, 01-237 Warsaw, Poland penczek@ipipan.waw.pl Abstract. The paper presents the tool HarmonICS designed for automated com- position of medical services and implementing our approach to description and composition of web services. HarmonICS enables arranging sequences of services to satisfy a user’s request specified by a query. The query language is rich enough to express requirements on the timing and the ordering of services used. 1 Introduction and Related Work We present a new tool for automated composition of web services (WS) related to the medical domain. The tool implements our original approach [7] to WS composition, based on introducing a uniform semantic description of services, an object model for the problem, and applying a multi-phase composition supported by model checking methods. The planning process aims at satisfying a user’s goal, specified in a declar- ative language, which enables not only to express features of the objects, but also re- quirements on the timing and ordering of services occurring in the plan. The WS composition problem is a very important subject of research for which many various solutions exist. The simplest ones are based on explicit state space search algorithms [16], while more advanced ones employ a graph-based planning [5], logic programming [14], an AI planning [13, 11], model checking methods [10, 12], and ge- netic algorithms [3]. Vitvar et al. [17] proposed a solution based on WSMO/WSML [15] formalisms. While the fundamental ideas of their concepts seem similar to ours, it is important to mention that our approach is simpler and thus much easier to implement. Our considerations follow that of Ambroszkiewicz [1], which provides a specifi- cation of an automatic composition system based on a multi-phase composition and uniform semantic descriptions of services. However, several extensions like enriched descriptions of services or a hierarchic organisation of services and objects they operate on, have been additionally designed. Doing all that, we keep the semantic base as sim- ple as possible, which aims at enabling a translation of the WS composition problem to a problem solvable by means of eficient methods and tools from other domains. ? Partly supported by National Science Centre under the grant No. 2011/01/B/ST6/01477. The first “general” implementation of our approach (system PlanICS) was described by Doliwa et al. [8]. The tool HarmonICS to be presented here is, on one hand, an exten- sion of PlanICS due to incorporating new theoretical solutions, while on the other hand it is its specialization to a particular domain. In addition to the SAT-based planning method inherited from PlanICS, HarmonICS offers also a new specialized SMT-based so- lution. The SMT-based concrete planner has been developed in response to insufficient performance of the previous solution in some particular cases. The bottleneck was a translation of TADDPA1 to SAT in the presence of a large number of conditions im- posed on the variables, especially these "expensive" ones, e.g., using modulo operator. In addition to introducing the SMT-based planner, our contribution consists in de- veloping several extensions of the underlying formalisms, which are discussed in the next section together with the theoretical background of our approach. The rest of the paper is organizes as follows. Sec. 3 introduces the main features of our solution, and gives an overview of the system implementation. Finally, a summary and a comparison between HarmonICS and PlanICS are provided in Sec. 4. 2 Theory behind HarmonICS Our approach to automated composition of WSs is based on introducing a unified se- mantics for functionalities offered by services. A service is understood as a function which transforms a set of data into another set of data. The sets of data, i.e., inputs and outputs of services, are described in terms taken from a “dictionary” of types, in- troduced by an appropriate ontology. Each ontology follows the standard object model with classes, objects as their instantiations, and attributes as their components. More precisely, both the services and the items they operate on are organised into a multiple inheritance hierarchy of types, the top of which is composed of the following classes: Thing of no attributes and its descendants: Object, Service, and Trace. Below we explain the meaning of the branches rooted at the three descendant classes of Thing mentioned above. An example fragment of the ontology tree is presented in Fig. 1, where the solid arrows stand for the inheritance relation. We embed our expla- nation in the context of medical services considered in the paper. Therefore, we use the names from Fig. 1 as examples, but, in fact, all the nodes below Object, Service, and Trace are domain-dependent, and even for a “fixed” domain they can vary depending on the modelling assumed. The branch of classes rooted at Object introduces “types of beings”, Patient, Di- agnosis, Therapy, that are necessary to specify what the services operate on, together with the “features” of these beings expressed by their attributes. For example the class Patient has the attributes First_name, Last_name, Address, Date_of_Birth, Diagnosis etc. having a clear intuitive meaning. The branch of classes rooted at Service introduces types of services - Visit, Treat- ment, Registration. The attributes of the class Service, inherited by all its descendants, are as follows : in, out, inout, preCondition, and postCondition. The first three of them are aimed at listing objects (classified by names and types, similarly to subprogam pa- rameters) which, respectively, are required to execute the service (in), are produced by 1 Timed Automata with Discrete Data and Parametric Assignments Fig. 1. A fragment of the ontology used by HarmonICS the service (out), and are taken as an input and returned modified (inout). The aim of preCondition and postCondition is to specify respectively the conditions which should be satisfied by the “input” objects to have the service started and the conditions the “out- put” object satisfy after the service has been executed. For example we can express that the services of the type Visit modify an instance of Patient by placing p:Patient in the inout list, and require a visit to result in a diagnosis by placing isSet(p.Diagnosis) in the postCondition. The values of the attributes common for all the services of a given type are specified in a special instance of the corresponding class, called an abstract service. The concrete services of a given type (instances of the class representing this type) can introduce their own extensions to the attributes above. For example, the concrete service GeriatricianSmith of type GeriatricianVisit can require his patients to be older than 85 by extending the common preCondition by p.Date_of_Birth < "1927-12-31"). A more detailed description of the above elements of ontologies can be found in [7]. A new concept introduced to HarmonICS is shown as the third branch (from the left) of the inheritance tree in Fig. 1, i.e., the class Trace and its descendants. The instances of the above classes, called Traces, are “virtual products” (not corresponding to real- world beings). The out list of each service contains exactly one element corresponding to a trace, e.g. t:Trace. The main motivation behind Traces is a need for dealing with imperative queries, when the user precisely points out to the types of services to be exe- cuted, just like in most of the considered medical scenarios. Moreover, Traces enable to associate the services types (and also their concrete instances) with attributes like price, duration, location or quality, without affecting the existing structure of the language. The attributes of the class Trace are the following: level, block, serviceType, and serviceName. The first two of them aim at storing an information about a position of the service in the scenario generated, while the next two are used to identify the service executed. For example, if the service GeriatricianSmith is the first of the sce- nario, then the attributes of the trace t produced by this service are t.level=0, t.block=0, t.serviceType="GeriatricianVisit", and t.ServiceName="GeriatricianSmith". Traces enable to express certain requirements on sequences of services, both on the level of service descriptions and while specifying users goals. For example, Sur- geonVisit can require seeing a general practicioner earlier by including x:Trace in its in and x.ServiceType="GPVisit" in its preCondition. The descendants of Trace can intro- duce additional information. For example, a class TimedTrace with the attributes start and stop brings in time of the service execution. PriceTrace with the attribute price provides information about the service price, while LocationTrace with the attribute location introduces the information about the place where the service operates. The user specifies its goal in the form of a user query, which defines what he “pos- seses” (the initial world) and what he “wants to posses” (the effect world), together with these of their features that are of his interest, using names of the classes from the branch rooted at Object and names of their attributes to this aim. For example, the user John Gold can specify that possessing “nothing”, he wants to possess the ob- ject p:Patient with p.First_name="John" and p.Last_name="Gold", which means that he wants to become a patient. The goals can be also specified in terms of traces (i.e., names of the classes from the branch rooted at Trace). This enables to express that the user wants the scenario generated to contain a service ofcertain type (e.g., by specifying that the effect world should contain t1:Trace such that t1.ServiceType="SurgeonVisit") or a service of a concrete provider (e.g., by extending the above requirement by adding t1.ServiceName="SurgeonSmith"). Traces enable also to require a given ordering of ser- vices in a plan (by the use of the level attributes), or a given ordering of groups of servces (by the use of the attribute block) - for example, one can require the effect world to con- tain t1,t2:Trace such that t1.ServiceType="GPVisit", t2.ServiceType="SurgeonVisit" and t2.level