%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
%%Title: mainlncs.dvi
%%Pages: 17
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: Times-Bold Times-Roman Symbol MSBM10 Times-Italic
%%+ Helvetica CMR10 Courier CMSY10 CMMI10 MSBM7
%%+ ZapfChancery-MediumItalic stmary9 stmary10 stmary7 Helvetica-Bold
%%+ LASY10
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -o benzakenpadl05.ps mainlncs.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2004.11.10:2028
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: 8r.enc
% File 8r.enc as of 2002-03-12 for PSNFSS 9
%
% This is the encoding vector for Type1 and TrueType fonts to be used
% with TeX. This file is part of the PSNFSS bundle, version 9
%
% Authors: S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, W. Schmidt
%
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida + Euro.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
%
% (6) /Euro is assigned to 128, as in Windows ANSI
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there down to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde
/.notdef % rubout; ASCII ends
% 0x80
/Euro /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: f7b6d320.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
%
/TeXf7b6d320Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
/period /slash /zero /one /two /three /four /five /six /seven /eight
/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: bbad153f.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
%
/TeXbbad153fEncoding [
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /circlemultiply
/circledivide /circledot /circlecopyrt /openbullet /bullet
/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
/greaterequal /precedesequal /followsequal /similar /approxequal
/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
/prime /infinity /element /owner /triangle /triangleinv /negationslash
/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
/backslash /wreathproduct /radical /coproduct /nabla /integral
/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
/lessequal /greaterequal /precedesequal /followsequal /similar
/approxequal /propersubset /propersuperset /lessmuch /greatermuch
/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: aae443f0.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
%
/TeXaae443f0Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
end
%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
save N userdict maxlength dict begin/magscale true def normalscale
currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
savematrix setmatrix}N end
%%EndProcSet
%%BeginProcSet: color.pro
%!
TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
%%EndProcSet
%%BeginFont: LASY10
%!PS-AdobeFont-1.1: LASY10 1.001
%%CreationDate: 1992 Oct 23 20:19:17
%%RevisionDate: 2001 Jun 05 20:19:17
% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.001) readonly def
/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def
/FullName (LASY10) readonly def
/FamilyName (LaTeX) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /LASY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 59 /a59 put
readonly def
/FontBBox{-19 -192 944 683}readonly def
/UniqueID 5011949 def
currentdict end
currentfile eexec
D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E
F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9
1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538
4E7DF30628B47D6551F93A50553E592B5E1540B411A313F39E4149341C981D3C
705F8AD7782F59531404B3C001D8B882E0C5468D00B26040A352ED823D7C8DF4
B632A37A034C6304A39F28739AC3D634CDC707B53474E63135975E7F0FFF2458
99878B3A6D8D7AC6F2A2728768B8C2226075299B8CB08B76AED9A00BF448A646
87014E8B1C1723204BCBB97BF0F735E436F1805B4026CA792A2464E1FDFC4385
B407DAC19BC7769BBEA6BDD0EE65133044D18530C5A3915AC9272AA4A7FC35A4
93A7A0CA8BD1CFA4382085D949EE819A51062591606ECEB5B37419223CC0400E
158F1A0849868CFAE0F71DA6B4FA47A636EDE756530425A6BFE45B8080808B59
6B886D033437677B151285B047C84C2E2FCB71CCDF34E20E925269E5F1A210F0
391066823D8F21E03746BF79AAC6FF91517631686722226462D6A9EC5FFCC806
B959AED95F492481324749E00CA117821C347F9B924BEC8C64C954570252E909
5C33AC8B1320BB1992A88C619DEA7A8FDDE42390EC82A07BD8BB7F0014A41EC8
04225B5063D3F04723F51128DE8ADB79F62903E1955A7D49220223CA34FDC3EB
8FB71700EB9CC40DF747C4CC60AD11D3FC038CB2051F7E97CF7C7F7D0F49CA1F
E0FEFCE664544CD1F7C23B05BA649D373539E7BCC761611C17489084912F77C3
5FB3BC1E91E2B4A47C27BF4989C7703E83C5A505108037DE5006D4F510B8FE1A
570E42E4569FAEBF66058F9D9608A771BEACA2A8AB629DBE939CCBBC116E8BCD
BEC3A33CBF185A68DB60CAC5B21AF4D9B46B3FF4FDFBD6BC3C8101BE15E79245
F0CF8F670CFA19ABC08C34D85B10C17190497EACEF6E401F322B1E281C1755F0
BBF9838AF83A0A1601D78E78FD599819762347A77C71374AB428093048E3F1C9
40CFD63B86C7F70BCD2AC3092DDD3BC91CA714BA28263EB863D5E6E2DBD4FA08
6B22C1D18B16D7042219B9F0BDF5BF10AADB658CBED51C8B272E4DFA11C5A603
8B4A437EABAA699B86819EAA072F7D90A9CE1B52287DD3D26C470AD28C07F7BB
F6BA9450A2EE874D68A3681162DCDC7B1D77B3FAD31C60C18AE2E95C0ACB3F15
6E70CE03827B51FCEA99B5489FD7B9E20F2906C76FE1494CD7C60EF82BF97CB1
917540DB14584FCB0834C1DAEED509FDC03ACDB219009BF9B2DF338980A81D44
25F95467F4C9F2E079B97DD1345FAEA7BF31325661DFAC0ECE2184B77B4D4BC0
3EAB626D30DF1BE9B77A1DC5BCD5D5F69E36F357FF7073072207C7D119FFF8C3
3D8698A9D6E9FF54EC3D9EA02F339D1C305BA3B3C269BFB06F5ACDCFF60E61A0
17C063BAFF168F9BDED3B26BC1FA69963F853FC5367C08B77D3ED5034880C765
CB9B0028F6AC7E9966C7576F5540FEB699D21837ED59A43A9EEA90871C3A6434
0738DB2FF091F941D4D3F0F89B96553FCB4DD7F578C71042791FCCC0946CED2F
91B6399A51C5FFEA36C30399977EE83777C32F912AD665977230260979C271DA
CC5434011E840A06A3F46A755C5042D71D6043482EBA9F5A24111B823B2FCD39
AEFB0E22CC249B57100C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueID 5000820 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC57034F30B748EA02516C927663E107D2F
D32CCA94568EB69302E2F74AA6593C8429D46F4DBC544134390BB87A58263EA1
0964FE588E1CD9E1596234BF0B69BD326EBCE2F93E19207F5ECB65C86E0131E3
D9DC9078FA5E267B005DD14F5FC70063CB049358BEFB524F2CE33707E059D260
DB09C314063F7700D7E32AEF6C1A46CCFF49E241E6B956F7FB549D5CDF69F594
7ED55191C3F16E68F82E238E985AF0B29DAA8BE6B42101CF0911F55EF76DBACF
AF0A009BA6AB9C166F2D9F824AC1E4C4217158030FF5119300FE718C9FBE0311
3ED024D89142B3D7594309FC3A51A1F85F4B56E14A821D2E2ED2EDE4A076FC98
CF4437496686B7983F50A2CC52DEB139D122E114182931C7C64D1D1EC963EFD4
89089A874B15F65DFAF33812576ADA38BF7E595D1DD69D5DFD1AA9265B83CCE4
E90F5FBF524D0E93582ABCA230449346ACD224A169956B5E7AD24C54BA5959A7
3E0724F2198E9AC9613CCE3438CFEF92CC3433A8044AF1395B2DEF9D3CA9BBF9
1FF6CE963BAD458E5E358C9A90861CC08611B550CD72D3247A3A3C063B9F74AE
D5A3F5998D7C80DE4D5C6FD04760108E2BC5F72AE5E318961455DC8C1300DF2A
E92A29DEF68838D0EF8AC19DBA8F6A1E0C82EF1343BE5B2454AEB880058BDD5E
D71E54E7F815510431B21CE282F52C5D2D4AA851D58FE58A2CD395EB6DDB5953
D47035660FF6D86034C51C821D3AA485C271BAA797EBDA6D8717F26AB1FFDE34
8339ACE7E4CDED314F38E3A9918A8BB5AB923EE0661D52EFE980864524BCF776
15D0964715BCF19DD233DE465CBB4CCE5628A95FC20B6D3E6D5F0FF648534062
69834B65A3EB3A2D235F873D8CE62CAE1AE372FE86A82E2EAC194F72AC0F0630
A5E411D9F663AB1D82B502D6756BB3919F10BC36C5FD39599D89BC9258FD1EDA
C25B6E40EB4098961AE9F615452E118DF00A684AADA0D0C18F419C79585C4AF0
8FB831F2CB90C465025D9DC807FD17A627AEE60C3B020AFA5969FE94F023EACC
619C3D7934853F5F558D54BDDF137CC245BF18D25E6E9D5580ED950AC17E7715
A70AD98AF0FBDB04BF315BED7ABDFF7EFAB7C2A4B158715AD71A1D3342212EAF
A4AE4FC3B1A06646512BDBDB5107E20842A2C31E37109D41D8DA6A6A2300A388
44D68FFA683210F4B605E92EC0B6048288F3D77A867BC13136D3F4EC93D46ACE
2DCA740F00C2471A9D7EC05F1CF53D65861CAC7BF8C38B3C7984944F72F74697
B9A84D293120E76049A787F87600696873B229B5A17AD0E3985458D18E7AB7E1
10DCD0E9321138C8760689A91C397595D74BCEA654A9CE508500C01BD3ED9720
77817FF7C1490636A654150065E94FCA95F2B936755D23596392EABBF49917A8
5B1963E371DED7526C017985527D7339C6E45AB1C03146EB21431C6A71752126
AF545C4B2795F8211833AA959CB6D696418207FE2F8D1DD49D0B9CD17124FF3E
02AD8C7E36C018B16E14809B0B44E18517616D98942B9962D11412DC39D4426F
EEC63228AEAC133C6025E8B43B5C53DA4772116A958E0E86C64F32E60E1FC40A
C71591D2B6AC3D2B355C26F10BE6F640F9287497E81748BFCB46C3211A23C6C3
035883672215074C5441E6F1494B959D86C1935303512BFF2C269238FF7A0B0A
A8BB6AF6829D0204F72188C5558CB6DD596B806E051B757C62D618C1D5AE0CB6
5684ABF61DBA50D14E77A367B435BC008FA27C0D39884CF4E623723EA1B41237
8CC8C6D268584FFD37D35BC162D6E32E2980E286AFAD06EE8325505359310391
969C17F930C1345BEF3987AF0DCB07CE894BE8917E91A6BFFDC4B41D9C385075
8FD422C45DE20CB8E9353E227479A975DAE034E7527FB6F16DEAD868CF3E2DF5
40E1F421B04953225C90D028C396279F2EE9FF2A36E33B6CB66BCAB23464BE4D
44AE0C6A613404929DE53B059D6257319CF4C056B5D4BEC82CF5388B879B56C0
9601346C2229AA900E3A31AF04EABBD173918D03FC1CEAD518C9F7DB2335CB44
1BEB682C95603022C1345CFD3039DD5BD2AEF8792BDE4DF5095E4485CF22E619
24A71D22171FA394BC5417ED35D76D3C5FCD9466E3FCBD2C8EF27D34346D0F83
11DA7D34AE2C16EB038C88F57607B7F5EA8C1D912EDF9E856E0CDAD7EFF12DD1
5B0DDE65C5C98C497B15936FCBA5B3D49E2A2D9752AA0679AA05B4385019FD2A
D3F60C3A6745AFEF70B15BD813B4294A88CACA66ED54C6BC521D006D7CC990F1
B36E3C839FC54944324213A935318D0798E80D3FEE616CA09D21C05F4178B511
C09F9DCBB86B19077BE993757C7736637CA8BD99A799FEF8F250804DFEC5DB99
9617AD16D1E56C8DB3A6326FD9FA3EA2BF3AB1B648862E2DE693A7DF5A6F45BE
0BAAAAF02C9883089CB765C3D696FBD2BBCEA6B49472186AFAB7EE2B2097FB94
8E5450469F0FE6AD86F9F0D7312387D20A26E8CACD173F6F04FA8981B4B1D5E3
45505461700D514DFCB0C20DD9A1B20F2E6E82D644C3B95E630F2C5B58C9C7EB
2C53F1ACBEDCC25390E3A44D35CBE7BC86332CE22DD1E7657B8E03F8EC713E2E
C74E14213CD5932D8218F9983EF6BD0EA677D67BB6D20DA3262C8C82E0D466C5
E9AFB756EC
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: stmary7
%!PS-AdobeFont-1.0: stmary7 001.000
%%CreationDate: Sun Mar 22 11:14:24 1998
%%VMusage: 120000 150000
11 dict begin
/FontInfo 14 dict dup begin
/version (001.001) readonly def
/Copyright (Conversion of metafont curves by Metafog (c) 1995 Richard Kinch) readonly def
/Notice (Copyright (c) Taco Hoekwater, 1998. All rights reserved.) readonly def
/FullName (stmary7) readonly def
/FamilyName (stmary7) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
/Weight (Roman) readonly def
end readonly def
/FontName /stmary7 def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 74 /llbracket put
dup 75 /rrbracket put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/FontBBox {-125 -2949 1182 870} readonly def
currentdict end
currentfile eexec
D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
C19258EFAFDC276CB1ADE9208A941A36D18A96F6D1C771F81C4B3CB05FC64D10
ACF8F7E87B132B1320AAF0D8943CE8DD58EC92F1E1BD90A921771E7F809D1224
56CA6DF65547232495FE2B4A84160B8A6B5F72F413BB245013E84A26CC043839
3BAF7F3A4B5D8ACC3B41853C5E3B8903B2BE680155F4739E1058B2BFF6E7B1CA
3EE1261B441069A39D325F6448373355CB26BEC6C59733F2A24BC3AF36AD8613
19147A4A219ECB92D6F96E0F6652134BA725656D0E873F2FAA663A85FC259868
A652C2BBD1CFD2E2ECD94B01E4647F6BCC8AD32593170DEEDA9C73740EF41370
3C580F0A48ECBD441108EBFA5A9E9385848DC9D944B43CFB0BD5F31D0C30ACB9
A324D5E56C0F7A992D8E2E6507D26A1B19BC6783DECCD57420D64AA1D187F57A
60AE9CD2725AD8ABE891EE340FA33EABE3457B9E63A71EDCC07CF85B52E6CA17
5DDAC96C91E4F64D76A2E81EC055301F9B19FA90214BDC75A200031B0C60BF0A
A7E5FD34DC9012EAAEA56E9914DDC2B1945687D58ED8E334CF999D117B674554
05BD604018AF846B3F00E610C1656869CE17C6BAFDF2256EBEADDA4D951BFA1F
F762067C732EA5DFD9F7BF65FBB73180323BDD69D68CF32F9AA7781A2146E04D
71C54044218DE26A4EF271B959F2DF714516C0C26855DBBEBE50BF2146B6FD78
A4D8F25BF7BAC696C913FE8EBA12DC860948767754400A564AEF46EE9E0C2B00
A180B7E29E0FC2A3F467AA9B46BBD303C19BF106552C7A2FC74576AD5A5FC778
147063E5D5AF015F74FF28B9E9D9DBE7643D08D021D232D3C9CE69831FA234F3
1B82B6E24D6D5E752D01E09285E79A3A9D6CC2B31B2946FF9E17D011BDC88479
5A9B92DD211E40EA0DCA3161E043FA9922DA398846DB34B02B5A523877A5D4A0
7C698F2052A9C64104B01D73B66463EE2141BBF060F0298D4AD1B6F859CE049F
9702E3D942063E8AC15E00539ADBF01EEFE33E368898A86DE0F2FBBD5CFED681
3DD93D137EFAF25A8BBD0D017B8FB4658DBB9A2217CFF1C4E355520B50DA4985
581B052C704DDD2EE485E1DD76460C198DF17D303E01192DD893269DA7CD532B
24520E22838A68F75562B8728D05BA1098EA4DBDDA6D7C908D36068DE0A2D91D
DCB05071CC3F32F9A91888E14B61441DAD725DDBDF94F9C739539B2C41C43C4E
8A142FECF3EBB49D427B53B98605F3A582B274A382565092D7CD059670A3428B
637076ED621D36821E3CDBCD97A1729C792D52C7DA671E124B1931EF6C08807D
FEB65E931037F76A372B09D09B7A13106798B29802AD49DD6411E8AB51BA25F7
7DFA4412C4E8088272282612E49795C766EF122058B5EEE98E92AA08EE472C0F
9987471A2582870540A63E80484B440B678975812A0D971F053F900B0858FFFD
244B336A2FD313A3E05BF7969AF9D3D569CECD0D0C6DD0591DB3F9663EBD6489
C0205A1BE3C4E6CECB70B57F3F2828E88E6F1E6A50DCBF930A9C69CE5ADF2FE0
B3FE169C18446DF2AF8D1902278E1871938E60CBEF1BDF318395DD23B029E31B
0B861CAE8B2DF5665216F8B6598C53C9B4B526B878116FB393
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: stmary10
%!PS-AdobeFont-1.0: stmary10 001.000
%%CreationDate: Sun Mar 22 10:51:38 1998
%%VMusage: 120000 150000
11 dict begin
/FontInfo 14 dict dup begin
/version (001.001) readonly def
/Copyright (Conversion of metafont curves by Metafog (c) 1995 Richard Kinch) readonly def
/Notice (Copyright (c) Taco Hoekwater, 1998. All rights reserved.) readonly def
/FullName (stmary10) readonly def
/FamilyName (stmary10) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
/Weight (Roman) readonly def
end readonly def
/FontName /stmary10 def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 74 /llbracket put
dup 75 /rrbracket put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/FontBBox {-123 -2958 1055 803} readonly def
currentdict end
currentfile eexec
D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
C19258EFAFDC276CB1ADE9208A941A36D18F9FB1C33DEF76AA3140A8A4C99ADB
B3214E61CB091BB87421CEF35FF5745EF8DDC51293183D75AE11F26462B918E3
F15A016BF051C59D797E59AC042DB329D8738C9DF453DD062F0BA8A59E23E500
D03758832A6150BF51F1096E643C98DA553929EDAC78FE0F28B0D59B9D56721D
00317093DC68A43C1B7BB7F4EF1D185ED2AA7A6E6F2D367BA67AFB0E7EC23092
A210DB79335BDA6ABBDAF5E5C4842B0A1EEA9B308FEAF483C1E8ED22088C4876
BE91F5D97B1EF9C6C943DC1FED8893EA22A5A265001D8B50A4F9FFDF83700265
B2385BDCDDAFC00F453DCB457F0AF33A1D8FF22BA6C4A7951F591ECE699C3D14
E75F936B66F381315F7DABAF8408AEBA61B6BCCD94269FB8AF5614B23A6FAA9B
331A47310A3337123061ED33479DD2F676F112024F940969472F7302693D0058
762EFEB05BA41394AB193F4563F3909CDE861E5D53A6238C45EF9710BE15FBCA
5D20A8223E5B377CC3B3438C5257F4033D36D2F6F43125802E53A348A51F9D87
A07E47DE15DB238C3B64337A44F4C88167C0FA1671468E030FCD02FF3D075687
3956DFF8A78C4BBFA06C711CBD066DE67958FB6D857C2B8851B1759285D79A11
EE35885A02259A2A785C64151FA9BED5BD06B8A0F84F05696E88FAC35B54F9E7
468DFF37F9DB581707C977F96CE3585CCC85FE9481C8E7ACBB9CCAD0B4D05070
4609CB0F1CF22B7C2F2BF7DA7064EB101904D2E7941490B5700104D9F84810B9
3F60D774F2FAC9BF95712C97B1F097BEAD4EDE4569609C00D66C3038FCAF7C14
6A92804F163A09FE1883EE040640E8C9E5476C6DE456D731C8DFD998B1DE9DB6
E5FEE8DD02F53DBE587DAD016B69F8AAC48AEF9D9F3379FCD592E02C98E65265
B0330B5F90F3B2FA275130A38A51B654C98317E867F78A93B8E847EAD914493C
6D26742E16DCD21E6AC62884E41A3CBF9BC0BB4B083155753E262EBB88B1188A
A5757A22951FCEEF0035FCDB592821C77978CBDC7BB06DA2289639211F070C28
6D6107790BE7B3C7F55F6840440E36581874A117F879FF966298B0FCEF744C8E
00300B4AB28E3A0D20565BBD3D4DAF867655D5FFE8B96DEC9F3E71E5F4A44E16
00D8933AB62879A541530FA1ABCA84E043EF7C2E675BCB40590BA9D4354469E6
3CA571D47738F73F637F9F20CA3AF2491CCF1BDA50BE022C473522C9ABADD9E9
A686E60F7C28781A82F4ED04CA91A17B477EE848B5F58C6FC93EB3EC977DD31C
766F8678A38DDD7E7EC6BFEC28CD509C45A804291159A9CE7191C8B0A41E5900
3457B788A8739B76DE58A6580B4E37C63596AA4684306C3D83DD53F4D15F2192
B1252FA8FE28AADDA0484492F0DE9983A45757202C7503478A3546D5B6424951
D391EB61FB751317A129C5C5BF3944A9673B0ED9F4DC1A290CE6BA89BC88EA00
77A4150280773F0BFDD9B699FA3D93F860B89C502C26D8EEF1AE28904926E724
66150F0F85BB044FAC069A2A15E076F7A130C30D4FA639F8425162DB8B8933B5
AB6E01ACA51F75A0C01D92990321D1A8A59DA19355A67ACB1A4C023C4ADDC5B0
1A29E27678E10F7EAD4716C6DC5DF2D9B18BDEA90CC1
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: stmary9
%!PS-AdobeFont-1.0: stmary9 1.0
%%CreationDate: Sat Jul 18 14:16:57 1998
%%VMusage: 120000 150000
11 dict begin
/FontInfo 14 dict dup begin
/version (1.0) readonly def
/Notice (Copyright 1998 Taco Hoekwater) readonly def
/FullName (stmary9) readonly def
/FamilyName (stmary9) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
/Weight (Medium) readonly def
end readonly def
/FontName /stmary9 def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 74 /llbracket put
dup 75 /rrbracket put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/FontBBox {-128 -2956 1083 823} readonly def
currentdict end
currentfile eexec
D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
C19258EFAFDC276CB1ADE9208A941A36D18F9FB1C33DEF76AA3140A8A4C99ADB
B3214E61CB091BB87421CEF35FF5745EF8DDC51293183D75AE11F26462B918E3
F15A016BF051C59D797E59AC042DB329D8738C9DF453DD062F0BA8A59E23E500
D03758832A6150BF51F1096E643C98DA553929EDAC78FE0F28B0D59B9D5042CA
218A2566A65C6328C392B036C04A329AD809C5D1D42FC26040CDE38E8120FF5A
D11DE58288113ABE3431DA9BA11C94694A2A4204029E8AFCC15F893399C3D386
20D9C687AF17BD9DA10337B6323DCB65E647CAF0C8BF047408CE71217038A4CA
48483F9A1746F6BDDCAFF1F3B967DCDF0EA4FDAEBA2BC1DAC5783877F5CA1CBD
06C4CA0C68483A7FF730F1004A1DD26E5A2275937C19D420ED1F806274E06BEA
17A68BBCC653F111F2DC2E2D91D1BBD8632F743270EE092E3B438B2ED4E75306
7CD8ECAE59A035922856DE7D6C3831A18CC9AC5B38CB866DDCAB2930C49E1406
30A42FBE6DE36AEB8A2D0B926E83644DC841C307B2796C39258FACBA197C5C54
3EF61AEE08D469E161E0FE7BCA6F4CA6E3828DB5C554CEECA7A42D646262E6D5
F912D45B91BB68B96FAC1CD14D17BDE227CDFB3F8F59CD80D887B535C738B80D
41CB1E83AD7170F7212507B545B6CB151CE6DF6E09E3CCEC214242DE658E0406
0297886390489290A12D949558490CC11EF34C481EE04B00276E7502C4AE4B5E
C1DCDC675DE1424406ABD4A9F22F1CB14AEDACA154337C32AC6F22ACF9089A40
3AA2A099E1AA5FECB0DE30C6F6C87408564F90835C5DDEB2C0D5A60060D261AC
2634EBF9AB8EE243230A7E139E809E56D3D8D634458549BA1A12CB981D968401
0D096310FCC5746AAAD8772C2E9DBD8F2367BB06AB858CFED0463AD9C0EE03F0
34FD3A55E67F3448A4297C3FBB0142D525AC71F643E21C6DE1FC9C88464944AA
1958EC66494DCA92E809E0C72380B9AA891DC6A7AAD53C3C86DB83F401C51814
1E6BF66C9DB09FEF1E8801B29B4561193596EE51F97141125A74C23F115466B8
FF94029D62AFB4C2E7BFE0E437297DB82A1C7ED1E361BAD8DE2B1AD0B30D5A2B
2DC48C9FD6B81011338A6F7E83CDB03B8D5D456FB2C6681564F20F6AFF2FCA8E
B429AEB793067D8C3F0E92ABCF51A9499A2744FFD31DB8ADD7E6A1735174C163
83E53E21DDAD5A13A18C57C1D30D3CD50DD8393E95F08F5FB761C4BEC2191F6B
431A9454D738B1A4D85D3F2F7F6820F4BF02A460C9B594BFFA8A3A76EDB2FD94
EC4E871722BB6C2306C31C945C8E4ADF9CCBE5F03799630D16E51568A4C67861
53182AA49DC9C5880911780DF19D1A20D1E936C3CABCA195C3A1059A55A18282
10CBD5836CA8228F29E7E73B6619CCB2494073C9D91754F8D563FF1CFD918910
987E535EE9A779702DAFAB612FBA1B0C0794FA84EC3F2F10266B979A77A0991E
A6610FA53C49D525365B801CC6DCE77627BEA48A41938433B5E5E3C0E98274AD
10CD674D069895289B618ECBCF60EA707FC5B2D3E9EA80149E53C699881A913A
EBF5492949A4DBEC1CE544DA322515A0A4AA093F029A596C0CDDC48AE3BC583F
E84C13CF258221F17B74177556E889E2951F3CCE594C5EEBD97F58B5311478
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSBM10
%!PS-AdobeFont-1.1: MSBM10 2.1
%%CreationDate: 1993 Sep 17 11:10:37
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSBM10) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSBM10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 63 /emptyset put
dup 67 /C put
readonly def
/FontBBox{-55 -420 2343 920}readonly def
/UniqueID 5031982 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6A66A4000A13D5F68BFF326D
1D432B0D064B56C598F4338C319309181D78E1629A31ECA5DD8536379B03C383
D10F04E2C2822D3E73F25B81C424627D3D9A158EAB554233A25D3C6849ABA86F
1F25C1667CB57D2E79B7803083CB7CC0616467F68450D9A3FEAB534EB9721003
DBFEEFD050F3AC3492F5C74162A9A531ECEC0F47610B4940E946D21CAA771D30
A6C27ECBA11708CC46C62396BF9D1990D579D0C394899D24FE7A4382EA18E7E1
160E7283AF5BE17254790628E79FCC206F28B5566075B3A5697D5209062544FF
D85FD89D6F43D6588B242AB2666B5D2861CD38A8CE676503EDFAE84D12A71E77
8405E468FE391F4F3F50D2C57ED55512036B0DB8E76A7EF413ED08673E56DE2C
16A3B65CD478433C0D2F9FEC4E662D54DAA43CFA6957D2A9AF8979BE06F70B68
ED4C8C493D6DAC4971A3F1D010A7726D084EC1074FECD7D12D72AE16C26194AF
21AF5774D9B860EEE8608D34F150092F09C19959BAA670022B9A9F263CD391E3
74DD1D1B4CD4D75273CAA4E37F68C631723E08FA35AD34C0AFB4621AE6689861
854D16CE1C375FD159A337E221A6FF1CFFB5693A0623E7EBB58C2969F590D081
AD92DD9E5322E26D6A15023664AC73A355998BCC48ADD0E7A4BC79790519606F
A1FEF6075033BCD422EE8233B83D1E7C20043280D531223D5AD4D5B41669F884
95CE4D6DDE819B588742B930C579EDF743F2C74C95F717FAA6154FADC3FE2975
F59CFB1C1A29059487E75C48505BAEAD7145667D4E18E46E610C868A257173ED
0D30EAA4C090854DD8378E92D0A376226EA7DA63798F247BAC770FE26D70E72F
90CCFAADF118304646955A75A299EF090B93F8CA49FEADB79026CBAA7544F52F
0FFB5569AB5F2E7E293F61AA441605791CA1582DBDCEA4B072AC40AAF3200EEA
B93DB1F53DAAAC15B2D6950E8ECB51FF7B032AA14CC1DF75CBCA0EA82BBA4D08
60BDB0DC10683591F060569AD0CD295CE6E32C507E387F261C397EBEF0B13D12
C6D7486C750511149FD12C1C1A222B6F509E84337102F1467170FD1707C75A5F
AB032434DAFE80426060A7BD9FE7759AC356EFD6E589E2BED147D2AF237666E2
091336E9FD7C78C2D3E285692CB09D446397400E13DA8BBD4104E29F7BBE1479
2E063C962E22D39098476E30986ABAF4760EB53CF0F89FA13416C2D53E26C484
8563384653E34E80E3A9EBD25227DA3B47B3FBD65585FA114D09D9409398510D
70D112721C088B82688DF6ACAAB157A9A6652C29C807ECADFA8FB85348712ADC
5B6BDB270C13FFC636D2B75340FD122448773816D1DBA6F81DCC984A76E0BF04
AD839A7237BB912D8A1F892A600DFF10487DFB0459CAEBF78C3B00BE1799FCF8
C475566F7377182CE8B829A2738E4638F84A12539360F54507F31DBA73F4897C
C47F8FCDA73BE776D6D4D6C96C279C54A16BC0ADC8C683B367F50718F23915BB
B813A2FFDE9623D4DA552AC13ED8FB28A6F14279ED6FBCABDAC1E795EC3DAB29
D58F73F1A019E2A295C10BBFBDA795ABCA54D3708C5BE0DCAC13F3D64D0E4635
48B55A8433B6F71F61B0276066BFBC65EA16BF48F2E27D40BF747243A9D4FDD1
2218AA446A71A0C507889FC6D90BA332D24E177AF5A68654D9B07B3028D30B08
208435760AC59F9B3D2A1C54E53398B7F0647F385E98D83C0D90D523
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueID 5000793 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3C8578EF9A20A0E06E
4F7ADDAF0E7D1E182D115BF1AD931977325AD391E72E2B13CC108E3726C11099
E2000623188AAAC9F3E233EB253BDD8B0A4759A66A113E066238B0086AC1B634
5ABFF90E4B5ED3FA69C22541981B2BFC9710AEF6B50A8BB53431C7B4D380D721
639E005D6B4688EE16BFF48443E7C9E5FB5BC5883E271CB03428966C96B6988B
2C9127404E8C64B122D405610B1207E61D6CB678BF414E64299C22D6B8DA233B
8E0E897EEAF81E43E962BD1DE1D8F24C8350761B0E688E433D01BCC9ADD5857E
BE9564F01D501D5F99C4272CA490100395D23DEC1BE59A6DE8D20B90C61434C9
062B6856C5C61184BD58F20E01B447F6140CB149BD370D59069F121FCA8AC937
4A86AF9E00E141BE1F2B0DEF30A4AC17817E4B58B1A8921B990F237E64A938AD
284A1DAB4F3BF58231B22F57219F9BF0E38585D631CF24EB1DDCBB1EA6E3DB31
88D7C3F8D9EAF27F7239557A2D2EA7AC5AED0DC02CDB0A2C9E4D64C24C3616F3
AA98D473C46596DC975C149FD66CE806C4529D92B0173BBCDA0D18B2956E0F51
179D7861557A915D2AA59CE21800265DAF737E83C7B4E9C41F80195E51A95158
F9CEAFA5ABDEBCDF332BC7107FEA70FDE84269ACCD15BB35D961846217D54B02
88995D6A3304BF88EEA7ACB9C548195606C4E601789F3562E89A69C40BEA9167
D3F49BF39DB2D57630674554F297DA605A079220182EA752B31072D46E091410
D021BFC8B8A1E4D6E2AC110AE143BE32F407F6AAD2FEE259839BF6AEE1B7FAC4
7597F8E3347EFB48F3DDE6E9198354D1D408AD5657D41F5D11FE6B805FBFA2E2
F92F6332DDAD4AE77D30758E37B67866D6CEA29B6027812977B8D68A570904DF
47550EA6773ED0DFE830F8B80BBECAA80EC33DC5ACDD4E683E5B688F5D1F14FA
A5778EE610C3FCF3429021E2A014F8B0B97BEAFFA7F3868E61B35678D54173BC
93A7BF29949C2814BB364594DA9ABAA2F2AEC654B0FB8C022B5775582D8CBA0D
D1AD19333BD74415F40C24E839E48B674B003359EAB05AC8A0ABD358DA7E999D
1AFE8359E410DE798A76FBF289C701E5DC730913F6FC2FD9693C34013B47C8CF
84670F3925D2FB69CA3C2C61029C9FD1066AD2C1D640A556E226D7056118CBBB
CB4C859D64B04B08751F3EFBDEF6F1F352DCBD682F73C89910D7A937D07ED50E
5DCA560DBAD3A96F708B639F62730A566E7D4D3C6C89BF3868707B721ED3ECD8
F185314C9D5B4E8456BC0B096F99F1A9AD67E40E0EBF19B06BFE1DE82BA32980
AA
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI10
%!PS-AdobeFont-1.1: CMMI10 1.100
%%CreationDate: 1996 Jul 23 07:53:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
/UniqueID 5087385 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
9560176671A33FC55340CD04C2DE46FD812FC2711A85E61442AB93E8157A603D
91023151267FB376665DDADCADD27FB02C8ED543E20516DA8FF6AF77848523C5
86A500942F5D59B75422A42CF5876232320E2F1C54F253DE61FB2466D96F1F25
31499278FF020F783D34144843E8EDA8454892F14751857C5D90C3320AD4362E
9D080C4C8EA27FF7A1EE12EF9303B68A8D71912344F9A2C976D6202438BAF801
38B95E9AFC28215E35703FA3992E84F4734B7E8252C52296D37961DD6E82A823
E34969C176AC33087ECC11EA00D614E046CBA35116D984D79AC079DCC4A0A065
B202F6138E68B23CE5F2D2AC7227D719F31CDD21B02EBA22D27E455163BE0E35
00B5D7CE7A54457C84BDE159EFCD53E32A8D70F26AC6F6E0342B2A3F18A05D0C
8AD41141C5CA74C97B265DFC028DC213B85D15ECDB9DF8C17811B122E5223EAC
94010724889D1AF930E6851E15C3BAE9B0F5D4C8D4C060E38A03FC594E3480BB
60ED16A5A36DFEA821F45CCD60C01230878B299CA37238F18EBCAA5E96BAABCE
2693990FF99521A8EA706A72BB50D16264F1C50E30D35C91B2E3F12A832C1935
C2F1B01A2889ADDFEC9B977F5066CD6691E5E9F228B8B93ACF1D97D937A8C1D7
20A9E5D38DBA5293C68AD7DD226B55A107C31A581DB2BB22D4C2B4FCD9DBC595
0490EBB5535D7575891EC45AAF38B836825EB4F91605B99F3BD679A6DE53C2FA
824FE970944D5CC982A113D7E196CF855BB2CE2ED8BAC936CD6953C45420E68E
5F30DE6DCA0BBA00F79F3677DCC1104D6788D5BFB45F0E6063DE631A94388942
FB50B4D24A2F2FA0EDCEC461CCBFFDD7419E84FB54C54A482C66E9594A4C1064
903476C6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSBM7
%!PS-AdobeFont-1.1: MSBM7 2.1
%%CreationDate: 1992 Oct 17 08:30:50
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSBM7) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSBM7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 63 /emptyset put
readonly def
/FontBBox{0 -504 2615 1004}readonly def
/UniqueID 5032014 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6A66A4000A13D5F68BFF326D
1D432B0D064B56C598F4338C319309181D78E1629A31ECA5DD8536379B03C383
D10F04E2CB7C8461B10646CD63AFEB7608468CA0FCFC4D3458FB43D22879B515
27DD9CCF44C2BFCD95A4DE911E4915FBC02335E9999FD9B546134081D6DA3792
EC4A76DEBA77635BE52E09986268A919CB48B5EFB1A1301EE0683CB5709BC8CE
D819D799020CBA673BA39C911075501395B1FD20EAD392C9D5A8C9FD1198C737
D1A614CF0C0432F29DDEB4BF9DB026908DBE89EE522B7D55DE9BF64AFBE6248E
2E10466655EB9083E7D23E3F0EE26154F191BEBC9987930CD4B4CABE1275BDF9
8755EF3D531FDF91D54954FC53F15A38D1E8F8D1E36447484FA2C09D34813615
838B6330FEAE536D08376E4A0FDDF58CDF5647C9F1FF3A7D1ACAD376DB3CADB6
9459F7A5D4F1864863B79E9F93A1EDE8B99C3138D26227C01F6FE0AAC800F2E5
94DD81CF7B1355B642CE45CB532FC5B535D66EDFFEA076C009E87406D9772D71
848C3C53B7496A5D6B58679EF11E114C5F457C6A0D3CDE50278E4A89D5393B1C
F877CF4E2142A4D045C4AA9138105D748903BACC28FD43DFEDB341E1FCDBE2EA
D412498FBB5374D6836CFBEB13D4C2B7B9625C25B037FDA9DCC42F5679C4B3C1
6340E341F73A9215092C0ACC505A859FA935BE5172F4F6D4A30E73914DBD5297
7FE0CEB5CD0B92176B8174870F9FAFD22BD2ADDE02B5705B5FAFDEE372F17857
40C1B4024C9F04375B9CF997E9D0C0F7D82465D678BB9810016E6BCC9C4374EA
6B2CC834894FDCA891643D9417369458A630FD498794823FFA55705315F0687E
7592A5DFC8B8D6FE2F3C64B4A4F9D37F5F2200BAA277F2E0BA8E5A84ABC10319
7BA47E1E8D80405541FC64FF71B84C0010920AAA4DD4BEC0D71E447A356CE717
6FCD3B21A07E2B32DF50D54BDBD96C634197E502FCA75F122E91314F241D6D4F
C28E2867440D324E80504245CDF43A7106CFF64E8BA7809A292EF017796AE18E
F2CD78CCF84F82685BB3A147E4A5B7350541966264D191C1BEC22F6F0FF82DA8
1D43CD551DF0F9CCC2142D03BE81DFBE02CA779D7E6E51CF2F1D7D48A788F42C
908AF42E7A50C5BC65AE2FDDBA97B01E600D24882D98FFEA0EC3807B36688149
C199CF15A74FA8DBB731CA8FD16C13491E39309AC7C8C47FEF5AC2CE02A2652A
7416CBB2486D61DA08323C6BB1BCE4D3CC421DEB14276C7F1294CC3B5BA2BAFA
C9053BE2615B7F28FF7418CAC67326884A2CC3402BFD71495D6BB7EFC64450D1
C94E41977843140A6FD0340C39C88E86CC0C058B87234810E1E900ADFB99C232
12C88EF58715C1998419546382D0CFAE4297C48C2BD7
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 39158280 55380996 1000 600 600 (mainlncs.dvi)
@start /Fa 135[38 38 1[38 38 38 38 1[38 38 1[38 38 3[38
38 1[38 38 38 38 38 12[38 1[38 23[38 6[38 3[38 38 38
45[{ .85 ExtendFont TeXBase1Encoding ReEncodeFont }24
74.7198 /Courier rf /Fb 134[37 4[22 37 4[41 1[19 2[19
41 1[22 37 7[22 1[22 28[39 4[37 7[37 37 6[22 22 5[32
34[{ TeXBase1Encoding ReEncodeFont }18 67.2474 /Helvetica-Bold
rf /Fc 196[83 59[{}1 83.022 /LASY10 rf /Fd 131[18 2[37
2[37 40 22 37 26 1[40 40 40 58 18 37 1[18 40 1[22 37
40 37 40 37 1[37 1[22 1[22 3[62 2[40 3[44 13[47 47 2[38
38 38 1[22 12[22 18 1[26 22 22 1[47 3[31 34[{
TeXBase1Encoding ReEncodeFont }40 65.7529 /Helvetica-Bold
rf /Fe 241[31 10[31 2[48{ TeXbbad153fEncoding ReEncodeFont }3
61.4362 /CMSY10 rf /Ff 180[28 28 74[{}2 58.1154 /stmary7
rf /Fg 180[33 33 74[{}2 83.022 /stmary10 rf /Fh 180[31
31 74[{}2 74.7198 /stmary9 rf /Fi 174[72 4[61 76[{
TeXBase1Encoding ReEncodeFont }2 99.6264 /Times-Roman
rf /Fj 188[72 67[{}1 99.6264 /MSBM10 rf /Fk 174[50 45
9[49 70[{ TeXBase1Encoding ReEncodeFont }3 83.9849
/ZapfChancery-MediumItalic rf /Fl 159[46 1[50 39[0 3[50
46[37 3[{ TeXbbad153fEncoding ReEncodeFont }5 74.7198
/CMSY10 rf /Fm 194[58 19[29 29 40[{ TeXf7b6d320Encoding ReEncodeFont }3
74.7198 /CMR10 rf /Fn 194[37 1[21 21 58[{
TeXaae443f0Encoding ReEncodeFont }3 74.7198 /CMMI10
rf /Fo 134[33 33 50 33 37 21 29 29 37 37 37 37 54 21
33 21 21 37 37 21 33 37 33 37 37 8[46 62 46 1[42 37 46
54 46 2[62 42 1[33 25 1[54 46 46 54 50 46 46 2[50 50
50 1[25 1[37 2[37 1[37 37 1[37 21 19 25 19 2[25 25 25
36[37 2[{ TeXBase1Encoding ReEncodeFont }61 74.7198 /Times-Italic
rf /Fp 2[37 171[55 9[45 71[{}3 74.7198 /Symbol rf /Fq
192[52 63[{}1 58.1154 /MSBM7 rf /Fr 185[38 70[{
TeXBase1Encoding ReEncodeFont }1 65.3216 /ZapfChancery-MediumItalic
rf /Fs 161[39 2[39 36[0 53[45{ TeXbbad153fEncoding ReEncodeFont }4
58.1154 /CMSY10 rf /Ft 149[12 12 105[{ TeXBase1Encoding ReEncodeFont }2
41.511 /Times-Italic rf /Fu 184[25 71[{}1 41.511 /Symbol
rf /Fv 196[16 59[{ TeXaae443f0Encoding ReEncodeFont }1
58.1154 /CMMI10 rf /Fw 130[23 1[23 2[26 1[26 1[16 1[23
1[29 29 29 3[16 16 2[16 26 2[29 29 8[36 6[42 36 3[32
8[39 67[{ TeXBase1Encoding ReEncodeFont }20 58.1154 /Times-Italic
rf /Fx 131[17 1[34 34 34 49 34 37 19 34 22 1[37 37 37
56 15 34 1[15 37 37 19 37 37 34 37 37 15 37 1[19 1[19
3[63 2[41 3[45 13[45 45 2[39 39 39 1[19 12[22 19 39 26
22 22 5[24 30[34 3[{ TeXBase1Encoding ReEncodeFont }46
67.2474 /Helvetica rf /Fy 174[56 50 9[54 70[{
TeXBase1Encoding ReEncodeFont }3 93.3165 /ZapfChancery-MediumItalic
rf /Fz 145[42 3[23 32 32 7[51 45[55 8[83 19[65 17[42
2[65{ TeXbbad153fEncoding ReEncodeFont }10 83.022 /CMSY10
rf /FA 188[54 3[60 63[{}2 74.7198 /MSBM10 rf /FB 134[42
42 1[42 1[28 32 37 1[46 42 46 69 23 46 1[23 46 42 28
37 46 2[42 8[60 2[60 55 6[78 6[51 55 60 60 13[42 42 42
42 42 2[21 4[28 28 37[46 2[{ TeXBase1Encoding ReEncodeFont }36
83.022 /Times-Bold rf /FC 136[42 1[42 2[42 2[42 7[42
1[42 42 42 14[42 42 4[42 1[42 2[42 3[42 42 42 4[42 1[42
13[42 46[{ .85 ExtendFont TeXBase1Encoding ReEncodeFont }19
83.022 /Courier rf /FD 159[35 34[42 1[23 23 58[{
TeXaae443f0Encoding ReEncodeFont }4 83.022 /CMMI10 rf
/FE 162[23 1[23 29[65 17[65 1[32 32 40[{
TeXf7b6d320Encoding ReEncodeFont }6 83.022 /CMR10 rf
/FF 2[41 15[41 135[36 19[62 9[50 71[{}5 83.022 /Symbol
rf /FG 105[42 24[25 19 25 37 37 37 54 37 42 21 37 25
1[42 42 42 62 17 37 17 17 42 42 21 42 42 37 42 42 17
42 1[21 1[21 3[71 2[46 50 1[58 50 6[21 3[50 54 54 50
50 76 42 44 44 44 21 21 42 4[42 1[42 42 42 21 21 25 21
44 29 25 25 17 50 1[42 1[27 30[37 37 2[{ TeXBase1Encoding ReEncodeFont }
70 74.7193 /Helvetica rf /FH 130[22 17 22 33 33 33 47
33 37 18 33 22 1[37 37 37 55 15 33 1[15 37 37 18 37 37
33 37 37 1[37 1[18 1[18 3[62 1[47 40 44 47 51 44 1[47
55 37 2[18 47 1[40 44 47 47 44 44 67 37 38 38 38 18 18
37 37 1[37 37 37 1[37 37 37 18 18 22 18 38 26 22 22 1[44
1[37 37 23 18 30[33 2[{ TeXBase1Encoding ReEncodeFont }77
65.7529 /Helvetica rf /FI 145[31 44 3[17 16[38 7[38 80[{
TeXBase1Encoding ReEncodeFont }5 61.4362 /Times-Italic
rf /FJ 31[42 101[32 37 37 55 37 42 23 32 32 42 42 42
42 60 23 37 23 23 42 42 23 37 42 37 42 42 11[60 46 42
51 1[51 60 55 1[46 5[51 51 60 55 51 51 6[28 11[21 28
3[28 28 37[42 2[{ TeXBase1Encoding ReEncodeFont }47 83.022
/Times-Italic rf /FK 188[60 67[{}1 83.022 /MSBM10 rf
/FL 139[25 29 33 8[21 1[37 3[33 42 37 26[46 4[54 8[37
37 37 37 1[37 37 37 2[19 46[{ TeXBase1Encoding ReEncodeFont }18
74.7198 /Times-Bold rf /FM 172[33 40 3[43 10[40 67[{
TeXBase1Encoding ReEncodeFont }4 59.7758 /Times-Roman
rf /FN 11[37 10[33 7[33 23[46 25[25 23[75 37 1[33 33
22[15 1[33 37 37 54 37 37 21 29 25 37 37 37 37 58 21
37 21 21 37 37 25 33 37 33 37 33 1[37 1[25 1[25 46 54
54 71 54 54 46 42 50 54 42 54 54 66 46 54 29 25 54 54
42 46 54 50 50 54 2[42 42 42 1[21 37 37 37 37 37 37 37
37 37 37 21 19 25 19 2[25 25 25 4[30 30[42 42 2[{
TeXBase1Encoding ReEncodeFont }89 74.7198 /Times-Roman
rf /FO 194[45 19[23 23 40[{ TeXf7b6d320Encoding ReEncodeFont }3
58.1154 /CMR10 rf /FP 141[19 2[29 8[19 45[29 29 29 29
29 29 29 29 49[{ TeXBase1Encoding ReEncodeFont }11 58.1154
/Times-Roman rf /FQ 184[35 71[{}1 58.1154 /Symbol rf
/FR 214[24 24 40[{ TeXf7b6d320Encoding ReEncodeFont }2
61.4362 /CMR10 rf /FS 201[31 31 31 31 31 31 31 48[{
TeXBase1Encoding ReEncodeFont }7 61.4362 /Times-Roman
rf /FU 22[37 57[28 23[83 2[37 37 21[40 17 40 37 42 42
60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 42 28
37 42 37 42 37 28 42 1[28 1[28 2[60 78 60 60 51 46 55
60 46 60 60 74 51 1[32 28 60 60 46 51 60 55 55 60 76
1[47 47 47 23 23 42 42 42 42 42 42 42 42 42 42 23 21
28 21 1[42 28 28 28 65 34[46 46 2[{ TeXBase1Encoding ReEncodeFont }88
83.022 /Times-Roman rf /FV 134[50 50 1[50 55 33 39 44
55 55 50 55 83 28 2[28 1[50 33 44 55 44 55 50 8[72 1[72
1[66 1[72 78 61 78 1[94 66 2[39 1[78 61 66 1[72 1[72
6[33 3[50 50 50 50 50 50 3[33 25 44[{ TeXBase1Encoding ReEncodeFont }45
99.6264 /Times-Bold rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4
end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop Black Black Black Black 707 448
a FV(A)25 b(Full)g(P)o(atter)o(n-based)h(P)o(aradigm)e(f)n(or)h(XML)g
(Query)h(Pr)n(ocessing)863 740 y FU(V\351ronique)18 b(Benzak)o(en)1562
710 y FS(1)1596 740 y FU(,)i(Giuseppe)f(Castagna)2276
710 y FS(2)2311 740 y FU(,)h(and)g(C\351dric)g(Miachon)3032
710 y FS(2)979 887 y FP(1)1050 914 y FN(LRI,)d(UMR)i(8623,)j
FM(C)t FN(.)t FM(N)t FN(.)t FM(R)t FN(.)t FM(S)t FN(.)r(,)15
b(Uni)n(v)o(ersit\351)k(P)o(aris-Sud,)f(Orsay)-5 b(,)19
b(France)723 978 y FP(2)796 1005 y FM(C)t FN(.)t FM(N)t
FN(.)t FM(R)t FN(.)t FM(S)t FN(.)r(,)c(D\351partement)k
(d'Informatique,)h(\311cole)f(Normale)g(Sup\351rieure,)g(P)o(aris,)f
(France)523 1192 y FL(Abstract.)28 b FN(In)15 b(this)f(article)g(we)g
(in)m(v)o(estigate)g(a)h(no)o(v)o(el)g(e)o(x)o(ecution)g
(paradigm\227ML-lik)o(e)h(pattern-matching\227)523 1283
y(for)25 b(XML)g(query)i(processing.)f(W)-6 b(e)25 b(sho)n(w)h(that)f
(such)h(a)f(paradigm)i(is)e(well)f(adapted)j(for)e(a)g(common)i(and)523
1375 y(frequent)18 b(set)g(of)f(queries)i(and)f(adv)o(ocate)g(that)g
(it)f(constitutes)h(a)f(candidate)i(for)e(ef)n(\002cient)h(e)o(x)o
(ecution)g(of)g(XML)523 1466 y(queries)f(f)o(ar)g(better)f(than)h(the)f
(current)h(XP)o(ath-based)g(query)h(mechanisms.)f(W)-6
b(e)16 b(support)h(our)g(claim)f(by)h(com-)523 1557 y(paring)g
(performances)h(of)f(XP)o(ath-based)g(queries)g(with)f(pattern)h(based)
h(ones,)f(and)g(by)g(comparing)h(the)e(latter)523 1648
y(with)j(the)g(tw)o(o)g(ef)n(\002cienc)o(y-best)g(XQuery)g(processor)h
(we)f(are)g(a)o(w)o(are)g(of.)523 1854 y FV(1)99 b(Intr)n(oduction,)27
b(Moti)o(v)o(ations,)d(and)h(Goals)523 2026 y FU(In)31
b(this)h(article)f(we)h(in)m(v)o(estigate)e(a)i(no)o(v)o(el)e(e)o(x)o
(ecution)f(paradigm\227namely)f(ML-lik)o(e)j(pattern-)523
2126 y(matching\227for)20 b(XML)j(query)e(processing.)g(W)-7
b(e)24 b(sho)n(w)e(that)h(such)f(a)h(paradigm)e(is)j(well)f(adapted)523
2225 y(for)31 b(a)h(common)e(and)h(frequent)f(set)j(of)e(queries)g(and)
g(thus)h(could)f(be)g(used)h(as)g(a)g(compilation)523
2325 y(tar)o(get)20 b(for)g(XQuery)-5 b(.)19 b(More)h(precisely)-5
b(,)19 b(to)h(do)h(so,)f(we)h(endo)n(w)f(the)g(pattern-matching)e
(based)i(lan-)523 2425 y(guage)c FK(C)p FU(Duce)i(with)g(an)f(SQL-lik)o
(e)g(query)g(language)e(that)j(we)g(introduce)e(in)i(this)g(article)f
(and)g(dub)523 2524 y FK(C)p FU(QL.)27 b FK(C)p FU(Duce)f([4,)13
b(20])26 b(\(pronounce)d(\223seduce\224\))j(is)h(a)g(strongly)f(and)g
(statically)h(typed)e FJ(pattern-)523 2624 y(based)17
b FU(higher)n(-order)c(functional)h(programming)e(language)i(for)h
(XML.)h(It)g(is)g(standard)f(compliant)523 2723 y(\(XML,)j(Namespaces,)
g(Unicode,)g(XML)h(Schema)f(v)n(alidation,)f(DTD,)i(etc.\))g(and)f
(fully)g(operati)n(v)o(e)523 2823 y(and)h(implemented)f(\(the)i
(distrib)n(ution)e(of)i FK(C)p FU(Duce/)p FK(C)p FU(QL)f(is)i(a)n(v)n
(ailable)e(at)h(www)-5 b(.cduce.or)o(g\).)16 b(One)523
2923 y(of)i(the)h(distinguishing)d(characteristics)i(of)g
FK(C)p FU(Duce)g(is)i(its)f(pattern)f(algebra.)f FK(C)p
FU(Duce)h(inherits)g(and)523 3022 y(e)o(xtends)h(XDuce)g([21])g
(pattern)g(algebra)g(and)g(implements)g(it)h(by)g(a)g(v)o(ery)f(ef)n
(\002cient)g(\223just)h(in)g(time\224)523 3122 y(compilation)30
b([19].)h FK(C)p FU(QL)h(is)h(a)f(query)e(language)g(in)i(which)g
(queries)f(are)h(written)f(using)h(pat-)523 3222 y(terns)21
b(\(in)g(the)g(sense)g(of)g FK(C)p FU(Duce)g(patterns\))f(and)g(where)h
(the)g(e)o(x)o(ecution)e(mechanism)g(is)j(based)f(on)523
3321 y(pattern-matching)g(\(in)k(the)g(sense)g(of)f(ML-lik)o(e)g
(languages\).)f FK(C)p FU(QL/)p FK(C)p FU(Duce)h(patterns)g(are)g(more)
523 3421 y(similar)h(to)g(ML)g(patterns)f(than)g(to)h(XP)o(ath)f(e)o
(xpressions.)f(W)m(ith)i(respect)g(to)f(XP)o(ath)h(e)o(xpressions,)523
3520 y FK(C)p FU(Duce)c(patterns)h(are)f(f)o(ar)h(more)f(declarati)n(v)
o(e)f(inasmuch)g(as)j(while)e(the)h(former)e(strictly)i(indicate)523
3620 y(na)n(vigation)h(paths,)h(the)g(latter)h(re\003ect)f(the)h(whole)
f(structure)f(of)i(matched)e(v)n(alues)h(and)g(the)o(y)g(can)523
3720 y(be)c(composed)f(by)g(applying)g(boolean)f(combinators.)648
3822 y(T)-7 b(o)24 b(demonstrate)f(that)h(pattern-matching)e(is)j(rele)
n(v)n(ant)e(for)h(query)f(compilation)g(and)h(e)n(v)n(alu-)523
3922 y(ation)e(in)h(the)g(XQuery)f(conte)o(xt,)f(we)i(also)g
(introduce,)e(for)h(free,)g(some)h(syntactic)f(sugar)g(to)h(yield)523
4022 y(an)31 b(XQuery-lik)o(e)f(programming)e(style.)k(W)-7
b(e)32 b(call)g(this)g(e)o(xtension)e FK(C)p FU(QL)2742
4034 y FI(X)2789 4022 y FU(.)i(W)-7 b(e)33 b(chose)e(to)g(e)o(x-)523
4121 y(periment)23 b(with)h FK(C)p FU(QL)1186 4133 y
FI(X)1258 4121 y FU(as)h(we)f(w)o(anted)g(to)g(fully)f(e)o(xploit)g
(the)h(already)f(implemented)f FK(C)p FU(Duce')-5 b(s)523
4221 y(pattern)24 b(compilation)e(schema)j(and)f(runtime)f(support)g
(rather)h(than)g(re-implementing)d(it)26 b(in)e(the)523
4320 y(conte)o(xt)19 b(of)h(XQuery)-5 b(.)648 4423 y(Se)n(v)o(eral)21
b(proposals)g(for)g(de\002ning)g(query)f(languages)h(for)g(XML)h(ha)n
(v)o(e)g(been)f(made)g([2,)13 b(6,)g(14,)523 4523 y(15])28
b(and)f(a)i(comparati)n(v)o(e)d(study)i(can)g(be)h(found)d(in)j([1].)e
(Among)g(them)h(we)h(choose)f(to)g(brie\003y)523 4622
y(recall)k(the)g(main)f(features)g(of)h(XQuery[15])d(as)k(\(one)e(of\))
g(our)g(purpose)f(is)j(to)f(sho)n(w)g(that)f(the)523
4722 y(e)o(xperiments)18 b(performed)g(with)i FK(C)p
FU(QL)h(apply)e(ob)o(viously)f(to)i(it.)648 4825 y(XQuery)26
b([15,)12 b(17])26 b(is)i(becoming)d(the)i(W3C)h(standard)e(in)h(terms)
h(of)e(query)g(languages.)f(An)523 4924 y(earlier)f(proposal)f(w)o(as)i
(Quilt)f([11],)f(which)h(borro)n(wed)d(man)o(y)i(functionality)g(from)g
(XP)o(ath)h([13],)p Black Black eop end
%%Page: 2 2
TeXDict begin 2 1 bop Black Black 523 448 a FU(XQL)26
b([23],)f(XML-QL)g([16],)g(SQL,)h(and)g(OQL.)f(XQuery)g(is)i(a)g
(strongly)e(and)g(statically)h(typed)523 548 y(functional)18
b(language)h(whose)h(type)f(system)i(w)o(as)g(lar)o(gely)e(inspired)g
(by)h(XDuce)g([21].)p Black Black 523 684 a FH()
560 750 y({)e(f)n(or)29 b($b)17 b(in)h($bib)o(lio//book,)706
817 y($a)f(in)h($amaz)o(on//entr)r(y)596 883 y(where)f($b/title)g(=)i
($a/title)596 949 y(retur)r(n)633 1016 y()706
1082 y({)f($b/title)f(})668 1149 y({)8
b($a/pr)q(ice/te)n(xt\(\))h(})706 1215 y()706
1282 y()797 1348 y({)18 b($b/pr)q(ice/te)n(xt\(\))f(})706
1414 y()633 1481 y()34
b(})523 1547 y()1693 653 y FU(A)19
b(query)e(is)j(e)o(xpressed)e(by)g(a)h(FL)-6 b(WR)20
b(e)o(xpression:)d FG(f)n(or)h FU(\(it-)1693 753 y(eration)30
b(on)g(a)i(set)f(of)g(nodes\),)f FG(let)g FU(\(v)n(ariables)g
(binding\),)1693 853 y FG(where)18 b FU(\(\002lter)h(the)g(elements)f
(according)f(to)i(a)h(condition\),)1693 952 y(and)j FG(retur)r(n)f
FU(\(construct)g(the)h(result)g(for)g(each)g(node)g(satis-)1693
1052 y(fying)e(the)h FG(where)f FU(clause\))h(The)f(query)g(on)h(the)g
(side)g(is)i(an)1693 1152 y(e)o(xample)c(of)i(FL)-6 b(WR)22
b(e)o(xpression)f(\(it)h(is)g(the)g(Q)3067 1165 y FS(5)3124
1152 y FU(query)f(of)1693 1251 y(the)h(XML)h(Query)f(Use)h(Cases\).)h
(P)o(attern)e(e)o(xpressions)f(in)1693 1351 y(XQuery)-5
b(,)27 b(such)h(as)i FG($amaz)o(on//entr)r(y)c FU(or)j
FG($a/pr)q(ice/te)n(xt\(\))p FU(,)1693 1451 y(are)49
b(based)h(on)f(XP)o(ath)h([13].)f(Man)o(y)f(w)o(orks)i(among)1693
1550 y(them)19 b([12])h(attempts)g(to)g(optimise)g(XQuery)f(e)n(v)n
(aluation.)523 1656 y(The)28 b(immanent)f(purpose)g(of)h(this)g
(article)h(is)g(to)f(in)m(v)o(estigate)f(whether)g(pattern-matching)e
FJ(\340)j(la)523 1755 y FK(C)p FU(Duce)23 b(is)i(well)f(adapted)f(for)g
(main)g(memory)f(XML)i(query)e(processing.)g(The)i(answer)f(is)i(posi-)
523 1855 y(ti)n(v)o(e)e(and)g FK(C)p FU(Duce')-5 b(s)24
b(patterns)f(and)g(pattern-matching)d(mechanism)i(can)i(serv)o(e)f(as)h
(an)g(e)o(x)o(ecution)523 1955 y(mechanism)e(for)h(XQuery)-5
b(.)22 b(Indeed,)g(the)i(need)f(for)f(ef)n(\002cient)i(main)f(memory)f
(query)g(processing)523 2054 y(is)28 b(still)h(of)d(crucial)h
(interest.)g(As)h(pointed)e(out)h(by)f(man)o(y)g(w)o(orks)h(a)h(b)n
(unch)e(of)h(application)e(sce-)523 2154 y(narios)c(such)g(as)i
(message)e(passing,)g(online)g(processing)f(do)h(not)h(manipulate)e
(huge)g(documents.)523 2253 y(W)-7 b(e)22 b(adv)n(ocate)d(that)i
FK(C)p FU(Duce)f(patterns)g(are)g(a)h(better)f(candidate)f(for)h(XML)h
(patterns)f(\(again)f(in)h(the)523 2353 y(sense)h(of)f([10]\))e(than)i
(path)g(e)o(xpressions.)e(W)-7 b(e)22 b(base)e(our)f(plea)h(on)g(the)g
(follo)n(wing)f(observ)n(ations:)p Black 560 2543 a(1.)p
Black 41 w FK(C)p FU(Duce)c(patterns)g(are)g(more)f(declarati)n(v)o(e:)
g(dif)n(ferent)g(patterns)g(can)h(be)g(combined)e(by)i(boolean)664
2642 y(combinators,)k(thus,)h(in)h(a)g(declarati)n(v)o(e)e(w)o(ay)-5
b(.)20 b(Furthermore,)e(the)o(y)i(can)h(represent)e(the)i(whole)664
2742 y(structure)k(of)h(matched)f(v)n(alues.)h(This)g(allo)n(ws)g(the)g
(capture)f(of)h(lar)o(ger)f(quantities)h(of)g(infor)n(-)664
2842 y(mation)20 b(in)g(a)h(single)f(match.)p Black 560
2947 a(2.)p Black 41 w FK(C)p FU(Duce)i(patterns)f(are)h(more)f(ef)n
(\002cient:)g(our)g(measurements)g(sho)n(w)g(that)h(a)g(query)f
(written)g(in)664 3047 y FK(C)p FU(QL)835 3059 y FI(X)910
3047 y FU(using)27 b(the)h(na)n(vigational)d(style)j(is)h(al)o(w)o(ays)
f(slo)n(wer)f(\(sometimes)g(e)n(v)o(en)f(after)i(some)664
3147 y(optimisation\))j(than)g(the)h(same)h(query)d(written)i(in)g
FK(C)p FU(QL)h(\(e)n(v)o(en)d(when)i(the)g(latter)g(is)h(ob-)664
3246 y(tained)23 b(from)g(the)g(former)f(by)h(an)h(automatic)e
(translation\).)g(Of)i(course)e(this)i(claim)g(must)g(be)664
3346 y(counterbalanced)18 b(by)j(the)h(f)o(act)f(that)h(our)f
(comparison)e(tak)o(es)j(place)f(in)g FK(C)p FU(Duce,)g(a)h(language)
664 3445 y(whose)d(implementation)d(w)o(as)k(speci\002cally)f(designed)
e(for)i(ef)n(\002cient)f(pattern)g(matching)f(res-)664
3545 y(olution.)k(Ne)n(v)o(ertheless)h(we)h(belie)n(v)o(e)f(that)h
(this)g(holds)f(true)g(also)h(in)g(other)f(settings:)h(the)f(f)o(act)
664 3645 y(that)e FK(C)p FU(Duce)f(patterns)h(can)f(capture)g(the)h
(whole)f(structure)g(of)g(a)h(matched)f(v)n(alue)g(\(compared)664
3744 y(with)24 b(paths)f(that)h(can)f(capture)g(only)g(a)h(subpart)e
(of)i(it\))g(mak)o(es)f(it)h(possible)g(to)f(collect)h(phys-)664
3844 y(ically)e(distant)h(data)f(in)g(a)h(single)f(match,)f(a)n(v)n
(oiding)g(in)i(this)f(w)o(ay)h(further)d(search)i(iterations.)664
3944 y(T)-7 b(o)25 b(put)g(it)g(simply)-5 b(,)24 b(while)h(a)g(path)g
(e)o(xpression)e(pinpoints)g(in)i(a)h(tree)e(only)h(subtrees)f(that)h
(all)664 4043 y(share)18 b(a)g(common)e(property)g(\(such)h(as)h(ha)n
(ving)f(the)h(same)g(tag\))f(a)h FK(C)p FU(Duce)g(pattern)f(does)g
(more)664 4143 y(as)k(it)g(can)f(also)g(simultaneously)f(capture)g(se)n
(v)o(eral)h(unrelated)e(subtrees.)523 4327 y(Our)g(claim)g(is)i
(supported)c(by)i(benchmark)e(results.)i(W)-7 b(e)20
b(performed)15 b(our)j(e)o(xperiments)e(in)j FK(C)p FU(Duce)523
4426 y(rather)25 b(than)g(XQuery)f(since)i(this)f(is)i(of)e(immediate)f
(set)j(up:)e(XP)o(ath/XQuery)e(patterns)i(are)h(im-)523
4526 y(plemented)19 b(in)j FK(C)p FU(Duce)e(as)i(simple)f(syntactic)f
(sugar)m(,)g(while)h(an)g(ef)n(\002cient)f(inte)o(gration)f(of)i
FK(C)p FU(Duce)523 4625 y(patterns)30 b(in)h(XQuery)f(w)o(ould)g(ha)n
(v)o(e)g(demanded)e(a)k(complete)d(re)n(writing)h(of)g(the)h(runtime)f
(of)g(a)523 4725 y(XQuery)22 b(processor)g(\(b)n(ut,)g(again,)g(we)i
(think)e(that)h(this)h(is)g(the)f(w)o(ay)g(to)g(go\).)f(So)i(instead)f
(of)f(com-)523 4825 y(paring)17 b(results)h(between)f(standard)g
(XQuery)g(and)g(a)i(v)o(ersion)e(of)g(XQuery)g(enriched)g(with)h
FK(C)p FU(Duce)523 4924 y(patterns,)23 b(we)h(rather)f(compare)g(the)g
(results)i(between)e FK(C)p FU(QL)h(\(the)f(standard)g
FK(C)p FU(Duce)g(query)g(lan-)p Black Black eop end
%%Page: 3 3
TeXDict begin 3 2 bop Black Black 523 448 a FU(guage\))21
b(and)h FK(C)p FU(QL)1086 460 y FI(X)1157 448 y FU(\(that)g(is)i
FK(C)p FU(QL)f(in)g(which)f(we)h(only)f(use)h(XQuery)e(patterns)h(and)h
(no)f FK(C)p FU(Duce)523 548 y(pattern\).)648 653 y(Furthermore,)e(in)k
(order)e(not)i(to)f(bias)h(the)g(results)f(with)h(implementation)d
(issues,)j(in)g(all)g(our)523 753 y(e)o(xperiments)k(with)i
FK(C)p FU(QL)1307 765 y FI(X)1385 753 y FU(we)g(a)n(v)n(oided,)f(when)g
(this)i(w)o(as)f(possible)2615 723 y FS(1)2649 753 y
FU(,)h(the)f(use)g(of)f(\223//\224)i(\(e)n(v)o(en)523
853 y(if)c(the)g(\223//\224-operator)d(is)j(a)n(v)n(ailable)g(in)f
FK(C)p FU(Duce\):)g(whene)n(v)o(er)f(in)i(our)f(tests)h(we)g(met)g(a)g
(\(XQuery\))523 952 y(query)f(that)i(used)f(\223//\224)h(\(e.g.)f(the)g
(query)f(earlier)i(in)f(this)h(section\))f(we)h(al)o(w)o(ays)g
(implemented)e(it)523 1052 y(by)21 b(translating)f(\(by)h(hand\))f(e)n
(v)o(ery)g(occurrence)f(of)i(\223//\224)h(into)f(a)g(minimal)g(number)f
(of)h(\223/\224.)g(Such)g(a)523 1152 y(solution)h(clearly)g(is)h(much)f
(more)g(ef)n(\002cient)g(\(we)h(program)d(by)i(hand)g(a)h(minimal)f
(number)f(of)h(\223/\224)523 1251 y(searches)k(instead)g(of)h(using)f
(\223//\224)g(that)h(performs)e(a)i(complete)e(search)h(on)g(the)g(XML)
h(tree\))f(and)523 1351 y(does)c(not)f(depend)g(on)g(ho)n(w)h
(\223//\224)g(is)h(implemented)d(in)i FK(C)p FU(Duce)g(\(in)f
FK(C)p FU(Duce)h(\223//\224)h(is)f(implemented)523 1450
y(by)f(a)g(recursi)n(v)o(e)f(function)f(whose)i(e)o(x)o(ecution)e(is)j
(much)e(less)i(optimised)e(than)h(that)g(of)g(\223/\224)g(which,)523
1550 y(instead,)d(enjo)o(ys)g(all)h(the)g(optimisations)f(of)g(the)h
FK(C)p FU(Duce)f(runtime\).)f(Therefore)f(it)k(is)f(important)e(to)523
1650 y(stress)25 b(that)g(in)f(this)h(article)f(we)h(are)f(comparing)e
(hand-optimised)f(XQuery)j(patterns)f(in)i FK(C)p FU(QL)3358
1662 y FI(X)523 1749 y FU(with)i(automatically)d(generated)h
(\(therefore)f(not)i(v)o(ery)f(optimised\))g FK(C)p FU(Duce)h(patterns)
g(in)g FK(C)p FU(QL:)523 1849 y(the)g(results)h(of)f(our)g(tests,)h
(which)f(al)o(w)o(ays)h(gi)n(v)o(e)f(the)g(adv)n(antage)f(to)h(the)h
(second,)e(are)h(thus)h(v)o(ery)523 1949 y(strong)19
b(and)h(rob)n(ust.)648 2054 y(The)35 b(e)o(xistence)f(of)h(an)h
(automatic)e(translation)g(from)h(\(a)g(subset)h(of\))e(XP)o(ath)i
(patterns)e(to)523 2154 y FK(C)p FU(Duce)27 b(ones,)g(is)h(a)g(central)
f(result)g(of)g(our)g(w)o(ork.)g(This)g(w)o(ork)g(demonstrates)f(that)h
(XP)o(ath-lik)o(e)523 2253 y(projections)c(are)i(redundant)d(and)j(in)g
(a)g(certain)f(sense,)h(with)g(respect)f(to)h(patterns,)f(problematic)
523 2353 y(as)29 b(the)o(y)e(induce)g(a)h(le)n(v)o(el)g(of)f(query)g
(nesting)g(which)h(penalises)g(the)g(o)o(v)o(erall)e(e)o(x)o(ecution)g
(perfor)n(-)523 2453 y(mance.)c(W)-7 b(e)23 b(thus)g(de\002ned)e(a)i
(formal)f(translation)f(of)h FK(C)p FU(QL)2285 2465 y
FI(X)2355 2453 y FU(to)h FK(C)p FU(QL)g(and)f(sho)n(wed)f(that)i(it)g
(pre-)523 2552 y(serv)o(es)18 b(typing.)f(This)i(translation)e(maps)i
(e)n(v)o(ery)e FK(C)p FU(QL)2102 2564 y FI(X)2168 2552
y FU(query)g(into)h(a)h(\(\003at\))f FK(C)p FU(QL)h(one)e(\(i.e.,)h
(with)523 2652 y(all)26 b(nesting)e(le)n(v)o(els)h(induced)f(by)g
(projections)g(remo)o(v)o(ed\),)e(and)j(is)h(automatically)d
(implemented)523 2751 y(by)i(the)h FK(C)p FU(Duce/)p
FK(C)p FU(QL)e(compiler)-5 b(.)25 b(Not)g(only)g(such)g(a)h
(translation)f(is)h(useful)f(from)g(a)g(theoretical)523
2851 y(point)17 b(of)h(vie)n(w)-5 b(,)18 b(b)n(ut)g FE(\()p
FJ(i)p FE(\))h FU(it)g(accounts)e(for)h(optimising)f(queries)g(and)h
FE(\()p FJ(ii)p FE(\))h FU(sho)n(ws)f(that)g(the)h(approach)523
2951 y(can)25 b(be)f(applied)g(both)g(to)h(standard)f(XQuery)g(\(in)g
(which)h(case)g(the)g(translation)f(w)o(ould)g(be)h(used)523
3050 y(to)k(compile)f(XQuery)g(into)g(a)i(pattern)d(a)o(w)o(are)i
(runtime\))e(and)i(to)g(a)g(conserv)n(ati)n(v)o(e)d(e)o(xtension)i(of)
523 3150 y(XQuery)e(enriched)f(with)i FK(C)p FU(Duce)f(patterns)g(\(in)
h(which)f(case)h(the)g(translation)f(w)o(ould)g(optimise)523
3250 y(the)d(code)g(by)f(a)i(source)e(to)i(source)e(translation,)g(as)i
(we)f(do)g(for)g FK(C)p FU(QL)2572 3267 y FR(\()p FI(X)5
b FR(\))2666 3250 y FU(\).)23 b(Whate)n(v)o(er)g(in)g
FK(C)p FU(Duce)523 3349 y(or)17 b(in)h(XQuery)f(this)h(transformation)d
(allo)n(ws)j(the)g(programmer)c(to)k(use)g(the)g(preferred)d(style)j
(since)523 3449 y(the)f(more)f(ef)n(\002cient)h(pattern-based)d(code)i
(will)i(be)f(al)o(w)o(ays)g(e)o(x)o(ecuted.)e(W)-7 b(e)18
b(also)f(adapt)g(logical)f(op-)523 3549 y(timisation)22
b(techniques)g(which)g(are)g(classical)h(in)g(the)g(database)f(\002eld)
g(to)h(the)g(conte)o(xt)e(of)h(pattern)523 3648 y(based)i(queries)g
(and)g(sho)n(w)g(through)e(performance)g(measurement)g(that)j(the)o(y)f
(are)g(rele)n(v)n(ant)f(also)523 3748 y(in)d(this)h(setting.)648
3853 y(T)-7 b(o)17 b(further)e(v)n(alidate)h(the)h(feasibility)g(of)f
(pattern-matching)e(as)j(an)g(e)o(x)o(ecution)e(model)h(we)h(also)523
3953 y(compared)j FK(C)p FU(QL)j(performances)c(with)k(those)f(of)g
(XQuery)f(processors.)g(Since)h(our)g(language)f(is)523
4053 y(e)n(v)n(aluated)c(in)h(main)f(memory)f(\(we)i(do)g(not)g(ha)n(v)
o(e)f(an)o(y)g(persistent)h(store,)g(yet\))f(as)i(a)f(\002rst)h(choice)
e(we)523 4152 y(compared)f FK(C)p FU(QL)i(performance)d(with)j(Galax)g
([3])f(that)h(besides)g(being)f(a)h(reference)e(implementa-)523
4252 y(tion)k(of)g(XQuery)-5 b(,)19 b(uses)i(the)g(same)f(technologies)
f(as)i FK(C)p FU(Duce)f(\(noticeably)-5 b(,)18 b(it)j(is)h(implemented)
c(in)523 4351 y(OCaml\).)k(Ho)n(we)n(v)o(er)m(,)d(the)j(primary)e(goal)
h(of)g(Galax)h(is)h(compliance)c(with)j(standards)f(rather)g(than)523
4451 y(ef)n(\002cienc)o(y)j(and)h(for)h(the)f(time)h(being)f(the)h
(\(web\))e(a)n(v)n(ailable)i(v)o(ersion)e(does)i(not)f(implement)f(an)o
(y)523 4551 y(real)h(optimisation)e(and)h(has)h(poor)f(memory)e
(management)h(\(e)n(v)o(en)g(if)i([22])f(proposes)f(some)i(im-)523
4650 y(pro)o(v)o(ements\),)20 b(which)i(e)o(xplains)f(that)i
FK(C)p FU(QL)g(outperformed)c(Galax)j(\(of)g(an)h(order)e(of)h
(magnitude)p Black 523 4745 473 4 v 546 4806 a FP(1)598
4833 y FN(Of)h(course)i(there)f(e)o(xist)g(types)h(\(such)f(as)g(t)g(=)
g([t)f(|)h([]]\))g(and)h(queries)f(\(//\))g(for)g(which)g
(such)h(a)598 4924 y(translation)19 b(is)f(not)i(possible,)p
Black Black Black eop end
%%Page: 4 4
TeXDict begin 4 3 bop Black Black 523 448 a FU(up)22
b(to)h(tens)f(of)g(thousands)f(of)i(time)f(f)o(aster\).)g(Therefore)e
(we)j(decided)e(to)i(run)e(a)i(second)f(series)h(of)523
548 y(tests)h(against)e(Qizx)h([18])e(and)i(Qe)o(xo)f([7],)f(the)i(tw)o
(o)g(ef)n(\002cienc)o(y)f(best)h(XQuery)e(implementations)523
648 y(we)i(are)f(a)o(w)o(are)g(of.)g(The)g(tests)i(were)e(performed)e
(on)i(the)g(\002rst)h(\002)n(v)o(e)g(XML)f(Query)f(Use)i(Cases)h([9])
523 747 y(and)e(on)h(queries)f(Q1,)g(Q8,)h(Q12,)f(and)g(Q16)g(of)h(the)
g(XMark)f(benchmark)e([24].)h(This)i(set)h(of)e(tests)523
847 y(ga)n(v)o(e)g(a)i(\002rst)g(positi)n(v)o(e)f(answer)g(to)h
(practical)e(feasibility)h(of)h FK(C)p FU(QL-pattern)d(matching.)h(W)-7
b(e)25 b(were)523 946 y(pleased)g(to)h(notice)g(that)g
FK(C)p FU(QL)g(w)o(as)h(on)e(the)h(a)n(v)o(erage)f(noticeably)f(f)o
(aster)i(than)f(Qizx)h(and)f(Qe)o(xo)523 1046 y(especially)19
b(when)f(computing)f(intensi)n(v)o(e)h(queries)g(such)h(as)h(joins)2447
1016 y FS(2)2501 1046 y FU(\(cf.)f(Q4)g(and)f(Q5)h(use)h(cases)f(in)523
1146 y(Section)24 b(4)h(and)f(query)g(Q8)g(and)g(Q12)h(of)f(XMark\).)g
(These)g(results)h(are)g(e)n(v)o(en)e(astounding)g(if)i(we)523
1245 y(consider)d(that)h(while)g(Qizx)g(and)f(Qe)o(xo)g(are)h(compiled)
e(into)i(bytecode)e(and)h(run)h(on)f(mature)g(and)523
1345 y(highly)i(optimised)g(Ja)n(v)n(a)i(V)-5 b(irtual)24
b(Machines)h(\(that)g(of)g(course)f(we)h(parametrised)f(to)h(obtain)f
(the)523 1445 y(best)i(possible)e(results\),)h FK(C)p
FU(Duce)g(essentially)h(is)g(an)f(interpreted)e(language)h(\(it)h
(produces)f(some)523 1544 y(intermediate)h(code)g(just)i(to)f(solv)o(e)
f(accesses)i(to)f(the)g(heap\))f(with)h(just-in-time)g(compilation)e
(of)523 1644 y(pattern)19 b(matching.)f(In)i(the)f(\223todo\224)g(list)
i(of)e FK(C)p FU(Duce)h(a)g(high)f(priority)g(place)g(is)i(tak)o(en)e
(by)h(the)f(com-)523 1743 y(pilation)d(of)h FK(C)p FU(Duce)f(into)h
(OCaml)g(bytecode.)e(W)-7 b(e)18 b(are)f(eager)f(to)h(redo)f(our)g
(tests)i(in)f(such)f(a)i(setting,)523 1843 y(which)j(w)o(ould)f
(constitute)h(a)h(more)e(f)o(air)h(comparison)e(with)j(the)f(Ja)n(v)n
(a)h(bytecode)d(and)i(should)f(fur)n(-)523 1943 y(ther)g(increase)g
(the)g(adv)n(antage)e(of)i(the)g FK(C)p FU(QL)h(e)o(x)o(ecution)d
(model.)523 2121 y FJ(Outline)46 b FU(The)23 b(article)h(is)g(or)o
(ganised)d(as)k(follo)n(ws.)e(In)g(Section)g(2)h(we)g(brie\003y)f
(recall)h FK(C)p FU(Duce)f(fea-)523 2220 y(tures)e(which)g(are)g
(useful)g(for)f(understanding)f(the)i(de\002nition)f(of)h
FK(C)p FU(QL:)g(types,)g(e)o(xpressions)f(and)523 2320
y(patterns.)e(In)g(Section)g(3)h(we)g(present)f FK(C)p
FU(QL')-5 b(s)19 b(syntax)f(and)g(semantics.)g(W)-7 b(e)20
b(gi)n(v)o(e)e(the)g(typing)g(rules)523 2419 y(for)27
b(the)g(de\002ned)f(language.)f(W)-7 b(e)28 b(then)f(present)f
FK(C)p FU(QL)2142 2431 y FI(X)2217 2419 y FU(sho)n(wing)g(ho)n(w)g(to)i
(de\002ne)e(projections.)523 2519 y(W)-7 b(e)19 b(formally)e(de\002ne)g
(the)h(translation)g(from)f FK(C)p FU(QL)2017 2531 y
FI(X)2082 2519 y FU(to)h FK(C)p FU(QL)h(and)e(sho)n(w)h(that)g(such)g
(a)g(translation)523 2619 y(yields)d(an)h(unnested)e
FK(C)p FU(QL)h(query)f(and)h(preserv)o(es)f(typing.)g(In)h(Section)g(4)
h(we)g(propose)e(se)n(v)o(eral)g(op-)523 2718 y(timisations)20
b(and)g(in)h(Section)f(5)g(we)h(report)f(on)g(performance)d
(measurements)i(we)i(did.)f(W)-7 b(e)21 b(dra)o(w)523
2818 y(our)e(conclusions)g(and)h(present)f(our)h(current)f(and)g
(future)g(research)h(directions)f(in)h(Section)g(6.)523
3007 y FV(2)99 b(T)-7 b(ypes,)26 b(expr)n(essions)f(and)g(patter)o(ns)
523 3162 y FU(A)c FK(C)p FU(QL)f(query)f(is)i(written)f(as)1111
3285 y FG(select)g FJ(e)1364 3297 y FS(0)1420 3285 y
FG(from)26 b FJ(p)1638 3297 y FS(1)1693 3285 y FG(in)20
b FJ(e)1809 3297 y FS(1)1844 3285 y FG(,)27 b FJ(p)1934
3297 y FS(2)1989 3285 y FG(in)20 b FJ(e)2105 3297 y FS(2)2140
3285 y FG(,.)12 b(.)g(.)g(,)6 b FJ(p)2329 3297 y FI(n)2384
3285 y FG(in)20 b FJ(e)2500 3297 y FI(n)2555 3285 y FG(where)g
FJ(c)523 3408 y FU(where)j(the)29 b FJ(p)923 3420 y FI(i)944
3408 y FU(')-5 b(s)25 b(and)d FJ(e)1204 3420 y FI(i)1225
3408 y FU(')-5 b(s)25 b(respecti)n(v)o(ely)d(denote)g
FK(C)p FU(Duce)h(patterns)g(and)g(e)o(xpressions.)e(T)-7
b(o)24 b(de\002ne)523 3508 y FK(C)p FU(QL)29 b(then)f(we)h(ha)n(v)o(e)f
(to)h(de\002ne)f FK(C)p FU(Duce)g(patterns)g(and)h(\(a)f(minimal)g
(subset)h(of\))f(e)o(xpressions.)523 3608 y(A)f(complete)e
(presentation)f(of)i FK(C)p FU(Duce)g(is)h(be)o(yond)d(the)j(scope)e
(of)h(this)h(paper)e(\(see)i(instead)e(the)523 3707 y
(documentation\227tutorial)19 b(and)k(user)h(manual\227and)d(do)i(try)g
(the)g(prototype)f(a)n(v)n(ailable)h(at)h FC(www.)523
3807 y(cduce.org)p FU(\),)30 b(therefore)24 b(we)j(present)f(here)g
(only)g(\(a)g(subset)h(of\))f FK(C)p FU(Duce)g(v)n(alues)g(and)g(just)h
(one)523 3906 y(comple)o(x)18 b(e)o(xpression,)h FG(tr)o(ansf)n(or)r(m)
p FU(,)g(used)h(to)g(de\002ne)g(the)g(semantics)g(of)g
FK(C)p FU(QL)g(queries.)648 4006 y(Since)j(in)g FK(C)p
FU(Duce/)p FK(C)p FU(QL)f(patterns)h(are)f(types)h(with)g(capture)f(v)n
(ariables)h(let)g(us)h(start)f(our)f(pre-)523 4106 y(sentation)e(with)g
(them.)523 4275 y FB(2.1)82 b(T)-6 b(ypes)523 4402 y
FK(C)p FU(Duce)17 b(type)g(algebra)f(includes)g(three)h(f)o(amily)f(of)
h(scalar)h(types:)f FE(\()p FJ(i)p FE(\))h FU(Inte)o(gers,)e(that)h
(are)g(classi\002ed)523 4502 y(either)e(by)g(the)h(type)f(identi\002er)
g FG(Int)p FU(,)g(or)g(by)g(interv)n(al)g(types)g FG(i)d(-)h(-)f(j)k
FU(\(where)e FG(i)i FU(and)f FG(j)h FU(are)f(inte)o(ger)g(literals\),)p
Black 523 4562 473 4 v 546 4623 a FP(2)598 4650 y FN(W)-6
b(e)24 b(w)o(ould)h(lik)o(e)g(the)g(reader)g(to)g(notice)g(that)f(we)h
(did)g(not)g(perform)g(an)o(y)g(further)g(optimisation)g(relying)598
4742 y(on)d(speci\002c)h(data)f(structure)h(such)f(as)h(hash)g(tables.)
f(Our)g(v)o(ery)g(purpose)i(w)o(as)e(to)g(assess)h FA(C)p
FN(Duce)f(pattern)598 4833 y(matching)30 b(as)f(an)g(e)o(x)o(ecution)i
(primiti)n(v)o(e)e(for)g(XML)g(query)h(processing)g(in)f(which)h
(XQuery)f(could)h(be)598 4924 y(compiled.)p Black Black
Black eop end
%%Page: 5 5
TeXDict begin 5 4 bop Black Black 523 448 a FU(or)18
b(by)g(single)f(inte)o(ger)g(literals)i(lik)o(e)f FG(42)g
FU(that)g(denotes)g(the)g(singleton)f(type)g(containing)g(the)h(inte)o
(ger)523 548 y(42.)26 b FE(\()p FJ(ii)p FE(\))i FU(Characters,)e
(classi\002ed)h(by)f(the)h(type)f(identi\002ers)h FG(Char)f
FU(\(the)g(Unicode)g(character)f(set\))523 648 y(and)30
b FG(Byte)h FU(\(the)f(Latin1)g(character)f(set\),)i(by)f(interv)n(als)
g FG(c)13 b(-)f(-)g(d)31 b FU(\(where)f FG(c)h FU(and)f
FG(d)h FU(are)f(Character)523 747 y(literals)23 b(that)g(is)h(single)e
(quoted)f(characters)h(lik)o(e)h FG('a')p FU(,)e FG('b')p
FU(,)h(.)12 b(.)g(.)g(,)24 b(or)e(backslash-escaped)e(directi)n(v)o(es)
523 847 y(for)h(special)g(characters,)f(Unicode)g(characters,)g(.)12
b(.)g(.)g(\),)22 b(or)f(by)g(single)g(character)f(literals)h(denoting)
523 946 y(the)h(corresponding)c(singleton)i(types.)i
FE(\()p FJ(iii)p FE(\))g FU(Atoms)g(that)g(are)f(user)h(de\002ned)e
(constants;)i(the)o(y)f(are)523 1046 y FK(C)p FU(Duce)d(identi\002ers)h
(escaped)f(by)g(a)h(back-quote)d(such)i(as)i FG(`nil)p
FU(,)d FG(`tr)q(ue)p FU(,)g(.)12 b(.)g(.)32 b(and)18
b(are)h(ranged)e(o)o(v)o(er)g(by)523 1146 y(the)j(type)g(identi\002er)g
FG(Atom)g FU(or)g(by)f(singleton)h(types.)648 1247 y(The)e(other)f
(types)i(of)f FK(C)p FU(Duce')-5 b(s)19 b(type)f(algebra)f(are)i
(\(possibly)e(recursi)n(v)o(ely\))f(de\002ned)i(from)f(the)523
1347 y(pre)n(vious)i(scalar)i(types)f(and)h(the)f(types)h
FG(An)o(y)g FU(and)f FG(Empty)h FU(\(denoting)d(respecti)n(v)o(ely)h
(the)i(uni)n(v)o(ersal)523 1446 y(and)f(empty)f(type\))g(by)h(the)g
(application)f(of)h(type)g FJ(constructor)o(s)g FU(and)f(type)h
FJ(combinator)o(s)p FU(.)523 1653 y FJ(T)-6 b(ype)25
b(combinator)o(s)48 b FK(C)p FU(Duce)25 b(has)h(a)g(complete)f(set)h
(of)g(Boolean)f(combinators.)e(Thus)i(if)f FJ(t)3224
1665 y FS(1)3285 1653 y FU(and)521 1753 y FJ(t)544 1765
y FS(2)612 1753 y FU(are)33 b(types,)f(then)e FJ(t)1173
1765 y FS(1)1208 1753 y FG(&)7 b FJ(t)1288 1765 y FS(2)1356
1753 y FU(is)34 b(their)e(intersection)g(type,)e FJ(t)2269
1765 y FS(1)2309 1753 y Fz(j)2311 1751 y(j)2313 1753
y(j)23 b FJ(t)2382 1765 y FS(2)2450 1753 y FU(their)33
b(union,)e(and)f FJ(t)3053 1765 y FS(1)3093 1753 y Fz(n)3095
1751 y(n)3097 1753 y(n)23 b FJ(t)3185 1765 y FS(2)3253
1753 y FU(their)523 1852 y(dif)n(ference.)30 b(F)o(or)i(instance)g(the)
g(type)g FG(Bool)g FU(is)h(de\002ned)e(in)i FK(C)p FU(Duce)f(as)h(the)f
(union)f(of)h(the)g(tw)o(o)523 1952 y(singleton)19 b(types)h
(containing)f(the)h(atoms)g(true)g(and)f(f)o(alse,)i(that)f(is)h
FG(`tr)q(ue)e(|)j(`f)n(alse)p FU(.)523 2159 y FJ(T)-6
b(ype)29 b(constructor)o(s)55 b FK(C)p FU(Duce)29 b(has)g(type)g
(constructors)f(for)h(record)f(types)h FG({)21 b FJ(a)2854
2171 y FS(1)2897 2159 y FG(=)7 b FJ(t)2971 2171 y FS(1)3006
2159 y FG(;)p FD(:)i(:)g(:)g FG(;)p FJ(a)3186 2171 y
FI(n)3230 2159 y FG(=)e FJ(t)3304 2171 y FI(n)3359 2159
y FG(})p FU(,)523 2259 y(product)24 b(types)h FG(\()n
FJ(t)1050 2271 y FS(1)1085 2259 y FG(,)n FJ(t)1127 2271
y FS(2)1162 2259 y FG(\))p FU(,)g(and)g(functional)f(types)h(\()n
FJ(t)1992 2271 y FS(1)2027 2259 y FG(\226>)n FJ(t)2134
2271 y FS(2)2168 2259 y FU(\).)h(F)o(or)f(this)h(paper)e(the)i(most)f
(interesting)523 2358 y(constructors)19 b(are)h(those)g(for)f
(sequences)h(and)f(XML.)648 2460 y(Sequence)25 b(types)h(are)h(denoted)
e(by)h(square)g(brack)o(ets)g(enclosing)f(a)i(re)o(gular)e(e)o
(xpression)g(on)523 2559 y(types.)k(F)o(or)g(instance,)g(in)h
FK(C)p FU(Duce)f(strings)g(are)h(possibly)f(empty)f(sequences)h(of)g
(characters)g(of)523 2659 y(arbitrary)23 b(length,)g(and)g(thus)h
FG(Str)q(ing)f FU(is)i(de\002ned)e(and)h(implemented)e(as)j
FG([)g(Char)p Fz(\003)e FG(])h FU(\(i.e.)g(it)h(is)g(just)523
2759 y(a)e(handy)e(shortcut\).)g(The)h(pre)n(vious)g(type)g(sho)n(ws)g
(that)h(the)g(content)e(of)i(a)g(sequence)e(type)h(can)h(be)523
2858 y(con)m(v)o(eniently)17 b(e)o(xpressed)i(by)h(re)o(gular)e(e)o
(xpressions)h(on)h(types,)g(which)f(use)i(standard)e(syntax)3276
2828 y FS(3)3310 2858 y FU(:)1308 2958 y FJ(R)37 b FU(::)p
FE(=)d FJ(t)48 b Fz(j)41 b FJ(R)18 b(R)41 b Fz(j)h FJ(R)p
FG(|)p FJ(R)f Fz(j)h FJ(R)p Fz(\003)f(j)g FJ(R)p FG(+)g
Fz(j)h FJ(R)p FG(?)523 3057 y FU(The)19 b(general)f(form)g(of)h(an)g
(XML)g(type)g(is)h FC(<)h FJ(t)1832 3069 y FS(1)1888
3057 y FJ(t)1911 3069 y FS(2)1969 3057 y FC(>)13 b FJ(t)2047
3069 y FS(3)2101 3057 y FU(with)k FJ(t)2289 3069 y FI(i)2311
3057 y FU(')-5 b(s)20 b(arbitrary)d(types.)i(In)g(practise)e
FJ(t)3295 3069 y FS(1)3350 3057 y FU(is)523 3157 y(al)o(w)o(ays)i(a)g
(singleton)e(type)h(containing)e(the)j(atom)e(of)h(the)h(tag,)d
FJ(t)2357 3169 y FS(2)2411 3157 y FU(is)j(a)g(record)e(type)g(\(of)h
(attrib)n(utes\),)523 3257 y(and)24 b FJ(t)691 3269 y
FS(3)753 3257 y FU(a)i(sequence)g(type)g(\(of)f(elements\).)h(As)h(a)g
(syntactic)f(f)o(acility)g(it)h(is)h(possible)e(to)g(omit)g(the)523
3356 y(back-quote)e(in)j(the)f(atom)h(of)d FJ(t)1450
3368 y FS(1)1512 3356 y FU(and)i(the)h(curly)e(braces)i(and)f
(semicolons)f(in)g FJ(t)2885 3368 y FS(2)2920 3356 y
FU(,)i(so)g(that)f(XML)523 3456 y(types)20 b(are)g(usually)g(written)g
(in)g(the)g(follo)n(wing)f(form:)40 b FG(<)o FJ(ta)o(g)h(a)2365
3468 y FS(1)2400 3456 y FG(=)m FJ(t)2464 3468 y FS(1)2541
3456 y FJ(a)2583 3468 y FS(2)2617 3456 y FG(=)n FJ(t)2682
3468 y FS(2)2747 3456 y FD(:)9 b(:)g(:)30 b FJ(a)2906
3468 y FI(n)2940 3456 y FG(=)n FJ(t)3005 3468 y FI(n)3040
3456 y FG(>[)20 b FJ(R)g FG(])p FU(.)648 3557 y(In)g(the)h(\002rst)h
(ro)n(w)e(Figure)h(1)g(we)g(report)f(a)h(DTD)g(for)f(bibliographies)f
(follo)n(wed)g(by)i(the)g(corre-)523 3657 y(sponding)e
FK(C)p FU(Duce)i(types:)g(note)g(the)g(use)h(of)f(re)o(gular)f(e)o
(xpression)f(types)i(to)h(de\002ne)e(the)i(sequence)523
3756 y(types)g(of)h(elements)f(\()p FG(PCD)m(A)-9 b(T)g(A)22
b FU(is)i(yet)e(another)f FK(C)p FU(Duce)i(con)m(v)o(ention)c(to)k
(denote)e(the)i(re)o(gular)e(e)o(x-)523 3856 y(pression)f
FG(Char*)p FU(\).)523 4033 y FB(2.2)82 b(Expr)o(essions)21
b(and)f(patter)o(ns)523 4169 y FU(Expression)15 b(constructors)g
(mostly)i(follo)n(w)f(the)h(same)g(syntax)f(as)h(their)g(corresponding)
c(type)j(con-)523 4269 y(structors,)k(so)i(a)g(record)d(e)o(xpression)h
(has)h(the)h(form)e FG({)g FJ(a)2141 4281 y FS(1)2185
4269 y FG(=)9 b FJ(e)2275 4281 y FS(1)2310 4269 y FG(;)p
FD(:)g(:)g(:)g FG(;)p FJ(a)2490 4281 y FI(n)2533 4269
y FG(=)g FJ(e)2623 4281 y FI(n)2679 4269 y FG(})p FU(,)21
b(while)g(a)h(pair)f(e)o(xpres-)523 4369 y(sion)d(is)g
FG(\()p FJ(e)815 4381 y FS(1)850 4369 y FG(,)p FJ(e)908
4381 y FS(2)942 4369 y FG(\))p FU(.)g(The)f(same)h(con)m(v)o(entions)d
(on)i(XML)h(types)f(apply)g(to)h(XML)f(e)o(xpressions:)g(instead)523
4468 y(of)23 b(writing)f FG(<`book)g({y)o(ear="1990"}>[)d(.)12
b(.)g(.)g(])24 b FU(we)f(rather)f(write)i FG([.)
12 b(.)g(.)g(])p FU(.)19 b(In)j(the)523 4568 y(second)28
b(ro)n(w)g(of)h(Figure)f(1)h(we)g(report)f(on)g(the)h(left)g(a)g
(document)e(v)n(alidating)g(the)i(DTD)g(of)f(the)523
4668 y(\002rst)k(ro)n(w)e(and)h(on)f(the)h(right)g(the)f(corresponding)
e(\(well-typed\))h(v)n(alue)h(in)h FK(C)p FU(Duce:)g(note)f(that)p
Black 523 4745 473 4 v 546 4806 a FP(3)598 4833 y FN(These)21
b(are)g(just)g(a)h(v)o(ery)f(con)m(v)o(enient)i(syntactic)f(sugar)f
(\(v)o(ery)h(XML-oriented\))g(for)f(particular)g(recursi)n(v)o(e)598
4924 y(types.)p Black Black Black eop end
%%Page: 6 6
TeXDict begin 6 5 bop Black Black Black 523 369 2846
4 v 521 460 4 92 v 1137 433 a FN(XML)p 1915 460 V 1931
460 V 1223 w(CDuce)p 3367 460 V 523 463 2846 4 v 523
480 V 521 1435 4 955 v Black Black 535 583 a FH()535 649 y()535 782 y()535 849 y()535
915 y()535 981 y()535 1048 y()535 1114 y()535 1181 y()535 1247 y()535 1314 y()p 1915 1435 V 1931 1435
V 1945 571 a FA(C)p FN(Duce)g(T)-6 b(ypes:)p Black Black
1945 704 a FH(type)17 b(Bib)g(=)i([Book*])1945 770
y(type)e(Book)g(=)i([Title)2255
837 y(\(A)n(uthor+)h(|)g(Editor+)f(\))i(Pub)o(lisher)c(Pr)q(ice])1945
903 y(type)i(A)n(uthor)g(=)i([Last)e(First])1945
970 y(type)g(Editor)g(=)i([Last)e(First)h(Af\002liation])1945
1036 y(type)f(Title)36 b(=)19 b([PCD)m(A)-8 b(T)g(A])1945
1103 y(type)17 b(Last)36 b(=)19 b([PCD)m(A)-8 b(T)g(A])1945
1169 y(type)17 b(First)37 b(=)18 b(<\002rst>[PCD)m(A)-8
b(T)g(A])1945 1235 y(type)17 b(Af\002liation)f(=)j([PCD)
m(A)-8 b(T)g(A])1945 1302 y(type)17 b(Pub)o(lisher)33
b(=)19 b([PCD)m(A)-8 b(T)g(A])1945 1368
y(type)17 b(Pr)q(ice)35 b(=)19 b([PCD)m(A)-8
b(T)g(A])p 3367 1435 V 523 1438 2846 4 v 521 2923 4 1485
v Black Black 535 1516 a()535
1583 y()589 1649 y()644 1715
y(TCP/IP)i(Illustr)o(ated)644 1782 y()736
1848 y(Ste)n(v)n(ens)736 1915 y
(<\002rst>Richard\002rst>)644 1981 y()644
2048 y(Addison-W)n(esle)n(y)644
2114 y()e(65.95)589 2180 y()589
2247 y()644 2313 y(The)g(Lambda)e
(Calculus)644 2380 y()736 2446 y
(Barendegt)736 2512 y(<\002rst>Henk\002rst>)644
2579 y()644 2645 y(Nor)s(th-Holland)644 2712 y(92.00)589
2778 y()535 2845 y()p 1915 2923 V 1931 2923
V Black Black 1987 1594 a([)2042 1661 y([)
2151 1727 y("TCP/IP)j(Illustr)o(ated")2115 1794
y([)2188 1860 y("Ste)n(v)n(ens")2188 1926
y(<\002rst>"Richard")2115 1993 y(])2115 2059 y("Addison-W)n(esle)n(y")2115 2126 y("65.95")2042
2192 y(])2042 2259 y([)2151 2325
y("The)h(Lambda)e(Calculus")2115 2391 y([)2188
2458 y("Barendegt")2188 2524 y(<\002rst>"Henk")2115
2591 y(])2115 2657 y("Nor)s(th-Holland")2115
2723 y("92.00")2042 2790 y(])1987 2856 y(])p
3367 2923 V 523 2926 2846 4 v Black 975 3022 a FL(Fig)o(.)11
b(1.)19 b FN(DTD/)p FA(C)p FN(Duce-types)g(and)h(document/v)n(alues)h
(for)e(bibliographies)p Black Black 523 3145 a FU(strings)f(are)g(not)g
(enclosed)g(in)g(brack)o(ets)g(since)g(the)o(y)g(already)f(denote)g
(sequences)g(\(of)h(characters\).)523 3245 y(Besides)28
b(e)o(xpression)d(constructors)g(there)i(are)f(also)i(function)d
(de\002nitions)h(and)g(operators)g(\(e)o(x-)523 3344
y(pression)g(destructors\).)51 b(F)o(or)26 b(the)g(purpose)f(of)h(this)
h(article)f(we)h(are)f(particularly)f(interested)g(in)523
3444 y(operators)h(that)h(w)o(ork)g(on)g(sequences.)f(Besides)i(some)f
(standard)f(operators,)g(the)h(most)h(impor)n(-)523 3544
y(tant)19 b(operator)e(for)h(processing)g(XML)h(data)f(\(and)g(the)h
(only)f FK(C)p FU(Duce)h(iterator)f(we)h(present)g(here\))f(is)523
3643 y FG(tr)o(ansf)n(or)r(m)p FU(,)h(whose)h(syntax)f(is:)1153
3766 y FG(tr)o(ansf)n(or)r(m)g FJ(e)i FG(with)k FJ(p)1747
3778 y FS(1)1803 3766 y FG(->)20 b FJ(e)1929 3778 y FS(1)1985
3766 y FG(|)27 b FJ(p)2073 3778 y FS(2)2128 3766 y FG(->)20
b FJ(e)2254 3778 y FS(2)2310 3766 y FG(|)h(.)12 b(.)g(.)33
b(|)28 b FJ(p)2559 3778 y FI(n)2614 3766 y FG(->)20 b
FJ(e)2740 3778 y FI(n)523 3890 y FU(with)k FJ(n)c Fz(\025)g
FU(1)j(and)g(where)g FJ(e)p FU(,)h FJ(e)1397 3902 y FS(1)1432
3890 y FU(,)g FJ(e)1514 3902 y FS(2)1549 3890 y FU(,)g(.)12
b(.)g(.)g(,)24 b FJ(e)1775 3902 y FI(n)1834 3890 y FU(are)g(\(e)o
(xpressions)e(that)i(return\))e(sequences)g(and)30 b
FJ(p)3350 3902 y FS(1)3384 3890 y FU(,)529 3989 y FJ(p)571
4001 y FS(2)606 3989 y FU(,)20 b(.)12 b(.)g(.)g(,)27
b FJ(p)836 4001 y FI(n)892 3989 y FU(are)20 b FJ(patterns)g
FU(whose)g(semantics)g(is)h(e)o(xplained)d(belo)n(w)-5
b(.)648 4089 y(The)22 b(e)o(xpression)g(abo)o(v)o(e)f(scans)j(the)f
(sequence)f FJ(e)i FU(and)e(matches)h(each)g(element)g(of)g
FJ(e)g FU(against)523 4189 y(the)f(patterns,)f(follo)n(wing)f
FJ(a)h(\002r)o(st)i(matc)o(h)e(policy)g FU(\(that)g(is,)i(\002rst)f
(against)27 b FJ(p)2688 4201 y FS(1)2745 4189 y FU(then,)21
b(only)g(if)h(it)g(f)o(ails,)523 4288 y(against)k FJ(p)827
4300 y FS(2)861 4288 y FU(,)21 b(and)f(so)h(on\).)e(If)i(some)26
b FJ(p)1612 4300 y FI(i)1654 4288 y FU(matches,)20 b(then)g(the)g
(corresponding)d FJ(e)2787 4300 y FI(i)2830 4288 y FU(is)k(e)n(v)n
(aluated)e(in)i(an)523 4388 y(en)m(vironment)16 b(where)i(v)n(ariables)
f(are)i(substituted)f(by)g(the)h(v)n(alues)f(captured)f(by)h(the)h
(pattern.)e(If)i(no)523 4488 y(pattern)i(matches,)g(then)g(the)h(empty)
f(sequence)f(is)j(returned.)d(When)h(all)h(the)g(elements)g(of)f
FJ(e)h FU(ha)n(v)o(e)523 4587 y(been)e(scanned,)e FG(tr)o(ansf)n(or)r
(m)i FU(returns)f(the)h(concatenation)e(of)i(all)h(results.)2632
4557 y FS(4)p Black 523 4654 473 4 v 546 4715 a FP(4)598
4742 y FN(In)d(short,)g Fx(tr)o(ansf)n(or)r(m)h FN(dif)n(fers)e(from)i
(the)f(classic)g Fx(map)g FN(\(also)g(present)h(in)f
FA(C)p FN(Duce\))g(since)g(it)g(uses)g(pattens)h(to)598
4833 y(\002lter)h(elements)h(of)g(a)g(sequence)h(and)g(therefore,)f
(contrary)g(to)g Fx(map)h FN(it)e(does)h(not)h(preserv)o(e)f(the)g
(length)h(of)598 4924 y(the)d(sequence.)p Black Black
Black eop end
%%Page: 7 7
TeXDict begin 7 6 bop Black Black 648 448 a FU(Clearly)-5
b(,)21 b(in)h(order)e(to)i(fully)f(understand)f(the)h(semantics)h(of)g
(transform)e(we)i(need)f(to)h(e)o(xplain)523 548 y(the)f(semantics)g
(of)g(patterns.)g(The)g(simplest)g(patterns)g(are)g(v)n(ariables)f(and)
h(types:)g(a)h(v)n(ariable)e(pat-)523 648 y(tern,)k(say)-5
b(,)23 b FG(x)i FU(al)o(w)o(ays)g(succeeds)f(and)f(captures)h(in)g
FG(x)h FU(the)f(v)n(alue)f(it)i(is)g(matched)e(against.)g(If)h
FJ(e)h FU(is)g(a)523 747 y(sequence)20 b(of)g(inte)o(gers)g(then)g
FG(tr)o(ansf)n(or)r(m)g FJ(e)h FG(with)f(x)i(->)e(\(if)h(x>=0)f(then)g
([x])h(else)g([)g(]\))f FU(returns)g(the)h(sub-)523 847
y(sequence)c(of)g FJ(e)h FU(containing)e(all)j(the)e(positi)n(v)o(e)g
(inte)o(gers.)g(A)h(type)g(pattern)c FJ(t)24 b FU(instead)18
b(succeeds)f(only)523 946 y(when)22 b(matched)g(against)g(a)h(v)n(alue)
f(of)g(type)e FJ(t)6 b FU(.)23 b(More)f(comple)o(x)f(patterns)h(can)g
(be)h(constructed)e(by)523 1046 y(using)f(type)g(constructors)f(and/or)
h(the)g(combinators)f(\223)p FG(&)p FU(\224)i(and)f(\223)p
FG(|)p FU(\224.)h(So)27 b FJ(p)2681 1058 y FS(1)2715
1046 y FG(&)6 b FJ(p)2813 1058 y FS(2)2869 1046 y FU(succeeds)20
b(only)g(if)523 1146 y(both)j FJ(p)737 1158 y FS(1)790
1146 y FU(and)g FJ(p)976 1158 y FS(2)1029 1146 y FU(succeed)18
b(\()6 b FJ(p)1387 1158 y FS(1)1439 1146 y FU(and)24
b FJ(p)1626 1158 y FS(2)1679 1146 y FU(must)17 b(ha)n(v)o(e)h(pairwise)
f(distinct)h(capture)f(v)n(ariables\),)f(while)529 1245
y FJ(p)571 1257 y FS(1)606 1245 y FG(|)6 b FJ(p)673 1257
y FS(2)736 1245 y FU(succeeds)27 b(if)34 b FJ(p)1186
1257 y FS(1)1249 1245 y FU(succeeds)28 b(or)33 b FJ(p)1718
1257 y FS(1)1781 1245 y FU(f)o(ails)28 b(and)34 b FJ(p)2148
1257 y FS(2)2211 1245 y FU(succeeds)27 b(\()6 b FJ(p)2610
1257 y FS(1)2672 1245 y FU(and)34 b FJ(p)2869 1257 y
FS(2)2932 1245 y FU(must)27 b(ha)n(v)o(e)g(the)523 1345
y(same)22 b(set)h(of)f(capture)g(v)n(ariables\).)e(F)o(or)i(instance)g
(the)g(pattern)g FG(x&Int)g FU(succeeds)g(only)f(if)i(matched)523
1445 y(against)g(an)g(inte)o(ger)m(,)f(and)g(in)i(that)f(case)h(the)f
(inte)o(ger)f(at)i(issue)g(is)g(bound)e(to)h FG(x)p FU(.)h(Since)g(the)
f(type)g(of)523 1544 y(positi)n(v)o(e)e(inte)o(gers)f(can)i(be)f(e)o
(xpressed)f(by)h(the)h(interv)n(al)e FG(0-)12 b(-)p Fz(\003)22
b FU(\(in)f(inte)o(ger)f(interv)n(als)h Fz(\003)h FU(stands)f(for)523
1644 y(in\002nity\))e(then)g(the)h(pre)n(vious)f(transformation)e(can)i
(be)h(also)g(written)g(as)h FG(tr)o(ansf)n(or)r(m)d FJ(e)j
FG(with)e(x&\(0-)12 b(-)523 1743 y Fz(\003)p FG(\))20
b(->)h([x])g FU(.)f(W)-7 b(e)22 b(can)e(use)h(more)e(alternati)n(v)o
(es)g(to)i(transform)e(the)h(ne)o(gati)n(v)o(e)e(elements)i(into)g
(positi)n(v)o(e)523 1843 y(ones)g(instead)g(of)g(discarding)e(them:)i
FG(tr)o(ansf)n(or)r(m)g FJ(e)g FG(with)g(x&\(0-)12 b(-)p
Fz(\003)p FG(\))20 b(->)g([x])h(|)g(x&\()p Fz(\003)p
FG(-)12 b(-0\))20 b(->)g([-x])p FU(.)523 1959 y(If)k(we)g(kno)n(w)f
(that)h FJ(e)g FU(is)h(a)g(sequence)d(formed)h(only)g(of)g(inte)o
(gers,)g(then)h(in)g(the)g(e)o(xpression)e(abo)o(v)o(e)523
2059 y(we)h(can)g(omit)f(\223)p FG(&\()p Fz(\003)p FG(-)12
b(-0\))p FU(\224)22 b(from)g(the)h(second)f(pattern)g(as)h(it)h
(constitutes)f(redundant)d(information)523 2159 y(\(actually)f
FK(C)p FU(Duce)h(automatically)f(gets)h(rid)g(at)h(compile)e(time)i(of)
f(all)g(redundant)e(information\).)648 2259 y(P)o(atterns)34
b(b)n(uilt)g(by)g(type)f(constructors)g(are)h(equally)f(simple.)h(F)o
(or)g(instance,)f(the)h(pattern)523 2358 y FG([)f
(t)91 b([)28 b(_)i(f)h(])g(;_)61 b(])31
b FU(matches)f(an)o(y)g(bibliographic)e(entry)i(bind-)523
2458 y(ing)e(to)g FG(y)h FU(the)f(v)n(alue)g(of)g(the)g(attrib)n(ute)f
FG(y)o(ear)p FU(,)h(to)g FG(t)g FU(the)g(string)g(of)g(the)g(title,)h
(and)e(to)i FG(f)f FU(the)g FG(<\002rst>)523 2558 y FU(element)18
b(of)g(the)h(\002rst)g(author)f(name.)f(The)i(wildcard)e
FG(_)i FU(is)g(often)f(used)g(in)h(patterns)f(as)h(a)g(shorthand)523
2657 y(for)i(the)h(type)g FG(An)o(y)g FU(\(it)g(matches)f(an)o(y)h(v)n
(alue,)f(in)h(the)f(case)i(abo)o(v)o(e)d(it)j(matches)e(the)h
FG()f FU(element)523 2757 y(in)f(the)h(name\))e(while)h(\223)p
FG(;_)p FU(\224)g(matches)g(tails)h(of)f(sequences.)648
2857 y(Assuming)f(that)h FG(books)g FU(denotes)g(a)g(v)n(ariable)g(of)f
(type)h FG([Book)p Fz(\003)p FG(])f FU(the)h(code)g(belo)n(w:)p
Black Black 541 2992 a FH(tr)o(ansf)n(or)r(m)d(books)g(with)633
3058 y(|)h([)f(_)36
b([)18 b(_)g(<\002rst>)h(f)f(])h(;_)36 b(])19
b(->)f([)h(f)f(])633 3125 y(|)g(<_>[)h(_)36 b([s)18
b(;_])g(;_)g(])h(->)g([s])523 3292 y FU(scans)k(the)f(sequence)g(of)g
(elements)g(of)g FG(books)45 b FU(and)22 b(for)g(each)g(book)f(it)i
(returns)f(the)g(string)g(of)g(the)523 3392 y(\002rst)29
b(name)f(if)g(the)h(book)e(w)o(as)i(published)e(in)h(1999)f(or)h(2000,)
f(or)h(the)g(string)g(of)h(the)f(last)h(name)523 3492
y(otherwise.)648 3592 y(Besides)c(v)n(ariables)e(and)h(types)g(there)g
(are)h(tw)o(o)f(\(last\))h(more)e(b)n(uilding)h(blocks)f(for)h
(patterns:)523 3691 y(def)o(ault)c(patterns)f(and)h(sequence)f(capture)
g(v)n(ariables.)648 3792 y(Def)o(ault)k(patterns)h(are)g(of)f(the)h
(form)f FG(\(x:=)p FJ(v)p FG(\))p FU(;)h(the)g(pattern)f(al)o(w)o(ays)i
(succeeds)f(and)f(binds)g FG(x)i FU(to)523 3891 y(the)h(v)n(alue)e
FJ(v)p FU(.)i(Def)o(ault)f(patterns)g(are)h(useful)f(in)g(the)h(last)g
(position)f(of)g(an)h(alternati)n(v)o(e)e(pattern)g(in)523
3991 y(order)e(to)h(assign)f(a)i(def)o(ault)e(v)n(alue)g(to)h(capture)f
(v)n(ariables)g(that)h(did)f(not)g(match)h(in)g(the)g(preceding)523
4090 y(alternati)n(v)o(es.)f(This)i(allo)n(ws)f(the)h(programmer)c(to)k
(assign)f(def)o(ault)g(v)n(alues)g(to)h(optional)e(elements)523
4190 y(or)17 b(attrib)n(utes.)g(F)o(or)g(instance)g(imagine)g(that)g
(we)h(w)o(ant)f(to)h(change)e(the)h(pre)n(vious)f FG(tr)o(ansf)n(or)r
(m)h FU(so)g(that)523 4290 y(if)k(the)g(publication)e(year)h(is)h(not)g
(1999)e(or)i(2000)e(it)i(returns)f(the)h(last)g(name)g(of)f(the)h
FJ(second)h FU(author)523 4389 y(element)e(if)g(it)h(e)o(xists,)f(or)g
(the)h(string)e FG("none")f FU(otherwise.)i(It)g(will)h(be)f(changed)f
(to:)p Black Black 523 4524 a FH(tr)o(ansf)n(or)r(m)e(books)g(with)596
4591 y(|)i([)e(_)37
b([)17 b(_)h(<\002rst>)h(f)g(])f(;_)37 b(])18
b(->)h([)f(f)h(])596 4657 y(|)g(<_>[)f(_)37 b(A)n(uthor)e
([s)18 b(_])36 b(;_)g(])h(|)g(\(s:="none"\))17
b(->)i([)g(s)f(])523 4825 y FU(W)-7 b(e)22 b(guarded)c(the)i(second)g
(branch)f(by)g(an)i(alternati)n(v)o(e)e(pattern)g(assigning)h
FG("none")e FU(to)i FG(s)i FU(when)d(the)523 4924 y(\002rst)i(pattern)d
(f)o(ails)j(\(that)e(is,)i(when)e(there)g(is)i(no)e(second)g(author\).)
f(Note)i(that)g(the)g(string)f FG("none")f FU(is)p Black
Black eop end
%%Page: 8 8
TeXDict begin 8 7 bop Black Black Black 523 369 2882
4 v 523 707 4 339 v 546 437 a FO(\()19 b Fw(var)q FO(\()t
Fw(p)723 446 y Ft(i)738 437 y FO(\))p Fs(^)p Fw(var)q
FO(\()t Fw(p)941 446 y Ft(j)957 437 y FO(\)=)p Fq(?)p
Fv(;)14 b FP(for)h Fw(i)p Fs(6)p FO(=)9 b Fw(j)21 b FO(\))754
551 y Fp(G)p Fn(;)8 b Fm(\()n Fo(t)876 564 y FP(1)909
551 y Fn(=)e Fo(p)989 564 y FP(1)1022 551 y Fm(\))p Fn(;)i(:)g(:)g(:)g
(;)g Fm(\()n Fo(t)1244 564 y Fw(i)p Fs(\000)p FP(1)1339
551 y Fn(=)e Fo(p)1419 564 y Fw(i)p Fs(\000)p FP(1)1514
551 y Fm(\))16 b Fl(`)g Fo(e)1654 563 y Fw(i)1691 551
y FN(:)h Fx([)n Fo(t)1767 563 y Fw(i)1787 551 y Fx(+])74
b Fp(G)p Fn(;)8 b Fm(\()n Fo(t)2041 564 y FP(1)2075 551
y Fn(=)e Fo(p)2155 564 y FP(1)2188 551 y Fm(\))p Fn(;)i(:)g(:)g(:)g(;)g
Fm(\()n Fo(t)2410 562 y Fw(n)2443 551 y Fn(=)e Fo(p)2523
562 y Fw(n)2557 551 y Fm(\))16 b Fl(`)h Fo(e)f FN(:)f
Fo(t)5 b Fn(;)24 b Fo(c)17 b FN(:)g Fo(Bool)p 593 598
2473 4 v 1014 667 a Fp(G)g Fl(`)f Fx(select)i Fo(e)h
Fx(from)25 b Fo(p)1580 680 y FP(1)1632 667 y Fx(in)19
b Fo(e)1736 680 y FP(1)1770 667 y Fx(,)26 b Fn(:)8 b(:)g(:)g
Fx(,)e Fo(p)1964 678 y Fw(n)2016 667 y Fx(in)19 b Fo(e)2120
678 y Fw(n)2172 667 y Fx(where)h Fo(c)35 b FN(:)g Fx([)15
b Fo(t)5 b Fl(\003)30 b Fx(])3107 616 y Fm(\()p Fo(select)p
Fm(\))p 3401 707 4 339 v 523 710 2882 4 v Black 1517
806 a FL(Fig)o(.)12 b(2.)19 b FN(T)-6 b(yping)19 b(rule)g(for)g
(queries)p Black Black 523 925 a FU(returned)j(also)j(when)e(the)i
(book)d(has)j(editors)e(instead)h(of)g(authors)f(\(see)i(the)f
(de\002nition)f(of)h FG(Book)523 1024 y FU(type)19 b(in)h(Figure)e
(1\).)h(T)-7 b(o)20 b(\002lter)g(out)f(books)f(with)i(only)e(editors,)h
(the)g(pattern)g(of)g(the)g(second)g(branch)523 1124
y(should)24 b(be)g FG(<_>[)g(_)g(\(A)n(uthor)f(\([s)e(_])
k(|)g(\(s:="none"\)\))d(;_)i(])p FU(.)h(The)f(pattern)g(succeeds)523
1223 y(if)e(and)g(only)f(if)h(the)g(title)h(is)g(follo)n(wed)e(by)g(an)
h(author)m(,)e(in)j(which)e(case)i(either)e(it)i(is)g(follo)n(wed)d(by)
i(a)523 1323 y(second)g(author)f(\(whose)h(lastname)g(is)i(then)e
(captured)f(by)h FG(s)p FU(\),)h(or)f(by)g(a)h(publisher)e(\(and)h
FG(s)h FU(is)h(then)523 1423 y(bound)18 b(to)j FG("none")p
FU(\).)648 1522 y(Sequence)i(capture)g(v)n(ariables)g(patterns)h(are)g
(of)h(the)f(form)f FG(x::)p FJ(R)i FU(where)e FJ(R)i
FU(is)g(a)g(type)f(re)o(gular)523 1622 y(e)o(xpression;)14
b(the)h(pattern)g(binds)g FG(x)h FU(to)g(a)g FJ(sequence)e
FU(of)h(elements.)g(More)g(precisely)g(it)h(binds)f FJ(x)h
FU(to)f(the)523 1722 y(sequence)j(of)h(all)h(elements)f(matching)f
FJ(R)i FU(\(re)o(gular)d(e)o(xpressions)h(match)h(sequences)g(of)g
(elements)523 1821 y(rather)27 b(than)f(single)i(elements\).)e(Such)h
(patterns)g(are)g(useful)g(to)g(capture)f(whole)h(subsequences)523
1921 y(of)e(a)h(sequence.)e(F)o(or)h(instance,)g(to)h(return)e(for)h
(each)g(book)f(in)i(the)f(bibliography)d(the)k(list)g(of)f
FJ(all)523 2020 y FU(authors)19 b(and)h(to)g(enclose)g(it)h(in)f(a)h
FG()d FU(tag)i(can)g(be)g(done)f(compactly)g(as)i(follo)n(ws:)
p Black Black 578 2149 a FH(tr)o(ansf)n(or)r(m)c(books)g(with)h
([)g(_)36 b(\(a::A)n(uthor+\))17 b(;_)h(])h(->)f([)h(a)e
(])523 2311 y FU(Note)22 b(the)g(dif)n(ference)e(between)h
FG([)h(x::Int)g(])g FU(and)g FG([)g(\(x)h(&)f(Int\))g(])p
FU(.)g(Both)g(accept)f(sequences)g(formed)g(of)523 2411
y(a)f(single)f(inte)o(ger)m(,)f(b)n(ut)h(the)h(\002rst)g(one)e(binds)h
FG(x)i FU(to)e(a)h(sequence)e(\(of)h(a)h(single)f(inte)o(ger\),)f
(whereas)g(the)523 2511 y(second)h(one)h(binds)g(it)h(to)f(the)g(inte)o
(ger)f(itself.)648 2610 y(Finally)h(we)h(w)o(ant)f(to)h(stress)g(that)g
(the)f(type)g(inference)f(algorithm)g(of)h FK(C)p FU(Duce/)p
FK(C)p FU(QL)g(is)h(better)523 2710 y(than)i(that)g(of)g(XQuery)f
(since)h(it)h(al)o(w)o(ays)g(infer)e(a)i(type)f(more)f(precise)h(than)g
(the)g(one)f(inferred)g(by)523 2809 y(XQuery)-5 b(.)19
b(An)h(e)o(xample)f(can)h(be)g(found)e(in)i(the)h(e)o(xtended)d(v)o
(ersion)h(of)h(this)g(paper)g([5].)523 3007 y FV(3)99
b Fj(C)p Fi(QL)p FV(:)25 b(a)g(P)o(atter)o(n-based)h(query)g(language)f
(f)n(or)g(XML)g(pr)n(ocessing)523 3171 y FU(The)20 b(formal)f(syntax)h
(of)f FK(C)p FU(QL)i(is)g(gi)n(v)o(en)e(by)h(the)g(follo)n(wing)e
(grammar:)535 3255 y FG(Quer)q(ies)675 3355 y FJ(q)-5
b FU(::)p FE(=)g FG(select)18 b FJ(e)g FG(from)30 b FJ(f)h
FG(where)17 b FJ(c)42 b Fz(j)f FG(select)18 b FJ(e)g
FG(from)30 b FJ(f)535 3471 y FG(Bindings)681 3570 y FJ(f)8
b FU(::)p FE(=)q FJ(p)19 b FG(in)e FJ(e)h FG(,)31 b FJ(f)54
b Fz(j)47 b FJ(p)19 b FG(in)e FJ(e)535 3687 y FG(Conditions)680
3786 y FJ(c)-5 b FU(::)p FE(=)d FU(`)817 3784 y(`)818
3786 y(`)p FG(tr)q(ue)40 b Fz(j)e FU(`)1080 3784 y(`)1082
3786 y(`)p FG(f)n(alse)i Fz(j)h FG(not\()17 b FJ(c)i
FG(\))41 b Fz(j)h FJ(c)18 b FG(or)g FJ(c)41 b Fz(j)h
FJ(c)18 b FG(and)f FJ(c)41 b Fz(j)h FG(member\()17 b
FJ(e)h FG(,)h FJ(e)f FG(\))65 b Fz(j)41 b FJ(e)18 b(bop)f(e)535
3902 y FG(Expressions)680 4002 y FJ(e)-5 b FU(::)p FE(=)g
FJ(x)42 b Fz(j)f FJ(v)h Fz(j)f FG([)19 b FJ(e)9 b FD(:)g(:)g(:)28
b FJ(e)18 b FG(])41 b Fz(j)h FG(\003atten\()n FJ(e)p
FE(\))g Fz(j)f FJ(q)65 b Fz(j)37 b(h)2059 4000 y(h)2061
4002 y(h)21 b FJ(e)42 b FD(`)17 b FE(=)h FJ(e)9 b FD(:)g(:)g(:)h(`)18
b FE(=)g FJ(e)d Fz(i)2661 4000 y(i)2662 4002 y(i)21 b
FJ(e)42 b Fz(j)f FJ(op)o FG(\()19 b FJ(e)f FG(\))535
4118 y(P)m(atter)r(ns)675 4218 y FJ(p)-5 b FU(::)p FE(=)g
FJ(x)42 b Fz(j)d FJ(t)48 b Fz(j)f FJ(p)l FU(&)1140 4216
y(&)1142 4218 y(&)5 b FJ(p)42 b Fz(j)47 b FJ(p)15 b Fz(j)1425
4216 y(j)1426 4218 y(j)25 b FJ(p)41 b Fz(j)h FE(\()6
b FJ(p)p FD(;)g FJ(p)p FE(\))41 b Fz(j)d(h)1909 4216
y(h)1911 4218 y(h)27 b FJ(p)41 b FD(`)18 b FE(=)24 b
FJ(p)9 b FD(:)g(:)g(:)g(`)18 b FE(=)24 b FJ(p)15 b Fz(i)2543
4216 y(i)2544 4218 y(i)27 b FJ(p)42 b Fz(j)37 b FE([)2749
4216 y([)2751 4218 y([)p FJ(r)7 b FE(])2815 4216 y(])2817
4218 y(])42 b Fz(j)g FG(\()o FJ(x)p FG(:=)p FJ(v)p FG(\))535
4347 y(P)m(atter)r(n)18 b(regular)g(e)n(xpressions)682
4446 y FJ(r)n FU(::)p FE(=)q FJ(p)83 b Fz(j)62 b FE(\()p
FJ(x)15 b FU(::)1120 4444 y(::)1122 4446 y(::)k FJ(r)r
FE(\))62 b Fz(j)h FJ(r)17 b Fz(j)1452 4444 y(j)1453 4446
y(j)i FJ(r)64 b Fz(j)f FJ(r)20 b(r)65 b Fz(j)d FJ(r)r
FG(+)g Fz(j)g FJ(r)r Fz(\003)g(j)h FJ(r)r FG(?)535 4575
y(T)-9 b(ypes)688 4674 y FJ(t)q FU(::)p FE(=)k FJ(B)42
b Fz(j)d FJ(t)30 b Fz(j)1028 4672 y(j)1029 4674 y(j)17
b FJ(t)47 b Fz(j)40 b FJ(t)11 b FU(&)1238 4672 y(&)1239
4674 y(&)n FJ(t)47 b Fz(j)40 b FJ(t)22 b Fz(n)1482 4672
y(n)1484 4674 y(n)9 b FJ(t)47 b Fz(j)38 b(h)1668 4672
y(h)1670 4674 y(h)19 b FJ(t)47 b FD(`)18 b FE(=)e FJ(t)f
FD(:)9 b(:)g(:)g(`)18 b FE(=)e FJ(t)23 b Fz(i)2241 4672
y(i)2243 4674 y(i)c FJ(t)47 b Fz(j)38 b FE([)2427 4672
y([)2428 4674 y([)p FJ(R)6 b FE(])2509 4672 y(])2511
4674 y(])42 b Fz(j)f FG(Empty)h Fz(j)f FG(An)o(y)523
4825 y FU(where)15 b FJ(op)f FU(ranges)h(o)o(v)o(er)f(sequence)g
(operators)f(\()p FJ(op)p Fz(2)p FU({)p Fx(distinct_v)n(alues)p
FU(,)i Fx(count)p FU(,)h Fx(a)o(vg)p FU(,)g Fx(max)p
FU(,)f Fx(min)p FU(,)h Fx(sum)p FU(}\),)523 4924 y FJ(bop)22
b FU(o)o(v)o(er)f(boolean)g(relations)h(\()p FJ(bop)p
Fz(2)p FU({)p FG(=,)e(>)-12 b(>,)22 b(>=,)g(<)-12 b(<,)22
b(<=)p FU(}\),)f FJ(x)i FU(o)o(v)o(er)e(v)n(ariables,)h(and)g
FJ(v)h FU(o)o(v)o(er)e FJ(val-)p Black Black eop end
%%Page: 9 9
TeXDict begin 9 8 bop Black Black 523 448 a FJ(ues)18
b FU(\()p FJ(viz.)f FU(closed)h(e)o(xpressions)e(in)i(normal)e(formal)g
(and)h(constants)g(for)g(inte)o(gers)g(and)g(characters\);)523
548 y FG(\003atten)g FU(tak)o(es)h(a)h(sequence)d(of)i(sequences)f(and)
g(returns)g(their)h(concatenation)e(\(thus,)h(for)g(instance,)523
648 y(the)31 b(in\002x)f(operator)f FG(@)i FU(that)f(denotes)g(the)h
(concatenation)d(of)i(tw)o(o)h(sequences)f(is)h(encoded)e(as)523
747 y FJ(e)560 759 y FS(1)595 747 y FG(@)p FJ(e)708 759
y FS(2)761 747 y FE(=)18 b FG(\003atten)h([)9 b FJ(e)1135
759 y FS(1)1191 747 y FJ(e)1228 759 y FS(2)1271 747 y
FG(])p FU(\).)648 858 y(The)19 b(non-terminal)f FJ(R)i
FU(used)g(in)g(the)g(de\002nition)f(of)g(types)h(is)h(the)f(one)g
(de\002ned)f(in)h(Section)f(2.1.)523 958 y(P)o(atterns,)g(ranged)f(o)o
(v)o(er)g(by)25 b FJ(p)p FU(,)20 b(and)f(types,)g(ranged)f(o)o(v)o(er)g
(by)g FJ(t)6 b FU(,)19 b(are)h(simpli\002ed)f(v)o(ersions)f(of)i(those)
523 1057 y(present)f(in)h FK(C)p FU(Duce)f(and)g(ha)n(v)o(e)g(already)f
(been)h(described;)f(note)h(that)h(types)f(include)g(full)g(boolean)523
1157 y(combinations:)28 b(intersection)h(\()n FJ(t)11
b FU(&)1504 1155 y(&)1506 1157 y(&)m FJ(t)6 b FU(\),)30
b(union)f(\()n FJ(t)34 b Fz(j)1981 1155 y(j)1983 1157
y(j)22 b FJ(t)6 b FU(\),)30 b(and)f(dif)n(ference)f(\()n
FJ(t)e Fz(n)2728 1155 y(n)2730 1157 y(n)12 b FJ(t)6 b
FU(\).)30 b(The)g(reader)f(can)523 1257 y(refer)19 b(to)i([4])e(for)h
(a)h(more)e(detailed)g(and)h(complete)f(presentation.)p
Black Black 523 1398 a FH()523
1464 y(select)e([t1)980 1531 y(p2)980 1597 y(p1)f(])523 1664 y(from)i
([b::Book*])f(in)g([bib)o(lio],)669 1730 y([t1&Title)g(_*)g
(p1])g(in)h(b,)669 1796 y([e::Entr)r(y*])g(in)
f([amaz)o(on],)669 1863 y([t2&Title)h(p2)e(;_])j
(in)e(e)523 1929 y(where)g(t1=t2)1787 1368 y FU(As)40
b(an)f(e)o(xample,)f(the)h(query)f(Q)2808 1381 y FS(5)2883
1368 y FU(of)h(XQuery)f(de-)1787 1467 y(scribed)31 b(in)g(the)g
(introduction)d(w)o(ould)j(be)g(written)f(in)1787 1567
y FK(C)p FU(QL)21 b(as)f(sho)n(wn)g(on)g(the)g(left-hand)e(side.)1912
1678 y(The)44 b(typing)g(rule)g(for)g(the)h FG(select-from-where)1787
1777 y FU(construction)16 b(is)j(gi)n(v)o(en)d(in)j(Figure)e(2.)g(It)i
(states)g(that)e(the)1787 1877 y(condition)h FJ(c)j FU(must)f(be)g(of)g
(type)g FG(Bool)f FU(and)g(that)h(the)g FJ(e)3328 1889
y FI(i)3350 1877 y FU(')-5 b(s)1787 1977 y(must)26 b(be)f(non-empty)e
(homogeneous)f(sequences.)j(In)523 2076 y(this)h(rule)f
FE(\()n FJ(t)6 b FD(=)g FJ(p)p FE(\))25 b FU(is)h(the)f(type)g(en)m
(vironment)d(that)k(assigns)f(to)h(the)f(v)n(ariables)g(of)31
b FJ(p)25 b FU(the)g(best)h(type)523 2176 y(deduced)e(when)h(matching)
31 b FJ(p)26 b FU(against)f(a)h(v)n(alue)f(of)h(type)d
FJ(t)32 b FU(and)25 b FJ(var)p FE(\()6 b FJ(p)p FE(\))27
b FU(is)f(the)g(set)h(of)e(v)n(ariables)523 2276 y(occurring)16
b(in)25 b FJ(p)1010 2245 y FS(5)1064 2276 y FU(\(see)19
b([4])e(for)h(formal)f(de\002nitions)h(and)g(the)g(optimality)f(of)h
(the)h(deduced)d(types\).)p Black Black 523 2440 a FG(tr)o(ansf)n(or)r
(m)40 b FJ(e)916 2452 y FS(1)971 2440 y FG(with)47 b
FJ(p)1194 2452 y FS(1)1270 2440 y FG(\226>)627 2516 y(tr)o(ansf)n(or)r
(m)40 b FJ(e)1020 2528 y FS(2)1075 2516 y FG(with)47
b FJ(p)1298 2528 y FS(2)1374 2516 y FG(\226>)964 2600
y FU(.)993 2625 y(.)1023 2650 y(.)834 2756 y FG(tr)o(ansf)n(or)r(m)40
b FJ(e)1227 2768 y FI(n)1283 2756 y FG(with)46 b FJ(p)1505
2768 y FI(n)1581 2756 y FG(\226>)938 2832 y(if)41 b FJ(c)g
FG(then)f([)p FJ(e)1340 2844 y FS(0)1375 2832 y FG(])h(else)20
b([)g(])1787 2386 y FU(The)g(semantics)g(of)g(a)h FG(select-from-where)
c FU(e)o(xpression)1787 2486 y(\(in)i(the)f(form)g(as)i(it)f(is)h(at)f
(the)g(be)o(ginning)d(of)i(Section)h(3\))1787 2586 y(is)k(de\002ned)f
(in)g(terms)h(of)f(the)g(translation)g(into)g FK(C)p
FU(Duce)1787 2685 y(gi)n(v)o(en)f(on)i(the)f(left-hand)f(side.)h(In)h
(our)e(conte)o(xt)h FG(tr)o(ans-)1787 2785 y(f)n(or)r(m)c
FU(plays)f(e)o(xactly)g(the)h(same)g(role)f(as)i(the)f(\223for\224)e
(con-)1787 2885 y(struct)32 b(of)f(XQuery)g(core)g(does)g([17].)f(Ho)n
(we)n(v)o(er)m(,)f(the)523 2984 y(peculiar)d(dif)n(ference)e(is)j(that)
g(our)f(pattern)f(matching)g(compilation)g(schema)h(is)i(based)e(on)g
(non-)523 3084 y(uniform)18 b(tree)j(automata)e(which)h(fully)g(e)o
(xploit)f(types)h(to)h(optimise)f(the)g(code)g([19])f(as)i(well)g(as)g
(its)523 3184 y(e)o(x)o(ecution.)15 b(This)j(translation)e(is)j(gi)n(v)
o(en)d(only)h(to)g(de\002ne)g(in)h(an)f(unambiguous)e(w)o(ay)i(the)g
(semantics)523 3283 y(of)i(the)g(ne)n(w)g(term.)g(It)g(is)i(not)d
(intended)g(to)i(impose)e(an)o(y)h(e)o(x)o(ecution)e(order)m(,)g(since)
i(such)g(a)h(choice)f(is)523 3383 y(left)f(to)h(the)f(query)f
(optimiser)-5 b(.)18 b(In)f(f)o(act)i(the)f(optimiser)g(can)g
(implement)f(this)h(more)g(ef)n(\002ciently;)f(for)523
3482 y(instance,)h(if)g FJ(c)h FU(does)f(not)g(in)m(v)n(olv)o(e)f(the)h
(capture)f(v)n(ariables)h(of)g(some)24 b FJ(p)2548 3494
y FI(i)2569 3482 y FU(,)18 b(the)h(query)d(optimiser)i(can,)523
3582 y(as)i(customary)d(in)i(databases,)f(push)h(selections)g(\(and/or)
e(projections\))g(on)h(some)h(components)e(as)523 3682
y(sho)n(wn)i(in)i(Section)f(4.)523 3879 y FB(3.1)82 b
FK(C)p FU(QL)881 3891 y FI(X)523 4034 y FU(In)23 b(order)g(to)g(in)m(v)
o(estigate)f(and)h(compare)f(pattern-matching)f(with)j(XQuery)-5
b(,)21 b(we)j(ha)n(v)o(e)f(e)o(xtended)523 4134 y FK(C)p
FU(QL)c(with)g(projection)f(operators)f FJ(\340)i(la)h
FU(XP)o(ath.)e(Let)h FJ(e)p FU(,)h(be)f(an)g(e)o(xpression)e(denoting)g
(a)j(sequence)523 4233 y(of)d(XML)g(elements,)g(and)e
FJ(t)23 b FU(be)17 b(a)h FK(C)p FU(Duce)f(type,)f(then)h
FJ(e)l FD(=)2109 4231 y(=)2111 4233 y(=)m FJ(t)24 b FU(denotes)16
b(the)h(set)i(of)d(children)g(of)h(the)g(ele-)523 4333
y(ments)h(in)g FJ(e)h FU(whose)f(type)f(is)g FJ(t)6 b
FU(.)19 b(The)e(formal)g(semantics)h(is)i(de\002ned)d(by)g(encoding:)g
FJ(e)l FD(=)2966 4331 y(=)2968 4333 y(=)m FJ(t)24 b FU(is)19
b(encoded)523 4433 y(as)j FG(tr)o(ansf)n(or)r(m)e FJ(e)g
FG(with)g(<_>[\(x::)9 b FJ(t)26 b FG(|)21 b(_)g(\))p
Fz(\003)f FG(])g(\226>)g(x)q FU(.)i(It)f(is)i(con)m(v)o(enient)c(to)j
(introduce)e(the)h(syntax)g FJ(e)l FD(=)3244 4431 y(=)3246
4433 y(=)p FG(@)o FJ(a)523 4532 y FU(to)i(e)o(xtract)e(the)i(sequence)e
(of)h(all)h(v)n(alues)f(bound)e(to)j(the)f(attrib)n(ute)g
FJ(a)h FU(of)f(elements)g(in)g FJ(e)p FU(,)h(which)f(is)523
4632 y(encoded)c(in)j FK(C)p FU(Duce)f(as)h FG(tr)o(ansf)n(or)r(m)e
FJ(e)h FG(with)g(<_)g FJ(a)p FG(=x>_)f(\226>)h([x])p
Black 523 4745 473 4 v 546 4806 a FP(5)598 4833 y FN(The)i(condition)i
Fo(var)r Fm(\()6 b Fo(p)1214 4845 y Fw(i)1235 4833 y
Fm(\))12 b Fl(^)g Fo(var)r Fm(\()6 b Fo(p)1520 4845 y
Fw(j)1541 4833 y Fm(\))18 b(=)h FA(?)j FN(for)42 b Fo(i)18
b Fl(6)p Fm(=)30 b Fo(j)24 b FN(is)e(not)h(strictly)f(necessary)i(b)o
(ut)f(may)g(be)g(useful)g(in)598 4924 y(practise)c(and)g(simpli\002es)g
(both)g(the)g(proofs)h(and)f(the)g(de\002nition)h(of)e(the)h
(optimisations.)p Black Black Black eop end
%%Page: 10 10
TeXDict begin 10 9 bop Black Black Black 523 369 2898
4 v 521 1613 4 1245 v 535 467 a FN(XQuery:)p 535 495
262 3 v Black Black 535 690 a FH()553 757 y({)571
823 y(f)n(or)18 b($b)g(in)f($bib)o(lio/bib/book)571 890
y(where)h($b/pub)o(lisher)c(=)k("Addison-W)n(esle)o(y")791
956 y(and)f($b/@y)o(ear)f(>)i(1990)571 1023 y(retur)r(n)608
1089 y()626 1155
y({)i($b/title)f(})608 1222 y()553 1288 y(})535
1355 y()p 1844 1613 4 1245 v 1860 1613 V 1874 460
a FA(C)p FN(QL)2028 472 y Fw(X)2072 460 y FN(:)p 1874
485 220 3 v Black Black 1874 610 a FH()h(select)f([t])1874 676 y(from)28 b(b)18 b(in)g([bib)o(lio]/_)d(,)
2038 743 y(p)j(in)g([b]/_)d(,)2038 809
y(t)37 b(in)17 b([b]/_)i(,)2038 875 y(y)f(in)g([b]/@y)o(ear)1874
942 y(where)f(\(p)h(=)g("Addison-W)n(esle)o(y"\))2093
1008 y(and)f(\(y>>"1990"\)\);;)p 1874 1092 1536 4 v 1874
1183 a FA(C)p FN(QL:)p 1874 1209 175 3 v Black Black
1874 1333 a FH()h(select)f([t])1874
1400 y(from)28 b([b::Book*])17 b(in)h([bib)o(lio],)2038
1466 y([t&Title)36 b(_+)2322 1532 y("Addison-W)n(esle)o(y)o(";_])9 b(in)14 b(b;;)1874
1599 y(where)j(y>>"1990")p 3419 1613 4 1245 v 523 1616
2898 4 v Black 1153 1712 a FL(Fig)o(.)12 b(3.)19 b FN(XQuery)g(and)h
(the)f(tw)o(o)g FA(C)p FN(QL)f(programming)j(styles.)p
Black Black 648 1838 a FU(Figure)h(3)g(illustrates)i(ho)n(w)e(to)h
(code)f(the)h(same)f(query)g(in)h(XQuery)-5 b(,)21 b
FK(C)p FU(QL)2827 1850 y FI(X)2874 1838 y FU(,)i(and)f
FK(C)p FU(QL.)h(The)523 1938 y(query)e(at)h(issue)h(is)f(the)g(query)f
(Q1)h(from)f(the)h(XQuery)f(Use)h(Cases.)h(While)g(XQuery)d(and)i
FK(C)p FU(QL)3358 1950 y FI(X)523 2037 y FU(code)d(mak)o(e)g(use)g(of)h
(simple)f(v)n(ariables)g(that)g(are)h(bound)d(to)j(the)f(results)h(of)f
(projections,)f(the)h FK(C)p FU(QL)523 2137 y(one)24
b(fully)g(e)o(xploits)g(the)g(pattern)g(algebra)f(of)h
FK(C)p FU(Duce)g(\(we)h(lea)n(v)o(e)f(as)h(an)g(e)o(x)o(ercise)e(to)i
(the)g(reader)523 2237 y(ho)n(w)18 b(to)h(use)f(re)o(gular)f(e)o
(xpressions)g(on)h(types)h(to)f(modify)f(the)i(pattern)e(in)i(the)f
(second)g(from)f(clause)523 2336 y(of)j(the)g FK(C)p
FU(QL)h(query)d(so)j(as)g(to)f(completely)f(get)h(rid)g(of)g(the)g
FG(where)f FU(clause\).)648 2438 y(Finally)-5 b(,)15
b(since)h(we)h(use)g FK(C)p FU(QL)1515 2450 y FI(X)1579
2438 y FU(to)f(mimic)g(XQuery)f(in)i(a)f(full)g(pattern)g(setting,)g
(it)h(is)g(important)523 2538 y(to)h(stress)h(that)g(the)f(semantics)g
(of)g FG(where)f FU(clauses)h(in)h FK(C)p FU(QL)f(\(hence)f(in)h
FK(C)p FU(QL)2754 2550 y FI(X)2801 2538 y FU(\))g(is)i(not)d(e)o
(xactly)g(the)523 2637 y(same)g(as)h(in)f(XQuery)-5 b(.)15
b(The)i(latter)g(uses)h(a)f(set)h(semantics)f(according)e(to)i(which)f
(a)i(v)n(alue)e(satisfying)523 2737 y(the)23 b FG(where)e
FU(close)i(will)g(occur)f(at)h(most)f(once)g(in)h(the)f(result)h
(\(e.g.)e(as)j(for)e FC(SELECT)44 b(DISTINCT)26 b FU(of)523
2836 y(SQL\),)j(while)h FK(C)p FU(QL/)p FK(C)p FU(QL)1338
2848 y FI(X)1415 2836 y FU(follo)n(w)f(the)h(SQL)g(con)m(v)o(ention)c
(and)j(use)h(a)g(multi-set)g(semantics.)523 2936 y(As)f(usual,)f(the)g
(multi-set)g(semantics)g(is)h(more)e(general)g(since)i(the)f(e)o
(xistential)g(semantics)g(can)523 3036 y(easily)18 b(obtained)e(by)h
(using)g(the)h FG(distinct_v)n(alues)d FU(operator)h(\(which)h(tak)o
(es)h(a)g(sequence)e(and)h(elides)523 3135 y(multiple)27
b(occurrences)f(of)h(the)h(same)g(element\).)e(The)h(presence)g(of)g
(such)h(an)f(operator)f(has)i(no)523 3235 y(impact)20
b(on)g(the)g(translation)f(from)g FK(C)p FU(QL)1720 3247
y FI(X)1788 3235 y FU(to)h FK(C)p FU(QL.)523 3413 y FB(3.2)82
b(T)-6 b(ranslation)20 b(fr)o(om)f FK(C)p FU(QL)1505
3425 y FI(X)1573 3413 y FB(to)h FK(C)p FU(QL)523 3550
y(It)30 b(is)h(quite)e(easy)h(to)g(see)h(that)e(projections)g(can)g(be)
h(encoded)e(in)i FK(C)p FU(QL,)g(since)g(the)g(tw)o(o)g
FG(tr)o(ans-)523 3650 y(f)n(or)r(m)23 b FU(e)o(xpressions)e(used)i(to)g
(encode)f(projections)f(correspond,)f(respecti)n(v)o(ely)-5
b(,)21 b(to:)i FG(\003atten\(select)523 3749 y FJ(x)51
b FG(from)f(<_>[\()p FJ(x)p FG(::)9 b FJ(t)31 b FG(|)25
b(_)g(\))p Fz(\003)g FG(])51 b(in)f FU(e)25 b(\),)g(and)f(to)h
FG(select)50 b FJ(x)h FG(from)24 b(<_)h FJ(a)p FG(=)p
FJ(x)p FG(>_)f(in)50 b FJ(e)p FU(.)25 b(Nonetheless)f(it)523
3849 y(is)i(interesting)f(to)h(de\002ne)f(a)h(more)e(comple)o(x)g
(translation)h(from)f FK(C)p FU(QL)2606 3861 y FI(X)2679
3849 y FU(to)i FK(C)p FU(QL)g(that)f(fully)g(e)o(x-)523
3948 y(ploits)g(the)f(po)n(wer)f(of)i FK(C)p FU(Duce)f(patterns)g(to)g
(optimise)g(the)h(code.)e(Therefore)f(in)j(this)g(section)f(we)523
4048 y(formally)d(de\002ne)i(a)g(translation)f(that)h(aims)g(at)g
FE(\()p FJ(i)p FE(\))h FU(eliminating)e(projections)f(and)i(pushing)e
(them)523 4148 y(into)27 b(patterns)f FE(\()p FJ(ii)p
FE(\))i FU(transforming)d(as)i(man)o(y)f(as)i(possible)e(selection)h
(conditions)f(into)g(patterns.)523 4247 y(As)k(a)g(result)g(of)f(this)i
(translation)d(the)i(number)e(of)h(iterations)g(is)i(reduced)c(and)j
(se)n(v)o(eral)e FG(where)523 4347 y FU(clauses)18 b(are)g(pushed)f
(into)h(patterns.)f(In)h(order)f(to)h(formally)e(de\002ne)i(the)g
(translation)f(we)h(\002rst)h(need)523 4447 y(to)h(introduce)f(the)h(e)
o(xpression)f(and)g(e)n(v)n(aluation)g(conte)o(xts)g
FJ(E)6 b FF(\355)13 b(\375)21 b FU(and)16 b FJ(C)r FF(\355)e(\375)p
FU(:)619 4566 y(\257)-41 b FJ(q)26 b FU(::=)d FG(select)31
b FU(\257)-39 b FJ(e)20 b FG(from)1256 4548 y FU(\257)1246
4566 y FJ(f)33 b FG(where)d FU(\257)-39 b FJ(c)62 b FU(|)41
b FG(select)31 b FU(\257)-39 b FJ(e)21 b FG(from)2150
4548 y FU(\257)2139 4566 y FJ(f)619 4689 y FU(\257)-39
b FJ(e)29 b FU(::=)23 b FJ(x)62 b FU(|)g FJ(v)g FU(|)g
FG([)11 b FU(\257)-39 b FJ(e)p FG(.)12 b(.)g(.)23 b FU(\257)-39
b FJ(e)p FG(])62 b FU(|)g FG(\003atten\()11 b FU(\257)-39
b FJ(e)n FG(\))62 b FU(|)73 b(\257)-39 b FJ(e)l Fz(h)1968
4687 y(h)1970 4689 y(h)42 b FD(`)18 b FE(=)11 b FU(\257)-39
b FJ(e)o FU(.)12 b(.)g(.)g FD(`)19 b FE(=)11 b FU(\257)-39
b FJ(e)19 b Fz(i)2473 4687 y(i)2475 4689 y(i)32 b FU(\257)-39
b FJ(e)62 b FU(|)g FG(\()11 b FU(\257)-39 b FJ(e)p FG(,)11
b FU(\257)-39 b FJ(e)p FG(\))62 b FU(|)g FJ(op)p FG(\()11
b FU(\257)-39 b FJ(e)n FG(\))62 b FU(|)76 b(\257)-42
b FJ(q)625 4794 y FU(\257)615 4813 y FJ(f)36 b FU(::=)29
b FJ(p)20 b FG(in)31 b FU(\257)-39 b FJ(e)p FG(,)1038
4794 y FU(\257)1028 4813 y FJ(f)75 b FU(|)67 b FJ(p)21
b FG(in)31 b FU(\257)-39 b FJ(e)619 4936 y FU(\257)g
FJ(c)29 b FU(::=)23 b FG(`tr)q(ue)61 b FU(|)g FG(`f)n(alse)g
FU(|)h FG(not\()11 b FU(\257)-39 b FJ(c)n FG(\))62 b
FU(|)73 b(\257)-39 b FJ(c)21 b FG(or)31 b FU(\257)-39
b FJ(c)62 b FU(|)73 b(\257)-39 b FJ(c)21 b FG(and)30
b FU(\257)-39 b FJ(c)62 b FU(|)73 b(\257)-39 b FJ(e)21
b(bop)30 b FU(\257)-39 b FJ(e)62 b FU(|)g FG(member\()11
b FU(\257)-39 b FJ(e)o FG(,)11 b FU(\257)-39 b FJ(e)o
FG(\))p Black Black eop end
%%Page: 11 11
TeXDict begin 11 10 bop Black Black 543 443 a FJ(E)6
b FF(\355\375)35 b FU(::=)27 b FF(\355)18 b(\375)42 b
FU(|)61 b FG([)p FJ(e)1115 455 y FS(1)1159 443 y FD(:)9
b(:)g(:)h FJ(e)1293 455 y FI(n)1346 443 y FJ(E)c FF(\355\375)29
b FU(\257)-39 b FJ(e)1540 455 y FS(1)1584 443 y FD(:)9
b(:)g(:)21 b FU(\257)-39 b FJ(e)1718 455 y FI(m)1766
443 y FG(])62 b FU(|)g FG(\003atten\()p FJ(E)6 b FF(\355)n(\375)p
FG(\))63 b FU(|)58 b Fz(h)2460 441 y(h)2461 443 y(h)32
b FU(\257)-39 b FJ(e)42 b FD(`)18 b FE(=)g FJ(e)9 b FD(:)g(:)g(:)g(`)18
b FE(=)g FJ(e)d Fz(i)3061 441 y(i)3063 443 y(i)21 b FJ(E)6
b FF(\355)o(\375)755 550 y FU(|)61 b Fz(h)835 548 y(h)837
550 y(h)31 b FU(\257)-38 b FJ(e)41 b FD(`)18 b FE(=)g
FJ(e)9 b FD(:)g(:)g(:)h(`)18 b FE(=)p FJ(E)6 b FF(\355)o(\375)21
b FD(`)d FE(=)11 b FU(\257)-39 b FJ(e)22 b FU(.)12 b(.)g(.)d
Fz(i)1799 548 y(i)1800 550 y(i)33 b FU(\257)-39 b FJ(e)62
b FU(|)g FG(\()p FJ(E)6 b FF(\355)o(\375)p FG(,)11 b
FU(\257)-39 b FJ(e)p FG(\))62 b FU(|)g FJ(E)6 b FF(\355\375)p
FG(/)n FJ(t)68 b FU(|)61 b FJ(E)6 b FF(\355\375)p FG(/@)p
FJ(a)62 b FU(|)f FJ(op)p FU(\()p FJ(E)6 b FF(\355)o(\375)p
FU(\))531 680 y FJ(C)r FF(\355)20 b(\375)27 b FU(::=)g
FF(\355)18 b(\375)42 b FU(|)61 b FG(not\()l FJ(C)r FF(\355)o(\375)p
FG(\))h FU(|)g FJ(c)21 b FG(or)16 b FJ(C)r FF(\355\375)62
b FU(|)c FJ(C)r FF(\355\375)21 b FG(or)31 b FU(\257)-39
b FJ(c)63 b FU(|)e FJ(c)21 b FG(and)15 b FJ(C)r FF(\355\375)63
b FU(|)58 b FJ(C)r FF(\355\375)20 b FG(and)31 b FU(\257)-39
b FJ(c)755 787 y FU(|)65 b FJ(e)20 b(bop)g(E)6 b FF(\355)o(\375)63
b FU(|)e FJ(E)6 b FF(\355\375)21 b FJ(bop)30 b FU(\257)-39
b FJ(e)63 b FU(|)e FG(member\()p FJ(e)p FG(,)p FJ(E)6
b FF(\355)o(\375)p FG(\))62 b FU(|)g FG(member\()p FJ(E)6
b FF(\355)n(\375)p FG(,)11 b FU(\257)-39 b FJ(e)p FG(\))523
882 y FU(where)20 b FJ(m)p FU(,)p FJ(n)d Fz(\025)h FU(0.)p
Black 523 1046 a FB(De\002nition)i(1.)p Black 41 w FJ(The)g(tr)o
(anslation)f Fk(P)10 b Fh(J)40 b Fg(K)21 b FJ(is)g(de\002ned)e(by)h
(the)g(following)g(r)m(e)o(writing)g(rules:)523 1157
y Fo(-)15 b Fk(P)10 b Fh(J)16 b Fx(select)d FJ(E)6 b
FF(\355)p FJ(q)p FF(\375)14 b Fx(from)26 b FJ(f)g Fx(where)15
b FJ(c)h Fh(K)f Fo(=)h Fk(P)10 b Fh(J)15 b Fx(select)f
FJ(E)6 b FF(\355)p Fk(P)k Fh(J)15 b Fo(q)h Fh(K)p Fp(\375)c
Fx(from)24 b Fo(f)g Fx(where)13 b Fo(c)j Fh(K)p Fo(,)f(q)h(is)f(not)h
(a)28 b FN(\257)-37 b Fo(q)16 b(e)o(xpr)m(ession)523
1257 y(-)j Fk(P)10 b Fh(J)18 b Fx(select)c FJ(E)6 b FF(\355)k
FU(\257)-38 b FJ(e)p FU(/)n FJ(t)6 b FF(\375)13 b Fx(from)26
b FJ(f)h Fx(where)15 b FJ(c)j Fh(K)h Fo(=)g Fk(P)10 b
Fh(J)19 b Fx(select)13 b FJ(E)6 b FF(\355)p FJ(x)p FF(\375)14
b Fx(from)26 b FJ(f)12 b Fx(,)j FJ(x)f Fx(in)g([)d FU(\257)-39
b FJ(e)o FU(/)n FJ(t)6 b Fx(])14 b(where)h FJ(c)j Fh(K)p
Fo(,)12 b(x)25 b Fn(=)-45 b Fl(2)17 b Fo(bv)p Fm(\()11
b Fo(f)g Fm(\))523 1356 y Fo(-)k Fk(P)10 b Fh(J)16 b
Fx(select)d FJ(E)6 b FF(\355)11 b FU(\257)-39 b FJ(e)p
FU(/@)p FJ(a)p FF(\375)14 b Fx(from)26 b FJ(f)h Fx(where)15
b FJ(c)g Fh(K)g Fo(=)h Fk(P)10 b Fh(J)16 b Fx(select)d
FJ(E)6 b FF(\355)p FJ(x)p FF(\375)14 b Fx(from)26 b FJ(f)12
b Fx(,)j FJ(x)f Fx(in)g([)d FU(\257)-39 b FJ(e)o FU(/@)p
FJ(a)p Fx(])14 b(where)h FJ(c)g Fh(K)p Fo(,)d(x)22 b
Fn(=)-45 b Fl(2)14 b Fo(bv)p Fm(\()d Fo(f)g Fm(\))523
1456 y Fo(-)k Fk(P)10 b Fh(J)15 b Fx(select)24 b FU(\257)-38
b FJ(e)13 b Fx(from)27 b FJ(f)f Fx(where)11 b FJ(C)r
FF(\355)p FJ(q)p FF(\375)k Fh(K)g Fo(=)g Fk(P)10 b Fh(J)15
b Fx(select)24 b FU(\257)-38 b FJ(e)13 b Fx(from)27 b
FJ(f)f Fx(where)11 b FJ(C)r FF(\355)p Fk(P)f Fh(J)15
b Fo(q)h Fh(K)p Fp(\375)e Fh(K)p Fo(,)h(q)g(is)g(not)h(a)27
b FN(\257)-37 b Fo(q)16 b(e)o(xpr)m(ession)523 1555 y(-)j
Fk(P)10 b Fh(J)18 b Fx(select)25 b FU(\257)-39 b FJ(e)898
1567 y FS(0)946 1555 y Fx(from)27 b FJ(f)f Fx(where)11
b FJ(C)r FF(\355)g FU(\257)-39 b FJ(e)p FU(/)n FJ(t)6
b FF(\375)19 b Fh(K)f Fo(=)h Fk(P)10 b Fh(J)19 b Fx(select)24
b FU(\257)-38 b FJ(e)2043 1567 y FS(0)2092 1555 y Fx(from)26
b FJ(f)12 b Fx(,)j FJ(x)f Fx(in)g([)d FU(\257)-39 b FJ(e)o
FU(/)n FJ(t)6 b Fx(])14 b(where)c FJ(C)r FF(\355)q FU(x)p
FF(\375)18 b Fh(K)p Fo(,)12 b(x)25 b Fn(=)-45 b Fl(2)16
b Fo(bv)p Fm(\()11 b Fo(f)g Fm(\))523 1655 y Fo(-)k Fk(P)10
b Fh(J)s Fx(select)24 b FU(\257)-39 b FJ(e)878 1667 y
FS(0)927 1655 y Fx(from)12 b FJ(f)g Fx(where)g FJ(C)r
FF(\355)f FU(\257)-39 b FJ(e)p FU(/@)p FJ(a)p FF(\375)r
Fh(K)15 b Fo(=)g Fk(P)10 b Fh(J)15 b Fx(select)25 b FU(\257)-39
b FJ(e)2060 1667 y FS(0)2109 1655 y Fx(from)12 b FJ(f)n
Fx(,)p FJ(x)i Fx(in)h([)c FU(\257)-39 b FJ(e)o FU(/@)p
FJ(a)p Fx(])11 b(where)g FJ(C)r FF(\355)p FU([)p FJ(x)p
FU(])p FF(\375)k Fh(K)p Fo(,)d(x)h Fn(=)-45 b Fl(2)5
b Fo(bv)p Fm(\()11 b Fo(f)g Fm(\))523 1755 y Fo(-)19
b Fk(P)10 b Fh(J)18 b Fx(select)25 b FU(\257)-39 b FJ(e)14
b Fx(from)26 b FJ(f)g Fx(where)33 b FU(\257)-39 b FJ(c)19
b Fh(K)f Fo(=)i Fk(P)10 b Fh(J)18 b Fx(select)25 b FU(\257)-39
b FJ(e)13 b Fx(from)i Fk(F)i Fh(J)30 b Fo(f)f Fh(K)2201
1772 y Fw(bv)p FO(\()9 b Fw(f)f FO(\))2351 1755 y Fx(where)30
b FN(\257)-35 b Fo(c)19 b Fh(K)523 1878 y FJ(wher)m(e)i
Fk(F)c Fh(J)37 b(K)23 b Fo(is)c(de\002ned)h(as:)523 2001
y(-)f Fk(F)e Fh(J)25 b FJ(p)20 b Fx(in)h FJ(e)p FU(,)33
b FJ(f)e Fh(K)1000 2014 y FQ(G)1058 2001 y Fo(=)19 b
Fk(F)e Fh(J)25 b FJ(p)c Fx(in)g FJ(e)d Fh(K)1471 2014
y FQ(G)1510 2001 y Fo(,)h Fk(F)e Fh(J)30 b Fo(f)f Fh(K)1756
2023 y FQ(G)p Fs([)p Fw(bv)p FO(\()p Fr(F)13 b Ff(J)t
Fw(p)i Fx(in)g Fw(e)o Ff(K)2155 2040 y Fu(G)2184 2023
y FO(\))523 2125 y Fo(-)k Fk(F)e Fh(J)25 b FJ(p)20 b
Fx(in)h FJ(E)6 b FF(\355)p FJ(q)p FF(\375)18 b Fh(K)1054
2138 y FQ(G)1112 2125 y Fo(=)h Fk(F)f Fh(J)24 b FJ(p)d
Fx(in)g FJ(E)6 b FF(\355)p Fk(P)k Fh(J)18 b Fo(q)h Fh(K)p
Fp(\375)g Fh(K)1815 2138 y FQ(G)523 2225 y Fo(-)g Fk(F)e
Fh(J)25 b FJ(p)20 b Fx(in)h FJ(E)6 b FF(\355)11 b FU(\257)-39
b FJ(e)p FU(/)n FJ(t)6 b FF(\375)18 b Fh(K)1099 2238
y FQ(G)1157 2225 y Fo(=)h(if)28 b FN(\257)-34 b Fo(e)18
b(has)i(type)f Fx([An)o(y])f Fo(then)h FU(<_>[\()p FJ(x)p
FU(::)n FJ(t)6 b FU(|_\)*])17 b Fx(in)32 b FU(\257)-39
b FJ(e)p FU(,)21 b Fk(F)c Fh(J)25 b FJ(p)20 b Fx(in)h
FJ(E)6 b FF(\355)p FJ(x)p FF(\375)19 b Fh(K)3033 2238
y FQ(G)p Fs([)p Fw({x})3183 2225 y Fo(,)g(x)25 b Fn(=)-45
b Fl(2)16 b Fp(G)1158 2334 y Fo(else)j FU([\(<_>[\()p
FJ(x)p FU(::)n FJ(t)6 b FU(|_\))p Fz(\003)p FU(])16 b(|)21
b FJ(x)p FU(::)p Fx(`nil)p FU(\))2055 2304 y Fe(\003)2089
2334 y FU(])g Fx(in)g FU([)11 b(\257)-39 b FJ(e)o FU(],)21
b Fk(F)c Fh(J)25 b FJ(p)20 b Fx(in)h FJ(E)6 b FF(\355)p
Fx(\003atten\()p FJ(x)p Fx(\))p FF(\375)20 b Fh(K)3056
2347 y FQ(G)p Fs([)p Fw({x})3206 2334 y Fo(,)f(x)25 b
Fn(=)-45 b Fl(2)16 b Fp(G)523 2443 y Fo(-)j Fk(F)e Fh(J)25
b FJ(p)20 b Fx(in)h FJ(E)6 b FF(\355)11 b FU(\257)-39
b FJ(e)p FU(/@)p FJ(a)p FF(\375)19 b Fh(K)1191 2456 y
FQ(G)1248 2443 y Fo(=)h(if)28 b FN(\257)-35 b Fo(e)19
b(has)g(type)g Fx([An)o(y])f Fo(then)i FU(<_)g FJ(a)p
FU(=)p FJ(x)p FU(>_)f Fx(in)32 b FU(\257)-39 b FJ(e)p
FU(,)19 b Fk(F)e Fh(J)25 b FJ(p)20 b Fx(in)h FJ(E)6 b
FF(\355)p FU([)p FJ(x)p FU(])p FF(\375)18 b Fh(K)3045
2456 y FQ(G)p Fs([)p Fw({x})3195 2443 y Fo(,)h(x)25 b
Fn(=)-45 b Fl(2)16 b Fp(G)1514 2552 y Fo(else)j FU([\(<_)g
FJ(a)p FU(=)p FJ(x)p FU(>_)h(|)g FJ(x)p FU(::)p Fx(`nil)p
FU(\))p Fz(\003)p FU(])g Fx(in)h FU([)11 b(\257)-39 b
FJ(e)o FU(],)19 b Fk(F)e Fh(J)25 b FJ(p)20 b Fx(in)h
FJ(E)6 b FF(\355)p FJ(x)p FF(\375)19 b Fh(K)3056 2565
y FQ(G)p Fs([)p Fw({x})3206 2552 y Fo(,)g(x)25 b Fn(=)-45
b Fl(2)16 b Fp(G)523 2651 y Fo(-)j Fk(F)e Fh(J)25 b FJ(p)20
b Fx(in)32 b FU(\257)-39 b FJ(e)19 b Fh(K)911 2664 y
FQ(G)969 2651 y Fo(=)25 b FJ(p)20 b Fx(in)32 b FU(\257)-39
b FJ(e)523 2815 y FU(Apart)17 b(from)f(technical)g(details,)h(the)g
(translation)f(is)i(rather)f(simple:)g(conte)o(xts)f(are)h(de\002ned)f
(so)h(that)523 2914 y(projections)25 b(are)h(replaced)f(according)f(to)
j(an)f(innermost-rightmost)d(strate)o(gy)-5 b(.)24 b(F)o(or)i(instance)
g(if)523 3014 y(we)d(ha)n(v)o(e)f(to)h(translate)f FG(x/t1/t2)p
FU(,)g FG(\(x/t1\))g FU(will)h(be)g(considered)e(\002rst)i(thus)g(remo)
o(ving)d(the)i(projection)523 3114 y(on)27 b(t1)g(prior)f(to)i
(performing)c(the)j(same)h(translation)e(on)h(the)g(remainder)-5
b(.)26 b(The)h(\002rst)h(three)f(rules)523 3213 y(replace)g
(projections)g(in)h(the)g(select)g(part,)g(2nd)f(and)g(3rd)h(rules)f
(incidentally)g(perform)f(a)i(slight)523 3313 y(optimisation)19
b(\(the)o(y)g(get)i(rid)f(of)g(one)g(le)n(v)o(el)g(of)g(sequence)f
(nesting\))g(in)i(the)f(case)h(the)f(projection)f(is)523
3413 y(applied)f(to)g(a)h(sequence)f(with)g(just)h(one)f(element)g
(\(this)h(case)g(is)h(v)o(ery)d(common)g(and)h(dealing)f(with)523
3512 y(it)h(allo)n(ws)g(for)e(further)g(optimisation)g(later)i(on\);)e
(the)i(4th,)f(5th,)f(and)h(6th)g(rules)g(replace)g(projections)523
3612 y(in)32 b(the)g(\223where\224)e(part)i(by)f(de\002ning)f(ne)n(w)i
(patterns)f(in)h(the)g(\223from\224)e(part,)h(while)h(the)f(7th)h(rule)
523 3711 y(handles)18 b(projections)g(in)h(the)g(\223from\224)f(part.)g
(The)h(latter)g(resorts)g(to)g(an)g(auxiliary)f(function)f
Fy(F)39 b FU(that)523 3811 y(needs)20 b(to)g(store)g(in)h(a)f(set)h
FF(G)g FU(the)f(capture)f(v)n(ariables)h(freshly)f(introduced.)648
3911 y(So)h(f)o(ar)m(,)g(we)h(ha)n(v)o(e)e(pro)o(v)o(ed)f(just)j(a)g
(partial)f(correctness)g(property)e(of)i(the)g(translation,)g(namely)
523 4010 y(that)g(it)h(preserv)o(es)e(the)h(types)g(\(the)g(proof)f(is)
i(omitted)e(for)h(space)g(reasons\):)p Black 523 4159
a FB(Theor)o(em)g(1)p Black 41 w(\(T)-6 b(ype)20 b(pr)o(eser)o(v)o
(ation\).)f FF(G)f Fz(`)j FJ(q)f(:)g(t)h Fz(\))e FF(G)f
Fz(`)j Fk(P)10 b Fh(J)18 b FJ(q)j Fg(K)g FJ(:)f(t)523
4309 y FU(The)c(result)h(of)f Fy(P)29 b FU(is)17 b(a)g(query)f(in)g
FK(C)p FU(QL)h(since)g(all)g(projections)e(ha)n(v)o(e)h(been)g(remo)o
(v)o(ed.)e(From)i(a)h(prac-)523 4408 y(tical)j(vie)n(wpoint,)d(the)i
(use)h(of)e(a)i(projection)d(in)i(a)h(query)e(is)i(equi)n(v)n(alent)d
(to)i(that)g(of)g(a)h(nested)f(query)-5 b(.)p Black Black
523 4491 a FH()523 4557 y(select)17 b([t])523
4624 y(from)h(b)g(in)f Fd(\(select)g(v)h(fr)o(om)g(<_>[\(yb::Book|)g
(_\)*])g(in)g([bib)o(lio],)i(v)e(in)h(yb\))669 4690 y
FH(p)f(in)g Fd(\(select)e(v)i(fr)o(om)g(<_>[\(yp::Pub)o(lisher|)g
(_\)*])g(in)g([b],)h(v)f(in)g(yp\))669 4757 y FH(t)37
b(in)18 b Fd(\(select)e(v)i(fr)o(om)g(<_>[\(yt::Title|)g(_\)*])f(in)i
([b],)g(v)f(in)g(yt\))669 4823 y FH(y)g(in)g Fd(\(select)e(yy)i(fr)o
(om)g(<_y)o(ear=yy>_)34 b(in)19 b([b]\))560 4889 y FH(where)e(\(p)h(=)g
("Addison-W)n(esle)o(y"\))12 b(and)17 b(\(y>>"1990"\))
2496 4508 y FU(Let)49 b Fy(Q)65 b FU(be)49 b(the)g(query)e(ob-)2496
4607 y(tained)15 b(from)f(the)h FK(C)p FU(QL)3180 4619
y FI(X)3243 4607 y FU(query)2496 4707 y(in)68 b(Figure)f(3)g(by)g
(replac-)2496 4807 y(ing)19 b FG(_)p FU(,)f FG(_)p
FU(,)2496 4906 y(and)h FG(_)f FU(respecti)n(v)o(ely)h(by)p
Black Black eop end
%%Page: 12 12
TeXDict begin 12 11 bop Black Black 2153 399 1276 4 v
2151 1196 4 798 v Black Black 2165 466 a FH()2201
532 y(select)17 b([t])2201 599 y(from)h
Fd(<_>[\(yb::Book|_\)*])g(in)g([bib)o(lio])p FH(,)2293
665 y(b)f(in)h Fd(yb)p FH(,)2293 731 y Fd(<_>[\(yp::Pub)o(lisher|_\)*])
f(in)i([b])p FH(,)2293 798 y(p)e(in)h Fd(yp)p FH(,)2293
864 y Fd(<_>[\(yt::Title|_\)*])f(in)h([b])p FH(,)2293
931 y(t)g(in)g Fd(yt)p FH(,)2293 997 y Fd(<_)g(y)o(ear=y>_)f(in)h([b])
2201 1064 y FH(where)f(\(p)h(=)h("Addison-W)n(esle)n
(y"\))2420 1130 y(and)e(\(y>>"1990"\))p 3427 1196 V 2153
1200 1276 4 v Black 2553 1343 a FB(Fig)o(.)c(4.)20 b
Fk(P)10 b Fh(J)19 b Fk(Q)34 b Fh(K)p Black 523 448 a
FG(Book)p FU(,)25 b FG(Pub)o(lisher)p FU(,)e(and)h FG(Title)g
FU(\(the)h(resulting)g(query)523 548 y(is)35 b(semantically)f(equi)n(v)
n(alent)e(b)n(ut)i(more)g(readable)523 648 y(and)23 b(compact\).)e(If)j
(we)f(e)o(xpand)f(the)h(projections)f(of)523 747 y Fy(Q)44
b FU(into)27 b(its)i(corresponding)24 b(sequence)i(of)h
FG(select)p FU(')-5 b(s)523 847 y(we)34 b(obtain)e(the)h(query)f(at)i
(the)f(end)g(of)g(the)g(pre)n(vi-)523 946 y(ous)e(page)f(\(we)h(used)f
(boldf)o(ace)g(to)h(outline)f(modi-)523 1046 y(\002cations\).)648
1146 y(The)21 b(translation)g Fk(P)10 b Fh(J)42 b Fg(K)22
b FU(unnests)g(these)f FG(select)p FU(')-5 b(s)523 1245
y(yielding)19 b(the)i(query)e(of)h(Figure)g(4.)h(In)f(the)g(ne)o(xt)g
(sec-)523 1345 y(tion)25 b(we)h(sho)n(w)f(that)h(this)g(has)g(a)g(v)o
(ery)e(positi)n(v)o(e)h(im-)523 1445 y(pact)20 b(on)g(performances.)523
1640 y FV(4)99 b(P)o(atter)o(n)26 b(Query)f(Optimisation)523
1802 y FU(In)17 b(this)i(section)e(we)h(adapt)f(classical)i(database)e
(optimisation)f(techniques)g(to)i(our)f(patterns.)g(Such)523
1901 y(optimisations)e(e)n(v)n(aluate,)f(as)j(customary)d(in)i(the)g
(database)f(w)o(orld,)g(conditions)f(just)j(when)e(needed)523
2001 y(thus)26 b(reducing)d(the)j(size)g(of)g(intermediate)e(data)i
(contrib)n(uting)d(in)j(the)g(result)f(construction)f(and)523
2101 y(also)c(a)n(v)n(oiding)e(to)i(visit)g(useless)g(parts)f(of)h(the)
f(document.)e(More)i(precisely)-5 b(,)18 b(we)i(proceed)e(in)i(four)523
2200 y(steps.)523 2392 y FJ(Conjunctive)29 b(Normal)h(F)-9
b(orm.)56 b FU(The)29 b(\002rst)i(step)f(consists)h(in)f(putting)f(the)
h FG(where)f FU(condition)f(in)523 2491 y(conjuncti)n(v)o(e)15
b(normal)h(form)h(and)f(then)h(mo)o(ving)f(into)h(the)g
FG(from)h FU(clause)f(the)g(parts)h(of)f(the)g(condition)523
2591 y(that)j(can)g(be)g(e)o(xpressed)f(by)h(a)h(pattern.)e(This)h(is)h
(e)o(xpressed)e(by)h(the)g(follo)n(wing)f(re)n(writing)g(rule:)620
2714 y FG(select)h FJ(e)h FG(from)32 b FJ(f)h FG(where)20
b FJ(c)103 b Fc(;)83 b FG(select)20 b FJ(e)h FG(from)32
b FJ(f)12 b FU(,)p FF(Q)2237 2684 y FS(1)2272 2714 y
FE(\()l FJ(C)r(N)5 b(F)i FE(\()p FJ(c)p FE(\)\))21 b
FG(where)f FF(Q)2916 2684 y FS(2)2950 2714 y FE(\()l
FJ(C)r(N)5 b(F)i FE(\()p FJ(c)p FE(\)\))523 2837 y FU(where)18
b(CNF)p FE(\()p FJ(c)p FE(\))i FU(is)f(a)g(conjuncti)n(v)o(e)e(normal)g
(form)g(of)i FJ(c)p FU(,)f FF(Q)2222 2807 y FS(1)2257
2837 y FE(\()p FJ(c)p FE(\))h FU(represents)f(the)h(part)f(of)g
FJ(c)h FU(that)g(can)523 2937 y(be)j(e)o(xpressed)e(by)i(a)g(pattern)f
(and)h(thus)f(remounted)f(in)i(the)g(\223from\224)e(part,)i(and)f
FF(Q)2916 2907 y FS(2)2950 2937 y FE(\()p FJ(c)p FE(\))i
FU(is)g(the)f(part)523 3037 y(of)c FJ(c)g FU(that)g(remains)g(in)g(the)
g(\223where\224)f(condition.)f(F)o(ormally)-5 b(,)17
b FF(Q)2342 3006 y FS(1)2395 3037 y FU(and)g FF(Q)2595
3006 y FS(2)2648 3037 y FU(are)h(the)g(\002rst)h(and)e(second)523
3136 y(projections)i(of)h(the)g(function)e FF(Q)j FU(de\002ned)e(as:)p
Black 523 3286 a FB(De\002nition)h(2.)p Black 41 w FJ(Let)h(i)g(denote)
e(a)h(scalar)h(\(i.e)o(.)e(an)h(inte)m(g)o(er)g(or)g(a)h(c)o(har)o
(acter\))d(and)i(v)g(a)g(value)535 3405 y FF(Q)p FE(\()p
FJ(v)p FG(=)p FJ(e)o FE(\))e(=)g(\()p FJ(v)j FG(in)f
FU([)p FJ(e)p FU(])o FD(;)9 b FG(`tr)q(ue)o FE(\))663
b FF(Q)p FE(\()p FG(count\()p FJ(e)p FG(\))19 b(=)i FJ(i)p
FE(\))e(=)e(\()k FG([)g(_)2756 3375 y FI(i)2777 3405
y FG(])f(in)g([)p FJ(e)p FG(])p FD(;)9 b FG(`tr)q(ue)n
FE(\))535 3528 y FF(Q)p FE(\()p FJ(e)20 b FG(>=)g FJ(i)p
FE(\))f(=)f(\()j FJ(i)p FG(\226)12 b(\226)o Fz(\003)21
b FG(in)f([)p FJ(e)p FG(])o FD(;)9 b FG(`tr)q(ue)o FE(\))461
b FF(Q)p FE(\()p FG(count\()p FJ(e)p FG(\))19 b(>)-12
b(>)20 b FJ(i)p FE(\))f(=)f(\()j FG([)f(_)2787 3498 y
FI(i)2829 3528 y FG(_+])f(in)h([)p FJ(e)p FG(])p FD(;)9
b FG(`tr)q(ue)n FE(\))535 3651 y FF(Q)p FE(\()p FJ(e)20
b FG(>)-12 b(>)40 b FJ(i)p FE(\))19 b(=)f(\()j Fg(J)p
FJ(i)12 b FE(+)g FU(1)p Fg(K)p FG(\226)f(\226)p Fz(\003)20
b FG(in)g([)p FJ(e)p FG(])o FD(;)9 b FG(`tr)q(ue)o FE(\))257
b FF(Q)p FE(\()p FG(count\()p FJ(e)p FG(\))19 b(>=)h
FJ(i)p FE(\))f(=)f(\()j FG([)g(_)2800 3621 y FI(i)2841
3651 y FG(_)2883 3621 y Fe(\003)2918 3651 y FG(])f(in)g([)p
FJ(e)p FG(])g FD(;)9 b FG(`tr)q(ue)o FE(\))535 3775 y
FF(Q)p FE(\()p FJ(e)20 b FG(<=)g FJ(i)p FE(\))f(=)f(\()j
Fz(\003)p FG(\226)11 b(\226)p FJ(i)21 b FG(in)f([)p FJ(e)p
FG(])o FD(;)9 b FG(`tr)q(ue)o FE(\))461 b FF(Q)p FE(\()p
FG(count\()p FJ(e)p FG(\))19 b(<)-12 b(<)20 b FJ(i)p
FE(\))f(=)f(\()j FG([\(_?\))2859 3745 y FI(i)p Fe(\000)p
FS(1)2957 3775 y FG(])f(in)g([)p FJ(e)p FG(])h FD(;)9
b FG(`tr)q(ue)n FE(\))535 3898 y FF(Q)p FE(\()p FJ(e)20
b FG(<)-12 b(<)20 b FJ(i)p FE(\))e(=)g(\()j Fz(\003)p
FG(\226)12 b(\226)o Fg(J)p FJ(i)g Fz(\000)g FU(1)p Fg(K)20
b FG(in)g([)p FJ(e)p FG(])o FD(;)9 b FG(`tr)q(ue)o FE(\))278
b FF(Q)p FE(\()p FG(count\()p FJ(e)p FG(\))19 b(<=)h
FJ(i)p FE(\))f(=)f(\()j FG([\(_?\))2871 3868 y FI(i)2891
3898 y FG(])f(in)g([)p FJ(e)p FG(])p FD(;)9 b FG(`tr)q(ue)n
FE(\))535 4021 y FF(Q)p FE(\()p FG(member\()p FJ(v)p
FG(,)p FJ(e)p FG(\))n FE(\))18 b(=)g(\()j FU([)g(_)1324
3991 y Fe(\003)1379 4021 y FJ(v)f FU(_*])g FG(in)g FU([)p
FJ(e)p FU(])o FD(;)9 b FG(`tr)q(ue)o FE(\))535 4145 y
FF(Q)p FE(\()p FJ(c)666 4157 y FS(1)721 4145 y FG(and)19
b(.)12 b(.)g(.)g(and)20 b FJ(c)1148 4157 y FI(n)1183
4145 y FE(\))f(=)14 b(\()1315 4143 y(\()1317 4145 y(\()k(\()p
FF(Q)1461 4115 y FS(1)1496 4145 y FE(\()p FJ(c)1565 4157
y FS(1)1600 4145 y FE(\))p FD(;)9 b(:)g(:)g(:)h(;)f FF(Q)1855
4115 y FS(1)1889 4145 y FE(\()p FJ(c)1958 4157 y FI(n)1993
4145 y FE(\)\))27 b FD(;)2086 4143 y(;)2088 4145 y(;)9
b FF(Q)2182 4115 y FS(2)2216 4145 y FE(\()p FJ(c)2285
4157 y FS(1)2320 4145 y FE(\))21 b FG(and)f FD(:)9 b(:)g(:)21
b FG(and)e FF(Q)2834 4115 y FS(2)2869 4145 y FE(\()p
FJ(c)2938 4157 y FI(n)2973 4145 y FE(\))c(\))3022 4143
y(\))3023 4145 y(\))q FJ(.)535 4268 y FF(Q)p FE(\()p
FJ(c)p FE(\))j(=)g(\()p FF(e)p FD(;)p FJ(c)p FE(\))1462
b FJ(\(if)21 b(none)e(of)h(the)h(abo)o(ve)e(applies\))523
4426 y FU(where)h(we)h(use)f(the)h(notation)e FG(_)1454
4396 y FI(i)1496 4426 y FU(to)h(denote)g(the)g(juxtaposition)f(of)h
FJ(i)h FU(occurrences)d(of)i(\223)p FG(_)p FU(\224.)g(So)h(for)523
4526 y(instance)e(the)f(third)h(rule)f(indicates)h(that)g(the)g
(constraint,)f(say)-5 b(,)18 b FG(count\()p FJ(e)p FG(\))g(=)h
FU(3)g(can)g(be)g(equi)n(v)n(alently)523 4625 y(check)o(ed)c(by)i
(matching)e FJ(e)i FU(against)f(the)g(pattern)g FG([)h(_)38
b(_)f(_)17 b(])g FU(\(i.e.)33 b FG([)17 b(_)2447 4595
y FS(3)2482 4625 y FG(])p FU(\).)f(W)-7 b(e)18 b(also)f(used)f(the)h
(notation)523 4725 y Fg(J)12 b FJ(f)g FE(\()p FJ(i)p
FE(\))p Fg(K)23 b FU(for)c(the)i(constant)e(that)h(is)h(the)g(result)f
(of)32 b FJ(f)12 b FE(\()p FJ(i)p FE(\))p FU(.)648 4825
y(If)27 b(we)h(apply)f(the)g(re)n(writing)g(to)h(the)f(query)f(in)i
(Figure)f(4,)h(then)f(we)h(can)f(use)h(the)g(\002rst)g(case)523
4924 y(of)22 b(De\002nition)f(2)i(to)f(e)o(xpress)f(the)i(condition)d
FG(p)i(=)h("Addiso)o(n-W)m(esle)n(y")16
b FU(by)22 b(a)h(pattern,)p Black Black eop end
%%Page: 13 13
TeXDict begin 13 12 bop Black Black Black 523 369 2877
4 v 521 1113 4 745 v Black Black 535 435 a FH()571
501 y(select)17 b([t])571 568 y(from)h
(<_>[\(yb::Book_\)*])f(in)g([bib)o(lio],)663 634 y(b)g(in)h(yb,)663
701 y(<_>[\(yp::Pub)o(lisher|_\)*])d(in)i([b],)663 767
y(p)g(in)h(yp,)663 834 y(<_>[\(yt::Title|_\)*])g(in)f([b],)663
900 y(t)h(in)g(yt,)663 966 y(<_)g(y)o(ear=y>_)f(in)g([b],)663
1033 y Fd("Ad)o(dison-W)n(esle)o(y")i(in)g([p])571
1099 y FH(where)f(y>>"1990")p 1915 1113 V Black Black
1947 495 a()1947 562 y(select)f([t])1947
628 y(from)g(<_>[\(yb::Book|_\)*])h(in)f([bib)o(lio],)2093
695 y Fd(<_)h(y)o(ear=y>_&)2093 761 y(<_>[\(yp::Pub)o(lisher|_\)*]&)
2093 827 y(<_>[\(yt::Title|_\)*])f FH(in)h(yb,)2093 894
y Fd("Ad)o(dison-W)n(esle)o(y")h FH(in)f(yp,)2093
960 y(t)g(in)g(yt)1947 1027 y(where)f(y>>"1990")p 3398
1113 V 523 1116 2877 4 v Black 934 1264 a FL(Fig)o(.)12
b(5.)18 b Fp(Q)h FN(on)h Fk(P)10 b Fh(J)19 b Fk(Q)33
b Fh(K)p Black 423 w FL(Fig)o(.)11 b(6.)16 b Fk(P)10
b Fh(J)16 b Fk(Q)30 b Fh(K)16 b FN(after)f(the)h(\002rst)f(3)h
(optimisation)g(steps)p Black 523 1437 a FU(yielding)j(the)h(query)f
(of)h(Figure)f(5)i(\(the)e(re)n(writing)g(does)h(not)g(apply)f(to)i
FG(y)g(>)-12 b(>)19 b("1990")f FU(since)j FG("1990")523
1536 y FU(is)g(not)f(a)h(scalar)f(b)n(ut)g(a)h(string\).)523
1736 y FJ(Useless)29 b(Declar)o(ations)d(Elimination.)51
b FU(The)27 b(second)g(step)h(consists)g(in)g(getting)f(rid)g(of)h
(useless)523 1836 y(intermediate)21 b FG(in)p FU(-declarations)f(that)j
(are)g(lik)o(ely)f(to)h(be)f(generated)f(by)h(the)h(translation)f(of)g
FK(C)p FU(QL)3358 1848 y FI(X)523 1936 y FU(into)e FK(C)p
FU(QL:)523 2059 y FG(select)12 b FJ(e)768 2071 y Fe(\016)815
2059 y FG(from)24 b FJ(f)1014 2071 y FS(1)1049 2059 y
FG(,)12 b FJ(x)h FG(in)f FJ(e)p FG(,)24 b FJ(f)1310 2071
y FS(2)1345 2059 y FG(,)18 b FJ(p)12 b FG(in)g([)p FJ(x)p
FG(],)g FJ(f)1646 2071 y FS(3)1694 2059 y FG(where)e
FJ(c)40 b Fc(;)f FG(select)11 b FJ(e)2352 2071 y Fe(\016)2400
2059 y FG(from)23 b FJ(f)2598 2071 y FS(1)2634 2059 y
FG(,)12 b FJ(x)p FG(&)6 b FJ(p)12 b FG(in)g FJ(e)p FG(,)g
FJ(f)2980 2071 y FS(2)3027 2059 y FG(,)g FJ(f)3085 2071
y FS(3)3133 2059 y FG(where)f FJ(c)523 2259 y(P)-7 b(attern)30
b(Consolidation.)53 b FU(The)30 b(third)f(step)i(of)f(optimisation)e
(consists)j(in)f(gathering)e(together)523 2358 y(patterns)20
b(that)g(are)g(matched)f(against)h(the)g(same)g(sequences.)523
2482 y FG(select)12 b FJ(e)768 2494 y Fe(\016)815 2482
y FG(from)24 b FJ(f)1014 2494 y FS(1)1049 2482 y FG(,)6
b FJ(p)1118 2494 y FS(1)1165 2482 y FG(in)12 b FJ(e)p
FG(,)g FJ(f)1331 2494 y FS(2)1366 2482 y FG(,)18 b FJ(p)1447
2494 y FS(2)1494 2482 y FG(in)12 b FJ(e)p FG(,)g FJ(f)1660
2494 y FS(3)1707 2482 y FG(where)f FJ(c)25 b Fc(;)g FG(select)12
b FJ(e)2338 2494 y Fe(\016)2385 2482 y FG(from)24 b FJ(f)2584
2494 y FS(1)2619 2482 y FG(,)18 b FJ(p)2700 2494 y FS(1)2723
2482 y FG(&)6 b FJ(p)2821 2494 y FS(2)2867 2482 y FG(in)12
b FJ(e)p FG(,)g FJ(f)3033 2494 y FS(2)3068 2482 y FG(,)g
FJ(f)3126 2494 y FS(3)3174 2482 y FG(where)f FJ(c)523
2605 y FU(Note)22 b(that)f(both)g(re)n(writing)g(systems)h(are)g
(con\003uent)e(and)h(noetherian)f(\(when)h(applied)f(in)i(the)g(or)n(-)
523 2705 y(der\).)i(The)g(result)h(of)g(applying)e(these)i(re)n
(writing)f(rules)h(to)g(the)g(query)e(in)i(Figure)f(5)h(is)h(sho)n(wn)e
(in)523 2804 y(Figure)c(6.)523 3004 y FJ(Pushing)d(Selections)38
b FU(The)18 b(fourth)f(and)h(last)h(step)g(is)g(the)g(classical)g
(technique)e(that)h(pushes)g(selec-)523 3104 y(tions)f(as)g(close)f(as)
i(possible)e(to)g(the)h(declarations)e(of)h(the)h(v)n(ariables)f(the)o
(y)f(use.)i(So)g(for)e(instance)h(the)523 3204 y(clause)i
FG(y)i(>)-12 b(>)17 b("1990")f FU(in)j(Figure)f(6)g(is)h(check)o(ed)e
(right)h(after)g(the)g(capture)f(of)h FG(y)p FU(.)h(This)g(is)g
(obtained)e(by)523 3303 y(anticipating)k(an)h(if_then_else)f(in)i(the)f
(implementation)2204 3273 y FS(6)2236 3303 y FU(.)h(The)f(algorithm,)f
(which)h(is)h(standard,)523 3403 y(is)e(omitted.)648
3503 y(This)h(kind)e(of)i(optimisation)f(is)h(de\002nitely)f(not)h(ne)n
(w)-5 b(.)21 b(It)h(corresponds)d(to)j(a)g(classical)h(logical)523
3602 y(optimisation)18 b(for)h(the)h(relational)f(model.)g(The)g
(bene\002t)g(is)i(to)e(reduce)g(the)h(size)g(of)f(the)h(intermedi-)523
3702 y(ate)h(data)f(that)g(is)h(used)f(to)g(the)h(obtain)e(the)h
(result.)523 3901 y FV(5)99 b(Experimental)26 b(V)-9
b(alidation)523 4059 y FU(Performance)16 b(measurements)g(were)i(e)o(x)
o(ecuted)e(on)h(a)i(Pentium)e(IV)h(3.2GHz)f(with)h(1GB)g(of)g(RAM)523
4151 y(running)28 b(under)h(FreeBSD)h(5.2.1.)e(W)-7 b(e)32
b(compared)c(performance)f(results)j(of)g(the)g(same)g(query)523
4242 y(programmed)19 b(in)j(the)g(dif)n(ferent)e(\003a)n(v)n(ors)i(of)f
FK(C)p FU(QL.)h(So)g(we)g(tested)g(a)h(same)f(query)e(in:)i
FE(\()p FJ(i)p FE(\))h FK(C)p FU(QL)3337 4254 y FI(X)3384
4242 y FU(,)523 4333 y(that)j(is)h FK(C)p FU(QL)f(in)g(which)g(we)g
(use)h(the)f(same)g(path)f(e)o(xpressions)g(as)i(the)f(XQuery)f(query)f
(and)i(no)523 4425 y FK(C)p FU(Duce)f(pattern,)f FE(\()p
FJ(ii)p FE(\))j FK(C)p FU(QL)1369 4437 y FI(P)1410 4425
y FU(,)f(the)f FK(C)p FU(QL)h(program)d(automatically)h(generated)g(by)
h(applying)e(to)p Black 523 4499 473 4 v 546 4560 a FP(6)598
4587 y FN(More)c(precisely)-5 b(,)20 b(the)f(query)g(in)g(Figure)g(6)g
(is)f(implemented)i(by)551 4679 y Fx(tr)o(ansf)n(or)r(m)f([bib)o(lio])g
(with)f(<_>[\(yb::Book|_\)*])j(->)640 4756 y(tr)o(ansf)n(or)r(m)f(yb)e
(with)h(<_)g(y)o(ear=y>[\(yp::Pub)o(lisher|yt::Title|_\)*])h(->)692
4833 y Fb(if)26 b(\(y>)-11 b(>"1990"\))29 b(then)d Fx(tr)o(ansf)n(or)r
(m)h(yp)f(with)f("Addison-W)n(esle)o(y")k(->)d([[t]])782 4924 y Fb(else)19 b([)g(])p Black
Black Black eop end
%%Page: 14 14
TeXDict begin 14 13 bop Black Black Black 730 369 2487
4 v 728 466 4 97 v 843 466 V 860 466 V 966 438 a FN(Size)p
1105 466 V 79 w(Size2)p 1350 466 V 1367 466 V 40 w(\003t)1440
451 y Fw(C)r(QL)p 1568 466 V 1588 438 a FA(C)p FN(QL)1742
450 y Fw(X)p 1797 466 V 1810 438 a FA(C)p FN(QL)1964
400 y Fw(o)t(p)o(t)1964 462 y(X)p 2059 466 V 2084 438
a FA(C)p FN(QL)2238 450 y Fw(P)p 2288 466 V 2301 438
a FA(C)p FN(QL)2455 400 y Fw(o)t(p)o(t)2455 462 y(P)p
2550 466 V 2577 438 a FA(C)p FN(QL)p 2741 466 V 2758
466 V 100 w(Qizx)p 2986 466 V 68 w(Qe)o(xo)p 3214 466
V 730 469 2487 4 v 730 486 V 728 577 4 92 v 742 549 a(Q1)p
843 577 V 859 577 V 77 w(36)19 b(Kb)p 1104 577 V 1350
577 V 1367 577 V 333 w(0.01)p 1567 577 V 99 w(0.01)p
1796 577 V 132 w(0.01)p 2058 577 V 99 w(0.02)p 2287 577
V 132 w(0.01)p 2549 577 V 61 w(0.01)p 2740 577 V 2758
577 V 116 w(0.45)p 2986 577 V 98 w(0.60)p 3214 577 V
728 668 V 742 641 a(Q1)p 843 668 V 859 668 V 46 w(1.8)g(Mb)p
1104 668 V 1350 668 V 1367 668 V 333 w(0.23)p 1567 668
V 99 w(0.26)p 1796 668 V 132 w(0.25)p 2058 668 V 99 w(0.26)p
2287 668 V 132 w(0.26)p 2549 668 V 61 w(0.24)p 2740 668
V 2758 668 V 116 w(0.76)p 2986 668 V 98 w(1.01)p 3214
668 V 728 759 V 742 732 a(Q1)p 843 759 V 859 759 V 65
w(14)g(Mb)p 1104 759 V 1350 759 V 1367 759 V 333 w(1.90)p
1567 759 V 99 w(2.00)p 1796 759 V 132 w(1.99)p 2058 759
V 99 w(1.98)p 2287 759 V 132 w(2.07)p 2549 759 V 61 w(1.93)p
2740 759 V 2758 759 V 116 w(2.18)p 2986 759 V 98 w(2.89)p
3214 759 V 728 851 V 742 823 a(Q1)p 843 851 V 859 851
V 65 w(35)g(Mb)p 1104 851 V 1350 851 V 1367 851 V 333
w(4.79)p 1567 851 V 99 w(5.13)p 1796 851 V 132 w(5.04)p
2058 851 V 99 w(5.03)p 2287 851 V 132 w(5.24)p 2549 851
V 61 w(4.90)p 2740 851 V 2758 851 V 116 w(4.44)p 2986
851 V 98 w(5.80)p 3214 851 V 730 854 2487 4 v 728 945
4 92 v 742 918 a(Q2)p 843 945 V 859 945 V 77 w(36)g(Kb)p
1104 945 V 1350 945 V 1367 945 V 333 w(0.01)p 1567 945
V 99 w(0.01)p 1796 945 V 132 w(0.01)p 2058 945 V 99 w(0.01)p
2287 945 V 132 w(0.01)p 2549 945 V 61 w(0.01)p 2740 945
V 2758 945 V 116 w(0.46)p 2986 945 V 98 w(0.61)p 3214
945 V 728 1037 V 742 1009 a(Q2)p 843 1037 V 859 1037
V 46 w(1.8)g(Mb)p 1104 1037 V 1350 1037 V 1367 1037 V
333 w(0.24)p 1567 1037 V 99 w(0.26)p 1796 1037 V 132
w(0.26)p 2058 1037 V 99 w(0.25)p 2287 1037 V 132 w(0.25)p
2549 1037 V 61 w(0.25)p 2740 1037 V 2758 1037 V 116 w(1.00)p
2986 1037 V 98 w(1.04)p 3214 1037 V 728 1128 V 742 1101
a(Q2)p 843 1128 V 859 1128 V 65 w(14)g(Mb)p 1104 1128
V 1350 1128 V 1367 1128 V 333 w(1.87)p 1567 1128 V 99
w(2.06)p 1796 1128 V 132 w(2.06)p 2058 1128 V 99 w(2.01)p
2287 1128 V 132 w(2.01)p 2549 1128 V 61 w(1.99)p 2740
1128 V 2758 1128 V 116 w(3.77)p 2986 1128 V 98 w(3.55)p
3214 1128 V 728 1219 V 742 1192 a(Q2)p 843 1219 V 859
1219 V 65 w(35)g(Mb)p 1104 1219 V 1350 1219 V 1367 1219
V 333 w(4.74)p 1567 1219 V 99 w(5.27)p 1796 1219 V 132
w(5.27)p 2058 1219 V 99 w(5.14)p 2287 1219 V 132 w(5.14)p
2549 1219 V 61 w(5.08)p 2740 1219 V 2758 1219 V 116 w(8.16)p
2986 1219 V 98 w(7.79)p 3214 1219 V 730 1223 2487 4 v
728 1314 4 92 v 742 1287 a(Q3)p 843 1314 V 859 1314 V
77 w(36)g(Kb)p 1104 1314 V 1350 1314 V 1367 1314 V 333
w(0.01)p 1567 1314 V 99 w(0.01)p 1796 1314 V 132 w(0.01)p
2058 1314 V 99 w(0.01)p 2287 1314 V 132 w(0.01)p 2549
1314 V 61 w(0.01)p 2740 1314 V 2758 1314 V 116 w(0.47)p
2986 1314 V 98 w(0.60)p 3214 1314 V 728 1405 V 742 1378
a(Q3)p 843 1405 V 859 1405 V 46 w(1.8)g(Mb)p 1104 1405
V 1350 1405 V 1367 1405 V 333 w(0.24)p 1567 1405 V 99
w(0.25)p 1796 1405 V 132 w(0.26)p 2058 1405 V 99 w(0.25)p
2287 1405 V 132 w(0.25)p 2549 1405 V 61 w(0.25)p 2740
1405 V 2758 1405 V 116 w(0.99)p 2986 1405 V 98 w(1.03)p
3214 1405 V 728 1497 V 742 1469 a(Q3)p 843 1497 V 859
1497 V 65 w(14)g(Mb)p 1104 1497 V 1350 1497 V 1367 1497
V 333 w(1.90)p 1567 1497 V 99 w(2.03)p 1796 1497 V 132
w(2.02)p 2058 1497 V 99 w(2.01)p 2287 1497 V 132 w(2.02)p
2549 1497 V 61 w(2.01)p 2740 1497 V 2758 1497 V 116 w(3.66)p
2986 1497 V 98 w(3.27)p 3214 1497 V 728 1588 V 742 1561
a(Q3)p 843 1588 V 859 1588 V 65 w(35)g(Mb)p 1104 1588
V 1350 1588 V 1367 1588 V 333 w(4.81)p 1567 1588 V 99
w(5.18)p 1796 1588 V 132 w(5.18)p 2058 1588 V 99 w(5.14)p
2287 1588 V 132 w(5.14)p 2549 1588 V 61 w(5.13)p 2740
1588 V 2758 1588 V 116 w(7.90)p 2986 1588 V 98 w(6.86)p
3214 1588 V 730 1591 2487 4 v 728 1683 4 92 v 742 1655
a(Q4)p 843 1683 V 859 1683 V 77 w(36)g(Kb)p 1104 1683
V 1350 1683 V 1367 1683 V 333 w(0.01)p 1567 1683 V 99
w(0.05)p 1796 1683 V 132 w(0.05)p 2058 1683 V 99 w(0.05)p
2287 1683 V 132 w(0.05)p 2549 1683 V 61 w(0.05)p 2740
1683 V 2758 1683 V 116 w(0.53)p 2986 1683 V 3215 1683
V 728 1774 V 742 1747 a(Q4)p 843 1774 V 859 1774 V 77
w(70)g(Kb)p 1104 1774 V 1350 1774 V 1367 1774 V 333 w(0.02)p
1567 1774 V 99 w(0.17)p 1796 1774 V 132 w(0.17)p 2058
1774 V 99 w(0.14)p 2287 1774 V 132 w(0.14)p 2549 1774
V 61 w(0.14)p 2740 1774 V 2758 1774 V 116 w(0.68)p 2986
1774 V 3215 1774 V 728 1865 V 742 1838 a(Q4)p 843 1865
V 859 1865 V 40 w(144)g(Kb)p 1104 1865 V 1350 1865 V
1367 1865 V 333 w(0.02)p 1567 1865 V 99 w(0.61)p 1796
1865 V 132 w(0.61)p 2058 1865 V 99 w(0.52)p 2287 1865
V 132 w(0.52)p 2549 1865 V 61 w(0.49)p 2740 1865 V 2758
1865 V 116 w(1.17)p 2986 1865 V 3215 1865 V 728 1957
V 742 1929 a(Q4)p 843 1957 V 859 1957 V 40 w(575)g(Kb)p
1104 1957 V 1350 1957 V 1367 1957 V 333 w(0.09)p 1567
1957 V 62 w(10.73)p 1796 1957 V 95 w(10.73)p 2058 1957
V 99 w(9.94)p 2287 1957 V 132 w(9.94)p 2549 1957 V 61
w(8.63)p 2740 1957 V 2758 1957 V 78 w(10.97)p 2985 1957
V 3215 1957 V 728 2048 V 742 2021 a(Q4)p 843 2048 V 859
2048 V 46 w(1.8)g(Mb)p 1104 2048 V 1350 2048 V 1367 2048
V 333 w(0.24)p 1567 2048 V 24 w(113.01)p 1795 2048 V
58 w(113.01)p 2057 2048 V 62 w(89.31)p 2286 2048 V 96
w(89.31)p 2549 2048 V 24 w(88.70)p 2740 2048 V 2758 2048
V 41 w(104.12)p 2985 2048 V 3215 2048 V 730 2051 2487
4 v 728 2143 4 92 v 742 2115 a(Q5)p 843 2143 V 859 2143
V 77 w(36)g(Kb)p 1104 2143 V 24 w(535)h(Kb)p 1350 2143
V 1367 2143 V 87 w(0.08)p 1567 2143 V 99 w(1.69)p 1796
2143 V 132 w(0.79)p 2058 2143 V 99 w(1.17)p 2287 2143
V 132 w(0.71)p 2549 2143 V 61 w(0.54)p 2740 2143 V 2758
2143 V 116 w(4.44)p 2986 2143 V 61 w(27.88)p 3214 2143
V 728 2234 V 742 2207 a(Q5)p 843 2234 V 859 2234 V 40
w(144)f(Kb)p 1104 2234 V 61 w(43)h(Kb)p 1350 2234 V 1367
2234 V 87 w(0.03)p 1567 2234 V 99 w(0.52)p 1796 2234
V 132 w(0.24)p 2058 2234 V 99 w(0.38)p 2287 2234 V 132
w(0.24)p 2549 2234 V 61 w(0.17)p 2740 2234 V 2758 2234
V 116 w(1.79)p 2986 2234 V 98 w(9.31)p 3214 2234 V 728
2325 V 742 2298 a(Q5)p 843 2325 V 859 2325 V 40 w(575)f(Kb)p
1104 2325 V 24 w(171)h(Kb)p 1350 2325 V 1367 2325 V 87
w(0.11)p 1567 2325 V 99 w(7.87)p 1796 2325 V 132 w(3.49)p
2058 2325 V 99 w(5.92)p 2287 2325 V 132 w(3.34)p 2549
2325 V 61 w(2.46)p 2740 2325 V 2758 2325 V 78 w(20.74)p
2985 2325 V 25 w(127.39)p 3214 2325 V 728 2417 V 742
2389 a(Q5)p 843 2417 V 859 2417 V 46 w(1.8)f(Mb)p 1104
2417 V 24 w(535)h(Kb)p 1350 2417 V 1367 2417 V 87 w(0.31)p
1567 2417 V 62 w(78.27)p 1796 2417 V 95 w(36.54)p 2058
2417 V 61 w(53.25)p 2286 2417 V 96 w(31.04)p 2549 2417
V 24 w(22.93)p 2740 2417 V 2758 2417 V 134 w(197)p 2985
2417 V 113 w(>1h)p 3214 2417 V 728 2508 V 742 2481 a(Q5)p
843 2508 V 859 2508 V 46 w(3.5)f(Mb)p 1104 2508 V 24
w(535)h(Kb)p 1350 2508 V 1367 2508 V 87 w(0.55)p 1567
2508 V 24 w(157.70)p 1795 2508 V 96 w(72.28)p 2058 2508
V 24 w(105.38)p 2286 2508 V 96 w(62.24)p 2549 2508 V
24 w(45.02)p 2740 2508 V 2758 2508 V 134 w(392)p 2985
2508 V 3215 2508 V 730 2511 2487 4 v 712 2570 a(\(\003t)e(=)h(\002le)f
(load)h(time,)g(Size2)f(column)i(reports)f(the)g(sizes)g(of)g(the)g
(second)h(document)h(in)e(joins\))p Black 1064 2655 a
FL(Fig)o(.)12 b(7.)18 b FN(Summary)i(of)f(all)f(test)g(results)h(on)h
(the)f(XQuery)g(Use)g(Cases)p Black Black 523 2800 a
FU(the)f FK(C)p FU(QL)814 2812 y FI(X)880 2800 y FU(query)f(the)i
(transformation)d FF(Q)p FU(\()p Fk(P)10 b Fh(J)33 b(K)p
FN(\))17 b(of)g(Sections)g(3.2)h(and)g(4)f(and)h(the)f(tw)o(o)h(re)n
(writings)f(for)523 2891 y(pattern)k(consolidation)h(and)f(useless)f
(declaration)i(elimination)e(that)g(clean)h(up)g(the)g(\223garbage\224)
g(introduced)523 2983 y(by)d(the)g(translation,)g Fm(\()p
Fo(iii)p Fn(;)8 b Fo(iv)p Fm(\))16 b FA(C)p FN(QL)1450
2995 y Fw(X)1495 2955 y(opt)1591 2983 y FA(C)p FN(QL)1745
2995 y Fw(P)1784 2955 y(opt)1863 2983 y FN(,)h(which)h(are)g(obtained)g
(by)h(optimising)f(the)g(tw)o(o)f(pre)n(vious)523 3074
y(queries)29 b(by)g(the)g(classical)f(optimisation)h(algorithm)g(of)g
(pushing)h(selections,)f(presented)g(at)g(the)f(end)i(of)523
3165 y(Section)20 b(4,)g(and)h(\002nally)f Fm(\()p Fo(v)p
Fm(\))g FA(C)p FN(QL)f(that)h(is)g(a)g(handwritten)h(\(and)f(hand)h
(optimised\))g(query)g(in)f FA(C)p FN(QL.)f(As)h(we)523
3256 y(e)o(xplained)f(in)f(the)h(introduction,)f(in)g(order)h(to)f
(strengthen)h(our)g(results)f(we)g(chose)h(not)f(to)g(use)g(\223//\224)
g(in)g FA(C)p FN(QL)3360 3268 y Fw(X)523 3348 y FN(\(since)23
b(this)f(is)f(less)i(hea)o(vily)f(optimised)h(by)g(the)f
FA(C)p FN(Duce)h(runtime)f(than)h(\223/\224\))f(and)h(instead)g(al)o(w)
o(ays)g(use)g(the)523 3439 y(static)f(types)g(to)g(translate)g(it)g(in)
g(terms)g(of)g(\223/\224)g(\(as)g(all)g(the)g(queries)h(we)f
(considered)h(allo)n(wed)g(us)f(to)g(do)h(so\).)523 3530
y(This)c(gi)n(v)o(es)g(a)g(clear)g(further)g(adv)n(antage)h(to)f
FA(C)p FN(QL)1836 3542 y Fw(X)1881 3530 y FN(.)648 3622
y(T)-6 b(o)19 b(perform)h(our)g(tests)f(we)g(chose,)i(some)n(what)f
(arbitrarily)-5 b(,)19 b(queries)h(Q1,)f(Q2,)h(Q3,)f(Q4,)g(and)h(Q5)g
(of)g(the)523 3713 y(XML)15 b(Query)g(Use)f(Cases.)h(W)-6
b(e)14 b(then)h(performed)h(a)f(second)h(set)e(of)h(tests)f(based)i(on)
f(the)g(XMark)g(benchmarks.)523 3804 y(Here)k(our)g(choice)h(of)f
(queries)g(w)o(as)g(less)g(random)h(as)f(we)g(e)o(xplain)g(belo)n(w)-5
b(.)648 3896 y(Finally)16 b(to)i(test)f FA(C)p FN(QL)f(runtime)i(we)f
(compared)i(our)f(results)f(with)g(three)h(dif)n(ferent)f
(implementations)i(of)523 3987 y(XQuery:)i(Galax)h([3],)f(Qizx)g([18],)
g(and)h(Qe)o(xo)g([7,)12 b(8].)21 b(Galax)g(is)g(a)g(reference)h
(implementation)g(of)f(XQuery)523 4078 y(and,)i(as)g
FA(C)p FN(Duce,)g(it)f(is)g(implemented)i(in)f(OCaml.)f(Qizx/open)i(is)
e(an)h(open-source)i(Ja)o(v)n(a)e(implementation)523
4170 y(of)d(XQuery)g(speci\002cations)g(de)n(v)o(eloped)i(for)d
(commercial)h(distrib)o(ution)g(and)g(whose)h(tar)o(get)e(is)g(the)h
(ef)n(\002cient)523 4261 y(e)o(x)o(ecution)k(of)f(queries)g(o)o(v)o(er)
h(lar)o(ge)e(databases.)i(Qe)o(xo)g(is)e(a)h(partial)g(implementation)g
(of)g(the)g(XQuery)h(lan-)523 4352 y(guage)29 b(that)f(achie)n(v)o(es)h
(high)f(performance)h(by)f(compiling)h(queries)f(do)n(wn)h(to)f(Ja)o(v)
n(a)g(bytecode)h(using)g(the)523 4444 y(Ka)o(w)o(a)c(frame)n(w)o(ork.)g
(The)f(sources)i(of)e(the)h(queries)g(are)g(omitted)f(for)h(space)g
(reasons)g(b)o(ut)g(the)o(y)f(can)h(all)f(be)523 4535
y(found)c(in)f(the)g(e)o(xtended)h(v)o(ersion)g([5].)523
4709 y FB(5.1)82 b(Use)21 b(Cases)523 4833 y FN(Brie\003y)-5
b(,)20 b(query)i(Q1)f(performs)h(a)f(simple)g(selection.)g(Queries)g
(Q2)g(and)h(Q3)f(are)g(\223reconstructing\224)h(queries,)523
4924 y(the)o(y)i(both)g(scan)g(the)g(whole)g(bibliography)-5
b(,)24 b(while)f(the)h(\002rst)f(one)h(returns)g(a)f(\003at)g(list)f
(of)i(title)e(author)j(pairs)p Black Black eop end
%%Page: 15 15
TeXDict begin 15 14 bop Black Black 523 448 a FN(\(each)31
b(pair)e(being)i(enclosed)g(in)f(a)g Fx()h FN(element\),)f(the)
g(second)h(returns)f(the)g(title)f(and)i(all)e(authors)523
540 y(grouped)d(in)e(a)g Fx()h FN(element.)f(F)o(or)f(each)i
(author)g(in)f(the)g(bibliography)-5 b(,)25 b(query)g(Q4)g(lists)e(the)
h(author')l(s)523 631 y(name)j(and)f(the)g(titles)f(of)h(all)f(books)i
(by)g(that)f(author)m(,)g(grouped)h(inside)f(a)g("result")h(element.)f
(Last,)f(query)523 722 y(Q5)19 b(performs)g(a)g(join)g(between)g(tw)o
(o)g(documents:)h(for)f(each)g(book)h(found)g(both)g(in)e(the)h
(document)h(bound)h(to)523 814 y Fx(bib)o(lio)e FN(and)h(in)f(that)f
(bound)j(to)e Fx(amaz)o(on)h FN(Q5)f(lists)f(the)h(title)f(of)h(the)g
(book)h(and)f(its)g(price)g(from)g(each)g(source.)648
905 y(The)f(results)h(of)f(our)h(tests)f(are)h(presented)h(in)e(T)-6
b(able)19 b(7,)f(from)h(which)g(we)f(omitted)h(the)g(times)f(for)h
(Galax:)523 996 y(as)25 b(a)g(matter)f(of)h(f)o(act)g(we)g(did)g(not)g
(completed)h(all)e(the)h(tests)g(of)g(Galax)g(since)g(it)f(w)o(as)h
(soon)h(clear)f(that)g(the)523 1088 y(performances)20
b(of)f(Galax)g(are)g(se)n(v)o(eral)h(orders)f(of)g(magnitude)h(w)o
(orse)f(than)h(those)f(of)g(Qizx)g(and)h(Qe)o(xo.)p 1717
1172 1690 4 v 1715 1263 4 92 v 1867 1263 V 1883 1263
V 2003 1236 a(Size)p 2142 1263 V 2158 1263 V 39 w(\003t)2231
1249 y Fw(C)r(QL)p 2359 1263 V 2372 1236 a FA(C)p FN(QL)2526
1248 y Fw(X)p 2581 1263 V 2594 1236 a FA(C)p FN(QL)2748
1248 y Fw(P)p 2798 1263 V 2825 1236 a FA(C)p FN(QL)p
2989 1263 V 3005 1263 V 63 w(Qizx)p 3197 1263 V 31 w(Qe)o(xo)p
3388 1263 V 3405 1263 V 1717 1267 1690 4 v 1717 1283
V 1715 1375 4 92 v 1766 1347 a(Q1)p 1867 1375 V 1883
1375 V 58 w(1.5)f(Mb)p 2140 1375 V 2158 1375 V 88 w(0.15)p
2358 1375 V 92 w(0.15)p 2580 1375 V 87 w(0.15)p 2797
1375 V 61 w(0.15)p 2988 1375 V 3005 1375 V 78 w(0.57)p
3196 1375 V 61 w(0.74)p 3387 1375 V 3405 1375 V 1715
1466 V 1766 1439 a(Q1)p 1867 1466 V 1883 1466 V 77 w(29)g(Mb)p
2140 1466 V 2158 1466 V 88 w(2.57)p 2358 1466 V 92 w(2.58)p
2580 1466 V 87 w(2.58)p 2797 1466 V 61 w(2.58)p 2988
1466 V 3005 1466 V 78 w(2.16)p 3196 1466 V 61 w(2.58)p
3387 1466 V 3405 1466 V 1715 1557 V 1766 1530 a(Q1)p
1867 1557 V 1883 1557 V 77 w(72)g(Mb)p 2140 1557 V 2158
1557 V 88 w(6.61)p 2358 1557 V 92 w(6.65)p 2580 1557
V 87 w(6.64)p 2797 1557 V 61 w(6.62)p 2988 1557 V 3005
1557 V 78 w(4.42)p 3196 1557 V 61 w(5.08)p 3387 1557
V 3405 1557 V 1715 1649 V 1766 1621 a(Q1)p 1867 1649
V 1883 1649 V 40 w(145)g(Mb)p 2140 1649 V 2158 1649 V
51 w(14.10)p 2358 1649 V 55 w(14.18)p 2580 1649 V 49
w(14.15)p 2796 1649 V 25 w(14.13)p 2988 1649 V 3005 1649
V 78 w(8.16)p 3196 1649 V 61 w(9.31)p 3387 1649 V 3405
1649 V 1717 1652 1690 4 v 1715 1743 4 92 v 1766 1716
a(Q8)p 1867 1743 V 1883 1743 V 58 w(1.5)g(Mb)p 2140 1743
V 2158 1743 V 88 w(0.15)p 2358 1743 V 92 w(0.21)p 2580
1743 V 87 w(0.21)p 2797 1743 V 61 w(0.17)p 2988 1743
V 3005 1743 V 78 w(1.00)p 3196 1743 V 24 w(34.51)p 3387
1743 V 3405 1743 V 1715 1835 V 1766 1807 a(Q8)p 1867
1835 V 1883 1835 V 77 w(29)g(Mb)p 2140 1835 V 2158 1835
V 88 w(2.57)p 2358 1835 V 55 w(26.03)p 2580 1835 V 49
w(22.96)p 2796 1835 V 25 w(13.09)p 2988 1835 V 3005 1835
V 41 w(75.90)p 3196 1835 V 75 w(>1h)p 3387 1835 V 3405
1835 V 1715 1926 V 1766 1899 a(Q8)p 1867 1926 V 1883
1926 V 77 w(72)g(Mb)p 2140 1926 V 2158 1926 V 88 w(6.61)p
2358 1926 V 111 w(156)p 2580 1926 V 105 w(133)p 2796
1926 V 25 w(72.81)p 2988 1926 V 3005 1926 V 97 w(476)p
3196 1926 V 3388 1926 V 3405 1926 V 1715 2017 V 1766
1990 a(Q8)p 1867 2017 V 1883 2017 V 40 w(145)g(Mb)p 2140
2017 V 2158 2017 V 51 w(14.19)p 2358 2017 V 111 w(630)p
2580 2017 V 105 w(542)p 2796 2017 V 81 w(285)p 2988 2017
V 3005 2017 V 59 w(1838)p 3195 2017 V 3388 2017 V 3405
2017 V 1717 2021 1690 4 v 1715 2112 4 92 v 1729 2085
a(Q12)p 1867 2112 V 1883 2112 V 58 w(1.5)g(Mb)p 2140
2112 V 2158 2112 V 88 w(0.16)p 2358 2112 V 92 w(0.21)p
2580 2112 V 87 w(0.21)p 2797 2112 V 61 w(0.20)p 2988
2112 V 3005 2112 V 78 w(0.87)p 3196 2112 V 3388 2112
V 3405 2112 V 1715 2203 V 1729 2176 a(Q12)p 1867 2203
V 1883 2203 V 77 w(29)g(Mb)p 2140 2203 V 2158 2203 V
88 w(2.59)p 2358 2203 V 55 w(21.22)p 2580 2203 V 49 w(20.57)p
2796 2203 V 25 w(14.70)p 2988 2203 V 3005 2203 V 41 w(38.30)p
3196 2203 V 3388 2203 V 3405 2203 V 1715 2295 V 1729
2267 a(Q12)p 1867 2295 V 1883 2295 V 77 w(72)g(Mb)p 2140
2295 V 2158 2295 V 88 w(6.68)p 2358 2295 V 111 w(127)p
2580 2295 V 105 w(122)p 2796 2295 V 25 w(86.35)p 2988
2295 V 3005 2295 V 97 w(216)p 3196 2295 V 3388 2295 V
3405 2295 V 1715 2386 V 1729 2359 a(Q12)p 1867 2386 V
1883 2386 V 40 w(145)g(Mb)p 2140 2386 V 2158 2386 V 51
w(14.36)p 2358 2386 V 111 w(481)p 2580 2386 V 105 w(457)p
2796 2386 V 81 w(319)p 2988 2386 V 3005 2386 V 97 w(824)p
3196 2386 V 3388 2386 V 3405 2386 V 1717 2389 1690 4
v 1715 2481 4 92 v 1729 2453 a(Q16)p 1867 2481 V 1883
2481 V 58 w(1.5)g(Mb)p 2140 2481 V 2158 2481 V 88 w(0.15)p
2358 2481 V 92 w(0.16)p 2580 2481 V 87 w(0.16)p 2797
2481 V 61 w(0.16)p 2988 2481 V 3005 2481 V 78 w(0.62)p
3196 2481 V 61 w(0.78)p 3387 2481 V 3405 2481 V 1715
2572 V 1729 2545 a(Q16)p 1867 2572 V 1883 2572 V 77 w(29)g(Mb)p
2140 2572 V 2158 2572 V 88 w(2.57)p 2358 2572 V 92 w(2.65)p
2580 2572 V 87 w(2.64)p 2797 2572 V 61 w(2.63)p 2988
2572 V 3005 2572 V 78 w(2.15)p 3196 2572 V 61 w(2.63)p
3387 2572 V 3405 2572 V 1715 2663 V 1729 2636 a(Q16)p
1867 2663 V 1883 2663 V 77 w(72)g(Mb)p 2140 2663 V 2158
2663 V 88 w(6.63)p 2358 2663 V 92 w(6.87)p 2580 2663
V 87 w(6.85)p 2797 2663 V 61 w(6.82)p 2988 2663 V 3005
2663 V 78 w(4.42)p 3196 2663 V 61 w(5.08)p 3387 2663
V 3405 2663 V 1715 2755 V 1729 2727 a(Q16)p 1867 2755
V 1883 2755 V 40 w(145)g(Mb)p 2140 2755 V 2158 2755 V
51 w(14.24)p 2358 2755 V 55 w(14.60)p 2580 2755 V 49
w(14.54)p 2796 2755 V 25 w(14.50)p 2988 2755 V 3005 2755
V 78 w(8.16)p 3196 2755 V 61 w(9.31)p 3387 2755 V 3405
2755 V 1717 2758 1690 4 v 2259 2817 a(\(\003t)f(=)h(\002le)f(load)h
(time\))p Black 1896 2907 a FL(Fig)o(.)12 b(8.)19 b FN(Summary)g(of)g
(all)g(test)f(results)h(on)g(XMark)p Black 523 1189 a(Measurements)48
b(were)f(performed)h(for)523 1280 y(each)41 b(query)g(on)g(randomly)h
(generated)523 1372 y(documents)55 b(of)f(dif)n(ferent)g(sizes)f(\(e)o
(x-)523 1463 y(pressed)19 b(in)e(KBytes\).)g(W)-6 b(e)18
b(also)g(follo)n(wed)523 1554 y(the)33 b(spirit)f(of)g(the)h(benchmark)
h(and)f(we)523 1646 y(generated)23 b(documents)h(with)e(a)g(selecti)n
(v-)523 1737 y(ity)35 b(rate)g(\(that)g(we)g(judged\))i(typical)e(of)
523 1828 y(the)28 b(bibliographic)h(application)g(\(that)f(is)523
1920 y(quite)39 b(lo)n(w\).)g(Each)g(test)g(w)o(as)g(repeated)523
2011 y(se)n(v)o(eral)18 b(times)g(and)g(the)g(table)g(reports)g(the)523
2102 y(a)o(v)o(erage)d(e)n(v)n(aluation)h(times)e(\(in)g(seconds\).)523
2194 y(W)-6 b(e)17 b(ha)o(v)o(e)h(reported)g(the)f(loading)h(time)f
(\(in)523 2285 y(the)25 b(column)g(headed)h(by)f(\223\003t\224,)f
(\002le)g(load)523 2376 y(time\))18 b(of)h(the)g(XML)f(document)i(from)
f(the)523 2468 y(global)h(e)o(x)o(ecution)g(time)e(in)h(order)h(to)f
(sep-)523 2559 y(arate)26 b(the)h(weight)f(of)h(the)f(query)h(engine)
523 2650 y(and)k(that)f(of)g(the)g(parser)g(in)g(the)g(o)o(v)o(erall)
523 2742 y(performances)20 b(\(of)f(course)g(we)f(are)h(inter)o(-)523
2833 y(ested)i(in)f(the)g(former)h(and)g(not)f(in)g(the)h(lat-)523
2924 y(ter\).)28 b(The)g(e)o(x)o(ecution)i(times)e(al)o(w)o(ays)h(in-)
523 3016 y(clude)19 b(the)f(time)g(for)g(performing)h(optimi-)523
3107 y(sation,)g(when)g(this)g(applies,)g(for)g(type)g(checking)i
(\(just)d(for)h FA(C)p FN(QL)f(v)n(ariants\))i(and)f(the)g(\002le)f
(load)i(time.)648 3198 y(By)d(comparing)i(the)f(load)h(time)e(with)g
(the)h(o)o(v)o(erall)g(e)o(x)o(ecution)h(time)e(\(we)h(recall)f(that)h
(the)g(latter)f(includes)523 3290 y(the)k(former\))h(it)e(is)h(clear)h
(that)f(the)g(only)h(computationally)h(meaningful)f(queries)g(are)g
(the)f(Q4)h(and)g(Q5)f(ones)523 3381 y(\(Q4)e(w)o(as)g(not)g(e)o(x)o
(ecuted)h(in)f(Qe)o(xo)g(since)g(it)f(does)i(not)f(implement)g(the)g
(distinct_v)n(alues)h(operator\).)g(In)e(these)523 3472
y(tw)o(o)h(cases)g(the)g(best)g(performances)i(are)e(obtained)h(by)f
FA(C)p FN(QL.)2156 3445 y FP(7)523 3645 y FB(5.2)82 b(XMark)523
3768 y FN(F)o(ollo)n(wing)19 b(the)h(suggestion)g(of)g(Ioana)f
(Manolescu)i(\(one)f(of)f(the)h(XMark)g(authors\))f(we)h(chose)g(four)f
(queries)523 3859 y(that)g(should)h(gi)n(v)o(e)f(a)g(good)h(o)o(v)o
(ervie)n(w)g(of)f(the)g(main)g(memory)g(beha)o(viour)h(of)f(the)g
(query)h(engines.)648 3950 y(More)d(precisely)-5 b(,)17
b(our)g(choice)g(went)g(on)g(Q1,)f(just)g(because)i(it)e(is)g(the)h
(simplest)g(one,)g(Q8)f(of)h(the)f(\223chasing)523 4041
y(references\224)i(section)g(since)g(it)f(performs)h(horizontal)g(tra)o
(v)o(ersals)f(with)h(increasing)g(comple)o(xity)-5 b(,)18
b(Q12)g(of)g(the)523 4133 y(\223join)k(on)g(v)n(alues\224)h(section)f
(since)g(it)f(tests)g(the)h(ability)g(to)f(handle)i(lar)o(ge)e
(intermediate)h(results,)g(and)g(\002nally)523 4224 y(on)d(Q16)h(of)f
(the)g(\223path)g(tra)o(v)o(ersals\224)g(section)g(to)g(test)f(v)o
(ertical)h(tra)o(v)o(ersals.)p Black 523 4290 473 4 v
546 4349 a FP(7)598 4376 y FN(A)14 b(w)o(ord)h(must)g(be)g(spent)g(on)g
(the)g(performances)g(of)g(Q5)g(for)f(Qizx.)g(Whene)n(v)o(er)i(Qizx)e
(syntactically)h(detects)598 4468 y(a)j(conjuncti)n(v)o(e)i(join)f
(condition)h(it)e(dynamically)i(generates)f(a)g(hash)g(table)g(to)f
(inde)o(x)i(it)d(\(for)i(lo)n(w)f(selecti)n(v)o(e)598
4559 y(benchmarks,)e(as)e(the)h(one)g(we)f(performed)i(in)e(our)h
(tests,)f(this)g(brings)h(f)o(ar)g(better)f(performance,)i(of)e
(course\).)598 4650 y(Since)h(we)h(w)o(anted)g(to)g(compare)g(the)g
(performances)h(of)f(the)f(query)i(engines)g(\(rather)e(than)h(the)g
(OCaml)f(and)598 4742 y(Ja)o(v)n(a)20 b(libraries)f(for)g(hash)i
(tables\))f(and)g(because)h(we)e(belie)n(v)o(e)i(that)e(inde)o(x)i
(generation)f(must)g(be)g(dele)o(gated)598 4833 y(to)i(the)h(query)h
(optimiser)f(rather)g(than)g(implemented)h(by)f(the)g(compiler)m(,)g
(then)g(in)g(our)g(test)f(we)h(disabled)598 4924 y(this)18
b(inde)o(x)i(generation)g(\(this)f(is)f(done)i(by)f(just)g(adding)h(an)
f(\223or)g(f)o(alse\224)h(to)e(the)h(join)g(condition\).)p
Black Black Black eop end
%%Page: 16 16
TeXDict begin 16 15 bop Black Black 648 448 a FN(The)24
b(results)g(are)g(summarised)h(in)f(T)-6 b(able)24 b(8.)g(W)-6
b(e)24 b(did)g(not)h(perform)f(the)h(tests)f(on)g(the)h(optimised)f(v)o
(er)o(-)523 540 y(sions)c(of)f FA(C)p FN(QL)931 552 y
Fw(X)995 540 y FN(and)h FA(C)p FN(QL)1276 552 y Fw(P)1334
540 y FN(since)g(on)g(the)f(speci\002c)h(queries)g(the)o(y)f(are)h(the)
f(identity)g(function.)h(Q12)g(times)523 631 y(for)g(Qe)o(xo)g(are)f
(absent)i(because)g(e)o(x)o(ecution)f(al)o(w)o(ays)h(ended)g(with)e(an)
h(unhandled)i(e)o(xception)f(\(probably)g(be-)523 722
y(cause)27 b(of)f(a)g(b)o(ug)g(in)g(the)g(implementation)h(of)f(the)g
(arithmetic)f(library)h(of)g(Qe)o(xo)h(b)o(ut)e(we)h(did)g(not)h
(further)523 814 y(in)m(v)o(estigate\).)648 907 y(Once)18
b(more)f(if)g(we)h(compare)g(the)g(load)g(time)f(with)g(the)h(e)o(x)o
(ecution)h(time)e(we)g(see)h(that)f(the)h(only)g(interest-)523
998 y(ing)h(queries)f(to)h(judge)g(the)f(quality)h(of)f(the)h(engines)g
(are)f(Q8)h(and)g(Q12.)f(In)g(the)h(other)f(queries)h(the)g(e)o(x)o
(ecution)523 1089 y(time)k(is)f(v)o(ery)i(close)f(to)g(the)g(load)g
(time,)f(so)i(the)f(performance)h(is)f(completely)g(determined)h(by)g
(parsers.)f(In)523 1181 y(these)i(cases)h(it)e(is)g(interesting)i(to)e
(note)i(that)f(while)f FA(C)p FN(QL)h(uses)g(an)g(e)o(xternal)g(parser)
m(,)g(namely)h(Expat)f(\(b)o(ut)523 1272 y(the)20 b FA(C)p
FN(Duce)h(interpreter)e(has)i(an)f(option)h(that)f(the)g(programmer)h
(can)f(specify)h(to)f(use)g(the)g(less)g(ef)n(\002cient)g(b)o(ut)523
1363 y(more)g(deb)o(ug-friendly)h(Pxp)f(parser\),)f(Qe)o(xo)i(and)f
(Qizx)g(ha)o(v)o(e)f(e)n(v)o(ent)i(dri)n(v)o(en)f(parsers)g(that)g
(interact)f(with)h(the)523 1455 y(query)i(engines)f(in)g(order)g(to)g
(a)o(v)o(oid)f(loading)i(of)f(useless)g(parts)g(of)f(the)h(document,)h
(whence)g(the)f(better)f(per)o(-)523 1546 y(formances.)e(That)f(said,)h
(when)g(performances)h(are)e(determined)i(by)f(the)f(query)i(engine,)f
(as)f(in)h(Q8)f(and)i(Q12,)523 1637 y FA(C)p FN(QL)f(sho)n(ws)i(once)g
(more)f(the)g(best)g(results)1675 1610 y FP(8)1708 1637
y FN(.)523 1840 y FV(6)99 b(Conclusion)25 b(and)h(P)n(erspecti)o(v)o
(es)523 2001 y FN(In)f(this)h(article)f(we)g(presented)h
FA(C)p FN(QL,)f(a)g(full)g(pattern-matching)i(based)f(query)g(language)
h(for)f(XML)f(em-)523 2092 y(bedded)30 b(in)e FA(C)p
FN(Duce.)h(Our)f(main)h(purpose)h(w)o(as)56 b(to)29 b(demonstrate)g
(that)f(patterns)h(and)g(pattern)g(matching)523 2183
y(\(in)f FA(C)p FN(Duce)g(sense\))g(are)g(a)g(good)h(candidate)g(as)f
(an)g(e)n(v)n(aluation)i(mechanism)f(for)e(XML)h(query)h(process-)523
2275 y(ing.)40 b(T)-6 b(o)20 b(do)g(so,)g(we)g(\002rst)f(coupled)j
FA(C)p FN(Duce)e(patterns)h(with)e(a)h(syntax)h(v)o(ery)g(common)g(in)f
(the)g(database)i(area)523 2366 y(\()p Fx(select-from-where)p
FN(\))27 b(and)f(de\002ned)g(the)f(ne)n(w)g(syntax)h(in)g(terms)f(of)g
(a)g(translation)g(semantics.)51 b(Then,)25 b(we)523
2457 y(e)o(xtended)g(this)e(syntax)i(to)f(allo)n(w)f(for)47
b(an)24 b(XQuery-lik)o(e)g(style)g(\()p FA(C)p FN(QL)2406
2469 y Fw(X)2450 2457 y FN(\).)f(W)-6 b(e)24 b(chose)g(to)g(e)o
(xperiment)g(with)523 2549 y FA(C)p FN(QL)677 2561 y
Fw(X)744 2549 y FN(rather)f(than)g(with)g(XQuery)g(because)h(we)f(w)o
(anted)g(to)g(rely)g(on)g(the)g(v)o(ery)g(ef)n(\002cient)f(pattern)h
(match-)523 2640 y(ing)j(compilation)h(and)f(e)o(x)o(ecution)h(of)f
FA(C)p FN(Duce.)g(Indeed,)g(patterns)g(are)g(compiled)h(into)f
(non-uniform)h(tree)523 2731 y(automata)e([19])g(which)g(fully)f(e)o
(xploit)h(type)f(information.)h(In)g(order)f(to)h(demonstrate)g(the)g
(po)n(wer)g(of)f(pure)523 2823 y(patterns,)c(we)h(pro)o(vided)g(an)g
(automatic)f(translation)h(from)f(the)h(former)f(into)g(the)h(latter)l
(.)e(Such)h(a)g(translation)523 2914 y(not)28 b(only)g(sho)n(ws)h(that)
f(projections)g(are)g(useless)g(in)g(the)g(conte)o(xt)g(of)g
FA(C)p FN(Duce)g(patterns)g(b)o(ut)g(also)f(gi)n(v)o(es)i(a)523
3005 y(formal)c(w)o(ay)h(of)g(unnesting)g(queries.)51
b(Then)25 b(we)h(in)m(v)o(estigated)f(further)h(optimisations:)f(the)h
(well-kno)n(wn)523 3097 y(database)d(logical)f(optimisations.)f(W)-6
b(e)22 b(therefore)g(adapted)h(such)f(optimisations)g(to)g(the)g(conte)
o(xt)g(of)g FA(C)p FN(QL,)523 3188 y(pro)o(viding)e(a)f(\002rst)f(step)
h(to)n(w)o(ard)h(de)n(vising)g(a)e(general)i(query)g(optimiser)f(in)g
(such)g(a)g(conte)o(xt.)648 3281 y(In)24 b(order)h(to)g(v)n(alidate)g
(our)f(approach)j(we)d(performed)i(performance)f(measurements.)h(The)e
(purposes)523 3372 y(of)h(such)g(measurements)h(were)f(tw)o(ofold:)g
(\002rst,)f(we)g(w)o(anted)i(to)f(demonstrate)h(the)f(ef)n(\002cienc)o
(y)g(of)g(pattern-)523 3464 y(matching)17 b(based)h(query)f(languages)h
(by)f(comparing)h FA(C)p FN(QL)e(with)g(ef)n(\002cienc)o(y-oriented)h
(implementations)h(of)523 3555 y(XQuery)g(and,)h(second,)g(we)e(w)o
(anted)i(to)f(check)h(the)f(rele)n(v)n(ance)h(of)f(classical)g
(database)h(logical)f(optimisation)523 3646 y(techniques)i(in)f(a)g
(pattern-based)h(frame)n(w)o(ork.)g(In)f(both)g(cases,)g(the)g
(obtained)h(results)f(were)g(encouraging.)648 3739 y(W)-6
b(e)20 b(are)h(currently)g(w)o(orking)h(on)f(the)g(follo)n(wing)g
(topics:)g Fm(\()p Fo(i)p Fm(\))f FN(de)n(v)o(elop)i(further)f
(\(classical\))f(query)i(opti-)523 3831 y(misation)d(techniques)i(such)
f(as)f(joins)h(re-ordering,)f Fm(\()p Fo(ii)p Fm(\))g
FN(e)o(xtend)h(the)f(pattern)h(algebra)g(in)f(order)h(to)f(partially)
523 3922 y(account)j(for)f(descendants)i(ax)o(es)f(\(at)e(the)h(e)o
(xpense)i(of)e(loosing)h(type)f(precision)h(b)o(ut)f(still)f(reaching)i
(a)f(typed)523 4013 y(construction\))f Fm(\()p Fo(iii)p
Fm(\))e FN(formally)g(study)i(the)f(e)o(xpressi)n(v)o(e)g(po)n(wer)h
(of)f FA(C)p FN(QL)f(and)h(\002nally)-5 b(,)18 b(in)h(a)g(longer)o
(-term,)f Fm(\()p Fo(iv)p Fm(\))523 4105 y FN(coupling)i
FA(C)p FN(QL)e(with)h(a)g(persistent)g(store)g(and)g(study)h(physical)f
(optimisation)h(techniques.)523 4304 y FJ(Ac)n(knowledg)o(ements.)44
b FN(The)26 b(authors)g(w)o(ant)f(to)g(thank)h(Massimo)g(Marchiori)g
(for)f(the)h(pointer)f(to)h(Qe)o(xo,)523 4395 y(Xa)o(vier)20
b(Franc)g(for)g(the)g(details)g(on)h(Qizx)f(implementation,)h(and)g
(Alain)f(Frisch)g(for)g(the)g(comments)h(on)g(this)523
4486 y(paper)h(and)g(his)f(help)h(with)e(the)i(implementation)g(of)f
FA(C)p FN(Duce.)g(Thanks)h(to)f(Dario)g(Colazzo)h(for)f(his)h(help)f
(on)523 4578 y(XQuery)f(type)f(system.)g(V)-8 b(ery)19
b(special)g(thanks)h(to)f(Ioana)h(Manolescu)h(for)e(her)g(in)m(v)n
(aluable)h(suggestions)h(and)523 4669 y(careful)e(reading)h(of)f(a)g
(preliminary)g(v)o(ersion)h(of)e(this)h(paper)l(.)p Black
523 4745 473 4 v 546 4806 a FP(8)598 4833 y FN(Once)24
b(more)h(the)f(test)g(for)g(Qizx)g(w)o(as)h(performed)g(with)f(the)g
(dynamic)h(generation)g(of)g(hash)g(tables)f(dis-)598
4924 y(abled.)p Black Black Black eop end
%%Page: 17 17
TeXDict begin 17 16 bop Black Black 523 448 a FV(Refer)n(ences)p
Black 560 599 a FN(1.)p Black 42 w(Ser)o(ge)29 b(Abiteboul,)g(Peter)g
(Buneman,)h(and)g(Dan)f(Suciu.)60 b Fo(Data)29 b(on)h(the)f(W)-7
b(eb)30 b(:)f(fr)m(om)g(Relations)g(to)658 690 y(Semistructur)m(ed)20
b(Data)f(and)h(XML)p FN(.)26 b(Mor)o(gan)20 b(Kaufmann)g(Publishers,)e
(2000.)p Black 560 779 a(2.)p Black 42 w(S.)g(Abiteboul,)g(D.)g(Quass,)
h(J.)f(McHugh,)i(J.)e(W)m(idom,)g(and)i(J.)e(W)m(iener)l(.)25
b(The)19 b(Lorel)f(query)i(language)g(for)658 871 y(semistructured)g
(data.)27 b Fo(International)20 b(J)n(ournal)g(on)f(Digital)g(Libr)o
(aries)p FN(,)f(1\(1\):68\22688,)j(1997.)p Black 560
960 a(3.)p Black 42 w(Bell-labs.)26 b Fo(Galax)p FN(.)i
Fa(http://db.bell-)t(labs.com/galax/)p FN(.)p Black 560
1049 a(4.)p Black 42 w(V)-10 b(.)25 b(Benzak)o(en,)h(G.)f(Castagna,)g
(and)h(A.)f(Frisch.)46 b(CDuce:)26 b(an)f(XML-friendly)g(general)h
(purpose)h(lan-)658 1140 y(guage.)h(In)19 b Fo(ICFP)f('03,)h(8th)g(A)n
(CM)f(Int.)g(Conf)o(.)h(on)g(Functional)h(Pr)m(o)o(gr)o(amming)p
FN(,)f(pages)h(51\22663,)g(2003.)p Black 560 1229 a(5.)p
Black 42 w(V)-10 b(.)17 b(Benzak)o(en,)i(G.)d(Castagna,)i(and)g(C.)e
(Miachon.)25 b(CQL:)16 b(a)i(pattern-based)g(query)g(language)h(for)e
(XML.)658 1320 y(Complete)i(v)o(ersion.)g(A)-6 b(v)n(ailable)20
b(at)f Fa(http://www.cduce.org/papers)p FN(,)i(2005.)p
Black 560 1409 a(6.)p Black 42 w(N.)f(Bidoit)g(and)i(M.)e(Ykhlef.)33
b(Fixpoint)21 b(calculus)g(for)g(querying)h(semistructured)f(data.)33
b(In)21 b Fo(Int.)f(W)-7 b(ork-)658 1500 y(shop)20 b(on)f(W)-7
b(orld)20 b(W)l(ide)f(W)-7 b(eb)19 b(and)h(Databases)g(\(W)-7
b(ebDB\))p FN(,)19 b(1998.)p Black 560 1589 a(7.)p Black
42 w(P)-8 b(.)49 b(Bothner)l(.)128 b(Qe)o(xo)51 b(-)f(the)g(GNU)g(Ka)o
(w)o(a)g(implementation)i(of)e(XQuery)-5 b(.)128 b(A)-6
b(v)n(ailable)51 b(at)658 1681 y(http://www)-5 b(.gnu.or)o(g/softw)o
(are/qe)o(xo/.)p Black 560 1770 a(8.)p Black 42 w(P)d(.)18
b(Bothner)l(.)27 b(Compiling)20 b(XQuery)f(to)g(ja)o(v)n(a)g
(bytecodes.)29 b(In)19 b Fo(Pr)m(oceedings)h(of)f(the)g(F)m(ir)o(st)f
(Int.)h(W)-7 b(orkshop)658 1861 y(on)19 b(XQuery)g(Implementation,)h
(Experience)g(and)f(P)-6 b(er)o(spectives)20 b()p
FN(,)e(pages)i(31\22637,)g(2004.)p Black 560 1950 a(9.)p
Black 42 w(Don)30 b(Chamberlin,)f(Peter)g(F)o(ankhauser)m(,)h(Daniela)f
(Florescu,)g(Massimo)h(Marchiori,)f(and)h(Jonathan)658
2041 y(Robie.)d(XML)19 b(Query)g(Use)g(Cases.)27 b(T)-6
b(.-R.)18 b(20030822,)j(W)-6 b(orld)19 b(W)m(ide)f(W)-6
b(eb)19 b(Consortium,)g(2003.)p Black 523 2130 a(10.)p
Black 42 w(Don)k(Chamberlin,)f(Peter)g(F)o(ankhauser)m(,)h(Massimo)g
(Marchiori,)f(and)h(Jonathan)h(Robie.)38 b(XML)22 b(query)658
2222 y(\(XQuery\))d(requirements.)28 b(T)-5 b(echnical)19
b(Report)g(20030627,)i(W)-6 b(orld)19 b(W)m(ide)f(W)-6
b(eb)19 b(Consortium,)g(2003.)p Black 523 2311 a(11.)p
Black 42 w(D.)c(Chamberlin,)i(J.)e(Robie,)h(and)h(D.)f(Florescu.)k
(Quilt:)c(An)g(XML)g(query)h(language)g(for)f(heterogeneous)658
2402 y(data)j(sources.)28 b(In)19 b Fo(W)-7 b(ebDB)19
b(2000)h(\(selected)f(paper)o(s\))p FN(,)h(v)o(olume)f(1997)i(of)d
(LNCS,)g(pages)i(1\22625,)f(2001.)p Black 523 2491 a(12.)p
Black 42 w(Z.)d(Chen,)i(H.)e(V)-10 b(.)17 b(Jagadish,)h(L.)e
(Lakshmanam,)i(and)g(S)e(P)o(aparizos.)23 b(From)17 b(tree)g(patterns)h
(to)f(generalised)658 2582 y(tree)i(paterns:)g(On)g(ef)n(\002cient)g(e)
n(v)n(aluation)h(of)f(xquery)-5 b(.)28 b(In)19 b Fo(VLDB'03)p
FN(,)f(pages)h(237\226248,)i(2003.)p Black 523 2671 a(13.)p
Black 42 w(J.)44 b(Clark)g(and)h(S.)e(DeRose.)109 b Fo(XML)43
b(Path)h(Langua)o(g)o(e)j(\(XP)-6 b(ath\))p FN(.)107
b(W3C)44 b(Recommendation,)658 2762 y Fa(http://www.w3.org/TR/xpath/)p
FN(,)21 b(No)o(v)o(ember)f(1999.)p Black 523 2851 a(14.)p
Black 42 w(G.)27 b(Conforti,)g(G.)g(Ghelli,)g(A.)g(Albano,)h(D.)f
(Colazzo,)h(P)-8 b(.)26 b(Manghi,)j(and)f(C.)f(Sartiani.)53
b(\223The)28 b(Query)658 2943 y(Language)20 b(TQL)-7
b(\224.)26 b(In)19 b Fo(In)g(5th)g(Int.)g(W)-7 b(orkshop)21
b(on)e(the)g(W)-7 b(eb)20 b(and)f(Databases)h(\(W)-7
b(ebDB\))p FN(,)19 b(2002.)p Black 523 3032 a(15.)p Black
42 w(W)-6 b(orld)18 b(W)m(ide)h(W)-6 b(eb)19 b(Consortium.)27
b(XQuery:)19 b(the)g(W3C)f(query)i(language)g(for)f(XML)f(\226)h(W3C)g
(w)o(orking)658 3123 y(draft,)f(2001.)p Black 523 3212
a(16.)p Black 42 w(A.)j(Deutsch,)h(M.)g(F)-6 b(.)21 b(Fernandez,)h(D.)f
(Florescu,)h(A.)f(Y)-10 b(.)21 b(Le)n(vy)-5 b(,)22 b(and)h(D.)e(Suciu.)
36 b(\223XML-QL:)21 b(A)g(Query)658 3303 y(Language)f(for)f(XML\224.)27
b(In)19 b Fo(WWW)g(The)g(Query)g(Langua)o(g)o(e)i(W)-7
b(orkshop)21 b(\(QL\))p FN(,)d(1998.)p Black 523 3392
a(17.)p Black 42 w(M.)26 b(Fern\341ndez,)h(J.)e(Sim\351on,)h(and)h(P)-8
b(.)25 b(W)-6 b(adler)l(.)49 b(An)26 b(algebra)h(for)f(XML)g(query)-5
b(.)51 b(In)26 b Fo(F)-8 b(oundations)28 b(of)658 3484
y(Softwar)m(e)20 b(T)-7 b(ec)o(hnolo)o(gy)20 b(and)g(Theor)m(etical)f
(Computer)h(Science)p FN(,)f(number)h(1974)h(in)d(LNCS,)g(2000.)p
Black 523 3573 a(18.)p Black 42 w(X.)g(Franc.)27 b(Qizx/open.)h
(http://www)-5 b(.xfra.net/qizxopen.)p Black 523 3662
a(19.)p Black 42 w(A.)16 b(Frisch.)k(Re)o(gular)d(tree)f(language)i
(recognition)f(with)f(static)g(information.)21 b(In)c
Fo(Pr)m(oc.)e(of)h(the)h(3r)m(d)g(IFIP)658 3753 y(Confer)m(ence)j(on)g
(Theor)m(etical)f(Computer)h(Science)g(\(TCS\))p FN(,)d(T)-6
b(oulouse,)20 b(Kluwer)m(,)e(2004.)p Black 523 3842 a(20.)p
Black 42 w(Alain)23 b(Frisch,)f(Giuseppe)j(Castagna,)e(and)h
(V\351ronique)g(Benzak)o(en.)43 b(Semantic)23 b(Subtyping.)41
b(In)23 b Fo(Pr)m(o-)658 3933 y(ceedings,)f(Se)o(venteenth)g(Annual)f
(IEEE)e(Symposium)j(on)g(Lo)o(gic)e(in)h(Computer)g(Science)p
FN(,)h(pages)f(137\226)658 4024 y(146.)e(IEEE)f(Computer)h(Society)g
(Press,)f(2002.)p Black 523 4113 a(21.)p Black 42 w(H.)k(Hoso)o(ya)h
(and)h(B.)d(Pierce.)38 b(XDuce:)22 b(A)g(typed)i(XML)e(processing)i
(language.)39 b Fo(A)n(CM)22 b(T)l(r)o(ansactions)658
4205 y(on)d(Internet)h(T)-7 b(ec)o(hnolo)o(gy)p FN(,)20
b(3\(2\):117\226148,)h(2003.)p Black 523 4294 a(22.)p
Black 42 w(Am\351lie)f(Marian)i(and)f(J\351r\364me)g(Sim\351on.)33
b(Projecting)21 b(XML)f(elements.)33 b(In)21 b Fo(Int.)f(Confer)m(ence)
i(on)f(V)-8 b(ery)658 4385 y(Lar)m(g)o(e)20 b(Databases)g(VLDB'03)p
FN(,)e(pages)h(213\226224,)i(2003.)p Black 523 4474 a(23.)p
Black 42 w(A.)g(J.)g(Robie,)g(J.)g(Lapp,)g(and)h(D.)f(Schach.)35
b(\223XML)21 b(Query)h(Language)h(\(XQL\).)34 b(In)21
b Fo(WWW)h(The)f(Query)658 4565 y(Langua)o(g)o(e)g(W)-7
b(orkshop)21 b(\(QL\))p FN(,)c(Cambridge,)j(MA,)f(,)f(1998.)p
Black 523 4654 a(24.)p Black 42 w(Albrecht)f(Schmidt,)g(Florian)g(W)-6
b(aas,)16 b(Martin)h(L.)g(K)n(ersten,)g(Michael)g(J.)g(Care)o(y)-5
b(,)17 b(Ioana)h(Manolescu,)g(and)658 4746 y(Ralph)j(Busse.)35
b(Xmark:)21 b(A)g(benchmark)i(for)e(xml)g(data)h(management.)36
b(In)21 b Fo(Pr)m(oceedings)h(of)f(the)h(Int'l.)658 4837
y(Confer)m(ence)e(on)g(V)-8 b(ery)18 b(Lar)m(g)o(e)i(Database)g(Mana)o
(g)o(ement)h(\(VLDB\))p FN(,)c(pages)j(974\226985,)h(2002.)p
Black Black eop end
%%Trailer
userdict /end-hook known{end-hook}if
%%EOF