Academia.eduAcademia.edu

The multi-agent system architecture in SEWASIE

JCS&T Vol. 5 No. 4 December 2005 The multi-agent system architecture in SEWASIE Pablo R. Fillottrani Faculty of Computer Science Free University of Bozen/Bolzano Piazza Domenicani 3, Bozen/Bolzano 39100, Italy and Departamento de Ciencias e Ingenierı́a de la Computación Universidad Nacional del Sur Av. Alem 1253, Bahı́a Blanca 8000, Argentina ABSTRACT We describe the design, implementation and deployment of the multi-level agent-based system architecture developed for the SEWASIE project. The aim of the system is to help the user in querying heterogeneous data sources which are integrated by means of ontologies. The agent architecture is based on a two level data integration scheme supported by mediators and brokers, connected by a peer to peer mechanism. Implementation is done on top of the JADE system, a modular and scalable platform that satisfies FIPA standards. ponents and their functionality. In section 2 we introduce the architecture of the system, and in section 3 we summarize the process of query answering in terms of agent behaviors. In section 4 we introduce some characteristics of current system deployment, and in section 5 we compare SEWASIE with some related systems. 2. SEWASIE ARCHITECTURE We can think to the SEWASIE architecture [1] as composed by a logical topology and a semantic network. The logical topology is realized through the adoption of an agent framework. The semantic network is realized by agents offering services and interacting in semantically rich manners. It is shown in figure 1. Brokering agents (BAs) are the peers responsible for maintaining a view of the knowledge handled by the network. This view is maintained in ontology mappings, that are composed by the information on the specific content of the SEWASIE Information Nodes (SINodes) which are agents under the direct control of the BA, and also by the information on the content of other BAs. Thus, BAs must provide means to publish the locally held information within the network. There are different roles for BA which depend on the business model of the company which deploys the BA. A company may establish a BA to manage access to its sources which it makes available via SEWASIE. A company specialized on information brokering may establish a BA that combines ontologies provided by several other BA. Query agents (QAs) are the carriers of the user query from the user interface to the SINodes, and have the task of solving a query by interacting with the BAs network. Once a BA is contacted, it informs the QA a) which SINodes under its control contain relevant information for the query, and b) which other BAs may be further contacted. Therefore, the QA translates the query according to the ontology mappings of the BA, and directly ask the SINodes for collection of partial results. Also, it decides whether to continue the search with the other BAs. Once this process is finished, all partial results are in- Keywords: multi-agent systems, data integration, ontologies 1. INTRODUCTION The SEWASIE (SEmantic Webs and AgentS in Integrated Economies) project (IST-2001-34825) is an European research project that aims at designing and implementing an advanced search engine enabling intelligent access to heterogeneous data sources on the web, in a rich semantic (ontological) framework. Thus, it provides the basis for precise and effective access to information, and efficient web based communications. The goal of the architecture is to support a flexible set of actors enabling data providers, intermediaries, and data seekers to meet and exchange both information and meta-information, the ultimate goal being the ability to support large scale communities and economies. The project started on May 2002, and took place for three years. SEWASIE is a collaboration between the Università degli Studi di Modena e Reggio Emilia, the Università degli Studi di Roma ”La Sapienza”, the Rheinisch Westfaelische Technische Hochschule Aachen, and the Free University of Bozen/Bolzano, with CNA SERVIZI Modena s.c.a.r.l, Thinking Networks AG, IBM Italia SPA, and Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein as industrial partners. In this paper we present the design and development of the system architecture, describing the agent technology that supports the main com- 225 JCS&T Vol. 5 No. 4 December 2005 tegrated into a final answer for the user. The life cycle of a QA is initiated by an invocation to its service for solving a query, and it is finalized when delivering the results. Therefore, a single QA is attached to only one query processing. In principle, it seems preferable that QAs reside in a single server node, sending remote messages to BA and SINodes on other server nodes, so mobility is not an issue for QA. Anyway, it might be possible for a query agent to decide that the SEWASIE Server node in which it is residing is overloaded, and therefore prefers to move to other Server node in order to improve query answering performance (load balance). These mobility is supported and/or implemented by the underlying agent platform. The SINodes are mediator-based systems[2], each including a global view of the overall information managed within. The managed information sources are heterogeneous collections of structured, semi-structured or unstructured data, e.g., relational databases, XML or HTML documents. SINodes are accessed by QAs in order to obtain data, and also by the managing BAs for building the ontology mappings. In order to create and maintain a global view of its information sources, SINodes require an ontology builder. This component performs in a semiautomatic way the enrichment process to create the SINode ontology. In turn, this SINode ontology is also integrated with other similar components into the BAs ontology mappings. The user interface is a group of modules which work together to offer an integrated, easy to the user interaction with the SEWASIE system. It includes a query tool that guides the user in composing queries. In doing so, it requires the ontology of a starting brokering agent which helps in the interface presentation and behavior. Each instance of the query tool includes a Query Tool Agent (QTA) that is responsible to carry out communications with other agents in the SEWASIE system. In general, QTAs are needed to obtain the initial ontology from a BA, and also to create QAs that will solve the queries generated by the user. Two extra elements of the user interface are the visualization and the communication tools. The visualization tool is responsible for monitoring information sources according to user interests which are defined in monitoring profiles. To perform this task, the visualization tool generates one Monitoring Agent (MA) for each topic of interest. Each MA contains a fixed internal ontology (so-called domain model) which is linked to higher level SEWASIE ontologies. Agents of this type regularly set up QAs to query the SEWASIE network, filter the results, and fill mon- Figure 1: The SEWASIE system agent architecture. itoring repositories with observed documents. The communication tool supports negotiation between the user and other parties. Any query including contact information sets the context to launch the communication tool. This tool create several types of Communication Agents (CAs) that help in finding and contacting potential business partner, asking for initial offers, and ranking them. The human negotiator can then decide and choose the best offer to begin negotiating, with support from the communication tool. In order to fulfill their tasks, some of these agents periodically create QAs to search for information in the SEWASIE network. CAs belong to one of the following four types: • Initiation agents: that maintain the prenegotiation phase for each search. • Filtering and Ranking agents: that evaluate offers and rank them according to given user preferences. • Resource Management agents: that check the capacity of the negotiator and notify him by over-commitment. • Negotiation agents: that conducts the negotiation when a well defined state is achieved, and the user releases the control. We presented in this section the different types of agents that conform the SEWASIE architecture. In next section we will describe in more detail how they interact in order to solve a query. 3. QUERY ANSWERING PROCESS We will start by describing our assumptions on the query language, followed by the query building process. The whole system is supported by formally defined reasoning services, as described 226 JCS&T Vol. 5 No. 4 December 2005 below. Our aim is to be as less restrictive as possible on the requirements for the ontology language. In this way, the same technology can be adopted for different frameworks, while the user is never exposed to the complexity (and peculiarities) of a particular ontology language. For a more detailed description the reader should refer to [3, 4]. user, who doesn’t need to know its details. The process of transforming a query expression in a conjunctive query is described in [7]. Initially the user is presented with a choice of different query scenarios which provide a meaningful starting point for the query construction. The interface guides the user in the construction of a query by means of a diagrammatic interface, which enables the generation of precise and unambiguous query expressions. The focus paradigm is central to the interface user experience: manipulation of the query is always restricted to a well defined, and visually delimited, subpart of the whole query (the focus). The compositional nature of the query language induces a natural navigation mechanism for moving the focus across the query expression (nodes of the corresponding tree). A constant feedback of the focus is provided on the interface by means of the kind of operations which are allowed. The system suggests only the operations which are “compatible” with the current query expression; in the sense that do not cause the query to be unsatisfiable. This is verified against the formal model (the ontology) describing the data sources. One of the main requirements for the interface is that it must be accessed by any HTML browser, even in presence of restrictive firewalls. This constraints its design. The interface is composed by three functional elements. The first one (top part) shows the tree structure of the query being composed, and the current focus. The second one is the query manipulation pane (bottom part) providing tools to specialize the query. Finally, a query result pane containing a table representing the result structure. The first two components are used to compose the query, while the third one is used to specify the data which should to be retrieved from the data sources. Reasoning services w.r.t. the ontology are used by the system to drive the query interface. In particular, they are used to discover the terms and properties (with their restrictions) which are proposed to the user to manipulate the query. In fact, the terms and the properties proposed by the system depend on the overall query expression, not only on the focus. This means that subparts of the query expression, taken in isolation, would generate different suggestions w.r.t. those in their actual context in the query. We do not impose general restrictions on the expressiveness of the ontology language; however, we require the availability of two decidable reasoning services: satisfiability of a conjunctive query, and containment test of two conjunctive queries, both w.r.t. the constraints. Because of space restrictions, the details of reasoning services are not included, and more information can Query Language In the SEWASIE context, an ontology is composed by a set of predicates (unary, binary), together with a set of constraints restricting the set of valid interpretations (i.e., databases) for the predicates. The kind of constraints which can be expressed defines the expressiveness of the ontology language. Note that these assumptions are general enough to take account of widely used modelling formalisms, like UML for example. The query tool is build around the concept of classes and their properties, so we consider conjunctive queries composed by unary (classes) and binary (attribute and associations) terms. Query expressions are compositional, and their logical structure is not flat but tree shaped; i.e., a node with an arbitrary number of branches connecting to other nodes. This structure corresponds to the natural linguistic concepts of noun phrases with one or more propositional phrases. The latter can contain nested noun phrases themselves. A query is composed by a list of terms coming from the ontology (classes); e.g., “Supplier” and “Multinational”. Branches are constituted by a property (attributes or associations) with its value restriction, which is a query expression itself; e.g., “selling on Italian market”, where “selling on” is an association, and “Italian market” is an ontology term. Query Building In the query tool, the body of a query can be considered as a graph in which variables (and constants) are nodes, and binary terms are edges. A query is connected (or acyclic) when for the corresponding graph the same property holds. Given the form of query expressions composed by the interface above introduced, we restrict ourselves to acyclic connect queries. This restriction is dictated by the requirement that non expert user must be comfortable with the language itself.1 Note that the query language restrictions do not affect the ontology language, where the terms are defined by a different (in our case more expressive) language. The complexity of the ontology language is left completely hidden to the 1 Our technique can deal with disjunction of conjunctive queries, even with a limited form of negation applied to single terms. See [5, 6] for the technical details. 227 JCS&T Vol. 5 No. 4 December 2005 1. Query expansion: the query posed in terms of the brokering agent ontology is expanded to take into account the explicit and implicit constraints in the brokering agent ontology. be found in [8]. Query Management Query management in the SEWASIE framework involves different tasks corresponding to the twolevel integration scheme between agents. These can be summarized as follows: 2. BA class materialization: the atoms in the expanded query are materialized by taking into account the mapping from the classes in the global schemas of the SINodes to the classes of the Brokering agent ontology. global level Given a query expressed in terms of an ontology provided by a brokering agent, 1. Single out the SINodes managed by the BA that are relevant for computing the answer to the query, and reformulate in terms of queries to be posed to the SINodes. 2. Individuate alternative BAs (different from the original one used for query formulation) that may have links to SINodes containing relevant information for computing the answer. The query is then reformulated in order to obtain single queries which should be forwarded to the appropriate BAs. 3. Reconstruct the answer to the QTA on the basis of the received partial answers. 3. Evaluation of the expanded query: when all the BA ontology classes that are relevant for the query are materialized, the expanded query is submitted to the Query Engine to obtain the answer of the original query. Contrary of the structure among BA and SINodes, there is no hierarchical relation among different BAs. In fact, every brokering agent acts (and cooperates) at the same level. To model the data integration problem underlying the interaction between BAs, one should come up with a formal framework which is of different nature with respect to the one adopted in the characterization of SINodes. Whereas in a SINode, data integration is based on the existence of the global virtual view, such a notion does not show up when trying to formalize the interconnection between brokering agents. The formal framework adopted within SEWASIE follows the Peer to Peer (P2P) paradigm [9, 10, 11]. Roughly speaking, each BA can be considered a peer, and the interconnection between BAs can be seen as mappings between peers. Note that the second step above is recursive, in the sense that answering a query posed to other BAs is done through the very same process we are describing. This means that the overall strategy for query management must deal with the problem of how to stop recursion. local level Given a query posed in terms of the virtual global view associated to an SINode, retrieve the answer to the query. This task is carried out by the query manager of the SINnode of interest, and is characterized as follows. The first goal of this task is to derive a query plan that is able to correctly access the data sources under the control of that SINode. The second goal of this task is to execute the query, thus computing the corresponding answer. 4. SYSTEM IMPLEMENTATION AND DEPLOYMENT So far we have presented the functional architecture of the system. We now want to shortly describe its deploying architecture. The SEWASIE system is intended to operate in networked environments where heterogeneity and distribution of information arise. Peers expose their ontologies on the network and software agents act as a glue among the different peers. Peers are recognized as being part of the SEWASIE system as long as they register their ontologies by a brokering agent. From a deployment view point, what is distributed is the multi-agent system. As the scope of the SEWASIE project is to focus on the application of software agents and not in providing a general toolkit for building multi-agent systems, the choice was to use existing tools and practices. The key features we were looking for were: Let us first consider the case in which there is a single BA in the system (or no other BAs are relevant for a given query). In this scenario the key components involved in the query answering process are the BA Ontology (used to compose the query) and the mappings between this ontology and the Global Virtual Views exported by the known SINodes. Query processing is based on two query reformulation steps. The first step reformulates the query in terms of the SINodes known by the Brokering Agent, and the second step reformulates each of the SINode query obtained in the first step in terms of the data sources known by the SINodes. The actual query processing phases are the following: • a high-level language in order to focus on application programming; 228 JCS&T Vol. 5 No. 4 December 2005 • portability in order to allow for multiple platforms to become part of the SEWASIE system in a transparent way; that when a behavior is scheduled for execution, its action method is called and runs until it returns. Therefore, it is the programmer who defines when an agent switches from the execution of one behavior to the execution of the next one. In order to implement QAs and BAs based on JADE behaviors, we must take into account that these behaviors need in general to be dynamically created and deleted. Therefore, we need a “deliberative” behavior that does the control reasoning, deciding when and how the creation of other behaviors is done. These other behaviors will exhibit a typically ”reactive” implementation: they are activated when messages are received (the only sensor information SEWASIE agents have about their environment), and do some processing actions. This control architecture for agents is similar to some proposed hybrid architectures for robots [14]. The deliberative behavior aims at adding and removing reactive behaviors in the agent, being activated at agent creation and it never completes. Our deployment architecture foresees therefore that each host activates a web server. The web server acts as a gate to the network environment. Messages and objects to and from an agent container belonging to the platform are HTTP requests going through the web server. This is made possible because Jade manages remote objects and remote calls using Java RMI. When an RMI server is activated, a registry to keep track of all (possibly remote) objects registered is initiated which listen to incoming requests on a given port number. An RMI client can call this service in order to remotely connect and use objects. The web server can make accessible the RMI server in two ways either through a CGI script or by means of a servlet activated in an application server. While the CGI script requires less infrastructural component, the servlet offers higher performance. This represents a tradeoff. • FIPA compliant in order to be aligned with the current standards in the agent technology; • support and maintenance in order to meet deployment needs. Currently, there exist plenty of alternative toolkits for development multi-agent systems, see [12] for a comparison. Our choice felt on the Java Agent DEvelopment (JADE) [13] developed by TILab. JADE is currently one of the most evolving toolkits and is an open source projects where both professionals and researchers take part. JADE is written in Java and exploits Java RMI for managing software distribution in the environment. A JADE multi-agent system (or platform) is a logical space that can be distributed over diverse physical hosts. Each host participating to the platform has its own Java Virtual Machine (JVM) running. Each JVM is an agent container, i.e., a runtime environment that allows agents to concurrently execute. In order to boot the platform, a main container has to be created. The main container hosts the services necessary to support agent life cycle, migration and communication. Technically, the main container activates the RMI registry that JADE uses to allow containers and agents to reside on multiple hosts. Containers eventually residing on remote hosts can be added to the platform at runtime. No matter where containers are located, the agent platform is seen as a uniform logical space, where all containers can be reached simply knowing their name. Recently, JADE introduced the support of security for multi-agent systems. Security for agents is seen as an extension of the Java security model and in particular of the JAAS interface. Besides the JADE security extension we have exploited tuneling techniques in order to address security issues related to network configurations. This has been necessary to deploy the system in firewalled environments. JADE agents are implemented as a set of “behaviors”. A behavior represents a task that an agent can carry out, and the platform provides a set of general behaviors already implemented. In order to make an agent execute the task implemented by a behavior, it is sufficient to add the behavior object to the agent’s behaviors list. Behaviors can be added anytime, when the agent starts, or within other behaviors. An agent can execute several behaviors concurrently. However, scheduling of concurrent behaviors is not preemptive in Jade, but cooperative. This means 5. RELATED WORK Several agent-based information retrieval systems are known. In order to compare to similar systems, we now emphasize SEWASIE main characteristics: • two-level data integration scheme: strongly tied local nodes are integrated into SINodes; BAs provide globally integrated ontologies by means of weaker mappings. • query management: query building assisted by a query tool, query rewriting in the two levels of data integration following local ontologies using sound and complete algorithms. • additional tools: negotiation and monitoring 229 JCS&T Vol. 5 No. 4 December 2005 and the heavy use of ontologies as a means of abstraction. With respect to the query tool, SEWASIE has presented the first well-founded intelligent user interface for query formulation support in the context of ontology-based query processing. Our work has been done in a rigorous way both at the level of interface design and at the level of ontology-based support with latest generation logic-based ontology languages such as description logics, DAML+OIL and OWL. However, there are open problems and refinements which have still to be considered in our future work. Another important aspect to be worked out is the understanding of the effective methodologies for query formulation in the framework of this tool, a task that needs a strong cooperation of the users in its validation. This is going in parallel with the interface user evaluation. The other crucial aspect is the efficiency and the scalability of the ontology reasoning for queries. We are currently experimenting the tool with various ontologies in order to identify possible bottlenecks. tools integrated in the same agent architecture. Altogether these points make the SEWASIE system unique among the agent-based information retrieval systems. Some systems are strong on data integration. CARROT II [15] is an agent-based architecture for distributed information retrieval and document collection management. It consists of an arbitrary number of agents providing search services over local document collections or information sources. They contain metadata describing their local document store which are sent to other agents that act as brokers. Like in SEWASIE, these metadata have an unstructured form, without a central control. But there are anyway several differences with the SEWASIE architecture. First, data integration is done in only one level. In this sense, CARROT II agents play the role of a brokering agent and an SINode at the same time. Second, there is no support for the user in creating the query. Metadata information is not reflected in the process of query building. Finally, the most important difference is that agents in this system only produce a routing of the query to relevant information sources, no query rewriting is done in this step. In SEWASIE the query is reformulated following brokering agent’s ontology before asking SINodes, which contain the information sources. Several other information retrieval systems are known with routing agents, like HARVEST [16], CORI [17] and InfoSleuth [18]. Other systems, like TSIMMIS [19], include some rewriting rules against predefined query patterns. There are several steps of query processing also in the MISSION project [20]. In these cases, data integration technology is not present, or in TSIMMIS limited to automatic generation of wrappers [21] and mediators [22] from web pages. In SEWASIE, the data integration techniques [23] adopted by SINodes apply not only to unstructured, or semi-structured data sources, but also to relational databases. ACKNOWLEDGEMENTS This work is supported in part by the 5th Framework IST programme of the European Community through project SEWASIE within the Semantic Web Action Line. The SEWASIE consortium comprises the Universities of ModenaReggio Emilia (Sonia Bergamaschi, the coordinator of the project), Aachen RWTH (M. Jarke), Roma La Sapienza (M. Lenzerini, T. Catarci), Bolzano (E. Franconi), as well as IBM Italia (G. Vetere), Thinking Networks AG (C. Engels) and CNA (A. Tavernari) as user organization. REFERENCES [1] Bergamaschi, S., Fillottrani, P., Gelati, G.: The SEWASIE multi-agent system. In: Proc. of the 3rd. Intl. Workshop on Agents and Peer-to-Peer Computing (AP2PC 2004). (2004) [2] Wiederhold, G.: Mediators in the architecture of future information systems. IEEE Computer 25 (1992) 38–49 6. CONCLUSIONS This paper presented the work done, within the perspective of the agent technology, in the SEWASIE project. We showed how the agent-based architecture has been tied up with an ontology based approach to provide the users a transparent access to heterogeneous data sources. The SEWASIE system provides an ease of access to the data without requiring an in depth knowledge of the sources. This is achieved by leveraging both the agent based collaboration between the different components of the system, [3] Lenzerini, M., Majkić, Z., Beneventano, D., Mandreoli, F.: Techniques for query reformulation, query merging, and information reconciliation part a. Technical report, SEWASIE consortium (2003) [4] Calvanese, D., De Giacomo, G., Lembo, D., Lenzerini, M., Rosati, R.: Query reformulation over ontology-based peers. In: Proc. of the 12th Italian Conf. on Database Systems (SEBD 2004). (2004) 230 JCS&T Vol. 5 No. 4 December 2005 [5] Calvanese, D., De Giacomo, G., Lenzerini, M.: On the decidability of query containment under constraints. In: Proc. of the 17th ACM SIGACT SIGMOD SIGART Symp. on Principles of Database Systems (PODS’98). (1998) 149–158 [6] Horrocks, I., Sattler, U., Tessaris, S., Tobies, S.: How to decide query containment under constraints using a description logic. In: Logic for Programming and Automated Reasoning (LPAR 2000). Volume 1955 of Lecture Notes in Computer Science., Springer (2000) 326–343 [7] Dongilli, P., Fillottrani, P.R., Franconi, E., Tessaris, S.: A multi-agent system for querying heterogeneous data sources with ontologies. In: Proc. of the 13th Italian Sym. on Advanced Database Systems (SEBD 2005). (2005) 75–86 [8] Dongilli, P., Franconi, E., Tessaris, S.: Semantics driven support for query formulation. In: Proceedings of the 2004 International Workshop on Description Logics (DL04). Volume 104 of CEUR Workshop Proceedings. (2004) [9] Bernstein, P., Giunchiglia, F., Kementsietsidis, A., Mylopoulos, J., Serafini, L., Zaihrayeu, I.: Data management for peer-topeer computing: A vision. Workshop on the Web and Databases, WebDB (2002) [10] Halevy, A., Ives, Z., Suciu, D., Tatarinov, I.: Schema mediation in peer data management systems. In: Proceedings of the 19th International Conference on Data Engineering (ICDE’03). (2003) [11] Franconi, E., Kuper, G., Lopatenko, A., Serafini, L.: A robust logical and computational characterisation of peer-topeer database systems. In: International VLDB Workshop On Databases, Information Systems and Peer-to-Peer Computing (DBISP2P’03). (2003) [12] Fillottrani, P.: SEWASIE architecture agentization, SEWASIE deliverable 1.6. SEWASIE Deliverable D1.6 (2003) [13] Bellifemine, F., Caire, G., Poggi, A., Rimassa, G.: JADE a white paper. jade.cselt.it (2003) [14] Murphy, R.: An Introduction to AI Robotics (Intelligent Robotics and Autonomous Agents). MIT Press (2000) [15] Klusch, M., Ossowski, S., Shehory, O., eds.: Integrating Distributed Information Sources with CARROT II. In Klusch, M., Ossowski, S., Shehory, O., eds.: Cooperative Information Agents VI, 6th International Workshop, [16] [17] [18] [19] [20] [21] [22] [23] 231 View publication stats CIA 2002, Madrid, Spain, September 1820, 2002, Proceedings. Volume 2446 of Lecture Notes in Computer Science., Springer (2002) Bowman, C.M., Danzig, P., Hardy, D.R., Manber, U., Schwartz, M.F.: The Harvest information discovery and access system. Computer Networks and ISDN Systems 28 (1995) 119–125 Callan, J.P., Lu, Z., Croft, W.B.: Searching distributed collections with inference networks. In Fox, E.A., Ingwersen, P., Fidel, R., eds.: SIGIR’95, Proceedings of the 18th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. Seattle, Washington, USA, July 9-13, 1995 (Special Issue of the SIGIR Forum), ACM Press (1995) 21–28 Woelk, D., Tomlinson, C.: Infosleuth: Networked exploitation of information using semantic agents. In: COMPCON Conference. (1995) Garcia-Molina, H., Papakonstantinou, Y., Quass, D., Rajaraman, A., Sagiv, Y., Ullman, J.D., Vassalos, V., Widom, J.: The TSIMMIS approach to mediation: Data models and languages. Journal of Intelligent Information Systems 8 (1997) 117–132 McClean, S.I., Karali, I., Scotney, B.W., Greer, K., Kapos, G.D., Hong, J., Bell, D.A., Hatzopoulos, M.: Agents for querying distributed statistical databases over the internet. International Journal on Artificial Intelligence Tools 11 (2002) 63–94 Hammer, J., McHugh, J., Garcia-Molina, H.: Semistructured data: The tsimmis experience. In: Proceedings of the First East-European Symposium on Advances in Databases and Information Systems (ADBIS’97), St.-Petersburg, September 2-5, 1997. Volume 1: Regular Papers, Nevsky Dialect (1997) 1–8 Papakonstantinou, Y., Garcia-Molina, H., Widom, J.: Object exchange across heterogeneous information sources. In Yu, P.S., Chen, A.L.P., eds.: Proceedings of the Eleventh International Conference on Data Engineering, March 6-10, 1995, Taipei, Taiwan, IEEE Computer Society (1995) 251– 260 Bergamaschi, S., Castano, S., Beneventano, D., Vincini, M.: Retrieving and integrating data from multiple sources: the MOMIS approach. Data and Knowledge Engineering 36 (2001) 215–249