219 Pages
English

The language Xchange [Elektronische Ressource] : a declarative approach to reactivity on the web / von Paula-Lavinia Pătrânjan

-

Gain access to the library to view online
Learn more

Description

The Language XChange: A Declarative Approachto Reactivity on the WebDissertationzur Erlangung des akademischen Grades desDoktors der Naturwissenschaftenan der Fakultat¤ fur¤ Mathematik, Informatik und Statistikder Ludwig-Maximilians-Universitat¤ Munchen¤vonPaula-Lavinia Patr anjan?28. Juli 2005Erstgutachter: Prof. Dr. Franc ‚ois Bry (Universitat¤ Munchen)¤Zweitgutachter: Prof. Dr. Sara Comai (Politecnico di Milano)Tag der mundlichen¤ Prufung:¤ 23. September 2005AbstractThe research topic investigated by this thesis is reactivity on the Web. Reactivity on theWeb is an emerging research issue covering: updating data on the Web, exchanging informa-tion about events (such as executed updates) between Web sites, and reacting to combinationsof such events. Following a declarative approach to reactivity on the Web, a novel reactive lan-guage called XChange is proposed. Novelties of the language are represented by the proposeddata metaphor intended to ease the language understanding and the supported reactive featurestailored to the characteristics of the Web. Realising this pressuposed re ning, extending, andadapting to a new medium some of the concepts on which active database systems are builtupon.

Subjects

Informations

Published by
Published 01 January 2005
Reads 36
Language English
Document size 1 MB

