The Journal of Logic Programming 43 (2000) 3±14
www.elsevier.com/locate/jlpr
Using MedLan to integrate geographical dataq D. Aquilinoa,1, P. Asirellib,2, A. Formusoc,3, C. Rensoc,4, F. Turinic,* a
c
DreamTeam, Corso Italia 116, I-56125 Pisa, Italy b IEI-CNR, Via S.Maria 46, I-56126 Pisa, Italy Dipartimento di Informatica, Universita di Pisa, Corso Italia 40, I-56125 Pisa, Italy
Received 19 September 1997; received in revised form 27 April 1998; accepted 25 November 1998
Abstract In this paper we focus on the application of the declarative mediator language MedLan to the integration of geographical information systems and deductive databases. The language provides the ability to handle multiple logic theories via the notion of program expressions. We present an application example that deals with ®nding the best habitat for wild boars in a region of Tuscany. Ó 2000 Elsevier Science Inc. All rights reserved.
1. Introduction The wide use of Internet and the World Wide Web capabilities are at present showing the need for organizations to access and integrate dierent sources of information. Future applications are likely to be built by making systems developed and managed at dierent sites to inter-operate. Inter-operability means making information systems work together and it can be intended at two levels of abstraction: syntactic (low level) and semantic (high level) one. In the context of syntactic inter-operability, the ``meaning'' of the terms is irrelevant. Examples of this kind of inter-operation are dierent Unix systems which work together or cooperating SQL systems of dierent vendors. Semantic inter-operation means integrating systems at a level involving shared meaning of terms. In other words it is the process of specifying methods to resolve con¯icts, pool information together, and de®ne new compositional operations, based on existing operations, in the individual data sources. q
Partially supported by CNR-Comitato 12 and by CNR-Comitato 2. Corresponding author. Tel.: +39-50-887253; fax: +39-50-887226; e-mail:
[email protected] 1 E-mail:
[email protected] 2 E-mail:
[email protected] 3 E-mail:
[email protected] 4 E-mail:
[email protected] *
0743-1066/00/$ - see front matter Ó 2000 Elsevier Science Inc. All rights reserved. PII: S 0 7 4 3 - 1 0 6 6 ( 9 9 ) 0 0 0 2 3 - 0
4
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
Various architectures for inter-operation can be found in the literature as it is summarized in Ref. [16]: · mediation (read-only views); · federation; · mediation with updates; · work-¯ow. Mediation supports semantic integration of databases from the read-only view of information sources that reside at dierent sites. Interesting proposals for mediating database systems can be found in the literature, both for relational and logic/deductive databases [22,26,19,2,6]. All of these proposals consider only the ®rst kind of mediation, the one without updating capabilities. MedLan falls in this category, and it focuses on the construction of a declarative mediator level between the user and heterogeneous sources of structured and semistructured data. The basis of MedLan is logic programming and the extensions we propose consist of partitioning the code into separate programs, the ability of separate programs to interact, and the ability of computing queries with respect to a combination of programs denoted by so called program expressions. We experimented the capabilities of MedLan for constructing mediators in two application ®elds: semantic integration of deductive databases [3], and construction of a declarative analysis level on top of a traditional geographic information system. In this paper we oer an example of the second type: the integration with an ARCINFO GIS to deal with ®nding the best habitat for wild boars in an area of Tuscany. The plan of the paper follows. Section 2 introduces the syntax of the language and it provides an intuitive explanation of composition operators. Section 3 discusses the integration with geographical information systems. Section 4 discusses the code of the example. Finally, in Section 5 we make some comparisons of our language with other similar approaches in the literature and we discuss future work. 2. MedLan We consider a set of meta-level operations for composing de®nite logic programs, originally introduced in Refs. [20,9,3]: Union ([), Intersection (\), and Constraint (=). These operations de®ne the following language of program expressions: P exp :: Program j P exp [ P exp j P exp \ P exp j P exp=Program where Program is a named collection of clauses. Each set of clauses is associated with a unique name by means of a global naming mechanism. In the sequel we will abuse the notation and use a program identi®er to directly denote the set of clauses associated with it. The language of program expressions has been largely investigated both from the theoretical and from the application point of view (e.g. in Refs. [11,12,2]). MedLan extends further the approach by allowing the use of program expressions in clause bodies, besides allowing their use in queries as a sort of view de®nition, that is, program expressions can be used to allow programs to inter-operate with other programs. More precisely, a program is a ®nite set of extended de®nite clauses of the form
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
A
5
B1 ; . . . ; Bn
where each Bi is either an atomic formula or a meta-level formula of the form ``C in P exp'', where C is an atomic formula and P exp a program expression. A goal like ``C in P exp'' introduces a form of message passing between object level program. The idea is that the program containing the goal ``C in P exp'', sends the message C to the ``virtual'' program denoted by ``P exp''. As usual, logical variables act as input/output channels between programs. We assume that the language in which programs are written is ®xed. Namely, there is a ®xed set of function and predicate symbols that include all function and predicate symbols used in the programs being considered. Moreover, program names and program composition operations are disjoint from all other constant and function symbols that may occur in programs. Notice also that in all expressions of the form ``A in P exp'' occurring in the clause bodies of programs, the program expression P exp is ground (i.e. it does not contain variables) by de®nition of program expression itself. Here we give the operators an informal semantics by means of examples. The formal (abstract and operational semantics) is fully described in Ref. [23]. Consider the following programs P and Q: P:
downhill
X ; Y ski lifts
Y in Q ski lifts
location1
Q:
ski lifts
location2
The ®rst rule of P states that ``you can build a downhill ski run from location X to location Y if you can prove the existence of ski_lifts in location Y using the knowledge base Q''. The query downhill
peak1; Y in the program P bounds the variable Y to location2 since the evaluation of the goal ski lifts
Y is performed in the program Q. Given a program expression E, we show a plain logic program that behaves as the program expression, i.e. it provides the same answers to the same queries, whatever is the operational semantics in use. We refer sometimes to this program as to the virtual program denoted by the expression. Such a transformational approach, ®rst introduced in Ref. [7], is thoroughly described in Refs. [10,2] and it is useful for an intuitive understanding of program expressions. Consider the following plain programs: P:
arc
a; b arc
b; c arc
c; b
Q:
arc
X ; Y
arc
X ; Z; arc
Z; Y
P describes a graph. Q axiomatizes a general property of graphs. P [ Q behaves as a plain program containing the clauses of P and the clauses of Q. As the example shows, union may be used to factor knowledge in dierent modules. Intersection allows to combine knowledge by merging clauses with uni®able heads into clauses having the conjunctions of the bodies of the original clauses as body. The net eect is that the two plain programs act as sets of constraints one upon the other.
6
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
Consider the example P:
likes
X ; Y hates
X ; Y
Q:
likes
bob; Y
sweet
Y bitter
Y sour
Y
Then the program expression P \ Q behaves as the plain logic program likes
bob; Y
sweet
Y ; sour
Y
Notice that P \ Q does not say anything about hates, since nothing about hates is deducible from Q. The constraint operator combines the features of union, intersection and a simple form of negation to provide an asymmetric composition between a program P and a program Q. Q acts as a set of constraints for P as it is illustrated by the following example. Consider P: likes
X ; Y blond hair
Y green eyes
mary blond hair
mary blond hair
susan
Q: likes
john; Y
green eyes
Y
The following plain program behaves as the program expression P =Q. likes
X ; Y X 6 john; blond hair
Y likes
john; Y green eyes
Y ; blond hair
Y green eyes
mary blond hair
mary blond hair
susan Notice that the constraint is applied only to John while retaining the general knowledge about the rest of the people. 3. Integration of geographical data In this section we deal with the construction of a mediation layer between the user and a system for the management of geographical data, thus providing a declarative style for analyzing them. Geographic Information Systems (GISs) are computer-based systems that are used to store and manipulate geographic information [4]. The most important feature of GIS is that spatial data are stored in a structured format ± referred to as a spatial database ± that uses dierent maps called themes or layers. The components of a GIS deal with ®ve main aspects [4]: Data Input, Data Management, Data Processing, Data Analysis, Data Output. Here we focus on the data analysis aspect. This is where data are combined and analyzed to produce meaningful results. The experience of the GIS users allows them to extract appropriate information from the available database and produce new information useful for research and management. The new information can be used to
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
7
construct models of the real world or to predict likely outcomes under certain conditions. Geographical information systems provide a set of functions (analysis functions [4]) to help the user in analyzing geographical data. A typical application of GIS analysis is programming the search for the location(s) most suited to a given purpose. As an example let us consider the search of the best location for setting up a downhill ski area. The criteria the planner will use are: average snowfall from 1st November to 1st April, proximity to roads, proximity to towns with hotels, how well the mountain can accommodate dierent types of ski run (beginner to expert), exposure of potential ski slope, and proximity to major population centers. The planner would give each criteria an importance score so that the GIS, using datasets of mountains, snow conditions, roads, etc. can measure the suitability of particular slopes for a new ski slope. The resulting maps from the analysis would identify, using the scoring scheme, the mountain locations which are best suited to meet the criteria. Some common analysis functions are (among others [25]) overlaying and buering. Overlay corresponds to the combination of two or more map layers to produce a new map layer. Many map layers can be overlaid in more complex procedures. Buffering is used when a problem involves distance, since it returns an area within a certain distance from a point or a line. In the downhill skiing example, overlay can be used to have a map with both hotels, and towns, and roads and buering is used to compute an area within a certain distance from a road or a hotel. Two main observations gave rise to our proposal. The ®rst one is a consideration about the diculty to perform analysis on current commercial geographic systems. Each system provides the user with a set of analysis function, but the syntax and the semantics of such functions are not intuitive for a user who is not a GIS expert. Furthermore, we think that an operation such as the analysis of a geographical systems will be usually performed by people who are not GIS experts. The second point is that the current GIS analysis approaches are not general and reusable. In fact analysis is typically based on complex procedural algorithms [4]. We claim that a declarative approach is a better solution for solving this kind of problems. Furthermore, by using a declarative approach we decouple the problem of structuring data in the GIS from the management of the user access to data. We can use the MedLan language to express: · analysis criteria (environmental restrictions, governmental laws, planner ``best place'' criteria, etc.), · complex queries w.r.t the criteria encoded in logic theories. As shown in Fig. 1 the system consists of three parts: the analysis rules, the interface to the GIS and the analysis functions provided by the GIS itself. For the sake of readability the analysis criteria in this example are very simple and expressed in natural language. The system encodes the following criteria that allow a company to build a hotel: the best place to build a hotel must be within 5 kilometers from a road. Some items encoded in the analysis criteria are mapped into GIS analysis functions. In the example we map the distance concept to a buering operation and the road concept to a function that selects the roads layer from the GIS. We express the analysis criteria by means of a collection of logic theories that form a database of rules. Each set of rules R1 , R2 ; . . ., Rn (corresponding to logic theories) obtains data by querying the GIS by means of analysis functions, and then
8
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
Fig. 1. The schema of the GIS analysis system.
exploits the deductive capabilities of the language to reason about data. Logical rules allow us to express criteria such as: ``the area is good if it is near a hotel or a town and if it has a slope which is no more than 20 degrees and no less then 5 degrees''. The deductive database inference engine allows one to compute the solutions by inferring them from a given set of deductive rules. Notice that we do not aim at rede®ning the GIS functions since our language is not suited for handling spatial information. We intend to use the functions provided by the GIS connecting them to a logical language and thus avoiding the direct use of such functions by the user. In summary, the integration amounts to querying the GIS, interpreting the answer as a set of potential solutions, and, ®nally, using the deductive power of the rules to analyze the set in order to choose the intended ®nal answers. This middle layer provides the user with an easy and intuitive way of reasoning about GIS data. Furthermore, representing knowledge in separate theories allows us to use knowledge from dierent sources. For example, one can use environmental restrictions from the local municipality, the general laws from the government, and the best place criteria from the planner. Information can be stored at dierent sites and used in a modular way to ®nd out a place which satis®es all criteria. This modular approach also allows the user to reuse the knowledge encoded in the theories for future analysis. The program composition operators allows us to express complex queries on a combination of analysis criteria. Furthermore, this approach allows a large community of users, and not only few experts, to access complex and expensive GI Systems. 4. An application The application problem we address consists in the analysis of a geographic area and can be formulated as follows:
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
9
Identify all the zones in a given rectangular area that are a favorable habitat for the wild boar. These animals live in woods populated by two kinds of trees: · Quercus pubescens, · Quercus cerris. Both these kinds of vegetation exist in the considered area. Moreover, we must take into account some noise sources such as roads and towns. The values, chosen under the supervision of zoologists, represent the distances between the ideal area where boars can live and the noise sources: · 50 m for local roads; · 100 m for main roads; · 200 m for highway; · 500 m for towns. Furthermore, since during the summer the trac on the roads increases, these values will change depending on the season. The summer values are: · 100 m for local roads; · 150 m for main roads; · 250 m for highway. The required distance from towns stays unchanged. We will query the system to determine the ideal habitat for the wild boars as follows: ? ÿ ideal zone
X; defaultin wild boar habitat: ? ÿ ideal zone
X; summertimein wild boar habitat: The ®rst query computes the area X where the boars can live with respect to the general rules restricted to the normal period of the year. The second one tries to compute the ideal area for the summer period. The code of the application is partitioned in a number of logic theories. Notice that in the following we are going to use four theories (map_ai_fz, covers, cov_attrb, val_att), not shown here, that implement, once and for all applications, the interface to the GIS in use. The interfacing theories take care of sending the proper requests to the geographic information system, and of maintaining references to the (partial) results, that are kept in a temporary storage managed by the geographic information system itself. The following is the top level theory, that maps the external query into a query using the appropriate program expression. D1, D2, D3, D4 will be bound by the appropriate theory to the distances from the noise sources. Notice the use of the constraint operator. theory
wild boar habitat ideal zone
X; default : compute zone
X; D1; D2; D3; D4in general rules=normal period: ideal zone
X; summertime : compute zone
X; D1; D2; D3; D4in general rules=summer period: The following theory contains the general rule that deduces which is the ideal habitat for the wild boars. We state that a zone Zi is an ideal zone if there exist a zone Zd with suitable noise level, a zone V with suitable vegetation, and Zi is obtained by
10
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
combining the two covers. Together the two functions, given two covers, return a sort of intersection where the resulting cover includes the ideal vegetation and the areas that are not in noise zones. theory
general rules: compute zone
Zi; D1; D2; D3; D4 : noise zone
Zd; D1; D2; D3; D4in noise sources; suitable vegetation
V; Classin vegetation; overlay identity
V; Zd; Zt; Class; #; joinin map ai fz; extract
Zt; Zi; Class; area; >; 0; and; inside; ; 1 in map ai fz: The following theory contains the parameters of the distances from noise sources in normal periods of the year. theory
normal period: ideal zone
; 50; 100; 200; 500: The following theory contains the parameters of the distances from noise sources in high trac periods of the year. theory
summer period: ideal zone
; 100; 150; 250; 500: The ®rst rule of the following theory states that the noise zones are the union of the noise areas due to roads and to towns. The overlay_union function implements the union of the two covers and the resulting cover includes the elements of both the original ones. theory
noise sources: noise zone
Zd; D1; D2; D3; D4 : road noise
S; Class s; D1; D2; D3; town noise
A; Class a; D4; overlay union
A; Class a; S; Class s; Zd; #; joinin map ai fz: The following rule states that the noise due to roads depends on the kind of such roads. road noise
S; OutClass; D1; D2; D3 : kind of road
Cov; InClass; T; V1; V2; V3; road noise type
Cov; InClass; S com; OutClass; T; V1; D1; road noise type
Cov; InClass; S pro; OutClass; T; V2; D2; road noise type
Cov; InClass; S sta; OutClass; T; V3; D3; overlay union
S pro; OutClass; S sta; OutClass; S1t; #; join in map ai fz; overlay union
S1t; OutClass; S com; OutClass; S; #; join in map ai fz:
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
11
Here we list the dierent kinds of roads implemented in the GIS. Here the cov function extracts the class of a given cover and the attrb function extracts the attributes of a cover. kind of road
Cov; Class; T; V1; V2; V3 : local road
Cov; T; V1in val att; main road
Cov; T; V2in val att; highway
Cov; T; V3in val att; cov
Cov; Classin covers; attrb
Cov; Tin cov attrb: The buer_distance function implements a distance operation, that is, given a cover and an element, it returns a new cover with the area at a certain ®xed distance from a given element (point, line or polygon). road noise type
Incov; InClass; Outcov; poly; T; V; D : extract
Incov; Ct; InClass; T; ; Vin map ai fz; buffer distance
Ct; Outcov; #; #; D; #; InClass; round; full in map ai fz: town noise
A; Class; D : cov
abita; Classin covers; buffer distance
abita; A; #; #; D; #; Class; round; full in map ai fz: In the following theory we state that the suitable vegetation include Quercus pubescens and Quercus cerris. theory
vegetation: vegetation
V; Class : quercus pubescens
C; T1; Val1in val att; quercus cerris
C; T2; Val2in val att; cov
C; Classin covers; extract
C; V; Class; T1; ; Val1; or; T2; ; Val2; and; area; >; 0 in map ai fz: The code shown above is the executable code for our implementation of the system. Fig. 2 shows the area in the province of Pisa that satis®es the criteria in summertime. The solution is represented in dark grey. 5. Conclusions In this paper we have focussed on the construction of a declarative mediator level between the user and heterogeneous sources of structured and semi-structured data, and its application to the integration of geographical databases and deductive databases.
12
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
Fig. 2. The habitat for the wild boar during the summer.
The aim of MedLan is much in the spirit of others approaches developed in the last few years. In particular, we would like to mention here HERMES [27], TSIMMIS [14], SchemaLog [18], and IDL [17]. It is worth noting that the common denominator of the languages mentioned above is that they are all de®ned by starting from a logical language and by enriching it with meta or higher order features. This makes the languages suitable for dealing with inter-operability. We have followed this common approach by de®ning new mechanisms on top of logic programming and extending, in a conservative way, its formal semantics. For the implementation of the system we have chosen two widespread commercial systems: ARC-INFO [15] as the system for the management of geographical data, supported by ESRI, and Sicstus Prolog [24], supported by SICS, as the logic programming system on top of which MedLan is implemented as an extension. The integration between ARC-INFO and SICSTUS has been implemented by using sockets to realize a cooperation among the two systems working as separate processes. The future developments of our research are in many directions. One direction is to complete the work concerning the ecient implementations of the language. We have de®ned a semi-naive computation strategy for program expressions [23], and we are studying how to exploit ``caching'' techniques [1]. Although MedLan falls into the read-only mediation approach [16], that is, we do not deal with updating problems, we believe that future work must deal with it and with security problems [8,13,5].
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
13
Other interesting extensions of MedLan we are considering are the capabilities to handle ``time'', that seem to be quite necessary to tackle applications that need spatial data framed in time periods, as, for example, cadastral data. Initial results can be found in Ref. [21].
References [1] S. Adali, K.S. Candan, Y. Papakostantinou, V.S. Subrahamanian, Query caching and optimization in distributed mediator systems, in: Proceedings of Sigmod 1996 conference on Management of Data, ACM, New York, 1996, pp. 137±148. [2] D. Aquilino, P. Asirelli, C. Renso, F. Turini, An operator of composing deductive databases with theories of constraints, in: V.W. Marek, A. Nerode, M. Truszczynski (Eds.), Logic Programming and Nonmonotonic Reasoning, Lecture Notes in Arti®cial Intelligence, vol. 928, Springer, Berlin, 1995, pp. 57±70. [3] D. Aquilino, P. Asirelli, C. Renso, F. Turini, Applying restriction constraint to deductive databases, Anal. Math. Arti®cial Intelligence 19 (1997) 3±25. [4] S. Arono, Geographic Information Systems: A Management Perspective, WDL Publications, 1989. [5] P. Asirelli, View constraints: an interpretation of integrity constraints for security, in: IFIP TC-11 WG 11.5 First Working Conference on Integrity and Internal Control in Information Systems, Chapman & Hall, London, 1997. [6] P. Asirelli, C. Renso, F. Turini, Language extensions for semantic integration of deductive database, in: International Workshop on Logic In Databases, Lecture Notes in Computer Science, vol. 1154, Springer, Berlin, 1996. [7] P. Asirelli, M. DeSantis, M. Martelli, Integrity constraints in logic databases, J. Logic Programming 3 (1985) 221±232. [8] P. Bonatti, S. Kraus, V.S. Subrahmanian, Foundations of secure deductive databases, IEEE Trans. Knowledge Data Engrg. 7 (3) (1995) 406±422. [9] A. Brogi, Program construction in computational logic, Ph.D. Thesis, University of Pisa, Pisa, 1993. [10] A. Brogi, A. Chiarelli, V. Mazzotta, P. Mancarella, D. Pedreschi, C. Renso, F. Turini, Implementations of program composition operations, in: M. Hermenegildo, J. Penjam (Eds.), Proceeding of the 6th International Symposium on Programming Language Implementation and Logic Programming, Lecture Notes in Computer Science, vol. 844, Springer, Berlin, 1994. [11] A. Brogi, P. Mancarella, D. Pedreschi, F. Turini, Modular logic programming, ACM Trans. Programming Languages and Systems 16 (4) (1994) 1361±1398. [12] A. Brogi, F. Turini, Fully abstract compositional semantics for an algebra of logic programs, Theoretical Computer Science 149 (2) (1995) 201±229. [13] K.S. Candan, S. Jajodia, V.S. Subrahmanian, Secure mediated databases, in: International Conference on Data Engineering, 1996, pp. 28±37. [14] S. Chawathe, H. Garcia-Molina, J. Hammer, K. Ireland, Y. Papakonstantinou, J. Ullman, J. Widom, The TSIMMIS project: Integration of heterogeneous information sources, in: Proceedings of IPSJ Conference, Tokyo, Japan, 1994. [15] Environmental Systems Research Institute Inc., Arc-Info User's Guide, 1994. [16] R. Hull, Managing semantic heterogeneity in databases: A theoretical perpective; can be found in http://www-db.research.bell-labs.com/user/hull/pods97-tutorial.html, 1997. [17] R. Krishnamurthy, W. Litwin, W. Kent, Language features for interoperability of databases with schematic discrepancies, in: ACM SIGMOD Conference, vol. 20, ACM, New York, 1991. [18] L. Lakshmanan, F. Sadri, I. Subramanian, Logic and algebraic languages for interoperability in multidatabase systems, Technical Report TR-DB-95-01, Department of Computer Science, Concordia University, 1995. [19] J.J. Lu, G. Moerkotte, J. Schue, V.S. Subrahmanian, Ecient maintenance of materialized mediated views, in: SIGMOD Conference, 1995, pp. 340±351. [20] P. Mancarella, D. Pedreschi, An algebra of logic programs, in: R.A. Kowalski, K.A. Bowen (Eds), Proceedings Fifth International Conference on Logic Programming, MIT Press, Cambridge, MA, 1988, pp. 1006±1023.
14
D. Aquilino et al. / J. Logic Programming 43 (2000) 3±14
[21] P. Mancarella, A. Raaet a, F. Turini, Time in a multi-theory logical framework, in: R.Morris, L. Khatib (Eds), Proceedings of the Fourth International Workshop on Temporal Representation and Reasoning (TIME'97), IEEE Computer Soc. Press, Silver Spring, MD, 1997, pp. 62±68. [22] Y. Papakostantinou, H. Garcia-Molina, J. Ullman, Medmaker: A mediation system based on declarative speci®cations, in: W. Su Stanley (Ed.), Twelfth International Conference on Data Engineering, New Orleans, LA, 1996. [23] C. Renso, Mechanisms or semantic integration of deductive databases, Ph.D. Thesis, University of Pisa, Pisa, 1998. [24] SICS, Sicstus Prolog User's Guide, 1995. [25] J. Star, J. Estes, Geographic Information Systems, Prentice-Hall, Englewood Clis, NJ, 1990. [26] V.S. Subrahmanian, Amalgamating knowledge bases, Trans. Database System 19 (2) (1994) 291±331. [27] V.S. Subrahmanian, S.Adali, A.Brink, J.J. Lu, A. Rajput, J. Rogers, R. Ross, C. Ward, HERMES: A heterogeneous reasoning and mediator system; submitted for publication; can be found in http:// www.cs.umd.edu/projects/hermes/overview/paper/index.html.