CAPÍTULO II MARCO TEÓRICO YJURÍDICO
2.1. MARCO HISTÓRICO
2.1.5 EDAD MODERNA
2.1.5.2 EL COMERCIO EN EUROPA
Index bude reprezentov´an n´asleduj´ıc´ım zp˚usobem: Nad statick´ym indexem, reprezentuj´ıc´ım inverto- van´y index pro vˇsechny dokumenty, tzv. barelem, bude vystavˇena dynamick´a datov´a struktura, kterou nazve- me tanker (podle [7]).
Tanker je tedy dynamick´y index, kter´y je sloˇzen z barel˚u. Obecnˇe barely pˇredstavuj´ı jednotliv´e doku- menty. U kaˇzd´eho barelu B si pamatujeme jeho kapa- citu B.capacity (maxim´aln´ı moˇzn´y poˇcet dokument˚u, kter´e reprezentuje), velikost B.size (aktu´aln´ı poˇcet dokument˚u v barelu), a pak pro kaˇzd´y dokument bit deleted, kter´y urˇcuje, zda je smaz´an nebo aktivn´ı. Zna- ˇcen´ı Bi reprezentuje i-t´y barel.
Algoritmus 1 Do tankeru vkl´ad´ame barel B
1: najdeme minim´aln´ı index x: |B| +Pxi=0|Bi| ≤ 2x
2: slouˇc´ıme vˇsechny barely s indexem i ≤ x s nov´ym ba- relem B a nahrad´ıme n´ım barel Bx
3: u barel˚u s indexem i < x nastav´ıme Bi= ∅
V tankeru m´ame uloˇzeny ukazatele na vˇsechny ba- rely, kter´e obsahuje index nejvˇetˇs´ıho barelu tanker.r. U tˇechto barel˚u vyˇzadujeme, aby byla splnˇena pod- m´ınka vznikl´a dekompozic´ı bˇehem dynamizace, a to:
∀i : Bi6= ∅ → 2i−3< |Bi| &B.size ≤ 2i (1)
kde Bi je i-t´y barel tankeru a |Bi| oznaˇcuje velikost
i-t´eho barelu (Bi.size).
Operace insert (pops´ana algoritmem 1) vkl´ad´a ba- rel B do tankeru. Nejdˇr´ıv najdeme barely, kter´e lze slouˇcit s novˇe vkl´adan´ym barelem a vloˇzit je na voln´e m´ısto s nejniˇzˇs´ım indexem tak, aby z˚ustala zachov´ana podm´ınka 1.
Algoritmus 2 Metoda modify dle [8]
{Krok 1:}
odstran´ıme dokumenty s pˇr´ıznakem deleted {Krok 2:}
vytvoˇr´ıme novou strukturu N :
{(tyto barely odstran´ıme ze struktury N )} Y = Y ∪ Bins
∀i : |Bi| == 0 → Ni= ∅
if |Bi| > 2i−3 then
Ni= Bi
end if
if Ni−1≥ 2i−2 then
Ni= Ni−1; Ni−1= Bi else Y = Bi+ Ni−1 if |Y | ≥ 2i−2then Ni= Y ; Ni−1= ∅ else Ni= ∅; Ni−1= Y end if end if {Krok 3:}
odstran´ıme pˇr´ıliˇs mal´e barely a vloˇz´ıme pˇrid´avan´y barel Bins
Y = ∪©Bi: |Bi| > 2i−3
ª
N.insert (Y ) (do N vloˇz´ıme funkc´ı insert - viz. alg. 1) barel Y
{Krok 4:}
B = N , p˚uvodn´ı B uvoln´ıme
Pˇri maz´an´ı dokumentu nastav´ıme jeho flag deleted na true. Pokud je v barelu hodnˇe dokument˚u oznaˇce- n´ych jako smazan´e, m˚uˇze b´yt podm´ınka 1 poruˇsena, mus´ıme spustit restrukturalizaci tankeru. Funkce mo- dify se skl´ad´a ze ˇctyˇr hlavn´ıch krok˚u:
1. nejdˇr´ıv odstran´ıme dokumenty, u kter´ych je nasta- ven pˇr´ıznak deleted
2. vytvoˇr´ıme novou strukturu N , kter´a bude obsaho- vat pouze platn´e dokumenty a kter´a z´aroveˇn splˇnuje podm´ınky velikost´ı barel˚u (podm´ınka 1)
3. ani po tˇechto kroc´ıch nemus´ı kv˚uli odstraˇnov´an´ı smazan´ych dokument˚u struktura splˇnovat podm´ınku, ˇze pro kaˇzd´y jej´ı barel Bi plat´ı |Bi| > 2i−3. Proto
v dalˇs´ım kroku slouˇc´ıme vˇsechny takov´e barely spolu s barelem, kter´y m´ame do struktury vloˇzit do po- mocn´eho barelu Y , odstran´ıme barely ze struktury N a pomoc´ı funkce insert tam vloˇz´ıme barel Y .
4. v posledn´ım kroku provedeme samotnou aktualizaci a strukturu B nahrad´ıme novou strukturou N . Struk- turu B odstran´ıme. Protoˇze jedin´a operace, kter´a za- pisuje do struktury B, obsahuj´ıc´ı barely, je B = N , re-
Dynamizace gridu 117
strukturalizace m˚uˇze prob´ıhat bˇehem norm´aln´ıho pro- vozu indexu.
Postup t´eto operace je pops´an v algoritmu 2. Tuto funkci m˚uˇzeme vyuˇz´ıt tak´e pro d´avkov´an´ı pˇr´ıkaz˚u insert a delete.
V indexech vyhled´avaˇc˚u je nejˇcastˇejˇs´ı operaci update, coˇz se nˇekdy ˇreˇs´ı dvoj´ıc´ı operac´ı delete a insert [2], [5]. Proto vyˇzadujeme, aby modifikaˇcn´ı funkce dok´azala pracovat i s t´ımto faktorem a umˇet odstranit a vloˇzit dokumenty, kter´ych se t´yk´a aktua- lizace.
5
Distribuce indexu
V dalˇs´ım kroku n´aˇs algoritmus aktualizace indexu jeˇs- tˇe vylepˇs´ıme t´ım, ˇze pouˇzijeme v´ıc tanker˚u, kter´e roz- m´ıst´ıme na nˇekolik r˚uzn´ych uzl˚u. Proto bude aktua- lizace prob´ıhat na menˇs´ıch dynamick´ych struktur´ach (tankery budou m´ıt na stejn´em poˇctu dokument˚u menˇs´ı velikost, v z´avislosti na poˇctu tanker˚u). Barely v tankerech budou rozdˇeleny rovnomˇernˇe.
Je nˇekolik moˇznost´ı, jak vyb´ırat tanker, ke kter´emu bude pˇrid´an barel s aktualizovan´ymi dokumenty (sekce 7.2). Tankery m˚uˇzeme vybrat n´ahodnˇe, m˚uˇze- me je pravidelnˇe stˇr´ıdat a vˇzdy vybrat n´asleduj´ıc´ı, dalˇs´ı moˇznost´ı je vybrat tanker s nejmenˇs´ım poˇctem barel˚u nebo nejmenˇs´ım poˇctem dokument˚u. My bu- deme pouˇz´ıvat metodu v´ybˇeru n´asleduj´ıc´ıho tankeru, v sekci 7 pak tuto metodu srovn´ame s ostatn´ımi (obr. 6, 8, 7).
Cel´y algoritmus aktualizace indexu je pops´an v algoritmu (alg. 3).
Algoritmus 3 Metoda modify v distribuovan´em prostˇred´ı
for all i:=0...iter do {v kaˇzd´em kroku iterace}
1: pro kaˇzd´y tanker provedeme aktualizaci popsanou v algoritmu 2
2: vybereme tanker, ke kter´emu pˇrid´ame barel obsa- huj´ıc´ı aktualizovan´e dokumenty a provedeme na nˇem znovu funkci modify
end for
6
Simulace
Naˇs´ım c´ılem je uk´azat, ˇze dynamizace v´yraznˇe zlepˇsuje vlastnosti invertovan´eho indexu. V´ysledky jsou pops´a- ny v [7] a ukazuj´ı, ˇze tento zp˚usob aktualizace indexu lze ´uspˇeˇsnˇe pouˇz´ıt u index˚u kde nen´ı moˇzn´e bˇehem aktualizace indexu pˇreruˇsit nab´ızen´e sluˇzby. V tomto ˇcl´anku je tak´e uk´az´ano, ˇze dynamickou spr´avou index˚u lze uˇsetˇrit des´ıtky procent ˇcasu (pˇresn´e ˇc´ıslo z´avis´ı na
ostatn´ıch vstupn´ıch parametrech) v porovn´an´ı s kom- pletn´ım vybudov´an´ım indexu v kaˇzd´em kroku. Na dru- hou stranu za toto zrychlen´ı zaplat´ıme zpomalen´ım vyhled´av´an´ı.
Simulaˇcn´ı program nepracuje pˇr´ımo s dokumenty, ale jen s poˇcty (napˇr. datov´a strutura pro barel obsa- huje poˇcet dokument˚u a poˇcet smazan´ych dokumen- t˚u).
Abychom simulovali distribuci Page Ranku [3], [9], pouˇz´ıv´ame rozdˇelen´ı ohodnocen´ı str´anek podle tzv. Power-law z´akona [1]. Dokumenty jsou rozdˇeleny do deseti kategori´ı podle sv´eho ohodnocen´ı. Kv˚uli jed- noduˇsˇs´ı implementaci jsme pouˇzili exponenci´aln´ı roz- dˇelen´ı se z´akladem 2, proto je poˇcet dokument˚u v sou- sedn´ıch kategori´ıch vˇzdy v pomˇeru 2i ke 2i+1 (1:2).
U novˇe vytvoˇren´eho barelu tedy dokumenty dosahuj´ı rozdˇelen´ı podle Power-law z´akona. U starˇs´ıch barel˚u se pomˇery mezi poˇcty dokumen˚u v jednotliv´ych kate- gori´ıch mˇen´ı podle poˇctu dokument˚u, kter´e jsou ozna- ˇceny jako smazan´e.
N´aˇs simulaˇcn´ı program dostane jako parametry ta- to ˇc´ısla: n - log poˇctu dokument˚u pˇri zaloˇzen´ı tan- keru, t - poˇcet tanker˚u, percent - procentu´aln´ı pod´ıl dokument˚u, kter´e budou v kaˇzd´em kroku oznaˇceny jako smazan´e, hit - poˇcet dokument˚u vyhovuj´ıc´ıch za- dan´emu dotazu, kter´e vr´at´ı vyhled´avaˇc pˇri zpracov´a- van´ı dotazu.
Vytvoˇr´ıme t tanker˚u. V kaˇzd´em tankeru bude n ba- rel˚u, kter´e budou na zaˇc´atku aˇz na posledn´ı pr´azdn´e. V n-t´em tankeru bude barel s 2n dokumenty. Poˇcet
smazan´ych dokument˚u bude 0, kapacita barelu bude rovna jej´ı inicializaˇcn´ı velikosti.
Pak simulujeme aktualizaci invertovan´eho indexu t´ım, ˇze v cyklu proch´az´ıme vˇsechny tankery a na kaˇz- d´em provedeme funkci modify, kter´a oznaˇc´ı v z´avislosti na zadan´em parametru pˇribliˇznˇe percent procent ne- smazan´ych dokument˚u jako smazan´e a provede algo- ritmus 2 popsan´y v sekci 4. Bˇehem t´eto aktualizace nevkl´ad´ame smazan´e dokumenty zp´atky do tanker˚u. Z tˇechto dokument˚u vytvoˇr´ıme jeden barel, kter´y pak pˇrid´ame do vybran´eho tankeru.
Pak vybereme tanker, ke kter´emu pˇrid´ame barel s tˇemito nov´ymi dokumenty a provedeme jeˇstˇe jednou modifikaci funkc´ı modify. Jako metodu v´ybˇeru tan- keru zvol´ıme n´asleduj´ıc´ı tanker (podle sv´eho id) - je zn´azornˇena na obr. 1.
Tento krok pˇredstavuje samotnou aktualizaci do- kument˚u. M´ısto toho, abychom u dokument˚u, kde se
... PC Tanker PC PC Tanker Tanker
118 Zuzana Vlˇckov´a, Leo Galamboˇs
Kombinované (1R=1W) operace během modifikace
Operace (%) 10 15 20 25 30 35
Počet dokumentů (log N) 0 10
20 30 40 50 60 70 80 90 Poměr změn (%) 0 10 20 30 40 50 60 70 80 90 100
Počet potřebných operací (%)
Obr´azek 2. Souˇcet operac´ı read + write pro 1 tanker.
Kombinované (1R=1W) operace během modifikace
90 80 70 60 50 40 30 20 10 10 15 20 25 30 35
Počet dokumentů (log N)
0 10 20 30 40 50 60 70 80 90 Poměr změn (%)
Obr´azek 3. Jeden tanker - vrstevnicov´y graf operac´ı read + write.
zmˇenil obsah, jenom pˇrepsali p˚uvodn´ı data, tyto doku- menty odstran´ıme a pak je znovu vloˇz´ıme s aktu´aln´ım obsahem.
Cel´a simulace prob´ıh´a v iter iterac´ıch. Bˇehem ite- rac´ı poˇc´ıt´ame jednotliv´e veliˇciny, kter´e n´as zajimaj´ı, abychom z nich pak spoˇcetli pr˚umˇern´e, pˇr´ıpadnˇe ma- xim´aln´ı hodnoty. Postupnˇe tyto sledovan´e veliˇciny po- p´ıˇseme: capacity - souˇcet kapacit vˇsech barel˚u tankeru, capacityInHigh - kapacita barelu s nejvyˇsˇs´ım ˇc´ıslem, occInHigh - pomˇer velikosti a kapacity barelu s nejvyˇs- ˇs´ım ˇc´ıslem, top() - vr´at´ı poˇcet operac´ı read potˇrebn´ych pro dosaˇzen´ı hit hit˚u, topAll() - vrac´ı poˇcet operac´ı read potˇrebn´ych pro dosaˇzen´ı hit hit˚u v kaˇzd´em ba-
relu, topBiggest() - vrac´ı poˇcet operac´ı read nutn´ych pro dosaˇzen´ı hit hit˚u v nejvˇetˇs´ım barelu, topFromBi- ggest() - vrac´ı poˇcet operac´ı read potˇrebn´ych pro do- saˇzen´ı hit hit˚u v tankeru. Zaˇc´ın´ame v nejvˇetˇs´ım ba- relu a pokraˇcujeme k barel˚um s menˇs´ım poˇctem do- kument˚u.
7
Experimenty
Na obr´azku 2 je poˇcet operac´ı read a write bˇehem aktualizace na dokumentech s jedn´ım tankerem. Tento tanker mˇel p˚uvodnˇe 2ndokument˚u, kde n urˇcuje osa x
Dynamizace gridu 119
Kombinované (1R=1W) operace během modifikace
Operace (%) 10 15 20 25 30
Počet dokumentů (log N) 0 10
20 30 40 50 60 70 80 90 Poměr změn (%) -10 -5 0 5 10 15 20 25 30 35 40
Počet potřebných operací (%)
Obr´azek 4. Metoda next: rozd´ıl poˇctu operac´ı u jednoho a 8 tanker˚u.
Kombinované (1R=1W) operace během modifikace
Operace (%) 10 15 20 25 30 35
Počet dokumentů (log N) 0 10
20 30 40 50 60 70 80 90 Poměr změn (%) -10 0 10 20 30 40 50
Počet potřebných operací (%)
Obr´azek 5. Metoda next: rozd´ıl poˇctu operac´ı u jednoho a 32 tanker˚u.
tohoto grafu. Osa y s oznaˇcen´ım Pomˇer zmˇen % urˇcuje parametr procent popsan´y v pˇredeˇsl´e sekci - tj. pro- centu´aln´ı poˇcet dokument˚u, kter´y bude zmˇenˇen bˇehem jednoho kroku (tj. vyˇrazen a pak znovu vloˇzen). Na ose z je v´ysledek pod´ılu D/S, kde D je souˇcet poˇctu ope- rac´ı read a write v aktualizaci naˇs´ı dynamick´e struk- tury a S je poˇcet operac´ı read a write, kter´e je potˇreba pˇri celkov´e pˇrestavbˇe indexu (parametr procent je ro- ven 100%). Na obr´azku 3 jsou tyt´eˇz veliˇciny vyj´adˇreny jako vrstevnicov´y graf.
7.1 Poˇcet tanker˚u
V z´avislosti na poˇctu tanker˚u, kter´e obsahuj´ı dyna- mick´y invertovan´y index, m˚uˇzeme pozorovat sn´ıˇzen´y
poˇcet operac´ı read a write, potˇrebn´ych na proveden´ı aktualizace tohoto indexu. ˇC´ım v´ıce tanker˚u pouˇzi- jeme, t´ım menˇs´ı jsou dynamick´e struktury na nich a pr´avˇe udrˇzov´an´ı tˇechto dynamick´ych struktur je pak m´enˇe n´aroˇcn´e na ˇcten´ı nebo z´apisy do pamˇeti.
Obr´azek 4 ukazuje rozd´ıl v poˇctu operac´ı s pouˇzi- t´ım jednoho a 8 tanker˚u, obr´azek 5 zobrazuje rozd´ıl mezi jedn´ım a 32 tankery.
Poˇcet IO operac´ı u jednoho tankeru m˚uˇze b´yt v po- rovn´an´ım s 8mi tankery zv´yˇsen u tanker˚u s menˇs´ım poˇctem dokument˚u o 30%, v pr˚umˇeru je tato hod- nota skoro 20%. Pokud porovn´ame poˇcet operac´ı read a write u 32 tanker˚u a jednoho tankeru, nastane u jed- noho tankeru zv´yˇsen´ı aˇz o pˇribliˇznˇe 25%.
120 Zuzana Vlˇckov´a, Leo Galamboˇs
Kombinované (1R=1W) operace během modifikace
Operace (%) 10 15 20 25 30
Počet dokumentů (log N) 0 10
20 30 40 50 60 70 80 90 Poměr změn (%) -20 -10 0 10 20 30 40 50 60 70 80
Počet potřebných operací (%)
Obr´azek 6. Srovn´an´ı metod u v´ybˇeru dalˇs´ıho tankeru bˇehem aktualizace: rozd´ıl operac´ı read+write mezi metodou ”n´asleduj´ıc´ı“ a”minim´aln´ı poˇcet barel˚u“.
Kombinované (1R=1W) operace během modifikace
Operace (%) 10 15 20 25 30 35
Počet dokumentů (log N) 20 30
40 50 60 70 80 90 Poměr změn (%) -10 -5 0 5 10 15 20 25 30 35
Počet potřebných operací (%)
Obr´azek 7. Srovn´an´ı metod u v´ybˇeru dalˇs´ıho tankeru bˇehem aktualizace: rozd´ıl operac´ı read+write mezi metodou ”n´asleduj´ıc´ı“ a”minim´aln´ı velikost barel˚u“.
7.2 Metoda v´ybˇeru tankeru
V t´eto ˇc´asti vz´ajemnˇe srovn´ame jednotliv´e metody v´ybˇeru tankeru u distribuovan´eho algoritmu modify (alg. 3).
Na obr´azc´ıch 6, 7 a 8 je zobrazen rozd´ıl mezi poˇc- tem vˇsech IO operac´ı s pouˇzit´ım metody
”n´asleduj´ıc´ı tanker“ a poˇctem IO operac´ı metod:
”minim´aln´ı poˇcet barel˚u“,
”minim´aln´ı velikost barel˚u“ a”n´ahodn´y v´ybˇer tankeru“.
Tyto grafy (obr. 6, 7 a 8) vznikly simulac´ı poˇctu operac´ı read a write s n´asleduj´ıc´ımi vstupn´ımi parame- try: 210aˇz 230dokument˚u v barelu bˇehem inicializace,
parametr procent je z rozmez´ı 1-90, poˇcet tanker˚u je 8, poˇcet iterac´ı 1000, poˇcet dotaz˚u: 100 a jako odpovˇed’ na dotaz poˇzadujeme 10 z´aznam˚u. Nejlepˇs´ı v´ysledky d´av´a metoda
”minim´aln´ı poˇcet barel˚u“. Ve srovn´an´ı s n´ı d´av´a metoda
”n´asleduj´ıc´ı“ aˇz o 40% operac´ı v´ıc. V´yrazn´e zlepˇsen´ı je vidˇet i u metody
”minim´aln´ı veli- kost barel˚u“. Ta potˇrebuje se stejn´ymi vstupn´ımi pa- rametry v pr˚umˇeru o 20% operac´ı m´enˇe neˇz metoda
Dynamizace gridu 121
Kombinované (1R=1W) operace během modifikace
Operace (%) 10 15 20 25 30
Počet dokumentů (log N) 0 10
20 30 40 50 60 70 80 90 Poměr změn (%) -6 -4 -2 0 2 4 6 8 10 12
Počet potřebných operací (%)
Obr´azek 8. Srovn´an´ı metod u v´ybˇeru dalˇs´ıho tankeru bˇehem aktualizace: rozd´ıl operac´ı read+write mezi metodou ”n´asleduj´ıc´ı“ a”n´ahodn´y v´ybˇer“.
”n´asleduj´ıc´ı“. V´ysledky metody”n´ahodn´y v´ybˇer“ jsou srovnateln´e s metodou
”n´asleduj´ıc´ı“.
Z graf˚u m˚uˇzeme vyˇc´ıst, ˇze tyto rozd´ıly mezi me- todami se projevuj´ı hlavnˇe u vˇetˇs´ıch poˇct˚u zmˇen. Vi- d´ıme, ˇze je lepˇs´ı udrˇzovat co nejmenˇs´ı poˇcet barel˚u v tankeru, protoˇze restrukturalizace je pak rychlejˇs´ı a potˇrebuje m´enˇe operac´ı read a write. Tento fakt se d´a vysvˇetlit t´ım, jak funguje algoritmus modify (viz. alg. 2), kter´y proch´az´ı barely a tud´ıˇz jeho rychlost a poˇcet operac´ı z´aleˇz´ı pr´avˇe na poˇctu barel˚u.
8
Shrnut´ı
Jednou z nejd˚uleˇzitˇejˇs´ıch vlastnost´ı indexu nad velk´ym poˇctem dokument˚u je kromˇe rychlosti vyhled´av´an´ı rychlost aktualizace. Pouˇzit´ı dynamick´ych struktur n´am umoˇzˇnuje z aktu´aln´ıch dat generovat pomocnou datovou strukturu a tou pak nahradit p˚uvodn´ı inverto- van´y index, takˇze bˇehem aktualizace lze st´ale pouˇz´ıvat p˚uvodn´ı index.
Experiment´alnˇe jsme dok´azali, ˇze se zvyˇsov´an´ım poˇctu tanker˚u u distribuce invertovan´eho indexu se v ˇr´adech des´ıtek procent v z´avislosti na pouˇzit´e me- todˇe v´ybˇeru tankeru, kam se budou pˇrid´avat aktuali- zovan´e dokumenty, sniˇzuje poˇcet operac´ı read a write, nutn´ych pro aktualizaci dynamick´eho invertovan´eho indexu. Toto zlepˇsen´ı je u vyb´ır´an´ı n´asleduj´ıc´ıho tan- keru 10-15%, metoda
”minim´aln´ı poˇcet barel˚u“ tato ˇc´ısla jeˇstˇe zvˇetˇsuje o dalˇs´ı des´ıtky procent (se vstup- n´ımi parametry z pˇr´ıkladu uveden´em v pˇredeˇsl´e sekci to je o 30% m´enˇe operac´ı z´apisu a ˇcten´ı).
Reference
1. Adamic L.A. and Huberman B.A., Power-Law Distri- bution of the World Wide Web. Science, 2000
2. Apache, Jakarta project: Lucene. http://jakarta. apache.org
3. Arasu A., Novak J., Tomkins A., and Tomlin J., Page- Rank Computation and the Structure of the Web: Expe- riments and Algorithms. In The Eleventh International WWW Conference, New York, May 2002. ACM Press 4. Clarke C. and Cormack G., Dynamic Inverted Indexes
for a Distributed Full-Text Retrieval System. TechRep MT-95-01, University of Waterloo, February 1995 5. EGOTHOR, JAVA IR system. http://www.egothor.
org/
6. Fox E.A., Harman D.K., Baeza-Yates R., and Lee W.C., Inverted Files. In Information Retrieval: Data Structu- res and Algorithms, Prentice-Hall, 28–43
7. Galamboˇs L., Dynamic Inverted Index Maintenance. In- ternational Journal of Computer Science, 1, 2006 8. Galamboˇs L., Dynamization in IR Systems. Intelligent
Information Systems, 2004, 297–310
9. Langville A.N., Meyer C.D., Deeper Inside PageRank. Internet Math., 1, 3, 2004, 335–380
10. Mehlhorn K., Data Structures and Algorithms 3. An EATCS Series, Springer, 3, 1984