The Language XChange: A Declarative Approach
to Reactivity on the Web
Dissertation
zur Erlangung des akademischen Grades des
Doktors der Naturwissenschaften
an der Fakultat¤ fur¤ Mathematik, Informatik und Statistik
der Ludwig-Maximilians-Universitat¤ Munchen¤
von
Paula-Lavinia Patr anjan?
28. Juli 2005Erstgutachter: Prof. Dr. Franc ‚ois Bry (Universitat¤ Munchen)¤
Zweitgutachter: Prof. Dr. Sara Comai (Politecnico di Milano)
Tag der mundlichen¤ Prufung:¤ 23. September 2005Abstract
The research topic investigated by this thesis is reactivity on the Web. Reactivity on the
Web is an emerging research issue covering: updating data on the Web, exchanging informa-
tion about events (such as executed updates) between Web sites, and reacting to combinations
of such events. Following a declarative approach to reactivity on the Web, a novel reactive lan-
guage called XChange is proposed. Novelties of the language are represented by the proposed
data metaphor intended to ease the language understanding and the supported reactive features
tailored to the characteristics of the Web. Realising this pressuposed re ning, extending, and
adapting to a new medium some of the concepts on which active database systems are built
upon.
Reactivity is speci ed in XChange by means of reactive rules (or event-condition-action
rules) having the following components: the event part is a query against events that occurred
on the Web, the condition part is a query against Web resources (expressed in the Web query
language Xcerpt), and the action part is a transaction speci cation (specifying updates to be
executed and events to be raised in an all-or-nothing manner). Novel in XChange is its ability
to detect composite events on the Web, i.e. possibly time related combinations of events that
have occurred at (same or different) Web sites.
XChange introduces a novel view over the Web data by stressing a clear separation between
persistent data (data of Web resources, such as XML or HTML documents) and volatile data
(event data communicated on the Web between XChange programs). Based on the differences
between these kinds of data, the data metaphor is that of written text vs. speech. XChange’s
language design enforces this clear separation and entails new characteristics of event process-
ing on the Web.
After motivating the need for a solution to reactivity on the Web, this thesis introduces the
design principles and syntax of the language XChange accompanied by use cases for demon-
strating the practical applicability of its constructs. Important contributions of the thesis are
the speci cation of the language semantics and the description of an algortihm for evaluating
XChange programs.
Paula-Lavinia Patr anjan? IIIZusammenfassung
Diese Dissertation untersucht das Forschungsthema Reaktivitat¤ im Web, ein neu entstehen-
¤des Forschungsgebiet, das Anderungen von Daten im Web, Austausch von Ereignisdaten zwis-
chen Websites, sowie Reaktion auf (atomare und zusammengesetzte) Ereignissen einbezieht.
Einem deklarativen Ansatz folgend, schlagt¤ diese Dissertation die neuartige reaktive Sprache
XChange vor. Neuerungen der Sprache sind eine neue Datenmetapher, die das Verstandnis¤ von
XChange erleichtern soll, und die Features der Sprache, die auf das Web zugeschnitten sind.
Konzepte der aktiven Datenbanken wurden verfeinert, erweitert und angepasst um dem neuen
Medium (das Web) gerecht zu werden.
Reaktivitat¤ ist in XChange durch reaktive Regeln, so genannte Ereignis-Bedingung-Aktion
Regeln, spezi ziert: Der Ereignisteil ist eine Anfrage bzgl. Ereignissen die im Web auftreten.
Eine Neuerung in XChange ist die Fahigk¤ eit zusammengesetzte Ereignisse (eventuell zeitbezo-
gene Kombinationen von Ereignissen, die an den gleichen oder verschiedenen Websites aufge-
treten sind) im Web zu erkennen. Der Bedingungsteil ist eine Anfrage an Web-Dokumente (die
in der Web-Anfragesprache Xcerpt spezi ziert ist). Der Aktionsteil spezi ziert Transaktionen
¤(Anderungen die durchgefurt¤ werden sollen und Ereignisse die gesendet werden sollen).
Durch die hervorgehobene Trennung zwischen persistenten Daten (Web-Dokumente wie
zum Beispiel XML oder HTML Dokumente) und uc¤ htigen Daten (Ereignisdaten die im Web
zwischen XChange Programmen ausgetauscht werden), fuhrt¤ XChange eine neuartige Sicht
auf die Daten im Web ein. Eine Metapher fur¤ die strenge Unterscheidung zwischen persisten-
ten und uchtigen¤ Daten ndet sich in der naturlichen¤ Sprache wieder: die Unterscheidung
zwischen geschriebenem und gesprochenem Wort. Das Sprachdesign erzwingt diese klare
Trennung und verursacht neue Charakteristika der Ereignisverarbeitung im Web.
Diese Dissertation fuhrt¤ nach der Begrundung¤ der Erfordernisse fur¤ Reaktivitat¤ im Web
die Designprinzipien und die Syntax der Sprache XChange ein. Es werden Anwendungsfalle,¤
die die Benutzung und Relevanz der Sprachkonstrukte zeigen, vorgestellt. Wichtige Beitrage¤
dieser Dissertation sind die Spezi kation der Semantik von XChange und die Beschreibung
der zur Auswertung von XChange Programmen notigen¤ Algorithmen.
IV Paula-Lavinia Patr anjan?Acknowledgements
I have been fortunate enough to have had the support of many people during the time spent at the Institute
for Informatics, University of Munich. Many of them have contributed directly to the reactive language
XChange presented in this thesis, and everyone has helped me to get where I am today.
It is a pleasure to express my gratitude to my supervisor, Prof. Dr. Franc ‚ois Bry (Universitat¤ Munchen),¤
who has guided my path towards this thesis; owing to his advice and warnings I haven’t followed dead-end
paths and managed to complete this thesis in less than three years. I also thank him for the countless hours
we have spent discussing research issues related to the work presented in this thesis.
I would like to thank Prof. Dr. Sara Comai (Politecnico di Milano), the second reviewer of this thesis,
for her time and dedication to reading my thesis, her comments and suggestions for improvements. I am
also grateful for her collaboration in organising the Workshop ’Reactivity on the Web’, to be held at the
International Conference on Extending Database Technology (EDBT 2006) in Munich.
I am obliged to Prof. Dr. Helmut Schwichtenberg (Universitat¤ Munchen)¤ and the other professors of the
PhD programme Logic in Computer Science (Graduiertenkolleg Logik in der Informatik) I am part of
for giving me the possibility to investigate interesting research issues and to work in the PhD programme’s
team.
During the last (almost) three years I have enjoyed many interesting discussions and the excellent work-
ing environment at the Research and Teaching Unit ’Programming and Modelling Languages’, Institute for
Informatics, University of Munich. I would like to thank our technical and administrative staff for provid-
ing me with help during this thesis. I would also like to stress the contributions made by some of the fellow
researchers and students.
Dr. Norbert Eisinger, senior researcher in our group, has supported me during the time spent in Munich.
I thank him for many helpful discussions.
Dr. Sebastian Schaffert, now a researcher at Salzburg Research, Austria, has developed the (Semantic)
Web query language Xcerpt that is integrated into XChange. Without his work and collaboration, the
language XChange wouldn’t be that mature today. I also thank him for his help in typesetting this thesis.
Michael Eckert, now a fellow researcher, has written his master’s thesis under the supervision of
Prof. Dr. Franc ‚ois Bry and myself. I thank him for fruitful discussions that helped improving this the-
sis and his collaboration on re ning and implementing the XChange event query language. I also thank
him for the careful reading of the most important chapters of this thesis and for its constructive criticism.
The time spent on writing this thesis would not have been so valuable without knowing Sacha Berger,
who has worked with me on the visual counterpart of XChange. I thank him for his help and practical
advice.
I have been fortunate to have Tim Furche as fellow researcher. With his broad spectrum and many inter-
esting research ideas, he has provided me with many helpful discussions. I thank him for his collaboration
on writing a scienti c article on XChange.
Inna Romanenko, a graduate student working on her master’s thesis under the supervision of Prof. Dr.
Franc ‚ois Bry and myself, investigates the use of XChange rules for business process modelling. I thank
her for the good work on the EU-Rent case study.
Oliver Friedmann, student assistant in our group, has worked with me on the XChange prototype
implementation. I thank him for integrating Xcerpt and XChange implementations and for his patience to
restructure and comment the whole source code.
I would also like to acknowledge the support of Sebastian Kraus and Bernhard Lorenz. Both of them
have shared an of ce with me, and I thank them for tolerating my stressed out phases.
Being member of the Network of Excellence Reasoning on the Web with Rules and Semantics (REW-
ERSE) I have had the chance to work with researchers from different universities. I thank Prof. Dr. Jose·
Julio· Alferes (Universidade Nova de Lisboa), Prof. Dr. James Bailey (University of Melbourne), and
Prof. Dr. Wolfgang May (Universitat¤ Gottingen)¤ for their collaboration on project deliverables, scienti c
articles, and on organising the Workshop ’Reactivity on the Web’.
Paula-Lavinia Patr anjan? VDuring my travels for attending conferences and workshops I have met a number of great people who
have been cordially and helpful. I would like to especially thank Andreas Doms (Technische Universitat¤
Dresden), Michael Kinateder (Universitat¤ Stuttgart), Prof. Dr. Christoph Koch (Universitat¤ des Saarlan-
des), Steffen Mazanek (Universitat¤ der Bundeswehr Munchen),¤ Thorsten Staake (Universitat¤ St.Gallen),
Ioan Toma (Digital Enterprise Research Institute Innsbruck), and Dr. Laurent ‚iu Vasiliu (Digital Enterprise
Research Institute Galway). They have given me advice and encouraged me to go for what I want.
My parents, Giorgeta and Mircea Patr anjan? , deserve special thanks as they have supported and en-
couraged me during the last 27 years. They have always shown me the right way in life, even if this has
implied to leave Romania for doing my PhD. I also thank my brother, Cosmin, and all my friends for being
always there when I needed someone to talk to.
Last but not least, I would like to thank Hans J. Kroner for sustaining me patiently during the last two
and a half years and for tolerating my workaholic lifestyle during the last six months. He has given me the
energy I needed for completing this thesis; I couldn’t have made it without him.
I have been very lucky to be founded for the last three years by the German Foundation for Research
(Deutsche Forschungsgemeinschaft, DFG, http://www.dfg.de). The received grant has given me the
possibility to investigate interesting research issues within the PhD programme Logic in Computer Sci-
ence (Graduiertenkolleg Logik in der Informatik,http://www.math.lmu.de/ gkli/).
Also, as member of the 6th Framework Programme project Reasoning on the Web with Rules and
Semantics (REWERSE, http://rewerse.net), project number 506779, I have received additional -
nancial support from the European Commission and the Swiss Federal Of ce for Education and Science.
Paula-Lavinia Patr anjan?
Munich, 28th July 2005
VI Paula-Lavinia Patr anjan?CONTENTS
I Introduction 1
1 Motivation and Outline 3
1.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Motivating Application Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Travel Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Communication Strategies: Push and Pull . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Volatile vs. Persistent Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.4 Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.5 Raising Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.6 Updates and Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.7 Reactive Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Preliminaries 13
2.1 World Wide Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Data on the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Extensible Markup Language (XML) . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 XML Ancestors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.3 XML Friends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Communicating Data on the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.1 Peer-to-Peer Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.2 Communication Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.3 XML Exchange Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4 Querying Web Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.1 Web Query Languages: An Overview . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.2 The Web Query Language Xcerpt . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Related Work 41
3.1 Active Database Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.1 Rule Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1.2 Semantics of Rule Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2 Update Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.1 Update Languages for the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.2 Special Purpose Tools for Ontology Evolution . . . . . . . . . . . . . . . . . . . . 47
3.3 Reactive Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.1 Reactive Languages for the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.2ve for the Semantic Web . . . . . . . . . . . . . . . . . . . . . . 53
VIICONTENTS
II The Language XChange 55
4 Paradigms. Concepts. Syntax 57
4.1 Paradigms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.1 Event vs. Event Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.2 Volatile vs. Persistent Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.3 Rule-Based Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.4 Pattern-Based Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1.5 Transactional Reactivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1.6 Communication Paradigms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1.7 Composite Events De ned through Event Queries . . . . . . . . . . . . . . . . . . 60
4.1.8 Processing of Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.1.9 Relationship Between Reactive and Query Languages . . . . . . . . . . . . . . . 61
4.1.10 Language Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.1 Atomic Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.2 Composite Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.3 Events’ Occurrence Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3 Event Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.1 Event Messages’ Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.2 Implicit Events’ Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.4 Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4.1 Essential Traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4.2 Atomic Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4.3 Composite Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4.4 Legal Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.4.5 Answers to Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.5 Web Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.6 Update Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.6.1 Update Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.6.2 Insertion Speci cation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.6.3 Deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.6.4 Replacement Speci cation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.6.5 Special Case ? Updating the Root . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7 Complex Updates as Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.7.1 Elementary Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.7.2 Complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.7.3 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.8 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.8.1 Event-Raising Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.8.2 Transaction Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.8.3 Deductive Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.8.4 Range Restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5 Semantics 125
5.1 Declarative Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.1.1 of Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.1.2 Semantics of Web Queries: Underlying Ideas . . . . . . . . . . . . . . . . . . . . 136
5.1.3 of Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.2 Operational Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.2.1 Evaluation of Event Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.2.2 Ev of Web Queries: Basic Ideas . . . . . . . . . . . . . . . . . . . . . . . 146
5.2.3 Execution of Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
VIII Paula-Lavinia Patr anjan?CONTENTS
6 Use Cases 153
6.1 Travel Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.1.1 Initial Planning Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.1.2 Adapting to Changes Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.2 Flavour of Further Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.2.1 E-Book Store ? A Simple Semantic Web Scenario . . . . . . . . . . . . . . . . . 164
6.2.2 EU-Rent ? Business Rules for Reactivity on the Web . . . . . . . . . . . . . . . . 166
III Conclusion 169
7 171
7.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
7.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
7.2.1 Transaction Management on the Web . . . . . . . . . . . . . . . . . . . . . . . . 173
7.2.2 Generation of XChange Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
7.2.3 Ef ciency Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
7.2.4 Type System for Semistructured Data . . . . . . . . . . . . . . . . . . . . . . . . 174
7.2.5 Visual Rendering of XChange Programs . . . . . . . . . . . . . . . . . . . . . . . 174
7.2.6 Authentication, Authorisation, and Accounting . . . . . . . . . . . . . . . . . . . 176
7.2.7 Integration with Location and Temporal Reasoning Languages . . . . . . . . . . . 176
7.3 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
IV Appendix 177
A A Prototypical Runtime System 179
A.1 Overview. Source Code Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
A.2 XChange Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
A.3 Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
A.4 XChange Event Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
A.5 Condition Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
A.6 XChange Action Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
A.7 Building and Running XChange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
B Updates through Construction: Rewriting Rules 189
List of Examples 193
Index 196
Bibliography 198
About the Author 208
Paula-Lavinia Patr anjan? IXCONTENTS
X Paula-Lavinia Patr anjan?