%-12345X@PJL JOB
@PJL SET RESOLUTION = 600
@PJL ENTER LANGUAGE=POSTSCRIPT
%!PS-Adobe-3.0
%%Title: Microsoft Word - pypaper.doc
%%Creator: PSCRIPT.DRV Version 4.0
%%CreationDate: 11/29/95 18:10:42
%%BoundingBox: 13 13 599 780
%%Pages: (atend)
%%PageOrder: Special
%%Requirements:
%%DocumentNeededFonts: (atend)
%%DocumentSuppliedFonts: (atend)
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%BeginProcSet: Pscript_Win_ErrorHandler 1.0 1
/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop
false setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type
/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def
currentpoint/toy exch def/tox exch def 1 setgray newpath tox toy 2 sub moveto
0 ty rlineto tx 0 rlineto 0 ty neg rlineto closepath fill tox toy moveto 0
setgray show}bind def/nl{currentpoint exch pop lmargin exch moveto 0 -10
rmoveto}def/=={/cp 0 def typeprint nl}def/typeprint{dup type exec}readonly def
/lmargin 72 def/rmargin 72 def/tprint{dup length cp add rmargin gt{nl/cp 0 def
}if dup length cp add/cp exch def prnt}readonly def/cvsprint{=string cvs
tprint( )tprint}readonly def/integertype{cvsprint}readonly def/realtype{
cvsprint}readonly def/booleantype{cvsprint}readonly def/operatortype{(--)
tprint =string cvs tprint(-- )tprint}readonly def/marktype{pop(-mark- )tprint}
readonly def/dicttype{pop(-dictionary- )tprint}readonly def/nulltype{pop
(-null- )tprint}readonly def/filetype{pop(-filestream- )tprint}readonly def
/savetype{pop(-savelevel- )tprint}readonly def/fonttype{pop(-fontid- )tprint}
readonly def/nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def
/stringtype{dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}
ifelse}readonly def/arraytype{dup rcheck{dup xcheck{({)tprint{typeprint}forall
(})tprint}{([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}
ifelse}readonly def/packedarraytype{dup rcheck{dup xcheck{({)tprint{typeprint}
forall(})tprint}{([)tprint{typeprint}forall(])tprint}ifelse}{pop
(-packedarray- )tprint}ifelse}readonly def/courier/Courier findfont 10
scalefont def end errordict/handleerror{systemdict begin $error begin $brkpage
begin newerror{/newerror false store vmstatus pop pop 0 ne{grestoreall}if
showpage initgraphics courier setfont lmargin 720 moveto(ERROR: )prnt
errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt $error/ostack
known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if
systemdict/showpage get exec(%%[ Error: )print errorname =print
(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end end}
dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking where
{pop/setpacking where{pop oldpack setpacking}if}if
%%EndProcSet
userdict /Pscript_Win_Driver_Incr 200 dict dup begin put
%%BeginResource: file Pscript_FatalError 2.0 0
/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div
cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def
%%EndResource
/VM? {vmstatus exch sub exch pop gt { [
(This job requires more memory than is available in this printer.) 100 500
(Try one or more of the following, and then print again:) 100 485
(In the PostScript dialog box, click Optimize For Portability.) 115 470
(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455
(Reduce the number of fonts in the document.) 115 440
(Print the document in parts.) 115 425
12 /Times-Roman showpage
(%%[ PrinterError: Low Printer VM ]%%) =
true FatalErrorIf}if} bind def
30000 VM?
%%BeginResource: file Pscript_Win_Utils 2.0 0
/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^
/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/-
/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true ,
|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , |
/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto ,
|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin
, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow ,
|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld
/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2
ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b
/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El !
}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{
self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ |
/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put
/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{
exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{
transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b
/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict
/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[]
0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0
-}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b
%%EndResource
%%BeginResource: file Pscript_Win_Utils_L1 2.0 0
L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $
@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{
4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{
setrgbcolor}b/sgco{{sg}{sco}?}b}e
%%EndResource
%%BeginResource: file Pscript_Win_Utils_L2 2.0 0
L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}?
setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5
}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $
idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg
{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg
}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering
defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! !
/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering
resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}?
findresource setcolorrendering}b}e
%%EndResource
end
%%EndProlog
%%BeginSetup
[ 1.000 0 0 1.000 0 0 ] false Pscript_Win_Driver_Incr dup /initialize get exec
[{0
/languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/JobTimeout 4 -1 roll put setuserparams}{statusdict/setjobtimeout get exec}ifelse
} stopped cleartomark
[{240
/languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
} stopped cleartomark
[{
1 dict dup /ManualFeed false put setpagedevice
} stopped cleartomark
[{
%%BeginFeature: *InputSlot AutoSelect Tray
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *PageSize Letter
1 dict
dup /Policies 2 dict dup /PageSize 2 put dup /MediaType 0 put put
setpagedevice
2 dict
dup /PageSize [612 792] put
dup /ImagingBBox null put
setpagedevice
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Duplex None
1 dict dup /Duplex false put setpagedevice
1 dict dup /Tumble false put setpagedevice
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *OutputBin Upper - Face Down
1 dict dup /OutputFaceUp false put
setpagedevice
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Resolution Enhancement Printer Default
%%EndFeature
} stopped cleartomark
1 setlinecap 1 setlinejoin
/mysetup [ 0.120 0 0 -0.120 13.000 780.000 ] |
%%EndSetup
userdict begin /savelevel0 save def end
%%Page: 1 1
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc pagesave restore
Pscript_Win_Driver_Incr begin
%%BeginResource: file Pscript_Win_Encoding 2.0 0
/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron
/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18
bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase
/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron
/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright
/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets
/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered
/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph
/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter
/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis
/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex
/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave
put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153
154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253
254]{/bullet put @}forall 166/bar put 176/ring put
%%EndResource
%%BeginResource: file Pscript_Win_Text 2.0 0
/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T |
/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null |
/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add
dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding
ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld}
if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{
ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get
StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? `
/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0
put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont
Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font
3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M
currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP
uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b
/sRxy{: matrix astore concat 0 0 M}b/eR/; , |
%%EndResource
end reinitialize
userdict begin /pagesave save def end mysetup concat colspRefresh
: 0 0 0 sco 1 Lc 1 Lj solid 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F0) cvn
0.893
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F0_150) cvn
F0
150
xF
F0_150
Ji
642 506 M
0.144 0 (A Generic data collection system through WWW forms,)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_150
Ji
642 682 M
0.155 0 (based on a Python OOD program.)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Bold
(F2) cvn
0.920
(Times-Bold) cvn /Type1
T
(Times-Bold) cvn
mF
(F2_100) cvn
F2
100
xF
F2_100
Ji
642 954 M
0.117 0 (Benny )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
940 954 M
-0.217 0 (Shomer)A
; : 0 0 4883 6391 rc 0 0 0 sco (F0_100) cvn
F0
100
xF
F0_100
Ji
642 1190 M
-0.124 0 (EMBL outstation - the European Bioinformatics Institute)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
642 1310 M
0.071 0 (Hinxton Hall, )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
1218 1310 M
-0.017 0 (Hinxton, Cambridge CB10 1RQ, )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2562 1308 M
-0.500 0 (UK)A
; pagesave restore
Pscript_Win_Driver_Incr begin
%%BeginResource: file Pscript_Win_Graphics 2.0 0
/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{
SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null |
/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 |
/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]|
/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null |
/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b
/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep
XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8
Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag
{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps
mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M
MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E
/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix
GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal
makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{
/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross
makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}?
|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 |
/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0
Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload !
sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if}
}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask
Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $
/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E
CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b
/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{
/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict `
YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix
currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E
dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An
C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2
~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2
rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~
|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0
0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b
%%EndResource
%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0
L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq
and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}?
-1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}?
}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp
C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T
hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ |
pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint
strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy `
/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr
length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1
255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox |
/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec
;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix
PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $
PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^
sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b
/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^
M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr
S}repeat YStep add M}repeat ! ! ! ! E}b}e
%%EndResource
%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0
L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{
setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern
K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{
pfprep setpattern K restore N}b}e
%%EndResource
end reinitialize
userdict begin /pagesave save def end mysetup concat colspRefresh
2562 1411 N M 149 10 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.900
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_100) cvn
F0
100
xF
F0_100
Ji
642 1664 M
-0.082 0 (bshomer@ebi.ac.uk)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
642 1782 M
0.071 0 (http://)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
887 1782 M
0.007 0 (www.ebi.ac.uk/)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.900
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_100) cvn
F2
100
xF
F2_100
Ji
642 2018 M
-0.024 0 (Tel: +44 1223 494437)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2136 M
-0.010 0 (Fax: +44 1223 494468)A
;
LH
pagesave restore
(%%[ Page: 1 ]%%) =
%%PageTrailer
%%Page: 2 2
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
642 204 M
0.262 0 (B. )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_83
Ji
735 204 M
0.239 0 (Shomer)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (2)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Bold
(F4) cvn
0.917
(Times-Bold) cvn /Type1
T
(Times-Bold) cvn
mF
(F4_133) cvn
F4
133
xF
F4_133
Ji
642 506 M
0.013 0 (Abstract)A
;
642 642 N M 495 13 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
642 779 M
-0.078 0 (One of the problems associated with modern data management is the efficient collection)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 897 M
-0.030 0 (and validation of data from providers of information. WWW browsers, able to support)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1015 M
-0.096 0 (forms provide an excellent, machine independent interface for collecting data through the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1133 M
-0.045 0 (network. When the information to be provided is rich and complex, a robust program on)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1251 M
-0.099 0 (the server side should provide the user with a friendly interface that breaks the complex)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1369 M
-0.094 0 (task into smaller, more manageable tasks and on the other hand act as a powerful pre-)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1487 M
-0.106 0 (filter, scanning errors on-line.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1605 M
-0.092 0 (Albeit some limitations which are a consequence of the server-client philosophy, object)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1723 M
-0.131 0 (oriented programs are especially efficient for interfacing with WWW forms.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1841 M
-0.143 0 (Described here is a generic, object oriented data submission system, entirely based on the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1959 M
-0.218 0 (Python programming language. This system can be easily accommodated to serve several)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2077 M
-0.060 0 (data submission schemes with a relatively short development and implementation time.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2195 M
-0.203 0 (This system already serves successfully in the EMBL outstation - the European)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2313 M
-0.211 0 (Bioinformatics Institute \(EBI\). It caters one of the world's largest biology databases -)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2431 M
-0.183 0 (EMBL as well as a few others.)A
;
LH
pagesave restore
(%%[ Page: 2 ]%%) =
%%PageTrailer
%%Page: 3 3
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
2701 204 M
0.082 0 (Generic data collection system through WWW)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (3)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Bold
(F4) cvn
0.917
(Times-Bold) cvn /Type1
T
(Times-Bold) cvn
mF
(F4_133) cvn
F4
133
xF
F4_133
Ji
642 506 M
0.068 0 (Introduction)A
;
642 642 N M 725 13 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
642 779 M
-0.144 0 (The EMBL outstation - EBI \(1\), maintains one of the world's largest databases of nucleic)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 897 M
-0.144 0 (acid \(gene\) sequences. The information is provided by research laboratories around the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1015 M
-0.116 0 (world. Each data record is very complex and contains a large amount of information)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1133 M
-0.096 0 (which accompanies the sequence. Therefore, the process of submitting data to the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1251 M
-0.170 0 (database is very demanding and complicated.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1369 M
-0.125 0 ( Some of the common ways of providing information are by editing a text based form , or)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1487 M
-0.143 0 (using a dedicated program which runs on a personal computer and interactively guides)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1605 M
-0.050 0 (the )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
789 1605 M
-0.034 0 (submitter in the steps of submission and as an end result, creates a formatted text file.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1723 M
-0.079 0 (The text file is then sent by email. There are drawbacks to these methods. Editing a text)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1841 M
-0.063 0 (file is not interactive and there is no machine based process to validate the completeness)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1959 M
-0.115 0 (of data. The standalone program on the other hand, requires re-writing of the code for)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2077 M
-0.138 0 (each platform. It is also very difficult to keep the program up-to-date with the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2195 M
-0.222 0 (dynamically developing database. These drawbacks led to a search for better ways of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2313 M
-0.075 0 (interactive data collection.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2431 M
-0.093 0 ( The recent development of WWW based data entry forms opened a door to an excellent)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2549 M
-0.097 0 (interface between providers and maintainers of information. WWW forms have many)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2667 M
-0.221 0 (advantages. They provide a uniform graphic user interface. They are machine)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2785 M
-0.141 0 (independent and they provide means for a constant, online update and maintenance by the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2903 M
-0.076 0 (server administrator.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3021 M
-0.170 0 ( HTML documents, and especially forms lend themselves gracefully to object oriented)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3139 M
-0.152 0 (development. The fact that each element of an HTML document is created by a standard)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3257 M
-0.063 0 (primitive fits well with the concept of objects. This is especially evident in form elements)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3375 M
-0.086 0 (that have a "TYPE" primitive in their tags.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3493 M
-0.101 0 ( Processing of the data stream which is provided by a submitted WWW form is done by a)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3611 M
-0.091 0 (CGI script. When the data submission process is complicated and involves many)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3729 M
-0.068 0 (validation steps of field contents and many forms, a simple script is not sufficient and a)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3847 M
-0.213 0 (need for a high-level program arises. The Python programming language is especially)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3965 M
-0.138 0 (suitable for writing such programs. Python's unique combined ability to serve as a fast)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4083 M
-0.105 0 (scripting language and at the same time as a high level object oriented development)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4201 M
-0.091 0 (language turns it into a very powerful development tool for WWW development.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4319 M
-0.120 0 ( This article describes a data submission system that has been developed by the author at)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4437 M
-0.152 0 (the EBI. The system is based on a collection of Python objects which define it's basic)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4555 M
-0.112 0 (properties and the basic steps in the cycle of acquiring, validating and submitting)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4673 M
-0.141 0 (information. The objects are defined in a generic way which enables the same basic)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4791 M
-0.176 0 (system to cater different data collection schemes. The design of the system makes it easy)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4909 M
-0.106 0 (to support various concepts such as data hiding, dynamic creation of forms, preservation)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5027 M
-0.064 0 (of data items for later use and providing context sensitive help. A data submission system)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5145 M
-0.146 0 (for the EMBL database has been released to the public in May 1995 and it has been)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5263 M
-0.125 0 (operating successfully since then, providing more than 850 data entries so far.)A
;
LH
pagesave restore
(%%[ Page: 3 ]%%) =
%%PageTrailer
%%Page: 4 4
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
642 204 M
0.262 0 (B. )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_83
Ji
735 204 M
0.239 0 (Shomer)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (4)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Bold
(F4) cvn
0.917
(Times-Bold) cvn /Type1
T
(Times-Bold) cvn
mF
(F4_133) cvn
F4
133
xF
F4_133
Ji
642 506 M
0.249 0 (Methodology)A
;
642 642 N M 749 13 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco (F4_117) cvn
F4
117
xF
F4_117
Ji
642 780 M
0.198 0 (Service classes.)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-BoldItalic
(F7) cvn
0.900
(Times-BoldItalic) cvn /Type1
T
(Times-BoldItalic) cvn
mF
(F7_100) cvn
F7
100
xF
F7_100
Ji
642 1035 M
-0.033 0 (web)A
;
642 1136 N M 161 10 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
942 1151 M
-0.033 0 (web)A
; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
1103 1151 M
-0.157 0 ( is defined as a basic class which provides an easy interface to generating)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1269 M
-0.089 0 (HTML primitives. The various HTML primitives are defined as methods of this)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1387 M
-0.120 0 (class. Some of the primitives are very simple, e.g. for invoking headers, anchors,)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1505 M
-0.095 0 (figures and ordered or unordered lists. Other methods perform somewhat more)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1623 M
-0.043 0 (complex invocation of form elements, e.g. predefined buttons, radio buttons,)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1741 M
-0.047 0 (checkboxes, data input fields and option lists \(See figure 1\).)A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
642 1977 M
0.017 0 (valids)A
;
642 2078 N M 239 10 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
942 2093 M
0.017 0 (valids)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1181 2093 M
-0.107 0 ( is a general service object holding methods that validate a given piece of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2211 M
-0.106 0 (information and returns a validity code \(i.e. 0 for non-valid and >= 1 for valid\))A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2329 M
-0.169 0 (\(See figure 2\). This class can be used directly by invocation or as part of a)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2447 M
-0.052 0 (multiple inheritance invocation. The methods provide checking of information in)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2565 M
-0.065 0 (various levels of complexity. Some of the methods provide simple checks such as)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2683 M
-0.043 0 (ensuring that the information is safe and there is no attempt to invoke a shell with)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2801 M
-0.153 0 (the text entered, or ensuring that an entry is only text or only numeric. Other)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2919 M
-0.133 0 (methods perform more specific tasks \(e.g. ensuring an entry is a valid nucleic acid)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3037 M
-0.173 0 (sequence entry\) or more complex \(e.g. checking the syntax of an email address)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3155 M
-0.060 0 (and assuring that the domain provided is a valid one\))A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
642 3391 M
-0.075 0 (GFOD)A
;
642 3492 N M 283 10 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
642 3507 M
-0.075 0 (GFOD)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
925 3507 M
-0.092 0 ( stands for Generic Forms Object Definition. It is a collection of the basic classes)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3625 M
-0.049 0 (with their data fields and methods that together form the basis for a data submission)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3743 M
-0.072 0 (process and to inheriting instances.)A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
642 3979 M
0.300 0 (item)A
;
642 4080 N M 179 10 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4095 M
-0.067 0 (This is the basic unit for implementation of any information )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
3360 4095 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3539 4095 M
-0.040 0 ( to be obtained)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4213 M
-0.067 0 (from the )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1308 4213 M
-0.135 0 (submitter. The basic elements of any )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
2800 4213 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2979 4213 M
-0.275 0 ( class are the 'key' and the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4331 M
-0.115 0 ('value'. Various data fields provide the )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
2498 4331 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2677 4331 M
-0.067 0 ( with characteristics that control it's)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4449 M
-0.008 0 (visual implementation in the form. An )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
2500 4449 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2679 4449 M
-0.050 0 ( class has the basic methods which)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4567 M
-0.093 0 (control it's validation and ability to report itself as valid, the ability to store it's)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4685 M
-0.091 0 (elements in a file \(given the open file handle\). The )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
2984 4685 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3163 4685 M
-0.162 0 ( has an empty errors list.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4803 M
-0.098 0 (In case of a failed validation, the error list is filled with the error messages and is)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4921 M
-0.104 0 (presented together with the )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
2050 4921 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2229 4921 M
-0.083 0 (. The )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
2459 4921 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2638 4921 M
-0.100 0 ( has three different presentation)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5039 M
0.006 0 (methods. When the )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
1742 5039 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1921 5039 M
-0.039 0 ( is presented for the first time, or is non-valid, it is being)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5157 M
-0.084 0 (presented in the form as defined in the 'present' method. When the )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
3608 5157 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3787 5157 M
0.058 0 ( is valid it)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5275 M
-0.025 0 (uses the method )A
; : 0 0 4883 6391 rc 0 0 0 sco (F0_100) cvn
F0
100
xF
F0_100
Ji
1611 5275 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
1633 5275 M
(present_hidden')S
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2271 5275 M
-0.049 0 ( to present itself in the form as a hidden element.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5393 M
-0.074 0 (This is one concept of data hiding which is practised here, i.e. a valid data )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
3919 5393 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5511 M
-0.087 0 (should not be presented any further in the form. The third method controls the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5629 M
-0.571 0 (way an )A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
1249 5629 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1428 5629 M
-0.086 0 ( present's itself in a special 'final validation' form \(to be discussed)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5747 M
-0.099 0 (later\). The actual implementations of the system use classes that inherit ')A
; : 0 0 4883 6391 rc 0 0 0 sco F7_100
Ji
3830 5747 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
4009 5747 M
-0.280 0 (' and)A
;
LH
pagesave restore
(%%[ Page: 4 ]%%) =
%%PageTrailer
%%Page: 5 5
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
2701 204 M
0.082 0 (Generic data collection system through WWW)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (5)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
942 504 M
-0.112 0 (suit it for more specific needs. Examples for such elements \(See figure 3\) may be)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 622 M
-0.200 0 (a )A
; : 0 0 4883 6391 rc 0 0 0 sco (F0_100) cvn
F0
100
xF
F0_100
Ji
1011 622 M
-0.036 0 (hidden_item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1505 622 M
-0.140 0 ( \(always valid, so always hidden\), an email item, a radio cluster item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 740 M
-0.035 0 (that provides a cluster of radio buttons for the same data field, an option list item,)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 858 M
-0.093 0 (items for mandatory text or numeric items etc.)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-BoldItalic
(F6) cvn
0.900
(Times-BoldItalic) cvn /Type1
T
(Times-BoldItalic) cvn
mF
(F6_100) cvn
F6
100
xF
F6_100
Ji
642 1094 M
0.150 0 (form_obj)A
;
642 1195 N M 379 10 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1210 M
-0.056 0 (Each form in the sequence of submissions \(Besides the form which initiates the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1328 M
-0.025 0 (submission process and two specialised forms that conclude the submission)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1446 M
-0.123 0 (process\) is an instance of a ')A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
2056 1446 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2435 1446 M
-0.146 0 (' class. The )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
2901 1446 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3280 1446 M
-0.055 0 ( owns and controls a)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1564 M
-0.067 0 (list of ')A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1215 1564 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1394 1564 M
-0.138 0 (' objects. Each )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1993 1564 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2372 1564 M
-0.027 0 ( with it's )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
2737 1564 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2916 1564 M
-0.120 0 (s constitutes an integral entity in)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1682 M
-0.096 0 (the submission sequence. The form object has a special data dictionary that maps)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1800 M
-0.050 0 (the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1089 1800 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1268 1800 M
-0.270 0 (s. If the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1593 1800 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1972 1800 M
-0.096 0 ( instance is initiated with a data dictionary, it's )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
3846 1800 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
4025 1800 M
-0.200 0 (s are)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1918 M
-0.100 0 (initiated as having the appropriate values \(e.g. when restoring the form contents)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2036 M
-0.082 0 (from a file\), otherwise, the form )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
2250 2036 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2429 2036 M
-0.064 0 (s are initiated with their default values. Each)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2154 M
-0.153 0 (form is identified by a 'level' data field which is actually it's linear order in the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2272 M
-0.064 0 (sequence of forms of the whole submission process. The )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
3227 2272 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3606 2272 M
-0.011 0 ( class is)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2390 M
-0.043 0 (equipped with methods that enable it to store and retrieve it's information to/from)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2508 M
-0.152 0 (a temporary file. This is important especially due to the fact that personal systems)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2626 M
-0.135 0 (and even more, WWW browsers are highly prone to crashing. The )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
3619 2626 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2744 M
-0.082 0 (validation process is a more complex one, controlled by three methods. The)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2862 M
-0.128 0 ('validate' method calls each of the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
2312 2862 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2491 2862 M
-0.158 0 (s to report their valid status. If any of the)A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
942 2980 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1121 2980 M
-0.005 0 (s is non-valid, the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1857 2980 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2236 2980 M
-0.013 0 ( is set to non-valid. Control is then handed over to)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3098 M
-0.029 0 (a virtual method )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
1622 3098 M
-0.054 0 (more_validate)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2199 3098 M
-0.102 0 (. This empty method provides inheriting classes)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3216 M
-0.099 0 (with the opportunity to practice an extra step of validation according to logical)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3334 M
-0.077 0 (relations between various )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1987 3334 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2166 3334 M
-0.057 0 (s. To conclude, if the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
3034 3334 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3413 3334 M
0.014 0 ( status is valid, the)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
942 3452 M
0.013 0 (finally_validate)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1570 3452 M
-0.061 0 ( method returns control to the calling object \(the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
3525 3452 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3820 3452 M
-0.022 0 (\), but if)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3570 M
-0.035 0 (the status is non-valid, the method takes control and invokes the presentation of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3688 M
-0.069 0 (the form. The form has two methods of presenting itself. The major one)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
942 3806 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
964 3806 M
0.023 0 (present_form')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1519 3806 M
-0.057 0 ( invokes the presentation of a WWW form and then calls each ')A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
4044 3806 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
4223 3806 M
-1.000 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3924 M
-0.083 0 (instance's presentation method to implant itself according to it's validity status \(i.e.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4042 M
-0.043 0 (if the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1175 4042 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1354 4042 M
-0.042 0 ( is valid it is presented as hidden\). The other presentation method)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4160 M
-0.092 0 (enables the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1413 4160 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1792 4160 M
-0.051 0 ( to present it's data in the special step of final validation)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4278 M
-0.064 0 (before concluding the submission.)A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
642 4514 M
0.071 0 (session)A
;
642 4615 N M 295 10 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4630 M
-0.128 0 (The whole submission process is owned and managed by the class ')A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
3632 4630 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3927 4630 M
-0.114 0 ('. This)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4748 M
-0.068 0 (class owns a list of ')A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
1739 4748 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2118 4748 M
-0.055 0 (' instances to scroll through the submission process,)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4866 M
-0.162 0 (calling each form in it's turn. The process, which can be invoked by many users at)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4984 M
-0.052 0 (the same time is controlled with the aid of two identifiers. At the beginning of the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5102 M
-0.034 0 (submission process, the submission is being assigned with a unique identifier)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5220 M
-0.043 0 (which is implanted into each of the forms. Each of the form objects is identified in)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5338 M
-0.124 0 (the sequence of submission by a 'level' which is actually it's position in the objects)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5456 M
-0.083 0 (list. There are also special levels according to the stage of submission. The)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5574 M
-0.095 0 (process which takes place for all the )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_100
Ji
2413 5574 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2792 5574 M
-0.083 0 ( \(or it's inheriting\) instances is a)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 5692 M
-0.105 0 (simulation of an event loop. Initially, the form is set to non-valid and is displayed.)A
;
LH
pagesave restore
(%%[ Page: 5 ]%%) =
%%PageTrailer
%%Page: 6 6
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
642 204 M
0.262 0 (B. )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_83
Ji
735 204 M
0.239 0 (Shomer)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (6)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
942 504 M
-0.056 0 (Following submission, the ')A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-BoldItalic
(F5) cvn
0.900
(Times-BoldItalic) cvn /Type1
T
(Times-BoldItalic) cvn
mF
(F5_100) cvn
F5
100
xF
F5_100
Ji
2042 504 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2337 504 M
-0.093 0 (' object identifies the current level and)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 622 M
-0.137 0 (accordingly calls the form's validation method. If the form is valid the )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
3758 622 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 740 M
-0.065 0 (invokes the display of the next form in it's objects list. If the form is still non-)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 858 M
-0.069 0 (valid, the form itself takes control and displays itself. This contradicts the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 976 M
-0.165 0 (common concept of an event handling hierarchy, but is evidently a consequence of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1094 M
-0.118 0 (the fact that server processes are killed every time a document is sent back to the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1212 M
-0.029 0 (client.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1330 M
-0.125 0 (The )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
1122 1330 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1417 1330 M
-0.105 0 ( is equipped with an empty method called )A
; : 0 0 4883 6391 rc 0 0 0 sco (F0_100) cvn
F0
100
xF
F0_100
Ji
3107 1330 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
3129 1330 M
-0.067 0 (expand_dynamic')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3827 1330 M
0.033 0 (. This)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1448 M
-0.120 0 (method is called \(even as an empty one\) in the appropriate places, to enable later)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1566 M
-0.083 0 (implementations of a dynamic expansion of the )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
2863 1566 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3242 1566 M
-0.048 0 ( list. Thus, a user can)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1684 M
-0.114 0 (select adding more instances of a certain )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
2584 1684 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2963 1684 M
-0.116 0 ( class according to the need. An)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1802 M
-0.092 0 (inheriting class that needs a dynamic expansion of forms must encapsulate the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 1920 M
0.021 0 (expansion method in the )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
1948 1920 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
1970 1920 M
-0.067 0 (expand_dynamic')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2668 1920 M
-0.149 0 ( method, so it can always be called)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2038 M
-0.078 0 (when needed. When the last form in the ')A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
2576 2038 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2871 2038 M
-0.072 0 (' object list is reported back to be)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2156 M
-0.018 0 (valid, the )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
1339 2156 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1634 2156 M
-0.050 0 ( invokes a special form for final validation of the information.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2274 M
-0.154 0 (This is done by calling the )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
2021 2274 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
2043 2274 M
-0.006 0 (present_contents')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2742 2274 M
-0.097 0 ( method of each form. The resulting)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2392 M
-0.102 0 (form has a checkbox associated with each ')A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
2658 2392 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3037 2392 M
-0.097 0 (' instance. This form produces)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2510 M
-0.040 0 (a corrections list. When the form is submitted, it is identified with a special 'level'.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2628 M
-0.145 0 (If it provides a non-empty corrections list, the )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
2793 2628 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3088 2628 M
-0.137 0 ( iterates again through the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2746 M
-0.108 0 (selected forms by setting them as non-valid thus forcing them to present)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 2864 M
-0.087 0 (themselves for corrections. When the corrections list is empty the )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
3583 2864 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
942 2982 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
964 2982 M
0.020 0 (produce_output')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1619 2982 M
-0.021 0 ( method is called to produce the output of the submitted)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3100 M
-0.044 0 (information. Following production of output, the user is allowed to select forms)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3218 M
-0.090 0 (that contain data to be used again in a consecutive submission cycle. This is done)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3336 M
-0.457 0 (by the )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
1211 3336 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1506 3336 M
-0.075 0 ( class, which has a )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
2271 3336 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
2293 3336 M
0.023 0 (repeat_forms')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2848 3336 M
-0.024 0 ( list of allowed levels to be)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3454 M
-0.106 0 (repeated. After the user has selected the required form levels, the )A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
3559 3454 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3854 3454 M
-0.013 0 ( dumps a)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3572 M
-0.118 0 (virtual memory file which contains the appropriate )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
2994 3572 M
-0.256 0 (key=value)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3409 3572 M
-0.029 0 ( combinations for)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3690 M
-0.086 0 (preservation of information. Now, on invocation of each ')A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
3238 3690 M
0.150 0 (form_obj)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3617 3690 M
-0.127 0 (' instance, the)A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
942 3808 M
0.071 0 (session)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1237 3808 M
-0.110 0 ( will compose a data dictionary which is handed to the form's )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
3709 3808 M
0.600 0 (')A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
3731 3808 M
0.240 0 (init')A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3887 3808 M
( method.)S
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 3926 M
-0.100 0 (When such a dictionary is present, the form will invoke the ')A
; : 0 0 4883 6391 rc 0 0 0 sco F5_100
Ji
3348 3926 M
0.300 0 (item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3527 3926 M
-0.088 0 (' instances with)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
942 4044 M
-0.091 0 (the appropriate values as default.)A
;
LH
pagesave restore
(%%[ Page: 6 ]%%) =
%%PageTrailer
%%Page: 7 7
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
2701 204 M
0.082 0 (Generic data collection system through WWW)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (7)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Bold
(F4) cvn
0.917
(Times-Bold) cvn /Type1
T
(Times-Bold) cvn
mF
(F4_133) cvn
F4
133
xF
F4_133
Ji
642 506 M
0.102 0 (Discussion.)A
;
642 642 N M 633 13 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
642 779 M
-0.143 0 (In a modern world where information is produced and accumulated in very high rates, it)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 897 M
-0.081 0 (is important to device data collection mechanisms that will be friendly and efficient,)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1015 M
-0.154 0 (device independent, yet capable of filtering out as many errors as possible and sort)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1133 M
-0.080 0 (information according to specifications before a human interpretation step is required.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1251 M
-0.101 0 (WWW clients that support forms are a very powerful interface for collecting information)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1369 M
-0.176 0 (from users through the network. The advantages of the forms system are many. The)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1487 M
-0.217 0 (WWW browser provides an easy way of enjoying a graphic user interface, while being)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1605 M
-0.055 0 (absolutely machine independent, since WWW browsers exist for all the common)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1723 M
-0.030 0 (platforms.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1841 M
-0.081 0 ( This article described an information submission system that operates based on an )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3971 1841 M
0.080 0 (httpd)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1959 M
-0.186 0 (server and is written entirely in the Python programming language. Python was found to)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2077 M
-0.118 0 (be extremely suitable for the development of WWW service programs. Python's unique)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2195 M
-0.081 0 (combination of capabilities to perform as an interactive interpreter, as a powerful)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2313 M
-0.101 0 (scripting language and a high level object oriented design tool provides an excellent)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2431 M
-0.038 0 (development tool for WWW associated programs.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2549 M
-0.099 0 ( The system was developed in the spirit of an object oriented program which follows the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2667 M
-0.185 0 (event handling loop scheme. This was easily obtained by using Python's ability to store)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2785 M
-0.083 0 (pointers to objects in a dynamically linked list. Thus, each form object holds a list of item)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2903 M
-0.131 0 (objects which it uses to iterate while calling each object's methods. In the same way, the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3021 M
-0.036 0 (session object holds a list of form objects, iterated in the same fashion. Dictionaries that)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3139 M
-0.093 0 (map data and that can be passed as arguments for a method provide the ability to initialise)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3257 M
-0.110 0 (the form objects with default values that were provided by the user.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3375 M
-0.013 0 ( A major limitation exists when developing for WWW environments. The fact that the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3493 M
-0.072 0 (server's process is killed once an information page is dismissed to the client breaks the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3611 M
-0.062 0 (continuous flow of the program. Therefore, solutions must be devised to resume the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3729 M
-0.167 0 (process after breaking. In the EBI information submission system, each form object)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3847 M
-0.157 0 (dumps it's data dictionary as a temporary file. This temporary file is to be used later to)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3965 M
-0.111 0 (restore the form object's data dictionary, resuming it's status to what it was when the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4083 M
-0.091 0 (process was terminated.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4201 M
-0.075 0 ( During the time of developing and running the system, several limitations of WWW)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4319 M
-0.069 0 (forms were characterised. Some of these limitations create severe problems when WWW)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4437 M
-0.122 0 (browsers are being used for performing more complicated and demanding tasks of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4555 M
-0.139 0 (interfacing and exchange of information. One such typical problem occurred while)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4673 M
-0.085 0 (constructing an options list for selecting of information regarding the species to which the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4791 M
-0.069 0 (information relates, since the possible list is very long and there is a limitation of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 4909 M
-0.092 0 (displaying a maximum of 28-30 options in a list. This is very limiting since only the most)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5027 M
-0.063 0 (popular species can be included in the options list, while the rest must be typed into an)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5145 M
-0.152 0 (input field. This may lead to many errors. Species can be grouped according to families,)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5263 M
-0.080 0 (orders etc. This enables creating a nested options list, that reduces the length of each list)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5381 M
-0.163 0 (and even more, introduces a logical structure into the array, reducing the risks of typing or)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5499 M
-0.128 0 (other errors. Currently, the HTML standard does not support the concept of nested)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5617 M
-0.079 0 (options lists. Another drawback is that transferring such a large nested list through the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 5735 M
-0.167 0 (network requires much net traffic, which reduces the system's efficiency. One possible)A
;
LH
pagesave restore
(%%[ Page: 7 ]%%) =
%%PageTrailer
%%Page: 8 8
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
642 204 M
0.262 0 (B. )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_83
Ji
735 204 M
0.239 0 (Shomer)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (8)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
642 504 M
-0.018 0 (solution to this combined problem would be to write a special )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3138 504 M
-0.085 0 (applet for the Grail)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 622 M
-0.123 0 (browser. The )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
1193 622 M
-0.121 0 (applet code will be capable of transferring a compressed list, possibly)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 740 M
-0.062 0 (saving it on the local disk for further uses \(like the )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2680 740 M
-0.182 0 (browser's caching for graphics\) and to)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 858 M
-0.070 0 (present the nested list, implanting the selected value into the message. The data)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 976 M
-0.039 0 (validation process is crucial. When the data submission process is complicated and)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1094 M
-0.127 0 (involves many steps, the submission of a form which contains an error may be a)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1212 M
-0.152 0 (frustrating step, especially when network load is high. If the browser could check the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1330 M
-0.168 0 (entry for some logical delimiters \(e.g. not-empty, numeric contents and range etc.\) much)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1448 M
-0.099 0 (of the error filtering would be done even before the information leaves the )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
3631 1448 M
-0.064 0 (submitter's)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1566 M
-0.127 0 (browser. This too, can be done by implanting )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2475 1566 M
-0.046 0 (applets in a Grail client.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1684 M
-0.072 0 ( Another common problem occurs when )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2278 1684 M
-0.133 0 (submitters have fairly large sequences to submit.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1802 M
-0.090 0 (This creates a technical problem of cutting and pasting the sequence, which is prone to)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 1920 M
-0.064 0 (errors. Also, there is a technical limit for most browsers to transfer more than 23Kb of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2038 M
-0.084 0 (information from a single window. A very efficient solution to both of these problems)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2156 M
-0.067 0 (would be the ability to attach a file with the submission. This is not implanted yet in the)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2274 M
-0.111 0 (browsers and it is probably another application that can be implanted in the Grail system.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2392 M
-0.079 0 ( The future developments will obviously depend on the success in exporting binaries of)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2510 M
-0.141 0 (Grail for all the commonly available platforms and especially personal computers. There)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2628 M
-0.101 0 (is no doubt that the popularity the WWW browsers have gained was primarily due to their)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2746 M
-0.086 0 (availability for PC and Macintosh platforms.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2864 M
-0.092 0 ( Python's usefulness as a robust development tool for Internet applications is doubtless.)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 2982 M
-0.127 0 (It's flexibility in providing interactive programming and scripting environment as well as)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3100 M
-0.116 0 (a high level interface to object oriented design will probably place it in the near future in)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 3218 M
-0.061 0 (a distinguished position among the most popular Internet development tools.)A
;
LH
pagesave restore
(%%[ Page: 8 ]%%) =
%%PageTrailer
%%Page: 9 9
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
2701 204 M
0.082 0 (Generic data collection system through WWW)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2373 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2421 6106 M
0.500 0 (9)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2463 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Bold
(F4) cvn
0.917
(Times-Bold) cvn /Type1
T
(Times-Bold) cvn
mF
(F4_133) cvn
F4
133
xF
F4_133
Ji
642 506 M
-0.031 0 (References)A
;
642 642 N M 620 13 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco (F2_100) cvn
F2
100
xF
F2_100
Ji
642 781 M
(1. )S
; : 0 0 4883 6391 rc 0 0 0 sco (F4_100) cvn
F4
100
xF
F4_100
Ji
742 779 M
0.078 0 (David B. )A
; : 0 0 4883 6391 rc 0 0 0 sco F4_100
Ji
1140 779 M
-0.353 0 (Emmert, Peter J. )A
; : 0 0 4883 6391 rc 0 0 0 sco F4_100
Ji
1892 779 M
-0.038 0 (Stoehr, )A
; : 0 0 4883 6391 rc 0 0 0 sco F4_100
Ji
2225 779 M
-0.188 0 (Guenter )A
; : 0 0 4883 6391 rc 0 0 0 sco F4_100
Ji
2604 779 M
-0.100 0 (Stoesser )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
2978 781 M
-0.133 0 (and)A
; : 0 0 4883 6391 rc 0 0 0 sco F4_100
Ji
3122 779 M
-0.233 0 ( Graham N. Cameron)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
4051 781 M
(.)S
; : 0 0 4883 6391 rc 0 0 0 sco F2_100
Ji
642 899 M
-0.160 0 (\(1994\) The European Bioinformatics Institute \(EBI\). )A
; : 0 0 4883 6391 rc 0 0 0 sco (F0_100) cvn
F0
100
xF
F0_100
Ji
2844 899 M
-0.075 0 (Nucleic Acids Research, 22:3445-)A
; : 0 0 4883 6391 rc 0 0 0 sco F0_100
Ji
642 1017 M
(3449)S
;
LH
pagesave restore
(%%[ Page: 9 ]%%) =
%%PageTrailer
%%Page: 10 10
%%BeginPageSetup
[{
%%BeginFeature: *Memory Configuration 2 - 3 MB Total RAM
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *Envelope Feeder Not Installed
%%EndFeature
} stopped cleartomark
[{
%%BeginFeature: *VMOption 6 - 9 MB Total RAM
%%EndFeature
} stopped cleartomark
userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 5100 6600 rf ;
%%EndPageSetup
: 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Italic
(F0) cvn
0.892
(Times-Italic) cvn /Type1
T
(Times-Italic) cvn
mF
(F0_83) cvn
F0
83
xF
F0_83
Ji
642 204 M
0.262 0 (B. )A
; : 0 0 4883 6391 rc 0 0 0 sco F0_83
Ji
735 204 M
0.239 0 (Shomer)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Roman
(F2) cvn
0.892
(Times-Roman) cvn /Type1
T
(Times-Roman) cvn
mF
(F2_83) cvn
F2
83
xF
F2_83
Ji
2352 6106 M
-0.195 0 (- )A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2400 6106 M
0.500 0 (10)A
; : 0 0 4883 6391 rc 0 0 0 sco F2_83
Ji
2484 6106 M
-0.195 0 ( -)A
; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Times-Bold
(F4) cvn
0.917
(Times-Bold) cvn /Type1
T
(Times-Bold) cvn
mF
(F4_133) cvn
F4
133
xF
F4_133
Ji
642 506 M
0.068 0 (Figures)A
;
642 642 N M 429 13 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco %%IncludeFont: Courier
(F6) cvn
0.783
(Courier) cvn /Type1
T
(Courier) cvn
mF
(F6_83) cvn
F6
83
xF
F6_83
Ji
642 940 M
0.200 0 (1.)A
;
583 893 N M 6 6 rr : 0 0 0 sco O ;
583 893 N M 6 6 rr : 0 0 0 sco O ;
589 893 N M 3706 6 rr : 0 0 0 sco O ;
4295 893 N M 6 6 rr : 0 0 0 sco O ;
4295 893 N M 6 6 rr : 0 0 0 sco O ;
583 899 N M 6 129 rr : 0 0 0 sco O ;
4295 899 N M 6 129 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
642 1028 M
0.200 0 (>>> from WWW import web)A
;
583 1028 N M 6 88 rr : 0 0 0 sco O ;
4295 1028 N M 6 88 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
642 1116 M
0.200 0 (>>> w = web\(\))A
;
583 1116 N M 6 88 rr : 0 0 0 sco O ;
4295 1116 N M 6 88 rr : 0 0 0 sco O ;
583 1204 N M 6 88 rr : 0 0 0 sco O ;
4295 1204 N M 6 88 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
642 1292 M
0.200 0 (2.)A
;
583 1292 N M 6 88 rr : 0 0 0 sco O ;
4295 1292 N M 6 88 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
642 1380 M
0.200 0 (>>> )A
; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
842 1380 M
0.200 0 (w.initialize\('This is a test document'\))A
;
583 1380 N M 6 88 rr : 0 0 0 sco O ;
4295 1380 N M 6 88 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
642 1468 M
0.200 0 (Content-type: text/)A
; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
1592 1468 M
0.200 0 (html)A
;
583 1468 N M 6 88 rr : 0 0 0 sco O ;
4295 1468 N M 6 88 rr : 0 0 0 sco O ;
583 1556 N M 6 88 rr : 0 0 0 sco O ;
4295 1556 N M 6 88 rr : 0 0 0 sco O ; : 0 0 4883 6391 rc 0 0 0 sco F6_83
Ji
642 1644 M
0.200 0 (