Wrappers in Mediator-Based Systems

Chapter 21.3 Information Integration Presented By Annie Hii Toderici

Templates for Query Patterns  Wrapper Generators  Filters  Other Operations at the Wrapper

Extractors in Data Warehouse  Extractors (wrapper) consist of: ◦ Predefined queries that are executed at the source to produce data for the warehouse ◦ Suitable communication mechanisms  Pass specific queries to the source  Receive responses from the source  Pass information to the warehouse .

user query result Warehouse Combiner Extractor Extractor Source 1 Source 2 .

Wrappers in Mediator Systems Mediator systems require more complex wrappers than warehouse systems  Must be able to accept a variety of queries from the mediator and translate any of them to the terms of the source  .

query resul t Mediator query resul t query Wrapper query resul t Source 1 resul t Wrapper resul t Source 2 query .

Wrapper Wrapper connects a mediator to a source  Wrapper (aka “adapter”) translates incoming queries and outgoing answers  Wrappers are defined by templates  The wrapper generator creates tables of all possible templates  The driver and tables constitute the wrapper  .

Templates for Query Patterns  Design a wrapper ◦ Classify the possible queries that the mediator can ask into templates Templates are queries with parameters that represent constants (e. red)  Uses the notation T=>S  ◦ Template T is turned by the wrapper into the source query S .g..

color. color. autoTrans. model. …)  Mediator ◦ AutosMed(serialNo. navi. dealer) . autoTrans.Templates Suppose we want to build a wrapper for the source of Dealer 1  Dealer 1  ◦ Cars(serialNo. model.

model.Template: cars of a given color ($c) SELECT * FROM AutosMed WHERE color = „$c‟. =>  SELECT serialNo. color. „dealer1‟ FROM Cars WHERE color = „$c‟.  . autoTrans.

Templates  Other templates would be needed to deal with other queries ◦ Type of models: parameter $m ◦ Type of transmission: parameter $t ◦ Seat type: parameter $s N attributes. 2n possible templates  Number of templates could grow unreasonably large. it is possible to simplify  .

Wrapper Generators A collection of templates is given to the wrapper generator (WG)  WG creates a table that holds the various query patterns contained in the templates. and the source queries that are associated with each  .

Templates Queries from mediator Results Wrapper generato r Tabl e Driver Queries Sourc e Result .

Task of the driver Accept a query from the mediator  Search the table for a template that matches the query  The source query is sent to the source  The response is processed by the wrapper. and then returned to the mediator  .

Filters Not always realistic to write a template for every possible form of query  To have the wrapper filter the results of queries that it poses to the source  The wrapper has a template that returns a superset of what the query wants. then filter the returned tuples at the wrapper and pass only the desired tuples to the mediator  .

model. color. dealer) SELECT * FROM TempAutos WHERE model = „Civic‟.Example Filter: blue Civic SELECT * FROM AutosMed WHERE color = „$c‟. . autoTrans. Set $c = „blue‟ TempAutos(serialNo. autoTrans. model. color. => SELECT serialNo. „dealer1‟ FROM cars WHERE color = „$c‟.

Other Operations at the Wrapper  To transform data in other ways ◦ Columns may be projected out of the tuples before transmission to the mediator ◦ To take aggregations or joins at the wrapper and transmit the result to the mediator .

Mediator: find blue Civic and retrieve serial #. transmission type and dealers SELECT * FROM AutosMed WHERE color = „$c‟. dealer) SELECT serialNo. dealer FROM TempAutos WHERE model = „Civic‟. model. autoTrans. Set $c = „blue‟ TempAutos(serialNo. „dealer1‟ FROM cars WHERE color = „$c‟. model. color. . autoTrans. autoTrans. color. => SELECT serialNo.

dealer FROM AutosMed A1.model = A2.model A1.autoTrans = „no‟ AND A2.color = „red‟ AND A2.color = „red‟ AND A1.Examples   Mediator: find dealers s.t there are two red cars of the same model. .autoTrans = „yes‟.model AND A1. AutosMed A2 WHERE A1. one manual and one automatic Query from mediator to wrapper: SELECT A1.

.model = A2.Example (Continued)  RedAutos(serialNo. model. dealer)   SELECT * FROM AutosMed WHERE color = „red‟. autoTrans. A1. RedAutos A2 WHERE A1. SELECT DISTINCT A1.autoTrans = „yes‟. color.autoTrans = „no‟ AND A2.model.model AND A1.dealer FROM RedAutos A1.

Thank You!  The End! .