%!
%%Title: The World-Wide-Mind
%%Creator: html2ps version 1.0 beta1
%%EndComments
save
2000 dict begin
/d {bind def} bind def
/D {def} d
/t true D
/f false D
/FL [/Times-Roman
/Times-Italic
/Times-Bold
/Times-BoldItalic
/Courier
/Courier-Oblique
/Courier-Bold
/Courier-BoldOblique
/Helvetica
/Helvetica-Oblique
/Helvetica-Bold
/Helvetica-BoldOblique] D
/WF t D
/WI 0 D
/F 1 D
/IW 468 F div D
/IL 646 F div D
/PS 791 D
/EF [0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 2 2] D
/EZ [10 9 19 17 15 13 12 11 10 10 10 10 10 10 10 10 10 10 10 10 10 10 8 8] D
/Ey [0 0 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] D
/EG [3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1] D
/Tm [1 1 0.8 0.8 0.8 0.8 0.8 0.8 0 0 0 0 0 0 0.5 1 1 1 1 0 0 1.3 0 0] D
/Bm [1 1 0.5 0.5 0.5 0.5 0.5 0.5 0 0 0 0 0 0 0.5 1 1 1 1 0 0 1 0 0] D
/Lm [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 0 0 2 0 0 0] D
/Rm [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0] D
/EU [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0] D
/NO f D
/YY [[{()}{()}][{Pn}{Pn}][{()}{()}]] D
/ZZ [[{()}{()}][{()}{()}][{()}{()}]] D
/Ts EZ 0 get D
/TU f D
/Xp t D
/AU f D
/SN 0 D
/Cf f D
/Fe f D
/TI 1 Ts mul D
/FE {newpath -14 14 M CP BB 482 14 L 482 -660 L CP BB -14 -660 L closepath} D
/LA {TU PM 0 eq and{IW 56 F div add SA{Sf div}if 0 translate}
{72 719 translate F SA{Sf mul}if dup scale
CS CF FS Cf{CA CL get VC}if /Bb f D}ie 0 0 M TF not Tc or
{Cf{gsave SA{1 Sf div dup scale}if Cb VC FE fill grestore}if Df{Sd}if}if} D
/Pi 0 Ts mul D
/SG [0.8 1 1] D
/Ab 15 D
/J 0 D
/Tc f D
/NH 6 D
/Nf t D
/Pa f D
/LH 1.2 D
/XR f D
/Xr {/pN E D ( [p ) WB pN WB (] )WB} D
/Db [16#FF 16#FF 16#FF] D
/Dt [16#00 16#00 16#00] D
/eA f D
/Lc t D
/Dl [16#00 16#00 16#00] D
/LX f D
/Br 0.25 D
/IA ([IMAGE]) D
/DS {/PF f D()WB NL NP()pop RC ZF} D
/Gb f D
/Mb f D
/Hc [16#00 16#00 16#00] D
/Bl 3 D
/MI -15.2 D
/DX (DRAFT) D
/Di 0 D
/FD 2 D
/Dy 2 D
/cD [16#F0 16#F0 16#F0] D
/FW 0.6 D
/FU [16#00 16#00 16#00] D
/ET {/RM f D /A0 3 D /PN SN D /OU t D /Ou t D /W IW D /LL W D D1
Ms not TP and{Ip}if /TF f D} D
%-- End of variable part --
/Cd {aload length 2 idiv dup dict begin {D} repeat currentdict end} D
/EX {EC cvx exec} D
/DU {} d
/BB {pop pop}d
/ie {ifelse} d
/E {exch} d
/M {moveto} d
/R {rmoveto} d
/L {lineto} d
/RL {rlineto} d
/CP {currentpoint} d
/SW {stringwidth} d
/GI {getinterval} d
/PI {putinterval} d
/Sg {setgray} d
/LW {setlinewidth} d
/S {dup () ne OU and{0 Co R AT 3 eq LB and HF not and A1 0 ne A2 0 ne or and
{A2 0 32 A1 0 6 -1 roll awidthshow}{show}ie 0 Co neg R}{pop}ie
OU PH 3 eq or{/Ms t D}if} D
/U {OU{gsave CP currentfont /FontInfo get /UnderlinePosition get
0 E currentfont /FontMatrix get dtransform E pop add newpath M dup SW pop
CJ 0 RL stroke grestore}if} D
/B {OU Br 0 gt and{CP Ts neg Ts .33 mul R gsave 0 Sg
CP newpath Ts Br mul 0 360 arc closepath UI 2 mod 0 eq{stroke}{fill}ie
grestore M CP E Ts Br 1 add mul sub E BB /Ms t D}if}D
/NP {Ms TP not or PA and OU and{TP{OR}if f1{mF k2 /mF E D /YC 0 D}if
TP TU not PM 0 eq or and{showpage}if DU Ip TE not{LA}if 0.6 LW
/CI 0 D /TP t D /Hs f D /hl 6 D /hL 6 D /HI hi D /Ms f D}if Bs XO BO M} D
/Np {LE sub CP E pop gt PL 0 eq and{NP}if}D
/Ip {/PN PN 1 add D /Pn RM{1}{4}ie PN Ns D /PM PN SN sub 2 mod D} D
/GP {E dup 3 -1 roll get PN 1 add 2 mod get dup type /integertype eq
{get 0 get}{E pop}ie}d
/Fc {dup 2 GP exec SW pop /S1 E D dup 1 GP exec SW pop /S2 E D 0 GP exec SW
pop /S3 E D S1 0 gt{S2 2 mul S1 add S3 2 mul S1 add 2 copy lt{E}if pop}{0}ie
S2 S3 add 2 copy lt{E}if pop IW .9 mul div dup 1 gt{1 E div}{pop 1}ie}D
/OR {gsave SA{1 Sf div dup scale}if Fe{Cf{FU VC}if FW LW 1 setlinejoin
FE stroke}if /YO {60 F div dup 40 gt{pop 40}if}D /cs CS D /cf CF D /CF 0 D
/pf PF D /PF f D /Fn FN D /At AT D /AT 0 D /FN EF Hf 1 add get D Fz Fs FS ZZ
Fc Fz mul Fs FS EU Hf 1 add get dup type /arraytype eq Cf and{VC}{pop 0 Sg}ie
IW IL neg YO sub M ZZ 1 GP exec dup SW pop neg 0 R Sh 0 IL neg YO sub M
ZZ 0 GP exec Sh ZZ 2 GP exec dup SW pop IW E sub 2 div IL neg YO sub M Sh
Fz Fs FS NO{/AW IW Pn SW pop sub D AW 2 div IL neg YO sub
S1 0 gt S2 AW .45 mul gt or S3 AW .45 mul gt or{Fz 2 mul sub}if M Pn Sh}if
EU Hf get dup type /arraytype eq Cf and{VC}{pop 0 Sg}ie
YY Fc /FN EF Hf get D Hz mul HS FS IW YO M YY 1 GP exec dup SW pop neg 0 R Sh
0 YO M YY 0 GP exec Sh YY 2 GP exec dup SW pop IW E sub 2 div YO M Sh
/FN Fn D /AT At D t Pb XO SZ SL get neg R /PF pf D grestore /CF 0 D cs cf FS}D
/Sh {dup () ne{CP Hz 4 div sub BB show CP CS add BB}{pop}ie}D
/Pb {/OU E D /Ou OU D /PB t D 0 0 M Ba{/Sa save D /BP t D /Fl t D RC /PL 0 D
/PH 0 D /W IW D /LE IL .7 mul D /EO 0 D SI ZF /YA 0 D /BO 0 D /C1 () D
BA 0 Ts neg R Bb{Xl Yl Xh Yh}if Bb CP Sa restore M
{/Yh E D /Xh E D /Yl E D /Xl E D}if /Fl t D}if
BL /OU t D /HM f D /Ou t D /PB f D} D
/Bs {/BP Ba not D}D
/reencodeISO {
dup dup findfont dup length dict begin{1 index /FID ne{D}{pop pop}ie}forall
/Encoding ISOLatin1Encoding D currentdict end definefont} D
/ISOLatin1Encoding [
/.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
/space/exclam/quotedbl/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
/less/equal/greater/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/backslash/bracketright
/asciicircum/underscore/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/braceleft/bar/braceright/asciitilde
/.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/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
] D
[128/backslash 129/parenleft 130/parenright 141/circumflex 142/tilde
143/perthousand 144/dagger 145/daggerdbl 146/Ydieresis 147/scaron 148/Scaron
149/oe 150/OE 151/guilsinglleft 152/guilsinglright 153/quotesinglbase
154/quotedblbase 155/quotedblleft 156/quotedblright 157/endash 158/emdash
159/trademark]
aload length 2 idiv 1 1 3 -1 roll{pop ISOLatin1Encoding 3 1 roll put}for
/colorimage where{pop}{
/colorimage {
pop pop /Pr E D {/Cv Pr D /Gr Cv length 3 idiv string D 0 1 Gr length 1 sub
{Gr E dup /i E 3 mul D Cv i get 0.299 mul Cv i 1 add get 0.587 mul add
Cv i 2 add get 0.114 mul add cvi put}for Gr} image} D
}ie
/pdfmark where{pop}{userdict /pdfmark /cleartomark load put}ie
WF{FL{reencodeISO D}forall}{4 1 FL length 1 sub{FL E get reencodeISO D}for}ie
/Symbol dup dup findfont dup length dict begin
{1 index /FID ne{D}{pop pop}ie}forall /Encoding [Encoding aload pop]
dup 128 /therefore put D currentdict end definefont D
/SF {/CS E D SZ SL CS put FO SL FN put /YI CS LH neg mul D dup ST cvs ( ) join
CS ST cvs join C1 E join ( NF ) join /C1 E D CS NF /Wf WF FN 0 gt or D
/BW Wf{( ) SW pop}{0}ie D}D
/NF {/cS E D /cF E D cF 0 ge{FL cF get}{/Symbol}ie
findfont cS scalefont setfont} D
/FS {CF or /CF E D FR SL CF put CF CF 0 ge{FN 4 mul add}if E SF} D
/PC {SH /BP f D fin not GL not and{NL}if /HM t D /LL LS D} D
/BS {/TX E D Wf{/fin f D /CW 0 D /LK 0 D /SC 0 D
/RT TX D {RT ( ) search{/NW E D pop /RT E D /WH NW SW pop D CW WH add LL gt
{TX SC LK SC sub 1 sub NN GI GL{SH cF cS OC
2 copy cS ne E cF ne or{NF}{pop pop}ie}{PC /CW WH BW add D}ie
/SC LK D}
{GL{JC}if
/CW CW WH add BW add D /HM t D}ie /GL f D /Ph f D
/LK LK NW length 1 add add D}{pop exit}ie}loop
/fin t D TX SC LK SC sub GI SH RT () ne{GL not{CC}if}if
/LC TX length D /WH RT SW pop D CW WH add Hy{HC SW pop add}if LL gt
{RT GL{SH cF cS OC 2 copy cS ne E cF ne or{NF}{pop pop}ie
Hy{/Ph t D}if /LL LS D}{NL /LL LS D SH}ie}
{RT PC Hy{CC}if /Ph Ph Hy or D}ie RT () ne{/GL t D /HM t D}if}
{TX SW pop LL le{TX SH}{/NW () D 0 2 TX length 1 sub
{/CW E D TX 0 CW GI dup SW pop LL gt{pop NW SH /HM t D NL/LL W XO sub MR sub D
/CW CW 2 sub NN D /TX TX CW TX length CW sub GI D TX BS exit}
{/NW E D}ie}for}ie}ie /HM t D}D
/CC {C0 length 0 gt{JC}if /C0 [C1 L1 YA YB Mf NS NB TB AF Bw] D
/C1 () D /L0 L1 D /YA 0 D /YB 0 D /Mf 0 D /NS 0 D /NB 0 D}D
/JC {C0 aload length 0 gt{pop pop pop NB add /NB E D NS add /NS E D
dup Mf gt{/Mf E D}{pop}ie dup YB gt{/YB E D}{pop}ie
dup YA gt{/YA E D}{pop}ie pop C1 join /C1 E D /C0 [] D}if}D
/OC {C0 length 0 gt{C1 L1 L0 sub YA YB Mf NS NB TB AF Bw GL C0 aload pop
/Bw E D /AF E D /TB E D /NB E D /NS E D /Mf E D /YB E D /YA E D /C0 [] D
/L1 E D /C1 E D Ph{HC SH}if NL /GL E D /Bw E D /AF E D /TB E D /NB E D /NS E D
/Mf E D /YB E D /YA E D /L1 E D /LL W L1 sub XO sub MR sub WH sub D /CW 0 D
C1 E join /C1 E D}if}D
/BT {/LB t D dup length string copy RS dup dup () ne E ( ) ne and
{/CI 0 D /LS LL D /LL W L1 sub XO sub MR sub D BS}
{dup ( ) eq{/GL f D}if dup () eq L1 0 eq or{pop}{SH /BP f D /Ph f D}ie}ie
/LB f D} D
/BL {CP E pop XO E M} D
/NL {JC /GL f D /SK W XO sub MR sub L1 sub TB{Bw add}if D
/YA LF{Mf HM Fl not and PF or{LH mul}if}{0 /LF t D}ie YA 2 copy lt{E}if pop D
C1 () ne{/FB YB Mf SA{Sf mul}if 4 div 2 copy lt{E}if pop D}if Fl{/Ya YA D}if
CP E pop YA sub YB sub LE neg lt Fl not and PB not and{NP}if NT TL BL
OU PF not and PB or{/RE L1 TB{Bw sub}if
W XO sub MR sub div YA YB add LE BO add div 2 copy lt{E}if pop D
RE 1 gt{BL 1 RE div dup scale}if}if
AT 2 le{SK AT mul 2 div YA neg R}if
AT 3 eq{0 YA neg R TB{/NB NB 1 sub D /NS NS 1 sub D}if /NB NB 1 sub NN D
/A3 NS 6 mul NB add D NS NB add 0 eq
{/A1 0 D /A2 0 D}
{NS 0 eq{/A1 SK NB div dup J gt{pop 0}if D /A2 0 D}{J A3 mul SK lt
{/A1 J D /A2 SK J NB mul sub NS div dup Ab gt{/A1 0 D pop 0}if D}
{/A1 SK A3 div D /A2 A1 6 mul D}ie}ie}ie /A1 A1 NN D /A2 A2 NN D}if
AT 4 eq{0 YA neg R PH 2 le{PD 0 lt{/PD L1 D}if PD M1 gt{/M1 PD D}if
L1 PD sub M2 gt{/M2 L1 PD sub D}if}{DV ID 1 sub get 0 ge{Lo 0 R}if}ie}if
F0 cF ne Cs cS ne or{F0 Cs NF}if
/ms Ms D /Ms f D CP FB sub
C1 cvx exec XO EO sub L1 add TB{BW sub}if dup LM gt{/LM E D}{pop}ie
PH 0 eq PH 4 eq or Ms and{HF not{/PO t D /AH t D}if
BB CP YA add E AT 3 eq LB and{A1 sub}if TB{BW sub}if E BB}
{pop pop}ie Ms HM PH 3 eq and or{/BP f D /Fl f D}if
/Lo 0 D /L1 0 D /F0 cF D /Cs cS D BP not{0 YB NN neg R}if
OU f1 and mF not and{k2 /f1 f D}if
OU PF not and PB or{RE 1 gt{RE dup scale}if}if /Ms ms Ms or D
/C1 AF{(Cp )}{()}ie D /YA 0 D /YB 0 D BL
AT 4 eq LB not and PH 3 ge and
{ID DV length lt{DV ID get dup 0 ge{DO E sub /Lo E D /L1 Lo D}{pop}ie
/ID ID 1 add D}if}if /T t D CD{/LN LN 1 add D PD}if
/PD -1 D /NS 0 D /NB 0 D /TB f D /Ph f D /Mf 0 D /HM f D} D
/RS {/TM E D /CN 0 D TM{10 eq{TM CN ( ) PI}if /CN CN 1 add D}forall
/CN 0 D /BK HM EN and{0}{1}ie D TM
{dup 32 ne{TM CN 3 2 roll put /CN CN 1 add D /BK 0 D}
{pop BK 0 eq{TM CN 32 put /CN CN 1 add D}if /BK 1 D}ie}forall
TM 0 CN GI dup dup () ne E ( ) ne and
{dup CN 1 sub get 32 eq{/EN f D}{/EN t D}ie}if} D
/join {2 copy length E length add string dup 4 2 roll 2 index 0 3 index
PI E length E PI}d
/WR {(\n) search{dup () ne BP not or
{Li 4 le CP E pop YI Li mul add LE add 0 lt and PL 0 eq and{NP}if
SH NL pop /Li Li 1 sub D WR}{pop pop WR}ie}{SH}ie /CI 0 D /BP f D} D
/SH {dup dup () ne E ( ) ne and PF or CS Mf gt and{/Mf CS D}if
T not Wf and{( ) E join /T t D}if dup BP{/MF CS D}if
AT 3 eq{2 copy length dup 0 gt{/NB E NB add D
{( ) search{/NS NS 1 add D pop pop}{pop exit}ie}loop}{pop pop}ie}if
CD PD 0 lt and{dup DC search{SW pop /PD E L1 add D pop pop}{pop}ie}if
0 Np dup SW pop L1 add /L1 E D dup () ne
{C1 (\() join E join (\)) join AU AF and UF or Wf and{( U ) join}if
sF{( s ) join}if ( S ) join
/C1 E D dup length 1 sub get 32 eq /TB E D /Bw BW D}{pop pop}ie} D
/BG {AI LG BC add add 0 eq} D
/ON {OU{Ty AR AI NN get dup 1 add Ln Ns Ty 2 mod 0 eq{(. )}{(\) )}ie join
dup SW pop neg 0 R CP E 0 lt{0 E M}{pop}ie CP BB show /Ms t D}if} D
/Ln {AR AI 3 -1 roll put}D
/SP {dup CI lt BP not and{dup CI sub 0 E R /CI E D}{pop}ie} D
/BN {PF{WR /HM f D}{BT NL}ie} D
/NN {dup 0 lt{pop 0}if} D
/h {HI 0 gt{(h) HI ST cvs join cvx exec dup 1 get E
Nf{0 get E join}{pop}ie}{()}ie} D
/H {/fn FN D /Hi E 1 add D 1 sub /HL E D /H2 HL 2 add D /GS EZ H2 get D
E Tm H2 get GS mul BE dup 0 gt{1 sub}{pop EG H2 get dup 0 lt{pop AT}if}ie NA
WW Np /SL SL 1 add D /FN EF H2 get D GS Ey H2 get FS
EU H2 get Sc Hs not HL Hl lt and Hs HL hl lt and or Hi 0 eq or
{/HI Hi D /Hs t D /hl HL D /hL HL D}if HL Hl lt{/hi Hi D}if
Nf HI 0 gt and{(h) Hi ST cvs join cvx exec 0 get WB}if
/HF t D /AH f D /PO f D} D
/EH {Bm H2 get GS mul BE OA /SL SL 1 sub NN D /CF 0 D /FN fn D
SZ SL get FR SL get FS /HF f D /GS Ts D ()Ec} D
/P {E PF{WR}{PO{EP}{BN}ie Ts 4 mul Np AE not{Tm 0 get Ts mul neg SP}if
dup 0 ge AH and{Pi Pd}if}ie 1 sub dup 0 lt{pop AV AL get}if /AT E D /PO t D} D
/EP {PF{WR}{BN Ts 4 mul Np}ie AE not{Bm 0 get Ts mul neg SP}if
/AT AV AL get D /PO f D} D
/BE {E PO{EP}{BN}ie Ts 4 mul Np neg SP} D
/HR {/Aw W EO sub D /RW E dup 0 gt{Aw mul}{neg}ie dup Aw gt{pop Aw}if D /RZ E D
E BN Ts neg SP 1 sub 2 div Aw RW sub mul EO add CP E pop M PF{0 Ps neg R}if
0 Np OU{gsave RZ LW Cf{Hc VC}{0 Sg}ie CP BB RW 0 RL CP BB stroke grestore}if
/CI 0 D /BP f D PF not{Ts neg SP}if /Ms t D} D
/AD {I NL EG 14 get dup 0 lt{pop AT}if NA /AE t D Tm 14 get Ts mul neg SP
Cf{EU 14 get dup -1 eq{pop CA CL get}if Sc}if} D
/DA {BN ()ES OA /AE f D ()Ec Bm 14 get Ts mul neg SP} D
/PR {/MW E D /Li E D Tm 1 get Ps mul BE 0 NA /FN Fp D /PF t D SI /SL SL 1 add D
/CF 0 D Ps CS mul Ts div MW WC mul CS mul Ts div dup LL gt PL 0 eq and
{LL div div}{pop}ie Ey 1 get FS CP E pop LE add YI neg div cvi dup Li lt
AH and{4 lt YI Li mul 5 mul LE add 0 gt or PL 0 eq and{NP}if}{pop}ie
EU 1 get Sc /GS Ps D}D
/RP {WR NL () /PF f D SI /FN 0 D ES Bm 1 get Ps mul neg SP OA /GS Ts D} D
/SI {/XO Lm 15 get BC NN mul Lm 16 get AI UI sub NN mul add
Lm 17 get UI NN mul add Lm 20 get LG NN mul add Ts mul
PF{Lm 1 get Ps mul add}if EO add D
/MR Rm 15 get BC NN mul Rm 16 get AI UI sub NN mul add
Rm 17 get UI NN mul add Rm 20 get LG NN mul add Ts mul
PF{Rm 1 get Ps mul add}if D /LL W XO sub MR sub D} D
/DT {BN /LG LG 1 sub D SI /LG LG 1 add D WW 2 div Np BL} D
/DD {WB Cc 0 eq L1 0 eq or Lm 20 get Ts mul L1 sub TB{BW add}if Ts 2 div lt or
NL /LF E D SI BL} D
/DL {Dc LG Cc put /Cc E D BG{Tm 18 get Ts mul BE}{BN}ie /LG LG 1 add D BL} D
/LD {BN LG 0 gt{/LG LG 1 sub D}if /Cc Dc LG get D SI
BG{()Bm 18 get Ts mul BE}if BL} D
/UL {BG{Tm 17 get Ts mul BE}{BN}ie NR AI NN 0 put /UI UI 1 add D
/AI AI 1 add D SI BL} D
/LU {BN /UI UI 1 sub D /AI AI 1 sub D SI BG{()Bm 17 get Ts mul BE}if BL} D
/OL {E BG{Tm 16 get Ts mul BE}{BN}ie TR AI NN Ty put /Ty E D NR AI NN 1 put
/AI AI 1 add D SI BL 1 Ln} D
/LO {BN /AI AI 1 sub D /Ty TR AI get D SI BG{()Bm 16 get Ts mul BE}if BL} D
/LI {E BN -1 SP /BP f D /CI 0 D 0 Np NR AI 1 sub NN get 1 eq
{dup dup 0 gt E 4 le and{/Ty E D}{pop}ie
/L1 L1 Ty AR AI NN get Ns SW pop XO sub dup 0 lt{pop 0}if add D ( ON )}
{pop ( B )}ie C1 E join /C1 E D CS Mf gt{/Mf CS D}if BL} D
/BQ {Tm 15 get Ts mul BE /BC BC 1 add D SI BL} D
/QB {Bm 15 get Ts mul BE /BC BC 1 sub D SI BL} D
/Al {E EP 1 sub dup 0 lt{pop AV AL get}if NA} D
/Ea {EP OA} D
/WB {PF{WR}{BT}ie} D
/F1 {WB /FN 0 D CS 0 FS} D
/F2 {WB /FN WI D CS 0 FS} D
/HY {/Hy t D WB /Hy f D} D
/YH {WB} D
/A {/LT E D LT 1 eq{/RN E D}if /Lh E D WB /AF t D /C1 C1 ( Cp ) join D
Lc{Cl Sc}if} D
/EA {Lc AF and{Ec}{WB}ie TL Pa AF and Lh 0 ne and
{( \() Lh join (\)) join /AF f D WB}if /AF f D} D
/TL {C1 ( Tl ) apa /C1 E D} d
/apa {AF OU and Lh 0 ne LT 1 eq or and{LT 1 eq{RN ( /) E ST cvs join}
{(\() Lh join (\)) join}ie E join join}{pop}ie} d
/Cp {/Xc CP /Yc E D D} D
/SS {Cf{dup 0 ge{EU E get dup -1 eq{pop CA CL get}if}{pop CA CL get}ie Sc}
{pop}ie SZ SL get /SL SL 1 add D} D
/I {WB 8 SS 1 FS} D
/EM {WB 8 SS /CF CF 1 xor D 0 FS} D
/BD {WB 9 SS 2 FS} D
/TT {WB 10 SS /FN Fp D 0 FS} D
/KB {WB 11 SS /FN Fp D 2 FS} D
/CT {WB 12 SS 1 FS} D
/SM {WB 13 SS /FN Fp D 0 FS} D
/Q {/QL QL 1 add D QO QL 2 mod get La get join WB} D
/EQ {QC QL 2 mod get La get join WB /QL QL 1 sub D} D
/RO {WB -1 SS /CF 0 D 0 FS} D
/SY {WB -1 SS -1 FS} D
/ES {WB /SL SL 1 sub NN D /CF 0 D /FN FO SL get D SZ SL get FR SL get FS ()Ec}D
/FZ {3 sub 1.2 E exp GS mul E WB TL /C1 C1 ( Cp ) join D /SL SL 1 add D 0 FS} D
/Ef {WB TL ()ES /C1 C1 ( Cp ) join D} D
/BZ {dup /Bf E D FZ}D
/Sc {dup -1 ne Cf and{/CL CL 1 add D dup 0 eq{pop [0 0 0]}if
dup CA E CL E put VS ( VC ) join C1 E join /C1 E D}{pop}ie} D
/Ec {WB Cf{/CL CL 1 sub NN D CA CL get VS ( VC ) join C1 E join /C1 E D}if} D
/VS {dup type /arraytype eq{([) E {ST cvs join ( ) join}forall (]) join}if} D
/VC {{255 div}forall setrgbcolor} D
/Sl {dup type /integertype ne{Ds}if /La E D WB}d
/UN {WB /UF t D} D
/NU {WB /UF f D} D
/SE {WB /sF t D} D
/XE {WB /sF f D} D
/sM {/C1 C1 ( k1 ) join D}d
/eM {/C1 C1 ( k2 ) join D}d
/k1 {/YC CP E pop Ts add D /mF t D /f1 t D}d
/k2 {gsave 3 LW -9 CP E pop Ts 0.2 mul sub M -9 YC L stroke grestore /mF f D}d
/Ac {/AC E D WB}d
/Ca {eA{( \()join AC join(\) )join}if WB}d
/s {OU{gsave 0 CS .25 mul R dup SW pop CJ 0 RL stroke grestore}if}D
/CJ {AT 3 eq LB and{E dup dup length 1 sub A1 mul E
{( ) search{pop pop E A2 add E}{pop exit}ie}loop 3 -1 roll add
W CP pop sub 2 copy gt{E}if pop}if}D
/So {/Co E D} D
/SO {C1 Yo ST cvs join ( So ) join /C1 E D (j) SW pop 2 div Pd} D
/Se {E WB CS E div Pd}D
/Pd {dup type /stringtype eq{SW pop}if dup /L1 E L1 add D
ST cvs ( 0 R ) join C1 E join /C1 E D} D
/Sp {0.35 CO} D
/Sb {-0.2 CO} D
/CO {OV Io Yo put /Yo E CS mul Yo add D /Io Io 1 add D -1.5 Io mul 3 add FZ SO
CS Yo add dup YA gt{/YA E D}{pop}ie
Yo neg dup YB gt{/YB E D}{pop}ie} D
/Es {ES /Io Io 1 sub NN D /Yo OV Io get D SO} D
/SB {/N2 0 D 0 1 NI{/N E D{IX N2 get 0 lt{/N2 N2 1 add D}{exit}ie}loop
/K WS N get FC N get mul D /NY AY N2 get D /BV NY array D
0 1 NY 1 sub{/TM K string D currentfile TM readhexstring pop pop BV E TM put}
for BM N BV put /N2 N2 1 add D}for} D
/IC [{/MA E D /MB 0 D}{2 div /MA E D /MB MA D}{/MB E CS sub D /MA CS D}
{pop /MA YS AB mul D /MB 1 AB sub YS mul D}{pop /MA 0 D /MB 0 D}] D
/IP {BV N get /N N 1 add D} D
/II {/K E D IX K get 0 lt{/EC E D}if /TY E D
TY 4 eq{/Y E D /X E D}if TY 3 eq{/AB E D}if
/XW AX K get D /YW AY K get D /IS SG IT K get get D /XS XW IS mul D
/YS YW IS mul D YS IC TY get exec /MA MA Fl not{3 add}if D} D
/IM {II /ty TY D /xs XS D /ys YS D /ya YA D /yb YB D /ma MA D /mb MB D /k K D
/ec EC D /BP f D /CI 0 D WB TL L1 xs add dup XO add MR add W gt
{pop /ma ma Fl{3 add}if D NL /YA ma D /YB mb D /YS ys D /L1 xs D}
{/L1 E D ma YA gt{/YA ma D}if mb YB gt{/YB mb D}if}ie /TB f D
OU{CP E pop YS sub LE neg lt Fl not and PB not and{NP /YA ma D /YB mb D}if
/BP f D ty ST cvs ( ) join IX k get 0 lt{(\() join ec join (\) ) join}if
k ST cvs join ty 3 eq{AB ST cvs ( ) join E join}if
ty 4 eq{X ST cvs ( ) join Y ST cvs join ( ) join E join}if C1 E join
( DI ) join FP 2 eq FP 1 eq AF and or{( FM ) join}if
( Il Cp ) apa /C1 E D /EN f D}if /HM t D /T f D} D
/DI {II /Xc CP /Yc E D D /YN YW neg D /HM t D /CI 0 D /K2 IX K get D gsave
TY 4 eq{OX X IS mul add OY FY add YS sub Y IS mul sub}
{/FY YS D CP MB sub 2 copy /OY E D /OX E D}ie
translate K2 0 ge{/DP AZ K2 get D /BV BM K2 get D XS YS scale /N 0 D XW YW DP
[XW 0 0 YN 0 YW] {IP} FC K2 get 1 eq{image}{f 3 colorimage}ie}
{EX}ie grestore XS 0 R /Ms t D} D
/FM {gsave 0 Sg CP MB sub translate XS neg 0 M 0 YS RL XS 0 RL 0 YS neg RL
XS neg 0 RL stroke grestore} D
/NA {/AT E D /AL AL 1 add D AV AL AT put} D
/OA {AL 0 gt{/AL AL 1 sub D /AT AV AL get D}if} D
/D1 {/BR {CP E pop E BN Mb{CP E pop eq{0 YI R}if}{pop}ie} D
/Sn {OU{C1 E ST cvs join ( Ld ) join /C1 E D}{pop}ie} D} D
/D1 {/BR {BN} D /Sn {OU {C1 E ST cvs join ( Ld ) join /C1 E D} {pop} ie} D} D
/TC {/TF t D /ML 0 D HN{SW pop dup ML gt{/ML E D}{pop}ie}forall NP /RM RM not D
RC /OU Tc D Ep /PN 0 D Ms not TP and{Ip}if /W IW ML sub Ts sub D
/A0 0 D TH{/BR {( ) join BT} D /Sn {pop} D /Ti () D /Au () D}if} D
/TN {0 eq{E EA PF HF or not XR and{HN E get Xr}{pop}ie}
{OU{Tn 0 ge{() BN}if /Tn E D}{pop}ie WB}ie} D
/NT {OU LB not and Tn 0 ge and{PL 0 eq{Ms not{CS CF FS}if CP dup
/y E YA sub D W 9 sub CS -1.8 mul XO L1 add 2 add{y M (.) show}for
HN Tn get dup SW pop IW E sub y M show CP BB M}if /Tn -1 D}if} D
/Ld {/DN E D HN DN Pn put [/View [/XYZ -4 Fl{PS}{CP YA add US E pop}ie null]
/Dest DN ST cvs cvn /DEST pdfmark} D
/C {ND 1 eq{1 sub}if TI mul /XO E D NL Nf not{pop()}if 0 3 -1 roll 1 A} D
/OP {BP not{NP}if PN 2 mod 0 eq{NP}if}D
/Ep {Xp PN 2 mod 0 eq and{/Pn (-) D showpage /PM 1 D LA}if}D
/Dg [73 86 88 76 67 68 77] D
/Rd [0 [1 1 0][2 1 0][3 1 0][2 1 1][1 1 1][2 2 1][3 3 1][4 4 1][2 1 2]] D
/Ns {/m E D /c E 32 mul D /j m 1000 idiv D /p j 12 add string D
c 96 le m 0 gt and{c 32 le {/i 0 D /d 77 D /l 100 D /m m j 1000 mul sub D
j -1 1 {pop p i d c add put /i i 1 add D}for
4 -2 0 {/j E D /n m l idiv D /m m n l mul sub D /d Dg j get D
n 0 gt {/x Rd n get D x 0 get -1 1 {pop p i d c add put /i i 1 add D}for
p i x 1 get sub Dg x 2 get j add get c add put}if /l l 10 idiv D
}for p 0 i GI}
{/i ST length 1 sub D m {1 sub dup 0 ge{dup 26 mod c add 1 add
ST i 3 -1 roll put 26 idiv dup 0 eq{pop exit}if}if /i i 1 sub D}loop
ST i ST length i sub GI}ie}
{m p cvs}ie} D
/US {matrix currentmatrix matrix defaultmatrix matrix invertmatrix
matrix concatmatrix transform} D
/GB {Gb{US}if}D
/Tl {/Rn E D Xc CP pop ne{
[/Rect [Xc 1 sub Yc cS 0.25 mul sub GB CP E 1 add E cS 0.85 mul add GB]
/Subtype /Link /Border [0 0 Cf Lc and LX and AU or{0}{1}ie] Rn type
/nametype eq {/Dest Rn}{/Action [/Subtype /URI /URI Rn] Cd}ie
/ANN pdfmark}if} D
/Il {/Rn E D [/Rect [Xc Yc GB Xc XS add Yc YS add GB] /Subtype /Link
/Border [0 0 0] Rn type /nametype eq{/Dest Rn}
{/Action [/Subtype /URI /URI Rn] Cd}ie /ANN pdfmark} D
/XP {[{/Z Bz 2 div D Z 0 R Z Z RL Z neg Z RL Z neg Z neg RL Z Z neg RL}
{Bz 0 RL 0 Bz RL Bz neg 0 RL 0 Bz neg RL}
{0 -5 R Bz 0 RL 0 21 RL Bz neg 0 RL 0 -21 RL}]} D
/MS {/Sm E D WB}D
/O {BN()Sm BX} D
/BX {/Bt E D Bt 2 lt{CS 0.8 mul}{11 mul}ie W XO sub MR sub 2 copy gt{E}if pop
/HZ E D WB Bt 2 eq{HZ ST cvs ( ) join}{()}ie
Bt ST cvs join ( Bx ) join HM{( ) Pd}if
L1 HZ add XO add MR add W gt{NL}if C1 E join /C1 E D /L1 L1 HZ add D /T f D
( ) WB Bt 2 lt{YA CS .8 mul lt{/YA CS .8 mul D}if}
{YB 5 lt{/YB 5 D}if YA 21 lt{/YA 21 D}if}ie /CI 0 D} D
/Bx {dup 2 eq{E /Bz E D}{/Bz CS .8 mul D}ie
OU {gsave 0 Sg XP E get exec stroke grestore}{pop}ie Bz 0 R /Ms t D} D
/SD {FD 4 mul Dy add DZ NF newpath 0 0 M DX t charpath pathbbox
3 -1 roll sub /DY E D E dup /X1 E D sub WM mul WX DY mul add WM DG mul E div
/DF E D /DR WX DF mul DY mul WM div 2 div D} d
/Sd {gsave 0 IL Di mul neg translate IL IW atan Di 0 eq{neg}if rotate
FD 4 mul Dy add DZ NF DR X1 sub DY 2 div neg M cD VC DX show grestore} d
/RC {/AI 0 D /LG 0 D /BC 0 D /UI 0 D /PF f D /Cc 0 D /Dc 10 array D
/NR [0 1 9{pop 0}for] D /La Ds D /AR 10 array D /TR 10 array D /AV 30 array D
SI /AL -1 D /AT A0 D AT NA /OV 9 array D /Yo 0 D /Co 0 D /Io 0 D /Hy f D
/Ph f D /CL -1 D Ct Sc}D
/ZF {/FR [0 1 30{pop 0}for] D /SZ [0 1 30{pop 0}for] D /FO [0 1 30{pop 0}for] D
/SL 0 D /CF 0 D /FN 0 D 0 Ts SF}D
/QO [[(\253)(\232)(\234)(\253\240)(\233)(\273)][(\253)(\231)(')(\253\240)(`)(\273)]] D
/QC [[(\273)(\233)(\234)(\240\273)(\234)(\253)][(\273)(`)(')(\240\273)(')(\253)]] D
/Hf EF length 2 sub D
/Hz EZ Hf get D
/HS Ey Hf get D
/Fz EZ Hf 1 add get D
/Fs Ey Hf 1 add get D
/LE IL D
/Ps EZ 1 get D
/Fp EF 1 get D
/XO 0 D
/YI 0 D
/CI 0 D
/FP 0 D
/WW Ts 7 mul D
/Mf 0 D
/YA 0 D
/YB 0 D
/Cs Ts D
/GS Ts D
/F0 0 D
/NS 0 D
/NB 0 D
/N 0 D
/C0 [] D
/C1 () D
/Lo 0 D
/L1 0 D
/LM 0 D
/PH 0 D
/EC 0 D
/Lh 0 D
/LT 0 D
/CH 1 string D
/ST 16 string D
/CA 9 array D
/HC (\255) D
/HM f D
/PF f D
/EN f D
/TB f D
/UF f D
/sF f D
/AE f D
/AF f D
/BP t D
/CD f D
/PA t D
/GL f D
/T t D
/HF f D
/AH f D
/SA f D
/PB f D
/f1 f D
/mF f D
/OX 0 D
/OY 0 D
/FY 0 D
/EO 0 D
/FB 0 D
/PL 0 D
/Bw 0 D
/PD -1 D
/TP f D
/TH t D
/Ty 4 D
/Tn -1 D
/Fl t D
/LB t D
/PM 1 D
/Ms f D
/Ba f D
/Bb f D
/Hl 3 D
/hl 6 D
/hL 6 D
/Hs f D
/HI 0 D
/hi 0 D
/PO t D
/TE f D
/LF t D
/BO 0 D
/Sm 1 D
/Bf 3 D
/A1 0 D
/A2 0 D
/Ds 4 D
/QL -1 D
/Cb Db D
/Ct Dt D
/Cl Dl D
[/Creator (html2ps version 1.0 beta1) /Author () /Keywords () /Subject ()
/Title (The World-Wide-Mind) /DOCINFO pdfmark
/ND 1 D
/HN [1 1 127{pop (??)}for] D
/h1 [(1\240\240)(Introduction)] D
/h2 [(1.1\240\240)(AI is too big a problem)] D
/h3 [(1.2\240\240)(Duplication of Effort)] D
/h4 [(1.3\240\240)(Unused agents and worlds)] D
/h5 [(1.4\240\240)(Minds will be too complex to be fully understood)] D
/h6 [(2\240\240)(The World-Wide-Mind)] D
/h7 [(2.1\240\240)(Types of servers)] D
/h8 [(2.2\240\240)(Types of Societies)] D
/h9 [(2.3\240\240)(Types of users)] D
/h10 [(2.4\240\240)(Using other people's agent worlds)] D
/h11 [(2.4.1\240\240)(No user interface)] D
/h12 [(2.5\240\240)(Using other people's agent minds)] D
/h13 [(3\240\240)(Further issues on agent minds)] D
/h14 [(3.1\240\240)(MindAS server queries the Mind servers \201not Client\202)] D
/h15 [(3.2\240\240)(Client talks to the World \201not Mind server\202)] D
/h16 [(3.3\240\240)(Low-bandwidth communication)] D
/h17 [(3.4\240\240)(Numeric communication - Q-values and W-values)] D
/h18 [(3.5\240\240)(The role of MindM servers)] D
/h19 [(3.6\240\240)(What is the definition of state and action?)] D
/h20 [(4\240\240)(Further issues on agent worlds)] D
/h21 [(4.1\240\240)(Why not separate World and Body servers?)] D
/h22 [(4.1.1\240\240)(Changing the Body for the World)] D
/h23 [(4.1.2\240\240)(Multiple Bodies in the same World)] D
/h24 [(4.1.3\240\240)(The joint World-Body model is no restriction)] D
/h25 [(4.2\240\240)(What if the Mind cannot make sense of the World?)] D
/h26 [(4.3\240\240)(Real robots)] D
/h27 [(4.4\240\240)(Time)] D
/h28 [(4.5\240\240)(The name "The World-Wide-Mind")] D
/h29 [(5\240\240)(How the WWM will be used in AI)] D
/h30 [(5.1\240\240)(Dividing up the work in AI)] D
/h31 [(5.2\240\240)(Making AI Science - 3rd party experimentation)] D
/h32 [(5.3\240\240)(Artificial Selection)] D
/h33 [(5.4\240\240)(How 3rd party AI researchers will use the scheme)] D
/h34 [(5.5\240\240)(Bring every agent online)] D
/h35 [(6\240\240)(Objections to the model)] D
/h36 [(7\240\240)(Miscellaneous issues)] D
/h37 [(7.1\240\240)(Hidden server insides)] D
/h38 [(7.2\240\240)(Credit)] D
/h39 [(7.3\240\240)(Learning servers)] D
/h40 [(7.3.1\240\240)(Learning Temperature)] D
/h41 [(7.3.2\240\240)(Q-Temperature and W-Temperature)] D
/h42 [(8\240\240)(Implementation)] D
/h43 [(8.1\240\240)(Short, limited-length, client-server transactions)] D
/h44 [(8.2\240\240)(Client algorithm)] D
/h45 [(8.2.1\240\240)(The server may be involved in many runs)] D
/h46 [(8.2.2\240\240)(The client controls time and may implement time-outs)] D
/h47 [(8.2.3\240\240)(This is not a stimulus-response model)] D
/h48 [(8.3\240\240)(MindAS server algorithm)] D
/h49 [(8.3.1\240\240)(The MindAS server may also implement time-outs)] D
/h50 [(8.4\240\240)(The servers \201and client software\202 may implement any general-purpose algorithm using the server queries)] D
/h51 [(9\240\240)(List of server queries)] D
/h52 [(9.1\240\240)(World server)] D
/h53 [(9.2\240\240)(Mind server)] D
/h54 [(9.2.1\240\240)(Additional MindL queries)] D
/h55 [(9.2.2\240\240)(Additional Mindi queries)] D
/h56 [(9.2.3\240\240)(Additional MindFeu queries)] D
/h57 [(9.2.4\240\240)(Additional MindAS queries)] D
/h58 [(10\240\240)(How to implement some existing agent architectures as networks of WWM servers)] D
/h59 [(10.1\240\240)(Hand-coded program)] D
/h60 [(10.1.1\240\240)(Initial test - Eliza Mind talks to Eliza World)] D
/h61 [(10.2\240\240)(The Subsumption Architecture)] D
/h62 [(10.3\240\240)(Serial models)] D
/h63 [(10.3.1\240\240)(Maes' Spreading Activation Networks)] D
/h64 [(10.4\240\240)(Reinforcement Learning)] D
/h65 [(10.5\240\240)(Hierarchical Q-Learning)] D
/h66 [(10.6\240\240)(Action Selection with a single query or multiple queries)] D
/h67 [(10.7\240\240)(Static measures of W)] D
/h68 [(10.8\240\240)(Dynamic measures of W)] D
/h69 [(10.9\240\240)(W-learning)] D
/h70 [(10.10\240\240)(Strong and Weak Mind servers)] D
/h71 [(10.11\240\240)(Matching World state definition with Mind state definition)] D
/h72 [(10.11.1\240\240)("Islands" of compatible worlds)] D
/h73 [(10.11.2\240\240)(The "island" of the physical world)] D
/h74 [(10.11.3\240\240)(Mind servers with different senses in the same Society)] D
/h75 [(10.12\240\240)(Global Action Selection decisions)] D
/h76 [(10.13\240\240)(Other Action Selection methods based on RL)] D
/h77 [(10.14\240\240)(Other parallel models)] D
/h78 [(10.15\240\240)(The AS server remembering the winner)] D
/h79 [(10.16\240\240)(Dynamically changing collections)] D
/h80 [(10.17\240\240)(Nested Mind servers)] D
/h81 [(10.17.1\240\240)(Each server calling a different list of servers)] D
/h82 [(10.17.2\240\240)(Servers outside the AS loop)] D
/h83 [(10.18\240\240)(Feudal Mind servers)] D
/h84 [(10.19\240\240)(The sub-symbolic Society of Mind)] D
/h85 [(10.20\240\240)(More complex communication between Mind servers)] D
/h86 [(10.21\240\240)(Is this a sub-symbolic model?)] D
/h87 [(11\240\240)(HTTP CGI using XML)] D
/h88 [(11.1\240\240)(HTTP CGI)] D
/h89 [(11.2\240\240)(XML)] D
/h90 [(11.2.1\240\240)(XML encoding of server queries)] D
/h91 [(11.2.2\240\240)("AIML")] D
/h92 [(11.3\240\240)(Addressing)] D
/h93 [(11.4\240\240)(Persistent CGI)] D
/h94 [(11.5\240\240)(Asynchronous worlds)] D
/h95 [(12\240\240)(Future work)] D
/h96 [(12.1\240\240)(Define the server queries)] D
/h97 [(12.2\240\240)(Define the client user view)] D
/h98 [(12.2.1\240\240)(Client use through existing Web browsers)] D
/h99 [(12.2.2\240\240)(Dedicated client software)] D
/h100 [(12.3\240\240)(Testing)] D
/h101 [(12.4\240\240)(Long-term prospects)] D
/h102 [(13\240\240)(Conclusion)] D
/h103 [(13.1\240\240)(Endnote - Showing the world what a mind looks like)] D
/h104 [(14\240\240)(Acknowledgements)] D
/Hr [23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
113 114 115 116 117 118 119 120 121 122 123 124 125 126]D
/HV [1 2 2 2 2 1 2 2 2 2 3 2 1 2 2 2 2 2 2 1 2 3 3 3 2 2 2 2 1 2 2 2 2
2 1 1 2 2 2 3 3 1 2 2 3 3 3 2 3 2 1 2 2 3 3 3 3 1 2 3 2 2 3 2 2 2 2 2 2
2 2 3 3 3 2 2 2 2 2 2 3 3 2 2 2 2 1 2 2 3 3 2 2 2 1 2 2 3 3 2 2 1 2 1]D
/Cn [4 0 0 0 0 5 0 0 0 1 0 0 6 0 0 0 0 0 0 5 3 0 0 0 0 0 0 0 5 0 0 0 0
0 0 3 0 0 2 0 0 4 0 3 0 0 0 1 0 0 2 0 4 0 0 0 0 21 1 0 0 1 0 0 0 0 0 0 0
0 3 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 5 0 2 0 0 0 0 0 4 0 2 0 0 0 0 1 0 0]D
Hr length 0 gt{[/PageMode /UseOutlines /DOCVIEW pdfmark}if
/Hn 1 D
0 1 Hr length 1 sub{
/Bn E D [Cn Bn get dup 0 gt{/Count E HV Bn get Bl ge{neg}if}{pop}ie
/Dest Hr Bn get dup abs ST cvs cvn E 0 ge{(h)Hn ST cvs join cvx exec dup 1 get
E Nf{0 get E join}{pop}ie /Hn Hn 1 add D}{()}ie /Title E /OUT pdfmark}for
ZF /FN Fp D Ps 0 FS /WC Wf{( )}{}ie SW pop D
ET RC ZF
/Df f D
/R1 (http://www.compapp.dcu.ie/CA_Working_Papers/wplist01.html) D
/R2 (http://www.compapp.dcu.ie/~humphrys/) D
/R3 (http://www.ics.uci.edu/~mlearn/MLRepository.html) D
/R4 (http://mlnet.org/) D
/R5 (http://uk.dir.yahoo.com/Science/Computer_Science/Distributed_Computing/) D
/R6 (http://uk.dir.yahoo.com/Computers_and_Internet/Security_and_Encryption/Challenges/) D
/R7 (http://uk.dir.yahoo.com/Science/Astronomy/Radio_Astronomy/SETI__Search_for_Extraterrestrial_Intelligence_/SETI_home/) D
/R8 (http://www.literature.org/authors/darwin-charles/the-origin-of-species/chapter-01.html) D
/R9 (http://cyc.com/) D
/R10 (http://mindpixel.com/) D
/R11 (http://commonsense.media.mit.edu/) D
/R12 (http://alicebot.org/) D
/R13 (http://www.sciam.com/1999/0599issue/0599bosak.html) D
/R14 (http://www.ai.mit.edu/projects/humanoid-robotics-group/cog/publications.html) D
/R15 (http://www.newscientist.com/nsplus/insight/ai/globalbrain.html) D
/R16 (http://www.ai.mit.edu/people/joanna/publications.html) D
/R17 (http://www.swarm.org/intro-papers.html) D
/R18 (http://www.cas.anl.gov/1999cas/) D
/R19 (ftp://ftp.cirl.uoregon.edu/pub/users/ginsberg/papers/) D
/R20 (http://goertzel.org/papers/wwb.html) D
/R21 (http://telegarden.aec.at/html/spie.html) D
/R22 (http://www.ieor.berkeley.edu/~goldberg/pubs/) D
/R23 (http://pespmc1.vub.ac.be/papers/GBrain-Bonn.html) D
/R24 (http://amristar.com.au/~hutch/megahal/How.html) D
/R25 (http://www.neci.nj.nec.com/~lawrence/papers/aci-computer98/) D
/R26 (http://www.iiia.csic.es/People/enric/papers.html) D
/R27 (http://cora.whizbang.com/about.html) D
/R28 (http://robotics.stanford.edu/~nilsson/) D
/R29 (http://ci.etl.go.jp/~noda/papers.html) D
/R30 (http://www.nm.cs.titech.ac.jp/lab/papers/index-e.html) D
/R31 (http://www.labs.bt.com/projects/agents/publish/papers.htm) D
/R32 (http://www.prop.org/papers/) D
/R33 (http://www.ftp.cl.cam.ac.uk/ftp/papers/reports/) D
/R34 (http://www.cs.brandeis.edu/~pollack/publications.html) D
/R35 (http://www.hip.atr.co.jp/) D
/R36 (http://www.peterussell.com/GB/globalbrain.html) D
/R37 (http://www.cs.cmu.edu/~Xavier/papers.html) D
/R38 (http://www.genarts.com/karl/evolved-virtual-creatures.html) D
/R39 (http://www.cs.bham.ac.uk/~axs/cog_affect/sim_agent.html) D
/R40 (http://joel.editthispage.com/) D
/R41 (http://talking-heads.csl.sony.fr/Documents/Articles/) D
/R42 (http://arti.vub.ac.be/steels/) D
/R43 (http://www.csl.sony.fr/General/People/StaffPage.php3?user) D
/R44 (http://yugo.mme.wilkes.edu/~villanov/) D
/R45 (http://www.research.att.com/~pstone/papers.html) D
/R46 (http://www.cs.cmu.edu/~mmv/) D
/R47 (http://www.cs.cmu.edu/~mmv/produce-bib00.html) D
/R48 (http://www-anw.cs.umass.edu/~rich/RLinterface/RLinterface.html) D
/R49 (http://telerobot.mech.uwa.edu.au/ROBOT/anupaper.htm) D
/R50 (http://i5.nyu.edu/~mm64/x52.9265/january1966.html) D
/R51 (http://uk.dir.yahoo.com/Recreation/Games/Computer_Games/Internet_Games/Web_Games/Artificial_Intelligence/) D
/R52 (http://uk.dir.yahoo.com/Science/Artificial_Life/Online_Examples/) D
/R53 (http://uk.dir.yahoo.com/Computers_and_Internet/Internet/Devices_Connected_to_the_Internet/Robots/) D
/TS {
tables E get /table E D
table aload pop /rdesc E D /cdesc E D /tdesc E D
tdesc aload pop /capalg E D /caption E D /rules E D /frame E D /nfoot E D
/nhead E D /ncol E D /nrow E D /border E D /twid E D /units E D /talign E D
/flow E D /clear E D /tclass E D pop pop
/w W D /eps 0.1 D /OU f D /PL 1 D
/FN EF 21 get D EZ 21 get Ey 21 get FS
0 1 1{
/pass E D
0 1 nrow{
/irow E D
/cells rdesc irow get 6 get D
0 1 ncol{
/icol E D
/cell cells icol get D
cell 0 ne{
cell aload pop /CB E D pop pop pop
/DV E D /bot E D /top E D /right E D /left E D /nowrap E D /valign E D
/dp E D /align E D /rspan E D /cspan E D /cclass E D /ctype E D /cmax E D
/cmin E D /proc E D
rspan 0 eq{/rspan nrow irow sub 1 add D}if
cspan 0 eq{/cspan ncol icol sub 1 add D}if
pass 0 eq cspan 1 eq and pass 1 eq cspan 1 gt and or{
/W 1e5 D /LL W D /PH 1 D
ctype 1 eq{() BD}if
RC align NA
AT 4 eq{/CD t D /DC dp D /LN 0 D /M1 0 D /M2 0 D}{/CD f D}ie
0 0 M /LM 0 D proc exec BN
AT 4 eq{
LN array astore cell 15 3 -1 roll put
cdesc icol get dup dup 5 get M1 lt{5 M1 put}{5 get /M1 E D}ie
dup 6 get M2 lt{6 M2 put}{6 get /M2 E D}ie
/LM M1 M2 add D
}if
/CD f D
/thiswid LM left add right add eps add D
/oldmin 0 D /oldmax 0 D
0 1 cspan 1 sub{
icol add cdesc E get dup 2 get /oldmax E oldmax add D
1 get /oldmin E oldmin add D
}for
thiswid oldmax ge{
0 1 cspan 1 sub{
icol add cdesc E get dup 2 E 2 get oldmax 0 eq
{pop thiswid cspan div}{thiswid mul oldmax div}ie
put
}for
}if
nowrap 1 eq{
thiswid oldmin ge{
0 1 cspan 1 sub{
icol add cdesc E get dup 1 E 1 get oldmin 0 eq
{pop thiswid cspan div}{thiswid mul oldmin div}ie
put
}for
}if
}{
/W 0 D /LL W D /PH 2 D
ctype 1 eq{() ES () BD}if
0 0 M /LM 0 D RC proc exec BN
/thiswid LM left add right add eps add D
thiswid oldmin ge{
0 1 cspan 1 sub{
icol add cdesc E get dup 1 E 1 get oldmin 0 eq
{pop thiswid cspan div}{thiswid mul oldmin div}ie
put
}for
}if
}ie
ctype 1 eq{() ES}if
}if
}if
}for
}for
}for
/tmin 0 D /tmax 0 D
0 1 ncol{
cdesc E get dup 1 get E 2 get 2 copy gt{pop dup}if
tmax add /tmax E D tmin add /tmin E D
}for
twid 0 lt{twid neg IW gt{IW neg}{twid}ie /twid E D}if
tdesc 0 twid neg tmin 2 copy lt{E}if pop put
tdesc 1 twid neg tmax 2 copy lt{E}if pop put
/W w D /LL W D /OU t D /PH 0 D /PL 0 D
} D
/PT {
/PL PL 1 add D
tables E get /table E D Tm 21 get Ts mul BE
PL 2 ge{save}if
/SL SL 1 add D /FN EF 21 get D EZ 21 get Ey 21 get FS
table aload pop /rdesc E D /cdesc E D /tdesc E D
tdesc aload pop /capalg E D /caption E D /rules E D /frame E D /nfoot E D
/nhead E D /ncol E D /nrow E D /border E D /twid E D /units E D /talign E D
/flow E D /clear E D /tclass E D /tmax E D /tmin E D
/w W D /xo XO D /mr MR D /ll LL D /lg LG D /ai AI D /bc BC D /nr NR D /ar AR D
/tr TR D /ui UI D /ph PH D /a0 A0 D /pf PF D /at AT D /av AV D /al AL D
/Le LE D /la La D
talign 0 lt{/talign AL 0 gt{AV AL get}{A0 2 le{A0}{0}ie}ie D}if
ph 1 eq ph 2 eq or{
NL ph 1 eq{tmax}{tmin}ie dup XO add LM gt{/LM E XO add D}{pop}ie LM E
}{
/PH 3 D /LE 1e5 D RC %ZF
border 0 gt{/border 1 D}if
/twidth 0 D /avail W xo sub D
twid 0 eq{0 1 ncol{cdesc E get dup 2 get E 3 get dup 0 gt{div neg dup twid lt
{/twid E D}{pop}ie}{pop pop}ie}for}if
/twid twid dup 0 lt{neg avail 2 copy gt{E}if pop}{avail mul}ie D
/OK t D 0 1 ncol{cdesc E get dup 1 get E 3 get twid mul gt{/OK f D}if}for
0 1 ncol{
cdesc E get dup 1 get /colmin E D dup 3 get /cwid E twid mul D dup
tmax avail le{2 get}if
tmin avail le tmax avail gt and{
dup 2 get E 1 get dup 3 1 roll sub avail tmin sub mul tmax tmin sub div add
}if
tmin avail gt{1 get}if
0 E colmin cwid lt OK and{pop cwid}if dup /twidth E twidth add D put
}for
/OU f D CP
tmin twid le{
0 1 ncol{cdesc E get dup 0 get twidth div twid mul 0 E put}for
/twidth twid D
}if
CP printcap CP E pop sub /caphig E D pop
0 1 1{
/pass E D
0 1 nrow{
/irow E D
/cells rdesc irow get 6 get D
0 1 ncol{
/icol E D
/cell cells icol get D
cell 0 ne{
cell aload pop /CB E D pop pop pop
/DV E D /bot E D /top E D /right E D /left E D /nowrap E D /valign E D
/dp E D /align E D /rspan E D /cspan E D /cclass E D /ctype E D /cmax E D
/cmin E D /proc E D
rspan 0 eq{/rspan nrow irow sub 1 add D}if
cspan 0 eq{/cspan ncol icol sub 1 add D}if
/W 0 D
0 1 cspan 1 sub{icol add cdesc E get 0 get /W E W add D}for
pass 0 eq rspan 1 eq and pass 1 eq rspan 1 gt and or{
ctype 1 eq{() BD}if
/W W left sub right sub D /XO 0 D /EO 0 D SI
/A0 align D RC align NA
AT 4 eq{
/DC dp D /DO 0 D /ID 1 D
0 1 DV length 1 sub{DV E get dup DO gt{/DO E D}{pop}ie}for
/Lo DO DV 0 get sub D /L1 Lo D
}if
0 0 M /BP t D /Fl t D /MF 0 D /FB 0 D
proc exec T not{/CI 0 D}if BN 0 FB neg R MF 0 eq{/MF CS D}if
CP /thishig E neg bot add top add CI add D pop
cell 16 MF put cell 17 Ya put cell 18 thishig put
valign 4 eq{
/below thishig Ya sub D
rdesc irow get dup dup 4 get Ya lt
{4 Ya put}{4 get /Ya E D}ie
dup 5 get below lt{5 below put}{5 get /below E D}ie
/thishig Ya below add D
}if
ctype 1 eq{()ES}if
/oldhig 0 D
0 1 rspan 1 sub{
irow add rdesc E get 0 get /oldhig E oldhig add D
}for
thishig oldhig ge{
0 1 rspan 1 sub{
irow add rdesc E get dup 0 E 0 get oldhig 0 eq
{pop thishig rspan div}{thishig mul oldhig div}ie
put
}for
}if
}if
}if
}for
}for
}for M RC %ZF
/thight 0 D /racc 0 D /maxh 0 D /brk 0 D /rbeg nhead nfoot add D
rbeg 1 nrow{
rdesc E get dup 0 get dup /thight E thight add D
brk 0 eq{/racc E D}{/racc E racc add D}ie
racc maxh gt{/maxh racc D}if 2 get /brk E D
}for
ph 3 ge{thight caphig add E}if
ph 0 eq ph 4 eq or{
/PH 4 D /LE Le D /OU Ou D /yoff 0 D /headsz 0 D
0 1 nhead 1 sub{rdesc E get 0 get headsz add /headsz E D}for
/footsz 0 D
0 1 nfoot 1 sub{rdesc E nhead add get 0 get footsz add /footsz E D}for
/ahig LE BO add MI add D /maxh maxh headsz add footsz add D
/thight thight headsz add footsz add D
tmin avail gt maxh ahig gt or
{/Sf avail tmin div dup ahig maxh div gt{pop ahig maxh div}if D /SA t D}
{/Sf 1 D}ie
tclass 1 eq thight LE 15 sub gt and
{/SA t D LE 15 sub thight div dup Sf lt{/Sf E D}{pop}ie}if
SA{Sf Sf scale /ll ll Sf div D /xo xo Sf div D /LE LE Sf div D
/mr mr Sf div D /BO BO Sf div D /ahig ahig Sf div D}if
nhead nfoot add getwid
LE CP E pop add capalg 0 eq{caphig sub}if dup headsz sub footsz sub rwid lt
E thight lt thight ahig lt and or{NP}if
capalg 0 eq{printcap -8 SP}if
CP /ycur E D pop
printhead
rbeg 1 nrow{/row E D row
getwid
ycur yoff add rwid sub footsz sub LE add 0 lt
{nfoot 0 gt{printfoot}if Tf NP /rbeg irow1 D
Ba{MI /MI MI SA{Sf div}if D MI SP /MI E D}if
CP /ycur E D pop /yoff 0 D printhead}if
irow1 printrow
}for
printfoot /row row 1 add D Tf
0 ycur yoff add M
capalg 1 eq{/EO 0 D SI -3 SP printcap}if
Sf 1 lt{1 Sf div dup scale /ll ll Sf mul D /xo xo Sf mul D /LE LE Sf mul D
/mr mr Sf mul D /BO BO Sf mul D /SA f D}if
/EO 0 D
}if
}ie
/W w D /XO xo D /MR mr D /LL ll D /LG lg D /AI ai D /BC bc D /NR nr D /AR ar D
/TR tr D /UI ui D /PH ph D /A0 a0 D /PF pf D /AT at D /AV av D /AL al D
/La la D
/SL SL 1 sub NN D /CF 0 D /FN 0 D SZ SL get FR SL get FS Wf not{()F2}if
PL 2 ge{Ms E restore Ms or /Ms E D PH 1 eq PH 2 eq or
{/LM E D}if PH 3 ge{/CI 0 D NL 0 E neg R}if
}if
/PL PL 1 sub D /CI 0 D /BP f D /PO f D () Bm 21 get Ts mul BE BL %CF CS SF
} D
/printcap{
capalg 0 ge{
SA{/W w Sf div D}
{talign 1 eq{/XO xo ll twidth sub 2 div add D}if
talign 2 eq{/XO xo ll twidth sub add D}if
/W XO twidth add D
}ie /XO xo D /LL W XO sub MR sub D
/PA f D /Fl capalg 0 eq D
1 NA BL caption exec BN OA /PA t D
}if
} D
/getwid{
/irow1 E D
/irow2 irow1 D
/rwid 0 D
{rdesc irow2 get dup 0 get rwid add /rwid E D 2 get 0 eq
{exit}{/irow2 irow2 1 add D}ie
}loop
} D
/printrow{
/xoff ll twidth PL 2 ge{Sf div}if sub talign mul 2 div D
/xleft xoff xo add D
/irow E D
/cells rdesc irow get 6 get D
0 1 ncol{
/icol E D
/cell cells icol get D
cell 0 ne{
cell aload pop /CB E D /cvsize E D /above E D /fontsz E D
/DV E D /bot E D /top E D /right E D /left E D /nowrap E D /valign E D
/dp E D /align E D /rspan E D /cspan E D /cclass E D /ctype E D /cmax E D
/cmin E D /proc E D
rspan 0 eq{/rspan nrow irow sub 1 add D}if
cspan 0 eq{/cspan ncol icol sub 1 add D}if
/width 0 D
0 1 cspan 1 sub{icol add cdesc E get 0 get /width E width add D}for
/rhight rdesc irow get 0 get D
/hight rhight D
1 1 rspan 1 sub{irow add rdesc E get 0 get /hight E hight add D}for
/W xo xoff add width add right sub D
/EO xo xoff add left add D SI
Cf{
gsave CB VC xo xoff add ycur yoff add M
0 hight neg RL width 0 RL 0 hight RL width neg 0 RL fill
grestore
}if
ctype 1 eq{() BD}if
/A0 align D RC
AT 4 eq{
/DC dp D /ID 1 D /DO cdesc icol get 5 get D /Lo DO DV 0 get sub D /L1 Lo D
}if
valign 3 le{0 ycur yoff add top sub
hight cvsize sub valign 1 sub mul 2 div sub M}
{0 ycur yoff add top sub above add rdesc irow get 4 get sub M}ie
/PA f D /BP t D /Fl t D
BL proc exec BN
/PA t D
ctype 1 eq{() ES}if
}if
/xoff xoff cdesc icol get 0 get add D
}for
/yoff yoff rhight sub D
} D
/printhead {0 1 nhead 1 sub{printrow}for} D
/printfoot {nhead 1 nhead nfoot add 1 sub{printrow}for} D
/Tf {
OU{rules 2 ge{/yoff 0 D
gsave 0 Sg
[0 1 nhead 1 sub{}for rbeg 1 row 1 sub{}for nhead 1 nhead nfoot add 1 sub{}for]{
/irow E D
/xoff ll twidth PL 2 ge{Sf div}if sub talign mul 2 div D
/cells rdesc irow get 6 get D
0 1 ncol{
/icol E D
/cell cells icol get D
cell 0 ne{
/rspan cell 6 get D
/cspan cell 5 get D
rspan 0 eq{/rspan nrow irow sub 1 add D}if
cspan 0 eq{/cspan ncol icol sub 1 add D}if
/width 0 D
0 1 cspan 1 sub{icol add cdesc E get 0 get /width E width add D}for
/rhight rdesc irow get 0 get D
/hight rhight D
1 1 rspan 1 sub{irow add rdesc E get 0 get /hight E hight add D}for
xo xoff add width add ycur yoff add M
0 hight neg icol cspan add 1 sub ncol lt
{cdesc icol 1 add get 4 get dup rules 3 le{1 eq}{pop t}ie
{1 eq{0.8}{0.3}ie
LW RL CP stroke M}{pop R}ie}{R}ie
irow nhead nfoot add 1 sub ne nfoot 0 eq or
{irow rspan add 1 sub nrow lt
{rdesc irow rspan add get 3 get}{nfoot 0 eq{0}{1}ie}ie
dup rules 2 mod 0 eq{1 eq}{pop t}ie
{1 eq irow rspan add nhead eq or irow rspan add row eq nfoot 0 gt and or
{0.8}{0.3}ie LW width neg 0 RL CP stroke M}{pop}ie}if
}if
/xoff xoff cdesc icol get 0 get add D
}for
/yoff yoff rhight sub D
}forall
grestore
/Ms t D
}if
frame 1 gt{
gsave
1 LW 0 Sg
xleft ycur M CP BB
0 yoff frame 5 eq frame 7 ge or{RL}{R}ie
twidth 0 frame 3 eq frame 4 eq or frame 8 ge or{RL}{R}ie CP BB
0 yoff neg frame 6 ge{RL}{R}ie
twidth neg 0 frame 2 eq frame 4 eq or frame 8 ge or{RL}{R}ie
closepath stroke
grestore
/Ms t D
}if
}if
} D
/tables [[[0 0 0 0 0 -1 0 1 1 9 2 0 0 9 5 {()} -1]
[[0 0 0 0.3 0 0 0][0 0 0 0.4 0 0 0][0 0 0 0.3 0 0 0]]
[[0 0 0 0 0 0 [[{()4 Sl()WB()BD(Request name)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Argu)HY(ment)YH( data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Return data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(New run)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202
Client URL
\201client may be a real client,
or another World)Sb(W)Es( server\202
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the World server.
These are param)HY(e)HY(ters)YH( for the world,
e.g.:
)4 OL(
)-1 LI(synchronous or asyn)HY(chronous)YH(
)-1 LI(shared or non-shared
)-1 LI(start new world or join exist)HY(ing)YH( world
)-1 LI( virtual world size
)-1 LI( param)HY(e)HY(ters)YH( defin)HY(ing)YH( number and type of other objects in virtual world)LO()LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm
\201robot now in use, new copy of virtual world set up for this client,
new actor in exist)HY(ing)YH( virtual world set up, etc.\202
)-1 LI( world run ID
)-1 LI( \201OPTIONAL\202 world display URL)LO(
)0 P( \240 )BD(or)ES( \240
)0 P()4 OL()-1 LI( Refusal \201client blocked, client URL not valid,
failure in follow)HY(ing)YH( trail of credit from client URL,
payment or authen)HY(ti)HY(ca)HY(tion)YH( required, robot already in use,
bad param)HY(e)HY(ters)YH(\202)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get display URL)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 world display URL)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB("No oper)HY(a)HY(tion)YH(" \201Possi)HY(bly)YH( used as a peri)HY(odic)YH( clock timer,
or just to inform the server that the client is still running.\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm )LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get state)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( x)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Execute action)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID
)-1 LI( a)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( y
)-1 LI( \201OPTIONAL\202 Score \201points scored by this single action,
accord)HY(ing)YH( to some scoring system
at the World server\202.
)0 P(
This score could be used to drive auto)HY(mated)YH( searches
with no user inter)HY(face)YH(.)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Reset
\201Reset the world as it would be at the start of a run.
e.g. We are trying to solve a problem.
Previ)HY(ously)YH( we were just learn)HY(ing)YH(.
Now we want to )I(test)ES( our knowl)HY(edge)YH(.\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm
\201This may or may not reset the score.\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Reset score)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get current score)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 Score \201total points scored so far in this run\202.)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(End run)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( world run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm
\201Display URL is removed, robot is freed for other use, etc.\202
)-1 LI( \201OPTIONAL\202
Score \201total points scored over course of run\202.)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
]]
[[0 0 0 0 0 -1 0 1 1 9 2 0 0 9 5 {()} -1]
[[0 0 0 0.3 0 0 0][0 0 0 0.3 0 0 0][0 0 0 0.4 0 0 0]]
[[0 0 0 0 0 0 [[{()4 Sl()WB()BD(Request name)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Argu)HY(ment)YH( data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Return data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(New run)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 Client URL
\201client may be a real client,
or another Mind)Sb(M)Es( server\202
)-1 LI( \201OPTIONAL\202 world display URL
)-1 LI( \201OPTIONAL\202 world run ID
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for the mind,
e.g.:
)4 OL()-1 LI( maximum allow)HY(able)YH( timeout before mind
must return an action)LO()LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm
)-1 LI( mind run ID
)-1 LI( \201OPTIONAL\202 mind display URL
\201Mind may display at some URL infor)HY(ma)HY(tion)YH( about how it is being used
on this run, what it has learnt, etc.\202)LO(
)0 P(\240 )BD(or)ES( \240
)0 P()4 OL()-1 LI( Refusal \201client blocked, client URL not valid,
failure in follow)HY(ing)YH( trail of credit from client URL,
world display URL not valid,
failure in follow)HY(ing)YH( trail of credit from world display URL,
payment or authen)HY(ti)HY(ca)HY(tion)YH( required,
bad param)HY(e)HY(ters)YH(\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get display URL)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 mind display URL)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB("No oper)HY(a)HY(tion)YH("
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm )LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Ready to suggest action?)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( \201OPTIONAL\202 current state x
)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Ready to suggest an action.)LO(
)0 P(\240 )BD(or)ES( \240
)0 P()4 OL()-1 LI( Cannot suggest an action at this time or in this state
\201e.g. has termi)HY(nated)YH(,
or is waiting for pre-condi)HY(tions)YH( to be met\202.)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get action)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( x
)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( a
)-1 LI( \201OPTIONAL\202
Q \201predicted points that will be scored by this action, see below\202)LO(
)0 P(\240 )BD(or)ES( \240
)0 P(
)4 OL()-1 LI( Cannot suggest action at this time
or in this state.)LO(
)0 P(
Note that the action "Do nothing"
is )I(not)ES( equiv)HY(a)HY(lent)YH( to
"Cannot suggest action".
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Inform it about state
\201Inform it what happened when the action was executed\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( y
)-1 LI( \201OPTIONAL\202
Score \201points scored
by action accord)HY(ing)YH( to World\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm
)-1 LI( \201OPTIONAL\202
Q \201points scored by this action,
accord)HY(ing)YH( to the
)I(Mind's)ES(
way of scoring points, which might be differ)HY(ent)YH( to how the World sees it\202.)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Reset score)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get current score)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(mind run ID
)-1 LI( \201OPTIONAL\202
Score \201points scored so far in run
accord)HY(ing)YH( to World\202.
)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202
Score \201points scored so far in run
accord)HY(ing)YH( to Mind\202.)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(End run)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( \201OPTIONAL\202 Score
\201total points scored in run
accord)HY(ing)YH( to World\202)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm
)-1 LI( \201OPTIONAL\202
Score \201total points scored in run
accord)HY(ing)YH( to Mind\202 )LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
]]
[[0 0 0 0 0 -1 0 1 1 5 2 0 0 9 5 {()} -1]
[[0 0 0 0.3 0 0 0][0 0 0 0.4 0 0 0][0 0 0 0.3 0 0 0]]
[[0 0 0 0 0 0 [[{()4 Sl()WB()BD(Request name)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Argu)HY(ment)YH( data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Return data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(New run - Mind)Sb(L)Es( argu)HY(ments)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB(
)4 OL()-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for the mind,
e.g.:
)4 OL()-1 LI( Numeric values of a set of rewards from which the mind will now start learn)HY(ing)YH(
)-1 LI( Q-Temper)HY(a)HY(ture)YH(
)-1 LI( Proposed length of Q learn)HY(ing)YH( run
\201for use in declin)HY(ing)YH( Q-Temper)HY(a)HY(ture)YH(\202
)-1 LI( discount)HY(ing)YH( factor \201in Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH(\202)LO(
Param)HY(e)HY(ters)YH( for a neural network mind might include:
)4 OL()-1 LI( no. of hidden units
)-1 LI( learn)HY(ing)YH( rate)LO(
)-1 LI( \201OPTIONAL\202
Other Client URL.
Say the server stores its learnt knowl)HY(edge)YH( rela)HY(tive)YH( to each client.
This param)HY(e)HY(ter)YH( is to say "Give me the version of the Mind
you have constructed by learn)HY(ing)YH( with the client at this URL.")LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm )LO(
)0 P(\240 )BD(or)ES( \240
)0 P()4 OL()-1 LI( Refusal \201bad param)HY(e)HY(ters)YH(,
other client URL not valid,
no data saved rela)HY(tive)YH( to other client URL\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get Q-Temper)HY(a)HY(ture)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 Q-Temper)HY(a)HY(ture)YH()LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Reset Q-Temper)HY(a)HY(ture)YH( /
World has changed )} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( \201OPTIONAL\202 Proposed length of next Q learn)HY(ing)YH( run)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm
\201will reset Q-Temper)HY(a)HY(ture)YH( to some)HY(thing)YH( sensi)HY(ble)YH(\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Send explicit Q-Temper)HY(a)HY(ture)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( Q-Temper)HY(a)HY(ture)YH(
)-1 LI( \201OPTIONAL\202 Proposed length of next Q learn)HY(ing)YH( run)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get action)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( x
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for this step only,
e.g.:
)4 OL()-1 LI( Q-Temper)HY(a)HY(ture)YH()LO(
)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB(
)4 OL()-1 LI( a
)-1 LI( \201OPTIONAL\202
Q \201predicted points that will be scored by this action\202)LO(
)0 P(\240 )BD(or)ES( \240
)0 P(
)4 OL()-1 LI( Cannot suggest action at this time
or in this state.)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
]]
[[0 0 0 0 0 -1 0 1 1 9 2 0 0 9 5 {()} -1]
[[0 0 0 0.3 0 0 0][0 0 0 0.4 0 0 0][0 0 0 0.3 0 0 0]]
[[0 0 0 0 0 0 [[{()4 Sl()WB()BD(Request name)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Argu)HY(ment)YH( data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Return data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(New run - Mind)Sb(i)Es( argu)HY(ments)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for the mind,
e.g.:
)4 OL()-1 LI( mind "strength"
)-1 LI( W-Temper)HY(a)HY(ture)YH(
)-1 LI( Proposed length of W learn)HY(ing)YH( run)LO(
)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm )LO(
)0 P(\240 )BD(or)ES( \240
)0 P()4 OL()-1 LI( Refusal \201bad param)HY(e)HY(ters)YH(\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get mind strength)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 mind strength)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Change mind strength
)BR(\201Could ask for a new instance of the mind with a differ)HY(ent)YH( strength,
or there might be some reason to keep the current instance and change its strength\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( mind strength )LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get W-Temper)HY(a)HY(ture)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 W-Temper)HY(a)HY(ture)YH()LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Reset W-Temper)HY(a)HY(ture)YH( /
Collec)HY(tion)YH( has changed \201new compet)HY(ing)YH( Minds,
or old compet)HY(ing)YH( Minds have gone\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( \201OPTIONAL\202 Proposed length of next W learn)HY(ing)YH( run)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm
\201will reset W-Temper)HY(a)HY(ture)YH( to some)HY(thing)YH( sensi)HY(ble)YH(\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Send explicit W-Temper)HY(a)HY(ture)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( W-Temper)HY(a)HY(ture)YH(
)-1 LI( \201OPTIONAL\202 Proposed length of next W learn)HY(ing)YH( run)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get suggested action with values)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( x
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for this step only,
e.g.:
)4 OL()-1 LI( Q-Temper)HY(a)HY(ture)YH(
)-1 LI( W-Temper)HY(a)HY(ture)YH()LO(
)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202
a \201my suggested action\202
)-1 LI( \201OPTIONAL\202
Mind server URL \201of the Mind I want to call now\202
)-1 LI(Q \201a measure of how good this action is
- how much this action will benefit me\202.
)-1 LI(W \201how much I am prepared to pay to win this compe)HY(ti)HY(tion)YH(\202.
i.e. We must have some idea what will happen if we don't win.
)LO(
)0 P(\240 )BD(or)ES( \240
)0 P(
)4 OL()-1 LI( Cannot suggest action at this time
or in this state.)LO(
)0 P(
The Mind)Sb(i)Es( server must return
)I(either)ES( an action,
or the URL of a server that will gener)HY(ate)YH( the action,
or a "Cannot suggest action" message.
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Get values for this action
\201How good/bad is this action\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( x
)-1 LI( a
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for this step only,
e.g.:
)4 OL()-1 LI( Q-Temper)HY(a)HY(ture)YH(
)-1 LI( W-Temper)HY(a)HY(ture)YH()LO()LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Q
\201How good is this action -
How much will this action gain for you\202
)-1 LI( W
\201How bad is this action
- How much would you pay to stop this
and execute your best action instead.
How much do you )I(lose)ES( by having this executed
instead of your best action.\202)LO(
)0 P(It is possi)HY(ble)YH( for an action to have high Q )I(and)ES( high W.)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Inform it about winner
\201Inform it what
happened\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( \201OPTIONAL\202 boolean \201whether it was obeyed\202.
Why this might be optional:
A Mind server in Hier)HY(ar)HY(chi)HY(cal)YH( Q-learn)HY(ing)YH(
was never even )I(asked)ES( for an action,
so we can't say it was or wasn't obeyed.
But we still want to tell it that we took someone else's action ak
and got to state y.
)-1 LI( \201OPTIONAL\202 W
\201payment to the Mind for losing
- see Economy of Mind\202
)-1 LI( \201OPTIONAL\202 Who won
\201to be precise, the Mind server URL
of the winner\202.
For use in Nested systems.
)-1 LI( \201OPTIONAL\202 ak
\201the action that was executed\202.
Why this might be optional:
If it did not win,
it may not )I(under)HY(stand)YH()ES( the action that did.
But it still wants to know that it did not win.
)-1 LI( y
)-1 LI( \201OPTIONAL\202 Score \201points
scored by action accord)HY(ing)YH( to
World\202 )LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm
)-1 LI( \201OPTIONAL\202 Q
\201how good this was, or how many points scored, for Mind\202.
)-1 LI( \201OPTIONAL\202 W
\201esti)HY(mate)YH( by Mind of how much it lost by this being executed\202)LO(
)0 P(This command helps the Mind learn
how )I(diffi)HY(cult)YH()ES( it is to win
when we are in state x,
and how )I(bad)ES( it is if someone else wins.
The Mind may decide to increase the value of W next time round
in this state.
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
]]
[[0 0 0 0 0 -1 0 1 1 2 2 0 0 9 5 {()} -1]
[[0 0 0 0.3 0 0 0][0 0 0 0.3 0 0 0][0 0 0 0.4 0 0 0]]
[[0 0 0 0 0 0 [[{()4 Sl()WB()BD(Request name)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Argu)HY(ment)YH( data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Return data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Take me to state)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( mind run ID
)-1 LI( x
)-1 LI( desti)HY(na)HY(tion)YH( state c
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for this step only,
e.g.:
)4 OL(
)-1 LI( Q-Temper)HY(a)HY(ture)YH(
)-1 LI( W-Temper)HY(a)HY(ture)YH()LO(
)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202
a \201my suggested action\202
)-1 LI( \201OPTIONAL\202
Mind server URL \201of the Mind I want to call now\202
)-1 LI( \201OPTIONAL\202 Q
\201how good a is
for the purposes of getting from x to c\202
)-1 LI( \201OPTIONAL\202 W
\201how impor)HY(tant)YH( it is to win the compe)HY(ti)HY(tion)YH( now,
for the purposes of getting from x to c\202)LO(
)0 P(
The Mind)Sb(Feu)Es( server must return
)I(either)ES( an action or the URL of a server that will gener)HY(ate)YH( the action.
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(How good/bad is this action
\201to take me to state c\202)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(mind run ID
)-1 LI( x
)-1 LI( c
)-1 LI( a
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is
inter)HY(preted)YH( by the Mind server.
These are param)HY(e)HY(ters)YH( for this step only,
e.g.:
)4 OL()-1 LI( Q-Temper)HY(a)HY(ture)YH(
)-1 LI( W-Temper)HY(a)HY(ture)YH()LO(
)LO()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL(
)-1 LI( \201OPTIONAL\202 Q
)-1 LI( \201OPTIONAL\202 W)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
]]
[[0 0 0 0 0 -1 0 1 1 3 2 0 0 9 5 {()} -1]
[[0 0 0 0.3 0 0 0][0 0 0 0.4 0 0 0][0 0 0 0.3 0 0 0]]
[[0 0 0 0 0 0 [[{()4 Sl()WB()BD(Request name)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Argu)HY(ment)YH( data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()BD(Return data)ES()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(New run - AS argu)HY(ments)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( \201OPTIONAL\202 List of Mind server URLs
)-1 LI( \201OPTIONAL\202
Open-ended set of argu)HY(ments)YH( whose format is inter)HY(preted)YH( by the AS server.
These are param)HY(e)HY(ters)YH( for the AS mech)HY(a)HY(nism)YH(,
e.g.:
)4 OL()-1 LI( which of a set of algo)HY(rithms)YH( to use)LO()LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI( Confirm )LO(
)0 P(\240 )BD(or)ES( \240
)0 P()4 OL()-1 LI( Refusal
\201mind URLs not valid,
failure in follow)HY(ing)YH( trail of credit from mind URLs,
bad param)HY(e)HY(ters)YH(\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Add mind to collec)HY(tion)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(mind run ID
)-1 LI( Mind server URL)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm )LO(
)0 P(
\240 )BD(or)ES( \240
)0 P(
)4 OL()-1 LI( Refusal
\201mind URL not valid,
failure in follow)HY(ing)YH( trail of credit from mind URL\202)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
[0 0 0 0 0 0 [[{()4 Sl()WB(Remove mind from collec)HY(tion)YH()} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB(
)4 OL()-1 LI(mind run ID
)-1 LI( Mind server URL)LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
[{()4 Sl()WB()4 OL()-1 LI(Confirm )LO(
)} 0 0 0 0 1 1 0 (.) 1 0 4 4 2 6 0 0 0 0 [16#ff 16#ff 16#ff] ]
]]
]]
] D
0 1 5{TS}for RC ZF
/Cb [16#ff 16#ff 16#ff] D /Ct [16#00 16#00 16#00] D /Cl [16#23 16#23 16#8E] D /CL -1 D Ct Sc
/Ba f D /BO 0 D Bs
/UR (all.html) D
/Ti (The World-Wide-Mind) D
/Au () D
/Df f D
NP RC ZF
()4 Sl()WB 0 Sn(
)BR(
)3 P()-1 Bf add FZ(Humphrys, Mark \2012001\202,
)I(The World-Wide-Mind: Draft Proposal)ES(,
Dublin City Univer)HY(sity)YH(,
School of Computer Appli)HY(ca)HY(tions)YH(,
)R1 2 A(Tech)HY(ni)HY(cal)YH( Report no. CA-0301)EA(.)Ef()EP(
) 0 0 PR(
)RP(
)2 Al(
)BD()+4 Bf add FZ(
The World-Wide-Mind:
)0 P(
Draft Proposal
)Ef()ES(
)Ea(
) 0 0 PR()RP(
)2 Al(
)BD(
Mark Humphrys
)BR(Dublin City Univer)HY(sity)YH(,
School of Computer Appli)HY(ca)HY(tions)YH(,
)BR(
Glas)HY(nevin)YH(,
Dublin 9,
Ireland. )BR(
tel \201+353 1\202 700-8059,
fax \201+353 1\202 700-5442
)BR(
)I()0 2 A( humphrys@compapp.dcu.ie )EA( )ES(
)BR()R2 2 A(http://www.compapp.dcu.ie/~humphrys/)EA()ES(
)Ea(
) 0 0 PR(
)RP(
)2 Al(
)BD(This is a first draft of ideas for the WWM system,
as at Feb 2001.
)BR(Further revi)HY(sions)YH( will not appear here,
but rather in a number of forth)HY(com)HY(ing)YH( papers.)ES(
)Ea(
) 0 0 PR(
)RP(
)WB NL NP(
)BR(
)+2 Bf add FZ()BD(Abstract )ES()Ef()0 P(
In the first part of this paper,
a change in method)HY(ol)HY(ogy)YH( for the future of AI and Adap)HY(tive)YH( Behav)HY(ior)YH( research
is proposed.
It is proposed that researchers construct their agent minds and their agent worlds
as )I(servers)ES( on the Inter)HY(net)YH(.
3rd parties will use these servers as compo)HY(nents)YH( in
larger systems.
In this scheme, any user on the Inter)HY(net)YH(
will be able to
\201a\202 select multi)HY(ple)YH(
minds from differ)HY(ent)YH( remote "mind servers",
\201b\202 select a remote "Action Selec)HY(tion)YH( server"
to resolve the \201inevitable\202 conflicts between these minds,
and \201c\202 run the result)HY(ing)YH( constructed "society of mind"
in the )I(world)ES( provided on another "world server".
All this
without )I(neces)HY(sar)HY(ily)YH()ES( having to consult with
the server authors.
This constructed society may now also be presented
as just another prim)HY(i)HY(tive)YH( mind server,
ready for reuse by others as a compo)HY(nent)YH( in a larger system.
)0 P(
From the current situ)HY(a)HY(tion)YH( of isolated exper)HY(i)HY(ments)YH(
we will move to a situ)HY(a)HY(tion)YH( where not only can researchers use each other's
agent worlds,
but they can also use each other's agent minds
as compo)HY(nents)YH( in larger systems.
Servers may call other servers, and
it is expected that
3rd parties will contin)HY(u)HY(ously)YH( write
wrap)HY(pers)YH( and filters for exist)HY(ing)YH( mind servers,
over)HY(rid)HY(ing)YH( and modi)HY(fy)HY(ing)YH( their default
behaviour \201to produce new, co-exist)HY(ing)YH( mind servers\202.
None of this )I(neces)HY(sar)HY(ily)YH()ES( means that the mind being used
ever leaves its server \201or that its insides are even made public\202.
Hence the term, the "World-Wide-Mind" \201WWM\202,
refer)HY(ring)YH( to the fact that the mind
may be phys)HY(i)HY(cally)YH( distributed
across the world, with parts of the mind at differ)HY(ent)YH( remote servers.
)0 P(
Part of the moti)HY(va)HY(tion)YH( for the WWM
is that if the AI project is to be success)HY(ful)YH(,
it may
be too big for any single labo)HY(ra)HY(tory)YH( to complete.
So it will be neces)HY(sary)YH(
both to decen)HY(tralise)YH( the work
and to allow a massive and ongoing exper)HY(i)HY(ment)YH(
with differ)HY(ent)YH( combi)HY(na)HY(tions)YH( of compo)HY(nents)YH(
\201so that we are not locked into any )I(partic)HY(u)HY(lar)YH()ES(
layout of decen)HY(tral)HY(i)HY(sa)HY(tion)YH(\202.
Central to the WWM scheme is the expec)HY(ta)HY(tion)YH(
that researchers will )I(not)ES( agree on how to divide up the AI work,
and so compo)HY(nents)YH( will overlap and be dupli)HY(cated)YH(.
)0 P(
Previ)HY(ous)YH( work by this author
)0 2 A([Humphrys, 1997])EA(
intro)HY(duced)YH( models of mind where compe)HY(ti)HY(tion)YH( took place
between extremely incom)HY(pat)HY(i)HY(ble)YH( compo)HY(nents)YH(,
and where the mind could survive commu)HY(ni)HY(ca)HY(tions)YH( failure with
or even complete loss of a number of such compo)HY(nents)YH(.
The WWM idea grew out of this work,
and this paper
shows
how these previ)HY(ous)YH( models are
the type of models
we need in the WWM.
)0 P(
In the second part of this paper,
we move towards an )I( imple)HY(men)HY(ta)HY(tion)YH()ES(
of the WWM
by trying to define the
)I(set of queries and responses)ES( that the servers
should imple)HY(ment)YH(.
Clients \201includ)HY(ing)YH( other servers\202
may then imple)HY(ment)YH( )I(any)ES( general-purpose algo)HY(rithm)YH(
to drive the servers through repeated use of these queries.
In our initial imple)HY(men)HY(ta)HY(tion)YH(,
we consider schemes of very )I(low-band)HY(width)YH()ES( commu)HY(ni)HY(ca)HY(tion)YH(.
For instance, schemes
where the compe)HY(ti)HY(tion)YH( among multi)HY(ple)YH( minds
is resolved across the network using numeric weights,
rather than by explicit reason)HY(ing)YH( and nego)HY(ti)HY(a)HY(tion)YH(.
It is possi)HY(ble)YH( that this low-band)HY(width)YH( proto)HY(col)YH(
may be more suit)HY(able)YH(
to )I(sub-symbolic)ES( AI than to other branches of AI,
and that other proto)HY(cols)YH( may be needed for other branches of AI.
It is suggested that it may be )I(prema)HY(ture)YH()ES( in some areas of AI
to attempt to formu)HY(late)YH( a "mind network proto)HY(col)YH(",
but that in the sub-symbolic domain
it could at least be attempted now.
Whether the proto)HY(col)YH( presented here is adopted or not,
the first part of this paper \201the )I(need)ES( for a proto)HY(col)YH(\202
stands on its own.
)0 P(
Finally, we suggest a lowest-common-denom)HY(i)HY(na)HY(tor)YH( approach
to actu)HY(ally)YH( imple)HY(ment)HY(ing)YH( these queries, so that current AI researchers
have to learn almost nothing
in order to put their servers online.
As the lowest-common-denom)HY(i)HY(na)HY(tor)YH( approach
we suggest the trans)HY(mis)HY(sion)YH( across ordi)HY(nary)YH( CGI
of queries
and responses written in XML.
) 0 0 PR()RP(
)BD(Keywords -)ES(
World-Wide-Mind,
WWM,
Network Minds,
Distributed Models of Mind,
Society of Mind,
Distributed AI,
autonomous agent archi)HY(tec)HY(tures)YH(,
Action Selec)HY(tion)YH(,
Inter)HY(net)YH(, client-server,
HTTP, CGI, XML, AIML.
)0 P(
) 0 0 PR()RP(
)WB NL NP(
)2 Al(
)BD(
)+4 Bf add FZ(
Part 1 - Intro)HY(duc)HY(tion)YH(
)Ef(
)ES(
)Ea(
) 0 0 PR()RP(
)0 1 0 H()WB 23 Sn( Intro)HY(duc)HY(tion)YH()WB 1 Sn()EA( )EH()0 P(
For decades, AI researchers have constructed
phys)HY(i)HY(cal)YH( and simu)HY(lated)YH(
envi)HY(ron)HY(ments)YH( \201"Worlds"\202,
designed phys)HY(i)HY(cal)YH(
and simu)HY(lated)YH( robots and agents \201"Bodies"\202 to inter)HY(act)YH( with them,
and designed, learnt or evolved
behaviour-produc)HY(ing)YH( control systems \201"Minds"\202 to drive the Bodies.
These Minds are typi)HY(cally)YH( used once, in a set of exper)HY(i)HY(ments)YH(,
and then discarded.
They can \201in theory\202 be recon)HY(structed)YH( from the details provided
in the scien)HY(tific)YH( papers,
but in prac)HY(tice)YH( few ever see the light of day again.
The papers, for good scien)HY(tific)YH( reasons,
concen)HY(trate)YH( on extract)HY(ing)YH( the general )I(prin)HY(ci)HY(ples)YH()ES(
behind the Minds, rather than on ensur)HY(ing)YH( that the Minds'
actual exis)HY(tence)YH( contin)HY(ues)YH(.
)0 P(
In nature, by contrast,
minds are produced by the million,
and get to live in millions of bodies through)HY(out)YH( the world
for millions of years.
The contrast is dramatic
with the testing and devel)HY(op)HY(ment)YH( of AI minds
confined to a single labo)HY(ra)HY(tory)YH(, and often only a single "body",
for only a year or two \201during 90 percent of which the body
is actu)HY(ally)YH( inac)HY(tive)YH(\202.
This paper suggests that the Inter)HY(net)YH(
provides a way for the field of AI to develop its own rich,
world-wide, always-on, ecosys)HY(tem)YH(
to paral)HY(lel)YH( the natural one.
)0 P(
First we ask
what the prob)HY(lems)YH( are
with the exist)HY(ing)YH( situ)HY(a)HY(tion)YH(.
)0 P(
)0 2 1 H()WB 24 Sn( AI is too big a problem)EH()0 P(
The start)HY(ing)YH( point for our moti)HY(va)HY(tion)YH(
is the argu)HY(ment)YH(
that the AI project is too big and complex
for any single labo)HY(ra)HY(tory)YH( to do it all.
Many authors have argued along these lines,
and a number of differ)HY(ent)YH( approaches to this issue
have evolved:
)0 P(
)UL(
)-1 LI(
The tradi)HY(tional)YH( AI approach has been to work on )I(subsec)HY(tions)YH()ES(
of the postu)HY(lated)YH( mind,
such as we find in computer vision,
or language process)HY(ing)YH(.
In prac)HY(tice)YH( this has often meant working on special)HY(ist)YH( prob)HY(lems)YH(
where it is assumed that )I(if)ES( this system
was built into a "whole mind",
other modules would provide its input
and also be able to process its output.
And if the whole mind is never built, it does not matter
because the system can stand on its own
as a useful appli)HY(ca)HY(tion)YH(, with )I(humans)ES( provid)HY(ing)YH( the input
and inter)HY(pret)HY(ing)YH( the output.
)0 P(
The crit)HY(i)HY(cism)YH( of this approach
is that
the "whole mind" never actu)HY(ally)YH( gets built,
and as a result many issues, such as the large-scale archi)HY(tec)HY(ture)YH(
of a complex multi-goal crea)HY(ture)YH(,
and how it resolves its many inter)HY(nal)YH( conflicts,
never get addressed.
e.g. See the crit)HY(i)HY(cisms)YH( of
[)0 2 A(Brooks, 1986)EA(,
)0 2 A(Brooks, 1991)EA(].
For a symbolic AI
call to build whole systems see
)0 2 A([Nilsson, 1995])EA(.
)0 P(
)-1 LI(
The )I(Animats)ES( approach
)0 2 A([Wilson, 1990])EA(
is to start with )I(simple whole crea)HY(tures)YH()ES(
and work up grad)HY(u)HY(ally)YH( to more complex whole crea)HY(tures)YH(.
This approach has gener)HY(ated)YH( much good work
about overall archi)HY(tec)HY(tures)YH( and conflict reso)HY(lu)HY(tion)YH(.
But as the complex)HY(ity)YH( scales up,
it cannot avoid the ques)HY(tion)YH( of whether
one lab can really do it all.
Perhaps the Cog project
[)0 2 A(Brooks, 1997)EA(,
)0 2 A(Brooks et al., 1998)EA(]
is now begin)HY(ning)YH(
to hit those limits.
)0 P(
)-1 LI(
The )I(evolu)HY(tion)HY(ary)YH()ES( approach is to say that control systems
are too hard to design
and must be evolved
)0 2 A([Harvey et al., 1992])EA(.
While it is true that this is how the most )I(advanced)ES(
control systems known arose,
success so far in follow)HY(ing)YH( this path has been limited.
Extraor)HY(di)HY(nary)YH( things have been evolved
)0 2 A([Sims, 1994])EA(
but
they are not, at least in the area of agent control systems,
notice)HY(ably)YH(
more advanced than the control systems
that can be designed by hand or through learn)HY(ing)YH(.
)0 P(
In any case,
this paper shall not take a posi)HY(tion)YH(
on the merits of pure evolu)HY(tion)YH( v. design or learn)HY(ing)YH(.
The methods proposed will be such that could be driven
by evolu)HY(tion)YH( if so desired.
For the moment we simply note that
the evolu)HY(tion)HY(ary)YH( approach may also share with the animat approach
an implicit assump)HY(tion)YH( that one lab can do it all.
)LU(
)0 P(
It seems to me that
all these approaches still
avoid the basic ques)HY(tion)YH(, which is:
)BD(If the
AI project is too big
for any single labo)HY(ra)HY(tory)YH( to do it all,
then as we scale up,
how will we link the work of multi)HY(ple)YH( labo)HY(ra)HY(to)HY(ries)YH(?
)ES(
)0 P(
If the work in AI is to be distributed,
with differ)HY(ent)YH( labo)HY(ra)HY(to)HY(ries)YH( engag)HY(ing)YH( in special)HY(i)HY(sa)HY(tion)YH(,
and then some scheme to combine their work,
many prob)HY(lems)YH( imme)HY(di)HY(ately)YH( arise.
Who decides who works on which piece?
Will we spend all our time trying to define proto)HY(cols)YH(
to talk to other pieces?
What if people can't agree on how to divide up the work,
or indeed what the pieces are?
)0 2 A([Brooks, 1991])EA(
Will this scheme
force every)HY(one)YH( to use
a common program)HY(ming)YH( language?
Will it enforce
a common AI method)HY(ol)HY(ogy)YH( and exclude others?
)0 P(
What)HY(ever)YH( scheme we invent cannot enforce any of these things,
nor can it define a partic)HY(u)HY(lar)YH( way of divid)HY(ing)YH( up the work of AI.
Rather it must be a )I(frame)HY(work)YH()ES( for explor)HY(ing)YH(
differ)HY(ent)YH( ways of divid)HY(ing)YH( up the work,
and differ)HY(ent)YH( ways of combin)HY(ing)YH( heteroge)HY(nous)YH( and over)HY(lap)HY(ping)YH( modules
from diverse sources.
\201By "over)HY(lap)HY(ping)YH(",
we mean that the modules have not )I(agreed)ES( on who does what.
There are some inputs for which more than one module
will attempt to provide an answer.\202
)0 P(
One thing we will need is a model of mind
that can cope with multi)HY(ple)YH( over)HY(lap)HY(ping)YH( and conflict)HY(ing)YH( minds
in the same body,
and will )I(assume)ES( the exis)HY(tence)YH( of
multi)HY(ple)YH( unused minds at all times.
)0 2 2 H()WB 25 Sn( Dupli)HY(ca)HY(tion)YH( of Effort )EH()0 P(
Up until now, the above prob)HY(lems)YH( with
schemes for sharing work have tended to scare researchers off,
and instead every)HY(one)YH( tends to invent their own system.
In order to test a new learn)HY(ing)YH( algo)HY(rithm)YH(, say,
a researcher will first design his own simu)HY(lated)YH( world,
or his own robotic test)HY(world)YH(,
or even design his own robot.
This takes a huge effort of time and work,
and the problem world must be debugged and shown to be a hard problem,
all before you even get to test your novel algo)HY(rithm)YH(.
How many animats researchers have spent
\201perhaps wasted?\202 their time
design)HY(ing)YH( their own grid)HY(worlds)YH(
over the last number of years?
Simi)HY(larly)YH(,
)0 2 A([Minsky, 1996])EA(
has crit)HY(i)HY(cised)YH( the recent "new AI" focus
on using robots,
saying researchers spend all their time learn)HY(ing)YH( robotics
and get to do very little AI.
)0 P(
There are other prob)HY(lems)YH(, such as that design)HY(ing)YH( your own world
means your algo)HY(rithm)YH( is not tested in the same world
as previ)HY(ous)YH( algo)HY(rithms)YH(.
Machine Learn)HY(ing)YH( \201ML\202 in partic)HY(u)HY(lar)YH( has recog)HY(nised)YH( this,
and has attempted to define testbeds in which multi)HY(ple)YH( algo)HY(rithms)YH(
can be tested and compared.
See
the datasets at
the
)R3 2 A(
UCI ML Repos)HY(i)HY(tory)YH()EA(
or MLnet [)R4 2 A(mlnet.org)EA(].
)0 2 A([Bryson et al., 2000])EA(
suggest the setting up of a website with similar stan)HY(dard)YH( tests for
autonomous agents and adap)HY(tive)YH( behaviour.
)0 P(
There have been some attempts to re-use test agent minds
[)0 2 A(Sloman and Logan, 1999)EA(,
)0 2 A(Sutton and Santa)HY(maria)YH(, undated)EA(]
and test worlds
)0 2 A([Daniels, 1999])EA(,
but they suffer from some of the same prob)HY(lems)YH(
that have held back re-use
)0 2 A([Humphrys, 1991])EA(
in the main)HY(stream)YH( computer world
- complex instal)HY(la)HY(tion)YH(,
and incom)HY(pat)HY(i)HY(bil)HY(ity)YH( prob)HY(lems)YH( with libraries, versions, languages and
oper)HY(at)HY(ing)YH( systems.
Soft)HY(ware)YH( is often easier to )I(re-write)ES( than to re-use
)0 2 A([Spolsky, 2000])EA(.
)0 P(
This paper suggests that for AI re-use
we look at perhaps the most
success)HY(ful)YH( recent model of re-use
\201often not recog)HY(nised)YH( as such\202 -
the using of other people's docu)HY(ments)YH( and programs off
remote Web servers.
The Web has now made it common)HY(place)YH(
for people to refer to data at a remote server
rather than provid)HY(ing)YH( a copy of the data them)HY(selves)YH(.
It has also made it common)HY(place)YH( for people to refer to the results
of a program )I(run)ES( on a remote server,
rather than install the program them)HY(selves)YH(.
We will suggest a similar model, where the agent test world
essen)HY(tially)YH( )I(stays)ES( at the remote server and is used from there,
instead of being copied.
)0 P(
This paper will not just address the problem of re-using other
people's )I(worlds)ES(, though.
The fact that it is diffi)HY(cult)YH( to re-use other people's
agent )I(minds)ES( has also held back exper)HY(i)HY(men)HY(ta)HY(tion)YH(
with complex, large-scale archi)HY(tec)HY(tures)YH(.
)0 2 3 H()WB 26 Sn( Unused agents and worlds )EH()0 P(
Having invested the time and effort
in invent)HY(ing)YH( a robotic or agent testbed,
few people then get to use it.
Only MIT students and researchers get to run algo)HY(rithms)YH( on Cog.
This is at most a couple of dozen people.
By nature's stan)HY(dards)YH(,
Cog does not get to "live" much
)0 2 A([Humphrys, 1997a])EA(.
There is only one instan)HY(ti)HY(a)HY(tion)YH( of it,
and - like all similar AI projects -
it will in prac)HY(tice)YH( be inac)HY(tive)YH( 90 percent
of the time.
The world's AI labs are full of robots that have not been acti)HY(vated)YH(
for years, await)HY(ing)YH( funding \201and )I(time)ES(\202
for the next researcher to set up some brief exper)HY(i)HY(ment)YH( with them.
Simi)HY(larly)YH(, in the comput)HY(ers)YH(
of the world's AI researchers
is a whole history of unused
virtual worlds
and agent minds, stored in offline direc)HY(to)HY(ries)YH(,
await)HY(ing)YH( a reac)HY(ti)HY(va)HY(tion)YH(
that may never come.
)0 P(
Putting these agents and their worlds
on the network could
maximise their util)HY(i)HY(sa)HY(tion)YH( and testing,
in the same way that the orig)HY(i)HY(nal)YH( purpose of the Arpanet/Inter)HY(net)YH(
was to
maximise the util)HY(i)HY(sa)HY(tion)YH(
of rare and expen)HY(sive)YH( remote feder)HY(ally)YH(-funded main)HY(frames)YH(.
While their creators have moved on
and are busy with new projects,
the agents and worlds will survive
and will be linked to people who have the time
and incli)HY(na)HY(tion)YH( to do further work with them.
Exper)HY(i)HY(ments)YH( will be done with them that their creators
would never have thought of.
)0 P(
Clearly, it will be easier to
provide remote access to a )I(soft)HY(ware)YH(-only)ES( world
\201you can give every client their own copy\202
than to a )I(robotic)ES( test world
- the robot owners will want to control
who \201if anyone\202 uses their robots remotely.
This will be addressed in detail below.
For soft)HY(ware)YH(-only worlds
it should not
be hard to set up a server
to provide the exis)HY(tence)YH( of the world
long after its creator has departed.
For example, animat researchers would be
very inter)HY(ested)YH( in the exis)HY(tence)YH( of
a server for a complex animal behaviour world,
such as Tyrrell's world
)0 2 A([Tyrrell, 1993])EA(.
)0 2 4 H(Minds)WB 27 Sn( will be too complex to be fully under)HY(stood)YH()EH()0 P(
To complete the crit)HY(i)HY(cism)YH( of the current situ)HY(a)HY(tion)YH(,
there is defi)HY(nitely)YH( some)HY(thing)YH( in the evolu)HY(tion)HY(ary)YH( crit)HY(i)HY(cism)YH(
\201referred to above\202
that advanced behav)HY(ior)YH( control systems may be too
complex to be )I(under)HY(stood)YH()ES(.
)0 P(
As AI scales up, it is envis)HY(aged)YH( that minds
will take on a level of complex)HY(ity)YH( anal)HY(o)HY(gous)YH(
to, say, a national )I(economy)ES(,
where each compo)HY(nent)YH( may be under)HY(stood)YH( by someone,
but the dynam)HY(ics)YH( of the entire system is too complex to be
grasped by one indi)HY(vid)HY(ual)YH(.
In the system we will propose, of a vast network of servers
calling other servers, each
indi)HY(vid)HY(ual)YH( )I(link)ES( in the network will make sense
to the person who set it up,
but there is no need for the system as a whole
to be grasped by any single indi)HY(vid)HY(ual)YH(.
) 0 0 PR(
)RP(
)2 Al(
)BD()+4 Bf add FZ( Part 2 - The World-Wide-Mind)Ef()ES(
)Ea(
) 0 0 PR()RP(
)0 1 5 H()WB 28 Sn( The)WB 2 Sn( World-Wide-Mind)EA()EH()0 P(
The proposed scheme to address these issues
is called
the "World-Wide-Mind" \201WWM\202.
The name has a number of mean)HY(ings)YH(, as will be discussed.
In this scheme, it is proposed that
researchers construct their agent minds and their agent worlds
as )I(servers)ES( on the Inter)HY(net)YH(.
)0 2 6 H()WB 29 Sn( Types)WB 3 Sn( of servers)EA( )EH()0 P(
In the basic scheme, there are the follow)HY(ing)YH( types of server:
)0 P(
)4 OL()-1 LI( A )BD(World and Body server)ES( together.
This server can be queried for
the current state of the world:
\240 )TT(x)ES( \240
as detected by the body,
and can be sent actions:
\240 )TT(a)ES( \240
for the body to perform in the world.
)0 P(
)-1 LI( A )BD(Mind server)ES(, which is a behav)HY(ior)YH(-produc)HY(ing)YH( system,
capable of suggest)HY(ing)YH( an action:
\240 )TT(a)ES( \240
given a partic)HY(u)HY(lar)YH( input state:
\240 )TT(x)ES(. \240
Note this does not mean it is stim)HY(u)HY(lus)YH(-response.
It may remem)HY(ber)YH( )I(all)ES( previ)HY(ous)YH( states.
It may take actions inde)HY(pen)HY(dent)YH( of the current state,
accord)HY(ing)YH( to its own inde)HY(pen)HY(dent)YH( plans.
The Mind server may work by any AI method)HY(ol)HY(ogy)YH( or algo)HY(rithm)YH(
and may contain within itself any degree of complex)HY(ity)YH(.
It may itself call other Mind servers.
In the latter case we call it a
)BD(Mind)Sb(M)Es( server)ES(
to reflect the fact that it
commu)HY(ni)HY(cates)YH( with another server or servers
\201which may them)HY(selves)YH( commu)HY(ni)HY(cate)YH( with many more servers\202
unknown to the client.
)0 P(
)-1 LI( A special type of Mind server
\201in fact a special type of Mind)Sb(M)Es( server\202:
)0 P()4 OL()-1 LI( An )BD(Action Selec)HY(tion)YH( or AS server \201or Mind)Sb(AS)Es( server\202)ES(,
which resolves
compe)HY(ti)HY(tion)YH( among multi)HY(ple)YH( Mind servers.
Each Mind server
\240 )TT(i)ES( \240
suggests an action
\240 a)Sb(i)Es( \240
to execute.
The AS server produces a winning action
\240 a)Sb(k)Es(. \240
This may be one of the suggested actions \201"winner-take-all"\202
or it may be a new, compro)HY(mise)YH( action
[)0 2 A(PhD)EA(, \247)0 2 A(14.2)EA(].
)0 P(
The client talks to the )I(AS server)ES( to get an action,
and the AS server talks to its list of Minds,
using what)HY(ever)YH( queries it needs to resolve compe)HY(ti)HY(tion)YH(
\201perhaps repeated queries\202.
Because it can produce an action
\240 )TT(a)ES( \240
given a partic)HY(u)HY(lar)YH( input state
\240 )TT(x)ES(, \240
the AS server )I(is)ES( in fact a type of Mind server itself.
This is why we call it a "Mind)Sb(AS)Es(" server.
)0 P(
But it may be a very differ)HY(ent)YH( thing from the other Mind servers.
The other servers actu)HY(ally)YH( try to solve some problem
or pursue some goal.
Whereas the
Mind)Sb(AS)Es( server may be
simply a
generic )I(compe)HY(ti)HY(tion)YH(-reso)HY(lu)HY(tion)YH( device)ES(,
that can be applied to )I(any)ES( collec)HY(tion)YH( of Minds
without needing any actual
under)HY(stand)HY(ing)YH( of what the Minds are doing.
We have 2 possi)HY(bil)HY(i)HY(ties)YH(:
)4 OL()-1 LI(The list of Minds
is hard-coded into the Mind)Sb(AS)Es( server.
)-1 LI(The list of Minds
is provided as an )I(argu)HY(ment)YH()ES(
to the Mind)Sb(AS)Es( server at startup.)LO(
In either case,
typi)HY(cally)YH( all the actual )I(problem-solving)ES( intel)HY(li)HY(gence)YH(
\201sugges)HY(tions)YH( of actions to execute\202
resides in the Minds.
)LO()LO(
)0 P(
It is imag)HY(ined)YH( that
each of these types of server may be customised with a number of param)HY(e)HY(ters)YH(
or argu)HY(ments)YH( at startup,
so that a client may ask for slightly differ)HY(ent)YH( versions
of what is essen)HY(tially)YH( the same server.
We have already seen possi)HY(ble)YH( argu)HY(ments)YH( for a
Mind)Sb(AS)Es( server \201the list of Minds\202.
Other possi)HY(ble)YH( server argu)HY(ments)YH( will be discussed later.
)0 P(
)0 2 7 H()WB 30 Sn( Types)WB 4 Sn( of Soci)HY(eties)YH()EA( )EH()0 P(
By allow)HY(ing)YH( Mind servers call each other
we can incre)HY(men)HY(tally)YH( build up more and more complex hier)HY(ar)HY(chies)YH(, networks
or soci)HY(eties)YH( of mind.
We will call any collec)HY(tion)YH( of more than one Mind server
acting together a )BD(Society)ES(.
A Society is built up in stages.
At each stage, there is a single Mind server that serves as the inter)HY(face)YH(
to the whole Society:
)0 P(
)4 OL()-1 LI(A Mind)Sb(M)Es( server calls other
Mind servers.
To run this Society you talk to the Mind)Sb(M)Es( server.
)-1 LI(A Mind)Sb(AS)Es( server adju)HY(di)HY(cates)YH( among multi)HY(ple)YH( Mind servers.
To run this Society you talk to the Mind)Sb(AS)Es( server.)LO(
)0 P(
and so on, recur)HY(sively)YH(.
At each stage, there is a single Mind server
which serves as the inter)HY(face)YH( to the Society,
to which we send the state,
and receive back an action.
For example, in the simplest type of Society, the client talks to a single
Mind and World server, who talk to no one else:
)0 P(
)BQ()4 OL( )-1 LI( client talks to:
)4 OL( )-1 LI( Mind
)-1 LI( World)LO()LO()QB(
)0 P(
In a more complex society, the Mind server that the client talks to
is itself talking to other Mind servers:
)0 P(
)BQ()4 OL( )-1 LI( client talks to:
)4 OL( )-1 LI( Mind)Sb(M)Es(, which talks to:
)4 OL( )-1 LI( Mind
)-1 LI( Mind)LO(
)-1 LI( World)LO()LO()QB(
)0 P(
or:
)0 P(
)BQ()4 OL( )-1 LI( client talks to:
)4 OL( )-1 LI( Mind)Sb(AS)Es(, which talks to:
)4 OL( )-1 LI( Mind
)-1 LI( Mind
)-1 LI( Mind)LO(
)-1 LI( World)LO()LO()QB(
)0 P(
and so on, with an endless number of combi)HY(na)HY(tions)YH(, e.g.:
)0 P(
)BQ()4 OL( )-1 LI( client talks to:
)4 OL( )-1 LI( Mind)Sb(M)Es(, which talks to:
)4 OL( )-1 LI( Mind
)-1 LI( Mind)Sb(M)Es(, which talks to:
)4 OL()-1 LI( Mind)LO(
)-1 LI( Mind)Sb(AS)Es(, which talks to:
)4 OL( )-1 LI( Mind
)-1 LI( Mind)Sb(M)Es(, which talks to:
)4 OL()-1 LI( Mind)LO(
)-1 LI( Mind)LO(
)LO(
)-1 LI( World)Sb(W)Es(, which talks to:
)4 OL()-1 LI( World)LO()LO()LO()QB(
)0 P(
\201We will discuss "World)Sb(W)Es(" servers later.\202
)0 P(
Each Society has precisely one Mind server at the top level.
This makes sense because
the compe)HY(ti)HY(tion)YH( must get resolved )I(some)HY(where)YH()ES(,
so that an action is produced.
And the )I(client)ES( can't resolve it.
So it must be resolved by the time it gets to the client.
)0 2 8 H(Types)WB 31 Sn()WB 5 Sn( of users)EA( )EH()0 P(
There are the follow)HY(ing)YH( types of users of this system:
)0 P(
)4 OL()-1 LI( A non-tech)HY(ni)HY(cal)YH( )BD(Client)ES( user -
essen)HY(tially)YH( any user on the Inter)HY(net)YH(.
Basi)HY(cally)YH(, the client will run )I(other people's minds)ES(
in )I(other people's worlds)ES(.
Without needing any tech)HY(ni)HY(cal)YH( ability, the client will
be able to do the follow)HY(ing)YH(:
)0 P(
)4 OL()-1 LI( )BD(Pick one Mind server
to run in one World)ES(.
Even this appar)HY(ently)YH( simple
choice may be the product of a lot of hard work
- in picking 2 suit)HY(able)YH( servers that work together,
and choos)HY(ing)YH( suit)HY(able)YH( argu)HY(ments)YH( or param)HY(e)HY(ters)YH( for each server.
So it is suggested that the client can present the results of this work
for others to use at some URL.
In this case, no new server is created,
but rather a "link" to 2 exist)HY(ing)YH( servers
with partic)HY(u)HY(lar)YH( argu)HY(ments)YH( is set up.
And at that link, the client may promote it, explain why it works,
etc.
User-friendly soft)HY(ware)YH( will make it as easy as possi)HY(ble)YH( for the
non-tech)HY(ni)HY(cal)YH( to both exper)HY(i)HY(ment)YH( with differ)HY(ent)YH( combi)HY(na)HY(tions)YH(,
and link to the result.
)0 P(
)-1 LI(At a more advanced level,
even a non-tech)HY(ni)HY(cal)YH( client may be able to construct a Society.
For instance a client may select a combi)HY(na)HY(tion)YH( of
remote Mind servers,
a remote Action Selec)HY(tion)YH( server to resolve the \201inevitable\202 compe)HY(ti)HY(tion)YH(
between these multi)HY(ple)YH( minds,
and finally select
a remote Body/World server to run this Society in.
To be precise, what the client does is:
)BD(Pick a
Mind)Sb(AS)Es( server,
pass it a list of Mind servers
to adju)HY(di)HY(cate)YH(,
and then simply pick a World to run the
Mind)Sb(AS)Es( server
in)ES(.
The partic)HY(u)HY(lar)YH( )I(combi)HY(na)HY(tion)YH()ES( of Mind servers chosen
may be the
product of a lot of hard work
\201in search)HY(ing)YH( for good combi)HY(na)HY(tions)YH(\202.
So again it is suggested that the client can present the results of this work
for others to use at some URL.
Again, no new server is created,
but rather a "link" to 2 exist)HY(ing)YH( servers
with partic)HY(u)HY(lar)YH( argu)HY(ments)YH( is set up.
User-friendly soft)HY(ware)YH( will make it as easy as possi)HY(ble)YH( for the
non-tech)HY(ni)HY(cal)YH( to both exper)HY(i)HY(ment)YH( with differ)HY(ent)YH( combi)HY(na)HY(tions)YH(,
and link to the result.
)0 P(
)BD(This is like construct)HY(ing)YH( a new Mind server:)ES(
When a client constructs a new combi)HY(na)HY(tion)YH( of Mind servers like this,
it looks very much as if a new Mind server
has been created,
with totally new behaviour.
But in fact it has been done by supply)HY(ing)YH( )I(new param)HY(e)HY(ters)YH()ES(
to an )I(exist)HY(ing)YH()ES(
Mind)Sb(AS)Es( server.
Admit)HY(tedly)YH( some of these param)HY(e)HY(ters)YH( \201the addresses of other Mind servers\202
may not have )I(existed)ES( when the
Mind)Sb(AS)Es( server
was written,
and the choice of the combi)HY(na)HY(tion)YH( may be an extremely creative act.
)LO(
)0 P(
In the above,
the client does not )I(neces)HY(sar)HY(ily)YH()ES( need to know anything about
how the servers work,
or even anything much about AI.
The client just observes that
certain combi)HY(na)HY(tions)YH(
work very well, and others don't.
The role that large numbers of
clients
acting over long periods
may play in exper)HY(i)HY(men)HY(ta)HY(tion)YH(
and arti)HY(fi)HY(cial)YH( selec)HY(tion)YH(
may be very impor)HY(tant)YH(, as will be discussed in detail later.
)0 P(
)-1 LI(A tech)HY(ni)HY(cally)YH(-profi)HY(cient)YH( )BD(server author)ES( -
again any user on the Inter)HY(net)YH(,
if they have the tech)HY(ni)HY(cal)YH( ability
\201and also access to a machine to host their new server\202.
They will need to under)HY(stand)YH( how to construct a server,
but their under)HY(stand)HY(ing)YH( of AI does not
)I(neces)HY(sar)HY(ily)YH()ES( have to be profound.
)0 P(
As we have seen above,
just spec)HY(i)HY(fy)HY(ing)YH( an exist)HY(ing)YH( server
with new param)HY(e)HY(ters)YH(
can be very much like creat)HY(ing)YH( a totally new Mind server
with new behaviour.
The server author, however, will be writing an
)I(actu)HY(ally)YH()ES(
new server.
For example:
)0 P(
)4 OL()-1 LI( A tech)HY(ni)HY(cally)YH(-profi)HY(cient)YH( server author
could write a
)I(wrapper)ES( around an exist)HY(ing)YH(,
working Mind server,
i.e.
)BD(Write a new Mind)Sb(M)Es( server)ES(.
The most simple form of wrapper would not provide any actions itself,
but would just selec)HY(tively)YH( call other servers.
For instance, the server author observes that one Mind server
tends to perform better in one area of the input space,
and another server performs better in a differ)HY(ent)YH( area.
The server author could then exper)HY(i)HY(ment)YH( with writing a wrapper
of the form:
)I("If input is a partic)HY(u)HY(lar)YH( )TT(x)ES( then do what)HY(ever)YH( the
Mind server M1 does
- other)HY(wise)YH( do what)HY(ever)YH( the
Mind server M2 does.")ES(
The author needs little to no under)HY(stand)HY(ing)YH( of how either
server works, yet still might be able to create a
Mind)Sb(M)Es( server
that is better than either Mind server itself.
For a discus)HY(sion)YH( of such "Nested" systems see
[)0 2 A(PhD)EA(, \247)0 2 A(18)EA(].
)0 P(
)-1 LI( An AI-profi)HY(cient)YH( server author might try writing a
Mind)Sb(M)Es( server
that attempts to provide some actions itself.
For example, a server
that only )I(modi)HY(fies)YH()ES(
the exist)HY(ing)YH( behaviour
in some area of the inputs,
such as:
)I("If input is a partic)HY(u)HY(lar)YH( )TT(x)ES( then take this action )TT(a)ES(
- other)HY(wise)YH( do what)HY(ever)YH( the old server does.")ES(
The author may need little under)HY(stand)HY(ing)YH( of how the exist)HY(ing)YH(
Mind server works.
If over)HY(rid)HY(ing)YH( it in one area of the input space doesn't work
\201doesn't perform better\202
he may try over)HY(rid)HY(ing)YH( it in a differ)HY(ent)YH( area.
)0 P(
)-1 LI(At the most advanced level, AI researchers would write their own
servers from scratch. But it is envis)HY(aged)YH( that
even AI researchers
will find it useful
\201in fact, prob)HY(a)HY(bly)YH( )I(essen)HY(tial)YH()ES(\202
to write limited wrap)HY(pers)YH( around other people's servers
whose insides they don't fully under)HY(stand)YH( \201or want to under)HY(stand)YH(\202.)LO()LO(
)0 P(
That is the basic WWM idea.
How this scheme will work,
and what does it mean,
will now be discussed in detail.
) 0 0 PR()RP(
)0 2 9 H(Using)WB 32 Sn( other people's agent worlds )EH()0 P(
First, we note that, among many other things,
the scheme is trying to define a proto)HY(col)YH(
whereby researchers can use each other's agent worlds.
)I(Not)ES( by installing the world at your own site,
but by leaving the world running on a server
at its author's site, and using it remotely.
One issue we will have to solve
is how does the client see what is going on in the remote world
where he is running his selected mind combi)HY(na)HY(tion)YH(?
)0 P(
)0 3 10 H(No)WB 33 Sn()WB 6 Sn( user inter)HY(face)YH( )EA()EH(
Note the client may not )I(wish)ES( to see
what is happen)HY(ing)YH( - he may only want a report back at the end
as to how well his agent did
- for example, if he is running an auto)HY(mated)YH( evolu)HY(tion)HY(ary)YH( search
of differ)HY(ent)YH( combi)HY(na)HY(tions)YH(.
For example, the client,
instead of )I(watch)HY(ing)YH()ES( his robot picking up cans,
may just want to know )I(how many)ES( cans it picked
up over the course of a run.
In fact, in this case the client
may be able to )I(calcu)HY(late)YH()ES( how many cans his robot picked up
by exam)HY(in)HY(ing)YH( the state of the world after every action,
and keeping his own running total as he goes along.
In which case no )I(extra)ES( report back from the World server would
be required.
For an example
of an auto)HY(mated)YH( search with no user inter)HY(face)YH( see
[)0 2 A(PhD)EA(, \247)0 2 A(4.1.1)EA(].
)0 P(
Perhaps the World server provides a URL
where the client can see in real time
what is going on,
)I(if)ES( he wants to.
If this URL is not connected to,
no user inter)HY(face)YH( is displayed.
)0 P(
)0 2 11 H()WB 34 Sn( Using other people's agent minds )EH()0 P(
The very defi)HY(ni)HY(tion)YH( of this system may seem strange to the reader.
We are taking for granted that simply being able to match
a single Mind server with a World server would be of limited use.
Instead we are build)HY(ing)YH( a system where clients can put
)I(multi)HY(ple)YH()ES( minds in the same body.
The problem with these multi)HY(ple)YH( minds is that none of them
are aware of the others' exis)HY(tence)YH(,
and each is designed to control the body on its own.
Instead of allow)HY(ing)YH( them do that, we simply take their wishes
)I(into account)ES( when running the Action Selec)HY(tion)YH( server.
For an intro)HY(duc)HY(tion)YH(
to these kind of models see
)0 2 A([Humphrys, 1997])EA(.
The )I(Adap)HY(tive)YH( Behav)HY(ior)YH()ES( audi)HY(ence)YH( will be long famil)HY(iar)YH(
with these kind of multi)HY(ple)YH(-mind models.
Other readers may find them very waste)HY(ful)YH( and unusual.
)0 P(
Yet, we argue, if 3rd parties are to construct soci)HY(eties)YH( of mind
using others' compo)HY(nents)YH(, it will be )I(impos)HY(si)HY(ble)YH()ES( to prevent
massive overlap in func)HY(tion)YH( and conflict between these compo)HY(nents)YH(.
The real)HY(is)HY(tic)YH( approach is to accept overlap as )I(inevitable)ES(
and work on
conflict-reso)HY(lu)HY(tion)YH( methods \201the AS servers\202.
The AS server will try to allow the expres)HY(sion)YH( at differ)HY(ent)YH( times
of most or all of the goals pursued by each mind.
With some totally-conflict)HY(ing)YH( goals this may not be possi)HY(ble)YH(,
so the human clients will finish the job,
by looking for specific )I(combi)HY(na)HY(tions)YH()ES( of minds
whose conflicts,
when
resolved by the AS algo)HY(rithm)YH(,
results in a useful overall multi-goal crea)HY(ture)YH(.
)0 P(
The alter)HY(na)HY(tive)YH( to a multi)HY(ple)YH(-conflict)HY(ing)YH(-minds model
would be
to get the compo)HY(nents)YH( to agree on their func)HY(tion)YH(
in advance, which is totally imprac)HY(ti)HY(cal)YH(.
)0 P(
This is not to say that a group of Mind servers )I(cannot)ES( agree
to divide up func)HY(tion)YH( in advance,
and the agent mind can consist
of a single
head)HY(quar)HY(ters)YH( Mind)Sb(M)Es( server
that knows about this divi)HY(sion)YH(,
and that calls each Mind server,
care)HY(fully)YH( switch)HY(ing)YH( control from Mind to Mind.
This is possi)HY(ble)YH(, but may be very )I(rare)ES( if Soci)HY(eties)YH(
are to be constructed by large numbers of researchers.
The model cannot assume )I(in general)ES(
that minds make any allowance for the exis)HY(tence)YH( of other minds.
Users will construct combi)HY(na)HY(tions)YH( of new minds and old minds,
where the new minds did not even )I(exist)ES( when the old minds were
being written.
For instance,
even with a )I(perfect)ES( divi)HY(sion)YH( of func)HY(tion)YH( like the
collec)HY(tion)YH( we just described,
no sooner will it be put online
than users will start construct)HY(ing)YH( soci)HY(eties)YH(
involv)HY(ing)YH( it and some )I(new)ES( Minds.
And then we are back to an Action Selec)HY(tion)YH( problem again.
)0 P(
In fact, as has been discussed else)HY(where)YH(
- see
[)0 2 A(PhD)EA(, \247)0 2 A(18.3)EA(],
and also the "brit)HY(tle)HY(ness)YH(" crit)HY(i)HY(cism)YH( of classic AI
)0 2 A([Holland, 1986])EA(
-
waste)HY(ful)HY(ness)YH( and multi)HY(ple)YH( unex)HY(pressed)YH( ideas
is gener)HY(ally)YH( a sign of )I(intel)HY(li)HY(gence)YH()ES( rather than the oppo)HY(site)YH(.
When it comes to intel)HY(li)HY(gence)YH(,
)I(parsi)HY(mony)YH()ES( may be the enemy, rather than waste)HY(ful)HY(ness)YH(.
)0 P(
) 0 0 PR()RP(
)0 1 12 H()WB 35 Sn( Further)WB 7 Sn( issues on agent minds)EA()EH()0 P(
)0 2 13 H()WB 36 Sn( Mind)Sb(AS)Es( server queries the Mind servers \201not Client\202 )EH()0 P(
One ques)HY(tion)YH( then is how complex does the
top-level client algo)HY(rithm)YH( have to be?
How many servers does it have to talk to?
For instance, when there is a collec)HY(tion)YH( of Mind servers and an AS server,
the client could talk to the Mind servers itself,
gather the results and
repeat)HY(edly)YH( present them to the AS server for reso)HY(lu)HY(tion)YH(.
)0 P(
However, when we consider the vast number of possi)HY(ble)YH( algo)HY(rithms)YH(
for resolv)HY(ing)YH( compe)HY(ti)HY(tion)YH(,
some involv)HY(ing)YH( )I(multi)HY(ple)YH()ES( queries of each Mind server
with differ)HY(ent)YH( sugges)HY(tions)YH(,
it seems more logical for the client to pass the )I(list)ES( of Mind servers
to the AS server at startup,
and then let the AS server query them itself,
i.e. let the complex)HY(ity)YH( of the compe)HY(ti)HY(tion)YH(-reso)HY(lu)HY(tion)YH( algo)HY(rithm)YH(
be buried in the AS server rather than in the client.
In our model, )I(the client manages a single Mind server and a single
World server)ES(. Which leads to the next ques)HY(tion)YH(:
)0 2 14 H()WB 37 Sn( Client talks to the World \201not Mind server\202 )EH()0 P(
Perhaps the client should pass the World server address as an argu)HY(ment)YH( to
the top-level Mind server, and let the Mind talk to the World directly.
)0 P(One reason we do not do this is that -
unlike the situ)HY(a)HY(tion)YH( with the AS server talking
to the Mind servers -
the inter)HY(ac)HY(tion)YH(
between the Mind server and World server is not bounded
- the run of this Mind in this World may go on indef)HY(i)HY(nitely)YH(.
It seems better to have this logic in the client
rather than in the server.
The servers respond to short queries,
and the client is respon)HY(si)HY(ble)YH( for )I(how many)ES( such queries there are,
and what the overall control algo)HY(rithm)YH( is,
e.g. imple)HY(ment)HY(ing)YH( time-outs and )I(repeated)ES( queries if servers do not respond.
Or imagine a client where a user is watch)HY(ing)YH( the user inter)HY(face)YH(
of an infi)HY(nite)YH( run, and decid)HY(ing)YH(, by click)HY(ing)YH( a button,
when to issue the "End run" command.
)0 P(
Another reason we may prefer to define the server queries,
and then let a sepa)HY(rate)YH( algo)HY(rithm)YH( control how many queries take place,
is that we may like two Minds to commu)HY(ni)HY(cate)YH( with each other
in a conver)HY(sa)HY(tion)YH(,
in which case )I(each Mind serves as the World for the other)ES(.
Instead of redefin)HY(ing)YH( the Mind server so it can respond to ques)HY(tions)YH(
such as "Get state",
the client algo)HY(rithm)YH( manages this,
query)HY(ing)YH( the Mind server for an action,
and then sending that action as the state for another Mind server.
Imagine two chat programs connected together.
Or a "tit-for-tat" online compe)HY(ti)HY(tion)YH(
[)0 2 A(Axelrod and Hamil)HY(ton)YH(, 1981)EA(,
)0 2 A(Axelrod, 1984)EA(].
)0 P(
)0 2 15 H(Low-band)WB 38 Sn()HY(width)YH( commu)HY(ni)HY(ca)HY(tion)YH( )EH()0 P(
Crucial to the whole scheme of using minds
from diverse sources
is that we do not impose any restric)HY(tions)YH(
on the type of Mind servers that can be written.
Minds can be written in any language
and accord)HY(ing)YH( to any method)HY(ol)HY(ogy)YH(.
Minds do not have to explain them)HY(selves)YH(
or how they work.
Minds are hidden bina)HY(ries)YH( on remote servers.
Minds )I(cannot)ES( know about each other's goals or insides.
Or, to be precise, some minds )I(may)ES( know how other
Mind servers work
\201and act accord)HY(ingly)YH(\202,
but we cannot in general demand this.
)0 P(
If Mind servers do not under)HY(stand)YH( each other,
then they can only commu)HY(ni)HY(cate)YH( by )I(low-band)HY(width)YH()ES( attempts.
That is, there is a limit to how much infor)HY(ma)HY(tion)YH(
they can usefully commu)HY(ni)HY(cate)YH( to each other
or to the AS server.
If, as has already been argued, it will be impos)HY(si)HY(ble)YH( to prevent
large-scale conflicts between Minds,
it is the AS server that has to resolve the compe)HY(ti)HY(tion)YH( between
these strangers
who speak no common language.
The central ques)HY(tion)YH( is:
)BD(
What infor)HY(ma)HY(tion)YH( does the AS server need
from the Mind servers
to resolve the compe)HY(ti)HY(tion)YH(?)ES(
For example, if it just gets a simple list of
their suggested actions:
\240 a)Sb(i)Es( \240
it seems it could
do little more than just pick
the most popular one \201if any appears twice\202.
If none appears twice, it seems it could only pick a random one.
Perhaps the AS server )I(rotates)ES( around the Minds,
allow)HY(ing)YH( each free reign for a time in rota)HY(tion)YH(.
Any such )I(time-based)ES(
Action Selec)HY(tion)YH( scheme will be very crude
[)0 2 A(PhD)EA(, \247)0 2 A(15.1)EA(].
)0 P(
)0 2 16 H(Numeric)WB 39 Sn( commu)HY(ni)HY(ca)HY(tion)YH( - Q-values and W-values)EH()0 P(
For any more
sophis)HY(ti)HY(cated)YH( Action Selec)HY(tion)YH( than the above,
it seems that
the Mind server
needs to provide )I(more infor)HY(ma)HY(tion)YH()ES(.
We will first consider schemes where the servers pass
simple numeric quan)HY(ti)HY(ties)YH( around
to resolve the compe)HY(ti)HY(tion)YH(,
yet still do not have to under)HY(stand)YH( each
other's goals.
)0 P(
For example,
Mind server
\240 i \240
may tell the AS server what action
\240 a)Sb(i)Es( \240
it wants to take,
plus a weight
\240 W)Sb(i)Es( \240
express)HY(ing)YH( how impor)HY(tant)YH(
it is for them to win the compe)HY(ti)HY(tion)YH( on this timestep.
This can be seen as a "payment" in a common currency
to try to win the Action Selec)HY(tion)YH(
\201see the "Economy of Mind" ideas of
)0 2 A([Baum, 1996])EA(\202.
Or perhaps
the AS server, in a bid to resolve conflict,
could
suggest to all the Mind servers a compro)HY(mise)YH( action
\240 a)Sb(k)Es( \240
and each Mind server could reply with another weight
\240 W)Sb(i)Es( \240
illus)HY(trat)HY(ing)YH( how much they would dislike taking that action
\201assum)HY(ing)YH( it is not the action they were orig)HY(i)HY(nally)YH( suggest)HY(ing)YH(\202.
We may define the follow)HY(ing)YH( weights:
)0 P(
)4 OL()-1 LI(The "Q-value" defines how good this action is
in pursuit of the Mind server's goal,
i.e. expected reward or benefit from this action.
Mind server
\240 i \240
might build up a table
\240 Q)Sb(i)Es(\201x,a\202 \240
showing the expected value for each action in each state.
)0 P(
)-1 LI(The "W-value" defines how )I(bad)ES( it would be
for this Mind server to lose the compe)HY(ti)HY(tion)YH(
on this timestep,
and have another action taken.
This rather depends on what action will be taken if it loses.
Mind server
\240 i \240
may main)HY(tain)YH( a table
\240 W)Sb(i)Es(\201x\202 \240
defin)HY(ing)YH( how bad it is to lose \201or how much it will "pay" to win\202
in each state.
Or it may judge the badness of a )I(specific)ES( action
\240 )TT(a)ES( \240
by the quan)HY(tity)YH(:
\240
Q)Sb(i)Es(\201x,a)Sb(i)Es(\202 - Q)Sb(i)Es(\201x,a\202.
\240
)LO(
)0 P(
The usage of Q and W comes from
)0 2 A([Humphrys, 1997])EA(.
High Q does not imply high W.
Q could be high and yet W = 0.
For the differ)HY(ences)YH( between Q and W
see [)0 2 A(PhD)EA(,
\247)0 2 A(5.5)EA(,
\247)0 2 A(6.1)EA(,
\247)0 2 A(16.2)EA(].
Given a set of Q-values,
there are many possi)HY(ble)YH( schemes for deriv)HY(ing)YH( W-values
\201discussed through)HY(out)YH(
)0 2 A([Humphrys, 1997])EA(\202.
The WWM server queries defined in this paper will allow )I(all)ES( of these
numeric schemes to be imple)HY(mented)YH(.
)0 P(
Higher-band)HY(width)YH( commu)HY(ni)HY(ca)HY(tions)YH( than this
would seem diffi)HY(cult)YH(
if we are not to impose some struc)HY(ture)YH( on what is inside
each Mind server.
Hence I will begin the WWM imple)HY(men)HY(ta)HY(tion)YH( with a )I(sub-symbolic, numeric
Society of Mind)ES(, rather than a symbolic one.
)0 P(
)0 2 17 H()WB 40 Sn( The role of Mind)Sb(M)Es( servers)EH()0 P(
Compe)HY(ti)HY(tion)YH( reso)HY(lu)HY(tion)YH(, however,
does not )I(all)ES( have to be done by AS servers
looking at Q-values and W-values.
Much of the work of combin)HY(ing)YH( multi)HY(ple)YH( minds
will also be done by hand-coded Mind)Sb(M)Es( servers,
which state explic)HY(itly)YH( who wins in which state:
)0 P(
)BQ()I("As long as the input state is in the region
\240 )TT(X)ES( \240
do what Mind server no. 4006 wants to do,
)BR(other)HY(wise)YH(,
if the input state is in the region
\240 )TT(Y)ES( \240
do what Mind 33000 wants to do,
)BR(other)HY(wise)YH( \201for all other states\202
give me a "strong" Mind 8000
\201i.e. it has lots of currency to spend\202
and a "weak" Mind 11005,
and let them compete under AS server 300."
)ES()QB(
)0 P(
In this case the knowl)HY(edge)YH( that Mind server no. 4006
should always "win" the compe)HY(ti)HY(tion)YH(
when the input state is in the region
\240 )TT(X)ES( \240
is some)HY(thing)YH( that the server author has hard-coded.
The Mind server did not have to convince the other compet)HY(ing)YH( minds
\201or the AS server\202
of this fact.
In general,
a Mind server can imple)HY(ment)YH( any
general-purpose algo)HY(rithm)YH(
that inter)HY(prets)YH( the incom)HY(ing)YH( state, and
can call
another Mind server at any point in the algo)HY(rithm)YH(.
For a discus)HY(sion)YH( of such "Nested" systems see
[)0 2 A(PhD)EA(, \247)0 2 A(18)EA(].
One issue in nested servers
will be the possi)HY(bil)HY(ity)YH( of a )I(circu)HY(lar)YH()ES( call,
leading to an infi)HY(nite)YH( loop.
It is not proposed to build anything into the proto)HY(col)YH(
to prevent this.
It is up to the server authors to prevent.
[)0 2 A(PhD)EA(, \247)0 2 A(18.1)EA(]
discusses infi)HY(nite)YH( loops in a society of mind.
)0 P(
To simplify, the above algo)HY(rithm)YH( would be written as
a Mind)Sb(M)Es( server
whose "New run" command would be:
)0 P(
)BQ() 3 65 PR( send "New run" command to M1
send "New run" command to M2
send "New run" command to M3 with arguments \201strong M4, weak M5\202)RP()QB(
)0 P(
where the server
\240 )TT(M3)ES( \240
is a Mind)Sb(AS)Es( server
that can be passed its list of servers as argu)HY(ments)YH( at startup.
Then the Mind)Sb(M)Es( server's
"Get action" command \201with argu)HY(ment)YH( \240 )TT(x)ES(\202 \240
would be:
)0 P(
)BQ() 3 71 PR( if x in region X1 send "Get action" command to M1 with argument x
else if x in region X2 send "Get action" command to M2 with argument x
else send "Get action" command to M3 with argument x)RP()QB(
)0 P(
M3's "Get action" command
sends a "Get action" command with argu)HY(ment)YH(
\240 )TT(x)ES( \240
to )I(both)ES( M4 and M5,
and then makes a deci)HY(sion)YH( based on what they return,
perhaps query)HY(ing)YH( them further before decid)HY(ing)YH(.
)0 P(
)0 2 18 H()WB 41 Sn( What is the defi)HY(ni)HY(tion)YH( of state and action? )EH()0 P(
We have so far avoided the ques)HY(tion)YH(
of what is the exact data struc)HY(ture)YH( that is being
passed back and forth as the state or action.
It seems that this defi)HY(ni)HY(tion)YH( will be differ)HY(ent)YH(
in differ)HY(ent)YH( domains.
This scheme proposes that we
allow differ)HY(ent)YH( defi)HY(ni)HY(tions)YH( to co-exist.
Each server will explain the
format of the state and action
they gener)HY(ate)YH( and expect
\201most of the time this will just involve
linking to another server's defi)HY(ni)HY(tion)YH(\202.
) 0 0 PR()RP(
)0 1 19 H()WB 42 Sn( Further)WB 8 Sn( issues on agent worlds)EA()EH()0 P(
)0 2 20 H(Why)WB 43 Sn( not sepa)HY(rate)YH( World and Body servers? )EH()0 P(
The above model simpli)HY(fied)YH( things by having
a joint
World-Body server.
Why not sepa)HY(rate)YH( further into World servers
and Body servers?
)0 P(
The fact is that a World server )I(is)ES( a Body server.
The world only "exists"
in so far as it is perceived by the senses.
Imagine if we did split the model
into World servers and Body servers.
The World server would respond to requests for the state of the world
with an output
\240 )TT(x)ES( \240
and would be sent inputs
\240 )TT(a)ES( \240
for execu)HY(tion)YH(.
The
Body server - would do the same thing.
It would respond to requests for the state of the world
)I(as perceived by the senses)ES(
with an output
\240 )TT(x)ES( \240
and would be sent inputs
\240 )TT(a)ES( \240
for execu)HY(tion)YH(.
From the point of view of the client,
the two servers are the same type of thing.
It's a matter of style which they adver)HY(tise)YH( them)HY(selves)YH( as.
)0 P(
But there is still a problem with this model of joint Mind-Body servers.
It )I(seems)ES( to indi)HY(cate)YH( that only the World author can write Bodies
- which goes against the philos)HY(o)HY(phy)YH( of the WWM,
where 3rd parties can write add-ons without permis)HY(sion)YH(.
The ques)HY(tion)YH( is: )BD(How do we write new Bodies for the same World
\201if we are not the World author\202?)ES(
)0 P(
The answer is that it depends what we mean by writing
"new Bodies" for the same World.
There is a limit to
what we can do with someone else's World
without writing our own.
The world may have a fixed number of actors - say, one
\201e.g. a robotic world\202 -
and what we are meant to do is provide the mind for the single actor.
We cannot )I(will)ES( another actor into exis)HY(tence)YH(,
so all we can do is give the single actor a differ)HY(ent)YH( type of )I(Body)ES(
than the Body that the World server has given it by default.
)0 P(
And even then, we cannot give it senses that the World has not already
given it.
All we can do is write Bodies that sense a )I(sub-space)ES(
of the orig)HY(i)HY(nal)YH( state
\240 )TT(x)ES( \240
provided by the World.
)0 P(
)0 3 21 H()WB 44 Sn( Chang)HY(ing)YH( the Body for the World )EH()0 P(
So when invent)HY(ing)YH( new Bodies,
we write them as )I(new)ES( World-Body servers,
which are )I(wrap)HY(pers)YH()ES( around the old World-Body server.
We will call such a World server a )BD(World)Sb(W)Es( server)ES(
to reflect the fact that it commu)HY(ni)HY(cates)YH(
with another server \201which may itself commu)HY(ni)HY(cate)YH(
in a )I(chain)ES( of World servers\202 unknown to the client.
)0 P(The client only sees the senses as presented by the wrapper
World)Sb(W)Es( server,
and sends its actions to the World)Sb(W)Es( server too.
The World)Sb(W)Es( server
talks to the "real" World server.
Presum)HY(ably)YH( to it it seems like just another client,
request)HY(ing)YH(
\240 )TT(x)ES( \240
and report)HY(ing)YH(
\240 )TT(a)ES(. \240
And to the client, the World)Sb(W)Es( server looks like just another
World server.
The senses that the World)Sb(W)Es( server presents to the client
are strictly a )I(subset)ES( of the raw senses
presented by the orig)HY(i)HY(nal)YH( World server.
)0 P(
Working with only a sub-space of the orig)HY(i)HY(nal)YH( state
\240 )TT(x)ES( \240
may sound restric)HY(tive)YH(, but remem)HY(ber)YH( that
in general,
a "World-Body" server just provides a stream of output
\240 )TT(x)ES( \240
when queried about the state of the world.
We have not really defined what this output should be,
and in fact people may write
World servers whose outputs
\240 )TT(x)ES( \240
are delib)HY(er)HY(ately)YH( )I(designed)ES( not to be used as the raw senses
of any agent,
but rather are designed to be filtered by many differ)HY(ent)YH(
species of 3rd-party Body, in wrapper World)Sb(W)Es( servers.
Note that even having a long chain of World)Sb(W)Es( servers
does not break our basic model that )I(the client deals
with a single top-level Mind server and a single top-level World server)ES(.
)0 P(
)0 3 22 H()WB 45 Sn( Multi)HY(ple)YH( Bodies in the same World )EH()0 P(
Having accepted that a 3rd party cannot neces)HY(sar)HY(ily)YH( control
the number of actors in a World,
how would the World server )I(itself)ES( deal with multi)HY(ple)YH( actors?
)0 P(
)UL()-1 LI()BD(Robotic worlds:)ES(
For example, say we have a robotic testbed
with 2 robots equipped with differ)HY(ent)YH( senses.
)0 P(
This would )I(not)ES( require a World server
and multi)HY(ple)YH( Body servers.
The senses returned by each are quite differ)HY(ent)YH(, so this demands
differ)HY(ent)YH( World servers.
The logical imple)HY(men)HY(ta)HY(tion)YH(
would be as 2 differ)HY(ent)YH( World-Body servers,
both located at the orig)HY(i)HY(nal)YH( site.
They will detect each other's exis)HY(tence)YH(
in the sense that the other robot will appear
in the state of the world
\240 )TT(x)ES( \240
as detected through their senses.
)0 P(
Below we will discuss the special issues with robotics,
where each World-Body server can only have one client in control
of it at a time.
Here with the 2 robots,
if a client wanted to do exper)HY(i)HY(ments)YH( in multi-agent coop)HY(er)HY(a)HY(tion)YH(,
they would need to gain exclu)HY(sive)YH( control
of )I(both)ES( World-Body servers at the same time.
)0 P(
)-1 LI( )BD(Virtual worlds \201own copy\202:)ES(
A )I(virtual)ES(
World server
could create a sepa)HY(rate)YH( )I(instance)ES( of the virtual world
for each client,
so that each client acted alone
as a single actor in the world.
)0 P(
)-1 LI( )BD(Virtual worlds \201shared\202:)ES(
On the other hand, the virtual World server
might provide the ability to )I(create)ES( a new actor
for every client that was using it,
all such actors oper)HY(at)HY(ing)YH( in the same world,
and detect)HY(ing)YH( each other's exis)HY(tence)YH( through state
\240 )TT(x)ES(. \240
)0 P(
But again this would )I(not)ES( require a World server
and multi)HY(ple)YH( Body servers.
It can be done with a single World-Body server,
with multi)HY(ple)YH( clients connected to it at the same time,
each sharing an instance of the world with the other clients,
rather than getting its own instance.
The state
\240 )TT(x)ES( \240
that the server returns is customised
for each client.
)LU(
)0 P(
)0 3 23 H()WB 46 Sn( The joint World-Body model is no restric)HY(tion)YH()EH()0 P(
In conclu)HY(sion)YH(, our
joint World-Body model is no
\201or at least, little\202 restric)HY(tion)YH(
for a 3rd party:
)0 P(
)4 OL()-1 LI()BD(New Bodies:)ES(
We can change the Body for the World
\201within limits\202 by writing a wrapper World)Sb(W)Es( server.
)-1 LI(
)BD(Heteroge)HY(nous)YH( Bodies:)ES(
We can write many differ)HY(ent)YH( versions
\201within limits\202 of these
World)Sb(W)Es( wrapper servers,
thus creat)HY(ing)YH( many differ)HY(ent)YH( possi)HY(ble)YH( Bodies for the same World.
)-1 LI()BD(Multi)HY(ple)YH( Bodies in Same World:)ES(
We can add many Bodies to the same )I(instance)ES( of the World,
if the World permits it,
by using multi)HY(ple)YH( clients.
)-1 LI()BD(Multi)HY(ple)YH( Heteroge)HY(nous)YH( Bodies in Same World:)ES(
And since our clients can connect each to differ)HY(ent)YH( wrapper
World)Sb(W)Es( servers,
we can add many Bodies of
differ)HY(ent)YH( types \201within limits\202 to the World.
)LO(
)0 2 24 H()WB 47 Sn( What if the Mind cannot make sense of the World? )EH()0 P(
If we are to allow 3rd parties place Minds
in any World-Body they like,
and run the result,
we must accept that
the Mind server may not be able to make sense of the chosen World.
For instance the format of the incom)HY(ing)YH( state
\240 )TT(x)ES( \240
may be differ)HY(ent)YH( to the format the Mind server was expect)HY(ing)YH(.
In fact, far from being a special case,
this will prob)HY(a)HY(bly)YH( be true of 99 percent of all combi)HY(na)HY(tions)YH(
that a client could choose.
)0 P(
The basic scheme is that we allow this.
The 3rd parties need to be given total freedom in
their exper)HY(i)HY(ments)YH( in arti)HY(fi)HY(cial)YH( selec)HY(tion)YH(.
Combi)HY(na)HY(tions)YH( that don't work are not a problem.
The 3rd parties will only of course adver)HY(tise)YH( the combi)HY(na)HY(tions)YH(
that work.
World authors will explain the struc)HY(ture)YH( of the state
\240 )TT(x)ES( \240
that they gener)HY(ate)YH(,
and Mind authors will docu)HY(ment)YH( the struc)HY(ture)YH( of the
\240 )TT(x)ES( \240
they expect,
and further servers and clients will act accord)HY(ingly)YH(.
)0 2 25 H(Real)WB 48 Sn( robots)EH()0 P(
As mentioned,
this model could even be used to control real phys)HY(i)HY(cal)YH( robots
or other real hard)HY(ware)YH(.
There are already a number of
robots that can be controlled over the Inter)HY(net)YH(.
For an intro)HY(duc)HY(tory)YH( list see the
)0 2 A([Yahoo list of robots online])EA(.
"Inter)HY(net)YH( tele-robotics" raises some special issues:
)0 P(
)4 OL()-1 LI( We may want a scheme where
only one client can control the robot
at a time.
Whereas with a soft)HY(ware)YH(-only world
one can always allow multi)HY(ple)YH( clients
\201e.g. by creat)HY(ing)YH( a new )I(instance)ES( of the world and body
for each client\202.
If the robot allows only one client at a time,
we need WWM server commands to )I(start)ES( a run
\201block all other clients\202
and )I(stop)ES( a run
\201mark free for another client\202.
)0 P(
)-1 LI( The robot owner may want to restrict )I(who)ES( is able to
run a mind on his machine,
since some control programs may cause damage.
Methods of )I(secu)HY(rity)YH()ES( and )I(payment)ES( may there)HY(fore)YH( need to be
inte)HY(grated)YH(.
)0 P(
)-1 LI(A virtual world server requires little or no main)HY(te)HY(nance)YH(.
The author can put the virtual world up on the server
and then forget about it.
It runs forever, servic)HY(ing)YH( clients,
even perhaps after the author has left the site.
)0 P(
A robotic world server, however,
demands much more of a commit)HY(ment)YH(.
You need to main)HY(tain)YH( the hard)HY(ware)YH(, recharge batter)HY(ies)YH(,
super)HY(vise)YH( use of it,
repair damaged parts of the robot or things in the world,
tidy up objects in the world that have been scat)HY(tered)YH(
or put out of place,
perhaps only allow client access when someone is watch)HY(ing)YH(,
and so on.
It is a lot more of a commit)HY(ment)YH(.
You need to fund it
and set aside a room for it.
As a result most of the
Inter)HY(net)YH(-controlled robots so far have run for
a limited time only.
Longer projects will presum)HY(ably)YH( be possi)HY(ble)YH( with )I(payment)ES(.)LO(
)0 P(
These issues have already been encoun)HY(tered)YH( in the
first exper)HY(i)HY(men)HY(tal)YH( Inter)HY(net)YH( robots.
For a discus)HY(sion)YH(
of the issues see
)0 2 A([Taylor and Dalton, 1997])EA(.
For example,
)0 2 A([Stein, 1998])EA(
allows remote control of the robot until the client gives it up,
or until a timeout has passed \201for clients that never discon)HY(nect)YH(\202.
)0 2 A([Paulos and Canny, 1996])EA(
operate in a special type of problem space
where each action
repre)HY(sents)YH( the comple)HY(tion)YH( of an entire goal, and so actions of differ)HY(ent)YH( clients
can be inter)HY(leaved)YH(.
)0 P(
Ken Gold)HY(berg)YH( and colleagues have
oper)HY(ated)YH( a number of Inter)HY(net)YH( teler)HY(obotics)YH( projects.
In the first "tele-exca)HY(va)HY(tion)YH(" project,
clients queued for access to the robot.
In
the robotic tele-garden
)0 2 A([Gold)HY(berg)YH( et al., 1996])EA(
users could submit discrete requests at any time,
which were executed later
by the robot
accord)HY(ing)YH( to its own schedul)HY(ing)YH( algo)HY(rithm)YH(.
)0 2 A([Simmons et al., 1997])EA(
do some)HY(thing)YH( similar.
The robotic Ouija board
)0 2 A([Gold)HY(berg)YH( et al., 2000])EA(
is a special type of problem
where the actions of multi)HY(ple)YH( clients can be )I(aggre)HY(gated)YH()ES(.
We will define the WWM server commands in this paper
with a view to being able to imple)HY(ment)YH( )I(all)ES( of these systems.
)0 P(
)0 2 26 H(Time)WB 49 Sn()EH()0 P(
The nature of )I(time)ES( in this system is inter)HY(est)HY(ing)YH(.
The agent senses a state of the world
\240 )TT(x)ES( \240
and then talks to perhaps a large number of servers
in order to find an action
\240 )TT(a)ES( \240
to execute.
Some of these servers may be down.
Others may take a long time to respond.
The ques)HY(tion)YH( is: )BD(What happens to the world
while the agent is waiting to act?)ES(
It seems there are 2 possi)HY(bil)HY(i)HY(ties)YH(:
)0 P(
)4 OL()-1 LI( )BD(Synchronous World)ES( - The world
waits for the agent's next action
before it makes the tran)HY(si)HY(tion)YH( to the next state.
)-1 LI( )BD(Asyn)HY(chronous)YH( World)ES( - The world changes state
accord)HY(ing)YH( to its own timetable,
inde)HY(pen)HY(dent)YH( of the agent.
If the agent wants to behave adap)HY(tively)YH(, it must sample
the state of the world often enough.
In this case, what the world server provides
is a window
onto an )I(inde)HY(pen)HY(dently)YH(-exist)HY(ing)YH()ES(, chang)HY(ing)YH( world.
)LO(
)0 P(
We consider which of these would be used
in each type of world:
)0 P(
)UL()-1 LI()BD(Robotic worlds - Asyn)HY(chronous)YH(:)ES(
In a robotic world, if the mind servers do not respond quickly,
then the state of the world may have changed
completely in the mean)HY(time)YH(.
Perhaps we need some )I(time-out)ES( system.
If the World server receives no answer within
the time-out, then the old state of the world becomes "invalid"
and it sends a new state
\240 )TT(x)ES(. \240
)0 P(
On the other hand, we could say it is not the World server's
problem.
We could say it's up to the client
to imple)HY(ment)YH( time-outs
\201and re-check the state
\240 )TT(x)ES(\202 \240
if it wants to behave adap)HY(tively)YH(.
The advan)HY(tage)YH( of this would be to main)HY(tain)YH( a simple
)I(client-driven)ES( model.
)I(All)ES( servers - the World server,
Mind servers and AS servers -
could ignore time.
These servers would simply respond to requests emanat)HY(ing)YH( from clients.
The orig)HY(i)HY(nal)YH( client controls time and so can set up a system of time-outs.
)0 P(
In a multi-level system, there may be commu)HY(ni)HY(ca)HY(tion)YH(
going on that the client does not know about.
For example, the "Mind" server that the client is waiting for
may actu)HY(ally)YH( be a )BD(Mind)Sb(AS)Es( server)ES(
resolv)HY(ing)YH( compe)HY(ti)HY(tion)YH( between multi)HY(ple)YH( Mind servers.
In this case, the Mind)Sb(AS)Es( server might
imple)HY(ment)YH( its own time-out.
If it hasn't got a reply from all of the Mind servers,
it just makes a deci)HY(sion)YH( based
on what)HY(ever)YH( suggested actions have come in so far.
Alter)HY(na)HY(tively)YH(, the Mind)Sb(AS)Es( server may simply wait until
it has had a response from every)HY(one)YH(,
and if that takes too long then the client that is waiting
for the Mind)Sb(AS)Es( server will time-out.
)0 P(
It seems that a )BD(Mind)Sb(M)Es( server)ES(
)I(cannot)ES(
imple)HY(ment)YH( a time-out
- it simply has to wait for the Mind server it is calling to return.
)0 P(
)-1 LI()BD(Virtual worlds \201own copy\202 - Synchronous:)ES(
In a virtual world where the client has its own instance of the world,
then the World server can simply wait for the client
to return an action before it moves on to the next state of the world.
Even if the server is down or not respond)HY(ing)YH(,
that need not neces)HY(sar)HY(ily)YH( end the "run".
We could set it so that the run only ends by agree)HY(ment)YH(,
not by mere server failure,
which merely post)HY(pones)YH( the next step.
)0 P(
In a purely virtual world,
the agent could live in a strange, "arrested-time" world.
It inter)HY(acts)YH( with the world,
the world server is down,
it waits days for the next "timestep" to see the next state of the world.
Simi)HY(larly)YH(, the world waits days to get the agent's action
so it can advance the clock to the next state.
Waiting is not a problem for either.
A simu)HY(lated)YH( world can run at any speed.
Time speeds up and slows down, depend)HY(ing)YH( on the servers.
)0 P(
)-1 LI()BD(Virtual worlds \201shared\202 - prob)HY(a)HY(bly)YH( Asyn)HY(chronous)YH(:)ES(
In a virtual world shared with other clients,
the world may either move on to the next state
after a time-out,
imple)HY(ment)HY(ing)YH( what)HY(ever)YH( actions have come in so far,
or else wait for )I(all)ES( clients to return before
moving on.
The problem with the latter is if a single client crashes
or goes offline, then )I(all)ES( clients are frozen.
So the shared virtual world will prob)HY(a)HY(bly)YH( be
Asyn)HY(chronous)YH(, and it is up to the client to sample the state
of the world
often enough if it wants to be adap)HY(tive)YH(.
)0 P()LU(
) 0 0 PR()RP(
)0 2 27 H()WB 50 Sn( The)WB 9 Sn( name "The World-Wide-Mind")EA( )EH()0 P(
The name "The World-Wide-Mind"
makes a number of impor)HY(tant)YH( points:
)0 P(
)4 OL()-1 LI()BD( The mind stays at the server:)ES(
The name high)HY(lights)YH( the fact that
the mind is not copied but rather stays at the server.
We believe that the Web,
by allow)HY(ing)YH( docu)HY(ments)YH( )I(remain)ES( at the remote server,
and access)HY(ing)YH( them remotely,
provides an outstand)HY(ing)YH(
example of )I(reuse)ES( of data
that is appli)HY(ca)HY(ble)YH( to reuse of soft)HY(ware)YH( as well.
Under the "Web-like" model of soft)HY(ware)YH( reuse,
instead of the complex)HY(ity)YH( of installing your own copy,
upgrad)HY(ing)YH( version 4.0 run-time libraries to
version 5.0 libraries,
and so on,
you link to a remote service.
In a Society of Mind constructed accord)HY(ing)YH( to this prin)HY(ci)HY(ple)YH(,
the mind will be )I(liter)HY(ally)YH()ES( decen)HY(tralised)YH( across the world,
with parts of the mind at
differ)HY(ent)YH( remote servers.
Hence the name.
)0 P(
)-1 LI()BD(Parts of the mind are sepa)HY(rate)YH( from each other:)ES(
The name also high)HY(lights)YH( that the
impor)HY(tant)YH( thing
is not the sepa)HY(ra)HY(tion)YH( of )I(mind from world)ES(,
but the sepa)HY(ra)HY(tion)YH( of differ)HY(ent)YH( parts of the mind
)I(from each other)ES(, so that, for example,
they can be written and main)HY(tained)YH( by differ)HY(ent)YH( authors.
)0 P(
)-1 LI( )BD(This is sepa)HY(rate)YH( from the Web:)ES(
The name also indi)HY(cates)YH( that this is a differ)HY(ent)YH(
thing
to the )I(World-Wide-Web)ES(.
During the recent rise of the Inter)HY(net)YH(,
many people
have talked about seeing some sort
of "global intel)HY(li)HY(gence)YH("
emerge.
For a survey see
)0 2 A([Brooks, 2000])EA(.
But these writers are
in fact talking about the intel)HY(li)HY(gence)YH(
being embod)HY(ied)YH( in the )I(humans)ES( using the network,
plus the pages they create
)0 2 A([Numao, 2000])EA(,
or at most perhaps the intel)HY(li)HY(gence)YH(
being embod)HY(ied)YH( implic)HY(itly)YH( in the hyper)HY(links)YH( from page to page
[)0 2 A(Heylighen, 1997)EA(,
)0 2 A(Goertzel, 1996)EA(].
Claims that the network )I(itself)ES( might be intel)HY(li)HY(gent)YH(
are at best vague and uncon)HY(vinc)HY(ing)YH( analo)HY(gies)YH(
between the network and the brain
)0 2 A([Russell, 2000])EA(.
Indeed the whole idea of "global intel)HY(li)HY(gence)YH("
has had
a bad press
\201rightly, I believe\202
since the days of Teil)HY(hard)YH( de Chardin.
It is simply incor)HY(rect)YH( that a large number of indi)HY(vid)HY(u)HY(als)YH( in commu)HY(ni)HY(ca)HY(tion)YH(
will simply "emerge" as a mind.
)I(Not every society is a mind.)ES(
Minds are highly struc)HY(tured)YH( things,
and need to be delib)HY(er)HY(ately)YH( constructed,
as this paper will attempt to do.
)0 P(
For a )I(real)ES( society of mind
or network mind,
we need a network of )I(AI programs)ES(
rather than a network of pages and links.
We may actu)HY(ally)YH( be able to
)I(imple)HY(ment)YH()ES( this on
the exist)HY(ing)YH( network of Web servers,
running over HTTP, but it must be )I(designed)ES( as such.
It will not simply "emerge" from schemes for linking data
on the Web.
)0 P(
)-1 LI( )BD( This may not even )I(inter)HY(act)YH()ES( with the Web: )ES(
By sepa)HY(rat)HY(ing)YH( this from the Web, the name also
sepa)HY(rates)YH( this from exist)HY(ing)YH( work that might go under the name of
"AI on the Web",
namely, AI systems learn)HY(ing)YH( from
the Web.
There are many such systems,
the most impres)HY(sive)YH( perhaps being the cita)HY(tion)YH( indices
Cite)HY(Seer)YH(
)0 2 A([Lawrence et al., 1999])EA(
and Cora
)0 2 A([McCal)HY(lum)YH( et al., 2000])EA(.
The "global intel)HY(li)HY(gence)YH(" researchers who have concrete
models as opposed to just metaphors
[)0 2 A(Heylighen, 1997)EA(,
)0 2 A(Goertzel, 1996)EA(]
have also started by looking at the exist)HY(ing)YH( Web.
)0 P(
But a WWM system is not )I(neces)HY(sar)HY(ily)YH()ES(
inter)HY(ested)YH( in learn)HY(ing)YH( from or inter)HY(act)HY(ing)YH( with
the current Web or its users.
We are embed)HY(ding)YH( the WWM in the network not
so much because of the prior exis)HY(tence)YH(
of the Web \201though we may make use of that\202,
but mainly because of the future poten)HY(tial)YH(
of )I(other WWM servers)ES(.
)LO(
) 0 0 PR()RP(
)0 1 28 H()WB 51 Sn( How)WB 10 Sn( the WWM will be used in AI)EA( )EH()0 P(
We envis)HY(age)YH( of course that
progress in AI will
continue
to be driven mainly by profes)HY(sional)YH( researchers
in AI labo)HY(ra)HY(to)HY(ries)YH(.
But if these researchers write their AI minds and worlds
as )I(servers)ES(,
the AI project
could be massively decen)HY(tralised)YH( across differ)HY(ent)YH( AI labs.
As well as allow)HY(ing)YH( AI labs to share work, and specialise,
there would also be )I(a world-wide exper)HY(i)HY(ment)YH(
always on)ES(, with constant
re-combi)HY(na)HY(tion)YH( and testing \201in public\202
of every)HY(thing)YH( that has been put online so far.
)0 P(
)0 2 29 H()WB 52 Sn( Divid)HY(ing)YH( up the work in AI )EH()0 P(
First of all, AI researchers can
more easily specialise.
Minds are sepa)HY(rate)YH( from Worlds,
so that researchers can reuse each other's Worlds.
Anyone doing, say, AI exper)HY(i)HY(ments)YH( in learn)HY(ing)YH(, can,
by writing to this proto)HY(col)YH(, use as a test bed
someone else's World server,
and does not have to write his own.
He can concen)HY(trate)YH( purely on devis)HY(ing)YH( new learn)HY(ing)YH( algo)HY(rithms)YH(.
Re-using other people's Worlds
)0 2 A([Bryson et al., 2000])EA(
will prob)HY(a)HY(bly)YH( be the most common use
initially.
Learn)HY(ing)YH( how to reuse other people's )I(Minds)ES(
may take time.
)0 P(
)0 2 30 H()WB 53 Sn( Making AI Science - 3rd party exper)HY(i)HY(men)HY(ta)HY(tion)YH( )EH()0 P(
As discussed above,
having to
invent your own test envi)HY(ron)HY(ment)YH( to test your new algo)HY(rithm)YH(
is not only a lot of extra work
- it also
makes it harder to objec)HY(tively)YH( eval)HY(u)HY(ate)YH( the new algo)HY(rithm)YH(.
Even if you take care to do a run of the old algo)HY(rithms)YH(
in your new test world, the test world might
\201however unin)HY(ten)HY(tion)HY(ally)YH(\202
be designed to illus)HY(trate)YH( the good points of the new algo)HY(rithm)YH(.
Clearly, being able to compare differ)HY(ent)YH( algo)HY(rithms)YH(
on the )I(same)ES( pre-built World server
goes a long way towards helping AI run
objec)HY(tive)YH( compar)HY(isons)YH( of algo)HY(rithms)YH(
and models of mind.
)0 P(
But the WWM goes much further than that.
By its empha)HY(sis)YH( on )I(3rd party)ES( exper)HY(i)HY(men)HY(ta)HY(tion)YH(,
algo)HY(rithms)YH( will be subjected to constant exam)HY(i)HY(na)HY(tion)YH(
by popu)HY(la)HY(tions)YH( of testers with no vested inter)HY(est)YH(
in any outcome.
3rd parties will ensure that the results can be )I(repeated)ES( again and again.
They will compare many more differ)HY(ent)YH( combi)HY(na)HY(tions)YH( of servers
under control condi)HY(tions)YH(.
\201Currently we are still assum)HY(ing)YH(
that 3rd parties will be )I(other AI researchers)ES(.
Whether the )I(general public)ES( will carry out useful tests
will be discussed shortly.\202
)0 P(
The whole ques)HY(tion)YH( of how to )I(prove)ES(
one autonomous agent archi)HY(tec)HY(ture)YH( is better than another
has become an impor)HY(tant)YH( issue recently.
)0 2 A([Bryson, 2000])EA(
points out that, essen)HY(tially)YH(, no one uses each other's archi)HY(tec)HY(tures)YH(:
)I("There have been complaints .. about the over-gener)HY(a)HY(tion)YH(
of archi)HY(tec)HY(tures)YH(")ES(
and \201among behav)HY(ior)YH(-based models\202:
)I("no single archi)HY(tec)HY(ture)YH( is used by even 10 percent of ..
researchers.")ES(
Most archi)HY(tec)HY(tures)YH( have perfor)HY(mance)YH( statis)HY(tics)YH(
to support them,
but these statis)HY(tics)YH( have had little success
in convinc)HY(ing)YH( rival researchers to abandon their own favourite
models.
In partic)HY(u)HY(lar)YH(, if the tester )I(invented)ES( the test world
to show off his new algo)HY(rithm)YH(,
there are simply too many uncon)HY(trolled)YH( vari)HY(ables)YH(
for the test results to be totally conclu)HY(sive)YH(.
Test results can only become conclu)HY(sive)YH( when there is repeated
objec)HY(tive)YH( 3rd party eval)HY(u)HY(a)HY(tion)YH(.
Currently 3rd parties have to go to great effort
to recre)HY(ate)YH( the test situ)HY(a)HY(tion)YH(,
and this rarely happens.
For instance, Maes' model
[)0 2 A(Maes, 1989)EA(,
)0 2 A(Maes, 1989a)EA(]
waited years for Tyrrell to re-imple)HY(ment)YH( it in a perfor)HY(mance)YH( compar)HY(i)HY(son)YH(
)0 2 A([Tyrrell, 1993])EA(.
Tyrrell does not get impres)HY(sive)YH( perfor)HY(mance)YH( for it,
but reading his thesis
one might argue there are still uncon)HY(trolled)YH( vari)HY(ables)YH(
in Tyrrell's imple)HY(men)HY(ta)HY(tion)YH(.
Re-imple)HY(ment)HY(ing)YH( Tyrrell )I(itself)ES( is a diffi)HY(cult)YH( job
)0 2 A([Bryson, 2000a])EA(
which rather adds to the lack of conclu)HY(sion)YH( about his results.
)0 P(
In any branch of AI,
the exis)HY(tence)YH( of objec)HY(tive)YH( tests
that cannot be argued with
tends to provide a major impetus to research.
This has been one of the main reasons
for the popu)HY(lar)HY(ity)YH(
of rule-based games in AI
)0 2 A([Pell, 1993])EA(.
)I(Robotic soccer)ES( has also taken off in recent years
for this reason.
Noda's soccer server
)0 2 A([Noda et al., 1998])EA(
is prob)HY(a)HY(bly)YH( the closest in spirit to the WWM,
though the user must still down)HY(load)YH( and install the agent world.
)0 P(
On the WWM, mind and world must be presented )I(publicly)ES(,
and 3rd parties will drive objec)HY(tive)YH( evolu)HY(tion)YH(
of the best solu)HY(tions)YH(.
They will test servers in envi)HY(ron)HY(ments)YH( their authors never thought of,
and combine them with other servers that their authors did not write.
The exper)HY(i)HY(ments)YH( will be outside of the server authors' control.
They will do this in public and, if prop)HY(erly)YH( written up,
this will imple)HY(ment)YH( an ongoing objec)HY(tive)YH( programme of
)BD( arti)HY(fi)HY(cial)YH( selec)HY(tion)YH()ES(
\201i.e. selec)HY(tion)YH( by hand\202
and
)BD( "natural selec)HY(tion)YH(")ES(
\201machine-auto)HY(mated)YH( selec)HY(tion)YH(\202
of agent solu)HY(tions)YH(.
)0 P(
)0 2 31 H()WB 54 Sn( Arti)HY(fi)HY(cial)YH( Selec)HY(tion)YH()EH()0 P(
I imagine that many will see the ability of any
3rd party on the Inter)HY(net)YH( to choose and run their own combi)HY(na)HY(tion)YH( of servers
as a "cute"
but unessen)HY(tial)YH( feature.
That it is some essen)HY(tially)YH( )I(patro)HY(n)HY(is)HY(ing)YH()ES( scheme
of allow)HY(ing)YH( the public think they are helping with science.
)0 P(
But this misses a couple of points.
First, that the only way of allow)HY(ing)YH( )I(any)ES( profes)HY(sional)YH( AI researcher
to exper)HY(i)HY(ment)YH( with servers
without permis)HY(sion)YH(
is to allow )I(every user on the Inter)HY(net)YH()ES( to
exper)HY(i)HY(ment)YH( with the servers.
)0 P(
Secondly, in fact, I believe
it will be )I(essen)HY(tial)YH()ES( to the success of the idea
that more than just AI researchers can work this system.
AI researchers are focused on specific projects, with dead)HY(lines)YH(
and many respon)HY(si)HY(bil)HY(i)HY(ties)YH(.
There are not many of them, and they don't have much time.
With 3rd parties, there are millions of them, and
they have a vast amount of free time.
Many schemes have
harnessed the power of the millions of idle and curious
Net users,
e.g. )R5 2 A("meta)HY(com)HY(put)HY(ing)YH(")EA(
projects such as
)R6 2 A(large-scale cryp)HY(tog)HY(ra)HY(phy)YH( cracks)EA(
or )R7 2 A(SETI data anal)HY(y)HY(sis)YH()EA(.
Within AI, there have been some
evolu)HY(tion)HY(ary)YH( exper)HY(i)HY(ments)YH(
attempt)HY(ing)YH( to recruit large numbers of users.
See the
)0 2 A([Yahoo list of ALife programs online])EA(.
Perhaps the most impres)HY(sive)YH( is the
"Talking Heads" language evolu)HY(tion)YH( project
)0 2 A([Steels and Kaplan, 1999])EA(
in which 4000 agents have been constructed and tested by online users
)0 2 A([Steels, 2000])EA(.
Such ideas are in fact funda)HY(men)HY(tal)YH( to the Inter)HY(net)YH(.
Even the idea of )I(linking)ES( itself in the Web
is a classic example of harness)HY(ing)YH( the power of large numbers of people.
Other people do some of the work for you,
by track)HY(ing)YH( down sites
and present)HY(ing)YH( you with a pre-built list of links.
)0 P(
Here with the WWM, the idea of a client present)HY(ing)YH( at a URL
a pre-built combi)HY(na)HY(tion)YH( of servers
is delib)HY(er)HY(ately)YH( modelled on the Web idea
of a pre-built selec)HY(tion)YH( of links.
Working the system will not
be as easy as making a link on the Web.
It will require some ability and inter)HY(est)YH(
- though perhaps no more so than the inter)HY(est)YH( ordi)HY(nary)YH( people have
in raising animals
and infants.
People will write user-friendly soft)HY(ware)YH(
to make it easy to be a non-tech)HY(ni)HY(cal)YH( client,
exper)HY(i)HY(ment)HY(ing)YH( with combi)HY(na)HY(tions)YH( of pre-exist)HY(ing)YH( servers,
taking part in ongoing compe)HY(ti)HY(tions)YH(
to beat the highest score in a partic)HY(u)HY(lar)YH( World.
Obvi)HY(ously)YH( the amateurs will report their successes in
what will prob)HY(a)HY(bly)YH( be
a some)HY(what)YH( )I(haphaz)HY(ard)YH()ES( fashion.
It will be up to the AI profes)HY(sion)HY(als)YH( to make sense of what they see,
and inves)HY(ti)HY(gate)YH( promis)HY(ing)YH( leads
and write them up in a scien)HY(tific)YH( manner.
)0 P(
But the power of )I(arti)HY(fi)HY(cial)YH( selec)HY(tion)YH()ES( by large numbers
of amateurs should not be under)HY(es)HY(ti)HY(mated)YH( by science.
Putting unseen-before minds into unseen-before worlds,
years after the research groups that made both minds and worlds
have vanished,
may be of real benefit to science.
3rd parties will
run old minds
in new worlds, and new minds in old worlds.
They will
drop new minds into old collec)HY(tions)YH(,
and run combi)HY(na)HY(tions)YH( that make no sense.
It is )I(certain)ES( that they will run combi)HY(na)HY(tions)YH( of servers
that the scien)HY(tists)YH( never thought of.
)0 P(
The profes)HY(sion)HY(als)YH( may be scep)HY(ti)HY(cal)YH( of the value of this,
but
millions of people exper)HY(i)HY(ment)HY(ing)YH( with differ)HY(ent)YH( mind/body/world
combi)HY(na)HY(tions)YH( year after year on the network
would repre)HY(sent)YH( a
richer exper)HY(i)HY(men)HY(tal)YH( milieu than anything
AI has ever yet built.
Thou)HY(sands)YH( of years of arti)HY(fi)HY(cial)YH( selec)HY(tion)YH(
by farmers and breed)HY(ers)YH( across the world \201non-scien)HY(tists)YH(\202
is now recog)HY(nised)YH( as one of the most
thor)HY(ough)YH( scien)HY(tific)YH( exper)HY(i)HY(ments)YH( in history.
Since modern science arose, hardly any )I(new)ES( animals
or plants have been success)HY(fully)YH( domes)HY(ti)HY(cated)YH(,
which indi)HY(cates)YH( that pre-scien)HY(tists)YH( really did do all the major exper)HY(i)HY(ments)YH(
)0 2 A([Diamond, 1997])EA(.
And of course the )I(scope)ES( of what arti)HY(fi)HY(cial)YH( selec)HY(tion)YH(
has been able to produce,
from fruit and vegeta)HY(bles)YH( to dogs or race)HY(horses)YH(,
is breath)HY(tak)HY(ing)YH(,
and was one of the central inspi)HY(ra)HY(tions)YH(
for Darwin's theory
[)0 2 A(Darwin, 1859)EA(,
\2471,
)R8 2 A("Vari)HY(a)HY(tion)YH( under Domes)HY(ti)HY(ca)HY(tion)YH(")EA(].
With AI, large-scale arti)HY(fi)HY(cial)YH( selec)HY(tion)YH( projects cannot begin
unless the AI work comes online.
)0 P(
)0 2 32 H()WB 55 Sn( How 3rd party )I(AI researchers)ES( will use the scheme )EH()0 P(
To continue our theme in defence of 3rd parties,
it is often forgot)HY(ten)YH( that many )I(AI researchers)ES(
are excluded from the AI project as well.
The WWM scheme will allow AI researchers in poorly-funded labs,
in distant and poor coun)HY(tries)YH(,
isolated post)HY(grad)HY(u)HY(ate)YH( students, and so on,
to partic)HY(i)HY(pate)YH( in the great AI adven)HY(ture)YH(.
Not for char)HY(i)HY(ta)HY(ble)YH( reasons,
but because their exclu)HY(sion)YH( is a loss to the science.
)0 P(
They will make a more sophis)HY(ti)HY(cated)YH( use of it
than the amateurs.
They will write new servers them)HY(selves)YH(,
either from scratch, or by partial reuse of exist)HY(ing)YH( servers,
by writing
Mind)Sb(AS)Es( servers,
Mind)Sb(M)Es( servers and
World)Sb(W)Es( servers.
They will re-use others' work in
controlled exper)HY(i)HY(ments)YH(.
They could
take an exist)HY(ing)YH( world, body, problem,
and basic collec)HY(tion)YH( of minds, and just work on simply adding one more
mind to the seething collec)HY(tion)YH(.
Things like:
)0 P(
)4 OL()-1 LI( 1st party makes World.
)-1 LI( 2nd party makes Mind for World.
)-1 LI( 3rd party makes Mind)Sb(M)Es( which in state
\240 )TT(x)ES( \240
does some)HY(thing)YH(,
other)HY(wise)YH( does what 2nd party Mind does.
)-1 LI( 4th party makes differ)HY(ent)YH( Mind for World.
)-1 LI( 5th party makes Mind)Sb(M)Es( which in state
\240 )TT(y)ES( \240
does
what 4th party Mind does
other)HY(wise)YH( does what 3rd party Mind)Sb(M)Es( does.)LO(
)0 P(
And so on,
with people modi)HY(fy)HY(ing)YH( and cautiously over)HY(rid)HY(ing)YH( what already works.
Of course they are not )I(actu)HY(ally)YH()ES( modi)HY(fy)HY(ing)YH( what already exists
in the sense of chang)HY(ing)YH( it for other users
and remov)HY(ing)YH( the old version.
Making a wrapper server simply means that 2 servers now exist
instead of one.
The wrapper author cannot force anyone to use the new wrapper
in pref)HY(er)HY(ence)YH( to the old server.
)0 P(
By setting up a system whereby many authors,
acting over differ)HY(ent)YH( times, will contribute to construct)HY(ing)YH( a Society,
the WWM provides AI researchers
with the ability to do a lot more
than just reuse other people's test worlds.
In every field,
the Inter)HY(net)YH( has already allowed )I(marginalised)ES(, distant
and poorly-funded researchers partic)HY(i)HY(pate)YH(
in inter)HY(na)HY(tional)YH( research like never before,
from access to primary liter)HY(a)HY(ture)YH(
that may not exist in )I(any)ES( library in the client's )I(country)ES(,
to access to remote databases and
soft)HY(ware)YH( libraries.
The WWM is simply contin)HY(u)HY(ing)YH( this trend.
)0 2 33 H()WB 56 Sn( Bring every agent online )EH()0 P(
Part of this proposal is a plea for recog)HY(ni)HY(tion)YH( of the
untapped poten)HY(tial)YH( in AI - the vast number of
minds and worlds that are offline.
Some of this comes from
my own expe)HY(ri)HY(ence)YH( with putting
an agent mind online.
For
I was
one of the first people to put an AI mind on the network,
an "Eliza"-type chat program
in 1989
)0 2 A([Humphrys, 1989])EA(.
)0 P(
The orig)HY(i)HY(nal)YH( "Eliza" was intro)HY(duced)YH( in
)0 2 A([Weizen)HY(baum)YH(, 1966])EA(.
Now I must say upfront that
Eliza-type programs have little to do with serious AI
- their under)HY(stand)HY(ing)YH( of conver)HY(sa)HY(tion)YH( is an illu)HY(sion)YH(.
But this
does not affect the argu)HY(ment)YH(.
They are )I(behaviour-produc)HY(ing)YH()ES( systems,
like our postu)HY(lated)YH( Mind servers.
My point is that many people conversed with the orig)HY(i)HY(nal)YH( Eliza
\201not online of course, for there
was no network\202,
but )I(it did not stay acces)HY(si)HY(ble)YH()ES(.
Soon,
the exper)HY(i)HY(ment)YH( was over, written up,
and the orig)HY(i)HY(nal)YH( version of Eliza remained
largely inac)HY(tive)YH(
until the modern era.
In 1989 I put my own Eliza-type program, "MGonz",
online on BITNET.
Many people talked to it, but soon
\201in fact, by 1990\202,
MGonz had ceased to inter)HY(act)YH( with the world.
)0 P(
A )I(brief)ES(, finite inter)HY(ac)HY(tion)YH( with the world,
seen by only a few people, and normally not even online,
is the )I(norm)ES( in autonomous agents research.
In this field it has become accept)HY(able)YH( not to have
direct access to many of the major systems
under discus)HY(sion)YH(.
How many action selec)HY(tion)YH( researchers have
ever )I(seen)ES(
Tyrrell's world running, for example?
)0 2 A([Tyrrell, 1993])EA(
How many robotics researchers have
ever )I(seen)ES(
Cog move \201not in a movie\202?
)0 2 A([Brooks et al., 1998])EA(
Due to incom)HY(pat)HY(i)HY(bil)HY(i)HY(ties)YH( of soft)HY(ware)YH(
and expense of hard)HY(ware)YH(,
we accept that we will never see many of these things ourselves,
but only read papers on them,
and some)HY(times)YH( watch movies.
This situ)HY(a)HY(tion)YH( seems normal,
but if we ever
)I(get used)ES( to direct access to
remote agent minds and worlds,
it may come to seem like bad science not to allow it,
and to only report offline
exper)HY(i)HY(ments)YH( that were
seen only by the creator of the agent.
)0 P(
But it is not just watch)HY(ing)YH( the agents that this is aimed at,
it is
)I(inter)HY(act)HY(ing)YH()ES( with them.
The problem with inac)HY(tive)YH( agents
is that the only exper)HY(i)HY(ments)YH( run with them
were the ones their creator thought of doing.
But
as we have argued,
AI researchers are often too limited
in time and resources to explore fully the possi)HY(bil)HY(i)HY(ties)YH( of their
creations.
It is as if animal species only got to live through one
indi)HY(vid)HY(ual)YH( and one lifes)HY(pan)YH(.
As AI devel)HY(ops)YH(,
we should begin to regard the inac)HY(tiv)HY(ity)YH(
of our growing list of
old creations as a )I(loss)ES(,
like the silence of
extinct species.
The WWM aims to put an end to this inac)HY(tiv)HY(ity)YH(.
)0 P(
The inven)HY(tion)YH( of CGI and other tech)HY(nolo)HY(gies)YH(
has recently resur)HY(rected)YH( some of the old agent minds of AI,
includ)HY(ing)YH( the Eliza-type programs
[see )0 2 A(Yahoo list of AI programs online)EA(].
The WWM will vastly accel)HY(er)HY(ate)YH( this process,
by bring)HY(ing)YH( many of the recent autonomous agents minds
online in re-usable forms where they can be
driven by remote programs.
We aim to take
)BD( all of the Minds and Worlds
that human inge)HY(nu)HY(ity)YH( can create)ES(,
and get them all
)BD(online and inter)HY(act)HY(ing)YH( with the world indef)HY(i)HY(nitely)YH()ES(.
To get
AI to move away from isolated exper)HY(i)HY(ments)YH(,
and instead develop its own rich, world-wide, always-on, ecosys)HY(tem)YH(
to paral)HY(lel)YH( the natural one.
)0 P(
) 0 0 PR()RP(
)0 1 34 H()WB 57 Sn( Objec)HY(tions)YH()WB 11 Sn( to the model )EA( )EH()0 P(
It is impor)HY(tant)YH( to ask,
if this scheme is going to be so useful,
why AI has not taken this direc)HY(tion)YH( in the past.
The follow)HY(ing)YH( may be reasons why
\201or possi)HY(ble)YH( objec)HY(tions)YH(\202:
)0 P(
)4 OL()-1 LI()BD(Co-oper)HY(at)HY(ing)YH( is too much trouble. - )ES(
In the past researchers have not seen
the bene)HY(fits)YH( of divid)HY(ing)YH( up the work.
As discussed above,
many researchers still have the impos)HY(si)HY(ble)YH( dream
of doing every)HY(thing)YH( them)HY(selves)YH(,
such as the
CYC project
[)R9 2 A(cyc.com)EA(].
Two similar projects,
GAC
[)R10 2 A(mind)HY(pixel)YH(.com)EA(]
and
Open Mind Common)HY(sense)YH(
[)R11 2 A(common)HY(sense)YH(.media.mit.edu)EA(]
are online,
but are attempt)HY(ing)YH( to use the Net to get people to )I(teach)ES( the
centralised agent mind,
rather than having the agent mind distributed on the Net.
)0 P(
Indeed many presen)HY(ta)HY(tions)YH( in the Animats or evolu)HY(tion)HY(ary)YH( fields
still seem to assume that one lab can do it all.
Some of them recog)HY(nise)YH(
the immen)HY(sity)YH( of the problem
as we scale up,
but when faced with the complex)HY(ity)YH( of divid)HY(ing)YH( up the work,
defin)HY(ing)YH( commu)HY(ni)HY(ca)HY(tion)YH( proto)HY(cols)YH(,
and coor)HY(di)HY(nat)HY(ing)YH( the results,
most have retreated back into either design)HY(ing)YH( whole agents
\201but saying this is alright for simple agents\202
or else produc)HY(ing)YH( special)HY(ist)YH( compo)HY(nents)YH(
which may or may not ever be used as part of a larger system.
)0 P(
)-1 LI()BD(How do we divide up the work? - )ES(
Part of the problem, I believe, is in the mental model of )I(reuse)ES(
that is being used.
It is imag)HY(ined)YH( perhaps that the compo)HY(nents)YH( being reused
need to be )I(under)HY(stood)YH()ES(.
That their source code needs to be merged with other source codes.
That all bina)HY(ries)YH( need to be installed at one loca)HY(tion)YH(.
That compo)HY(nents)YH( will engage in high-level
reason)HY(ing)YH( and nego)HY(ti)HY(a)HY(tion)YH( with each other
\201rather than simply be mutu)HY(ally)YH(-incom)HY(pre)HY(hend)HY(ing)YH( minds\202.
And finally, that compo)HY(nents)YH( will not overlap - that each will have
its own well-defined func)HY(tion)YH(.
)0 P(
These are all reasons why re-use is diffi)HY(cult)YH( in the soft)HY(ware)YH( world
in general.
But in the model of reuse proposed here,
none of these things are neces)HY(sary)YH(.
It is not neces)HY(sary)YH( to have a clear defi)HY(ni)HY(tion)YH( of how the work
should be divided up.
It is not neces)HY(sary)YH( for compo)HY(nents)YH( to under)HY(stand)YH( each other.
It is not neces)HY(sary)YH( to install anything.
Compo)HY(nents)YH( being re-used can
)I(remain)ES( at the remote server, are used as a service
from there,
and are not fully under the client's control.
Which leads to the next reason:
)0 P(
)-1 LI( )BD(Researchers do not want to be depen)HY(dent)YH( on
other people's work. -)ES(
What if the remote server is down?
Or the author has made changes to it without telling us?
Or removed it perma)HY(nently)YH(?
)0 P(
Part of the problem, I believe,
is models of mind in which the loss of a single server
)I(would)ES( be a serious issue.
Instead of models of mind where hundreds of similar servers
compete to do the same job,
researchers have been assum)HY(ing)YH( the use of
)I(parsi)HY(mo)HY(nious)YH()ES( minds where each compo)HY(nent)YH(
does a partic)HY(u)HY(lar)YH( task that is not done by others.
Certainly, in the early stages of the WWM,
with few servers online,
clients may feel that their constructed minds are very fragile
and depen)HY(dent)YH( on the servers.
But some clients will continue to add more and more
"unnec)HY(es)HY(sary)YH(" dupli)HY(cated)YH( minds to their soci)HY(eties)YH(.
In a model of mind with enough dupli)HY(ca)HY(tion)YH(,
the
tempo)HY(rary)YH( network failure
\201or even perma)HY(nent)YH( dele)HY(tion)YH(\202
of what were )I(once)ES(
seen as key servers
may never even be )I(noticed)ES(.
)0 P(
)-1 LI( )BD( But )I(some)ES( servers will be indis)HY(pens)HY(able)YH(. - )ES(
Yes, this is true.
While dupli)HY(cate)YH( models of mind can
take us a long way, )I(some)ES( servers
will be indis)HY(pens)HY(able)YH(.
We could have a Mind)Sb(AS)Es( server that collects suggested actions
from many Minds, and if some of them are gone
it will run with what)HY(ever)YH( sugges)HY(tions)YH( are left.
But the Mind)Sb(AS)Es( server itself is essen)HY(tial)YH(,
as is the World server.
Like pages that we link to disap)HY(pear)HY(ing)YH( from the Web
)0 2 A([Humphrys, 1999])EA(,
how can we cope with
the disap)HY(pear)HY(ance)YH( of a server that we )I(need)ES(?
)0 P(
The basic answer is that if it is impor)HY(tant)YH( to us,
we will copy it \201if it is free\202
or buy it or rent it.
Then we either set up our own server,
or continue to use the remote server
and just keep our copy offline as backup.
Here's how in prac)HY(tice)YH( one might be running a large, complex
Society of Mind with actu)HY(ally)YH( very little risk:
Imagine that our top-level AS server is a well-known, stan)HY(dard)YH( type
that we can get our own copy of.
\201Not that we actu)HY(ally)YH( )I(use)ES( it. We continue to use a remote server.
But we have our own copy just in case.\202
Say the World server is a popular test world
that is imple)HY(mented)YH( at multi)HY(ple)YH( sites
\201we just use our favourite one\202.
And we use hundreds of remote minds in a complex society.
For all of these we will take the risk of some of them vanish)HY(ing)YH(,
and see little reason to buy or copy any of them ourselves.
After all, other
new and inter)HY(est)HY(ing)YH( Mind servers are coming online all the time.
)0 P(
)-1 LI()BD(Models of Broken links and Brain Damage)ES(
- Broken hyper)HY(links)YH( are a problem with the Web model of remote data,
and the equiv)HY(a)HY(lent)YH( of broken links will happen with
any scheme that uses remote servers.
)0 P(
As discussed above,
one way of making a Society more robust would be to add
"unnec)HY(es)HY(sary)YH(" dupli)HY(ca)HY(tion)YH(.
For this to work smoothly,
we need an Action Selec)HY(tion)YH( scheme
where a Society with
\240 )TT(n)ES( \240
iden)HY(ti)HY(cal)YH( Mind servers
trying to do the same thing, plus other servers,
will behave more or less the same as a Society with
\240 )TT(1)ES( \240
Mind server
trying to do that thing, plus other servers.
Then we can add extra copies of the Mind server located at differ)HY(ent)YH(
sites, and won't even notice if some of those sites are down.
This prop)HY(erty)YH( is not true of all AS schemes, though.
)0 2 A([Humphrys, 1997])EA(
shows that it is true of )I(indi)HY(vid)HY(ual)YH(-driven)ES( AS schemes
such as Mini)HY(mize)YH( the Worst Unhap)HY(pi)HY(ness)YH(,
but is not true of the more common
)I(collec)HY(tive)YH()ES( AS schemes.
)0 P(
So using a model like the above,
Soci)HY(eties)YH( will degrade )I(grad)HY(u)HY(ally)YH()ES( as the number of broken links
increases.
In the above work I explic)HY(itly)YH( addressed the issue of brain damage
in a large society of mind
[)0 2 A(PhD)EA(,
\247)0 2 A(17.2.2)EA(,
\247)0 2 A(18)EA(].
The reader might have wondered what is the point of a model of AI that
can survive brain damage.
After all, if the AI is damaged, you just fix it
or rein)HY(stall)YH( it surely?
Here is the point - a model of AI that can survive )I(broken links)ES(.
This leads to the more general
reason why this whole approach to remote re-use has not been used:
)0 P(
)-1 LI( )BD(Models of dupli)HY(cated)YH( mind are poorly devel)HY(oped)YH(. )ES(-
We have argued through)HY(out)YH( that if the work is to be divided up in AI
it will be )I(impos)HY(si)HY(ble)YH()ES( to avoid
massive overlap and dupli)HY(ca)HY(tion)YH( of func)HY(tion)YH(,
and result)HY(ing)YH( conflict.
We need models of mind
in which a state of conflict
is totally expected.
Unable to get server authors to agree,
we will instead selec)HY(tively)YH(
over)HY(ride)YH(, censor, and subsume old servers
instead of re-writing them \201or vainly trying to get the server author
to re-write them\202.
Such dupli)HY(cated)YH( models have been argued for
[)0 2 A(Brooks, 1986)EA(,
)0 2 A(Brooks, 1991)EA(,
)0 2 A(Minsky, 1986)EA(]
but )I(parsi)HY(mony)YH()ES( is still popular.
We will also need Action Selec)HY(tion)YH( that can resolve compe)HY(ti)HY(tion)YH(
between minds that barely under)HY(stand)YH( each other
)0 2 A([Humphrys, 1997])EA(.
In a tradi)HY(tional)YH( system
where a )I(single)ES( designer
writes the whole system,
he can make delib)HY(er)HY(ate)YH( )I(global-level)ES( deci)HY(sions)YH(
in the inter)HY(ests)YH( of the whole crea)HY(ture)YH(,
and there is no need for the deci)HY(sion)YH( to emerge from local rules.
But with mind servers from diverse sources,
the need for Action Selec)HY(tion)YH( based on local rules re-emerges.
)0 P(
It is clear enough to see how )I(sub-symbolic)ES( conflict reso)HY(lu)HY(tion)YH( can
occur via numeric weights.
But if Minds are strangers written by differ)HY(ent)YH( authors, in what
)I(symbolic)ES( language could they commu)HY(ni)HY(cate)YH(?
Which leads to the follow)HY(ing)YH( objec)HY(tion)YH(:
)0 P(
)-1 LI( )BD(It is prema)HY(ture)YH( at symbolic level
to attempt to define mind network proto)HY(cols)YH(.)ES( -
This is prob)HY(a)HY(bly)YH( true.
Since even before the Web, researchers have debated the possi)HY(bil)HY(ity)YH( of
stan)HY(dard)HY(ised)YH( symbolic-AI knowl)HY(edge)YH(-sharing proto)HY(cols)YH(, with
)0 2 A([Gins)HY(berg)YH(, 1991])EA(
arguing that it is prema)HY(ture)YH( to define
such proto)HY(cols)YH(.
Recently this debate has contin)HY(ued)YH(
in the Agents commu)HY(nity)YH(
as the debate over defin)HY(ing)YH(
stan)HY(dard)HY(ised)YH(
)I(agent commu)HY(ni)HY(ca)HY(tion)YH( languages)ES(.
See a recent survey of many approaches in
)0 2 A([Martin et al., 2000])EA(,
who then define their )I(own)ES( approach.
Agree)HY(ment)YH( is weak, and it may be that the whole endeav)HY(our)YH(
is still prema)HY(ture)YH(.
For example,
some of Minsky's students
)0 2 A([Porter et al.])EA(
attempt to imple)HY(ment)YH( a Society of Mind on the Inter)HY(net)YH(, but
insist on a symbolic model,
with which they make limited progress.
Indeed, Minsky's work may have had little impact
in the sub-symbolic world because of his hostil)HY(ity)YH( to that world
)0 2 A([Pollack, 1989])EA(.
)0 P(
We argue, though, that it is
not totally prema)HY(ture)YH( to start defin)HY(ing)YH( mind network proto)HY(cols)YH(
at the sub-symbolic level.
There are already many schemes of numeric weights,
and Action Selec)HY(tion)YH( based on weights,
in the liter)HY(a)HY(ture)YH(.
The sub-symbolic WWM in this paper
has been designed so that
all current
numeric agent archi)HY(tec)HY(tures)YH(
\201that the author is aware of\202
can be imple)HY(mented)YH( under the scheme.
)0 P(
There will no doubt be further sub-symbolic
\201and later, symbolic\202
proto)HY(cols)YH(.
But design)HY(ing)YH( the early ones
for simple numeric weights will
give us an idea of how to do it in the future
for more )I(heteroge)HY(nous)YH()ES( agents
with )I(differ)HY(ent)YH( repre)HY(sen)HY(ta)HY(tions)YH()ES(
[)0 2 A(Minsky, 1986)EA(,
)0 2 A(Minsky, 1991)EA(].
This will be the first in a long )I(family)ES( of proto)HY(cols)YH(.
)0 P(
)-1 LI( )BD("Agents" researchers \201or other branches of AI\202 have already done this.)ES(
- No they haven't.
Consider how the field of
)I(Distributed AI)ES(
has devel)HY(oped)YH(.
For surveys see
[)0 2 A(Stone and Veloso, 2000)EA(,
)0 2 A(Nwana, 1996)EA(].
DAI has split into two camps:
)0 P(
)4 OL()-1 LI(Distributed Problem Solving
\201DPS\202 - where the Minds are coop)HY(er)HY(at)HY(ing)YH( to solve the
)I(same problem)ES( in one Body.
)0 P(
)-1 LI(Multi-Agent Systems
\201MAS\202 - where the Minds are in differ)HY(ent)YH( Bodies.
We have 1 mind - 1 body actors,
and then coor)HY(di)HY(na)HY(tion)YH( of multi)HY(ple)YH( actors.
This is what the field of )I("Agents")ES( has come to mean.
Indeed,
)0 2 A([Nwana, 1996, \2474.3])EA(
makes explic)HY(itly)YH( clear that
our servers are not Agents.
)0 P()LO(
)0 P(
This is neither of these two, but rather is multi)HY(ple)YH(
minds solving multi)HY(ple)YH( prob)HY(lems)YH( in one body.
If anything, it is closer to the field of
)BD(Adap)HY(tive)YH( Behav)HY(ior)YH()ES(
and its inter)HY(est)YH( in whole, multi-goal crea)HY(tures)YH(
whose goals may simply )I(conflict)ES(.
Agents researchers also tend to work at the symbolic level only,
rather than the sub-symbolic as we do here
\201and as many people do in Adap)HY(tive)YH( Behav)HY(ior)YH(\202.
)0 P(
Arti)HY(fi)HY(cial)YH( Life and evolu)HY(tion)HY(ary)YH( researchers
are certainly inter)HY(ested)YH( in collec)HY(tive)YH(,
and even collec)HY(tive)YH( network-based models
)0 2 A([Ray, 1995])EA(,
but again the minds are localised,
as in the MAS approach.
In
)0 2 A([Ray, 1995])EA(
it is a )I(society of agents)ES( that is distributed across the network,
not a )I(single agent mind)ES(.
)0 P(
Machine Learn)HY(ing)YH(
\201e.g. Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH(\202 researchers have
tended to focus on solving a dedi)HY(cated)YH( problem,
rather than juggling many partially-solved conflict)HY(ing)YH( prob)HY(lems)YH(.
That it, they tend to take the DPS approach.
)0 P(
)-1 LI( )BD(Virtual-world researchers have already done this.)ES(
- No they haven't.
They have tried to estab)HY(lish)YH( stan)HY(dard)YH( tech)HY(nol)HY(ogy)YH(
for display)HY(ing)YH( worlds, such as VRML.
Here we estab)HY(lish)YH( a frame)HY(work)YH( within which
state and action
data may be sent back and forth,
but the )I(format)ES( of the state is left to be
defined by each server.
These researchers also
concen)HY(trate)YH( on user-driven avatars, with a graph)HY(i)HY(cal)YH( UI.
This consid)HY(ers)YH(
AI-driven actors, with possi)HY(bly)YH( no UI at all.
)0 P(
)-1 LI( )BD(Tele-robotic researchers have already done this.)ES(
- No they haven't.
They have concen)HY(trated)YH( on user-driven control from web pages,
rather than remote machine-driven control.
)0 P(
)-1 LI( )BD(The network is not up to this yet.)ES(
- Possi)HY(bly)YH( true.
)I(Simple)ES( WWM soci)HY(eties)YH( can certainly run on today's network.
It may be that a Society with a large number of servers
in multi)HY(ple)YH( layers will operate very slowly on today's network.
But that will change.
)0 P(
)-1 LI( )BD(There is a chicken-and-egg problem. -)ES(
It is true that until )I(other)ES( people put up their worlds, minds
and AS mech)HY(a)HY(nisms)YH( as servers,
there is not much attrac)HY(tion)YH( in convert)HY(ing)YH( to using servers oneself.
One thing that may speed the adop)HY(tion)YH( of this scheme, though,
is currently there is no easy )I(alter)HY(na)HY(tive)YH()ES( method in many areas.
For example, how would one make Tyrrell's agent world
)0 2 A([Tyrrell, 1993])EA(
easily avail)HY(able)YH( to researchers?
Going the server route seems almost as easy as any other.
)0 P()LO(
) 0 0 PR()RP(
)0 1 35 H()WB 58 Sn( Miscel)HY(la)HY(neous)YH()WB 12 Sn( issues)EA()EH(
)0 P(
)0 2 36 H()WB 59 Sn( Hidden server insides )EH()0 P(
The inter)HY(nal)YH( server work)HY(ings)YH( do not have to be made public.
The only demands are that the server replies to exter)HY(nal)YH( requests accord)HY(ing)YH( to
the proto)HY(col)YH(.
The Mind server can be a symbolic mind, a neural network,
a genet)HY(i)HY(cally)YH( evolved program, or anything else.
It does not have to tell us.
This will be impor)HY(tant)YH( for commer)HY(cial)YH( servers who want to protect
their invest)HY(ment)YH(, or )I(sell)ES( access to their server.
It may also be impor)HY(tant)YH(
for academic projects.
Although it could be argued that
)I(all)ES( academic projects should publish their source code
\201and there is no excuse not to, now that the Web exists\202
so that exper)HY(i)HY(ments)YH( can be repli)HY(cated)YH(.
)0 P(
An inter)HY(est)HY(ing)YH( side effect of hidden server inter)HY(nals)YH( may
be a more level playing field
between differ)HY(ent)YH( types of AI.
Currently people )I(tend)ES( to look for algo)HY(rithms)YH( only within
a partic)HY(u)HY(lar)YH( sub-field - neural net researchers look for
other types of neural net, symbolic AI researchers
look for symbolic routines, and so on.
Here, each algo)HY(rithm)YH( will stand on its merits,
and it may be )I(better science)ES( if we do not know,
at least initially, what is inside the server.
The doctri)HY(naire)YH( neural net researcher
may be embar)HY(rassed)YH( to discover that the excel)HY(lent)YH( server
he has been using for years is in fact a symbolic AI server.
Such objec)HY(tive)YH( symbolic v. non-symbolic compe)HY(ti)HY(tion)YH(
has in fact already occurred in robot soccer
)0 2 A([Stone and Veloso, 2000])EA(.
)0 P(
It will be inter)HY(est)HY(ing)YH( to see how this devel)HY(ops)YH(.
Some researchers may refuse to use servers unless they know
how they work.
They will argue that it is )I(bad science)ES(,
since any systems built using such servers can only be )I(repli)HY(cated)YH()ES(
as long as the server owner contin)HY(ues)YH( to provide the
secret and unknown service.
Others may argue the above case - that it is a breath of fresh air
\201and )I(good)ES( science\202
to be able to judge algo)HY(rithms)YH( entirely on )I(perfor)HY(mance)YH()ES(
without, at least initially,
knowing anything else about them.
The answer really is that it will be good science if,
while server authors )I(do)ES( explain in some detail
what is inside,
such infor)HY(ma)HY(tion)YH( is routinely )I(ignored)ES(
as differ)HY(ent)YH( combi)HY(na)HY(tions)YH( of
systems are constructed and tested on merit.
)0 2 37 H(Credit)WB 60 Sn( )EH(
)0 P(
Allow)HY(ing)YH( servers to be used as compo)HY(nents)YH( in larger systems
is central to the WWM idea.
One issue though is:
)BD(Can you )I(track)ES( how your server is being used?)ES(
Imagine that your server is being called by a popular Mind)Sb(M)Es( server.
To the outside world, does the Mind)Sb(M)Es( server get all the credit?
Can a 3rd party look at a success)HY(ful)YH( Society,
and see all of the servers involved in it at all levels?
Or do they just have to assign all the credit to the
top-level server, not knowing what is behind it?
We suggest the follow)HY(ing)YH(:
)0 P(
)4 OL()-1 LI( Every server has a URL.
)-1 LI( At that URL they link to the URLs of every server they are calling.
)-1 LI( When they call another server, they provide it with their URL
as part of the query.
)-1 LI( So each server, at its URL, can link to all servers it calls
)I(and)ES( all servers that call it.
)-1 LI( 3rd parties may read these lists, and follow chains of credit
through the Society, even if the server authors are not involved.)LO(
)0 P(
The latter point is impor)HY(tant)YH(.
On the WWM
we expect that thou)HY(sands)YH( of
server authors will leave their servers
to be run in the research commu)HY(nity)YH( long after they have gone.
Hence we want these lists to be )I(published)ES( online,
rather than simply
known inter)HY(nally)YH( by the programs
or recorded in logfiles.
)0 P(
An inter)HY(est)HY(ing)YH( ques)HY(tion)YH( is whether you could write a
)I(mali)HY(cious)YH()ES( wrapper server,
where the Mind)Sb(M)Es( server
does not acknowl)HY(edge)YH( that it is calling another
Mind server,
and tries to take the sole credit for the func)HY(tion)HY(al)HY(ity)YH(.
There are many possi)HY(ble)YH( answers to this
\201e.g. servers publish their usage logs online\202,
but we doubt it
will be an impor)HY(tant)YH( issue.
More likely the AI commu)HY(nity)YH( will simply )I(ignore)ES( servers
unless they come \201i\202 from serious and respectable sources
and \201ii\202 explain in exhaus)HY(tive)YH( detail how they work
and what other servers they are calling.
)0 2 38 H()WB 61 Sn( Learn)HY(ing)YH( servers )EH()0 P(
If Mind servers learn from inter)HY(act)HY(ing)YH( with a World,
while part of a Society,
where is that new knowl)HY(edge)YH( stored?
One might say it should be stored at the Mind server,
and that seems reason)HY(able)YH( in many cases
\201if the clients can toler)HY(ate)YH( the fact that the server may change\202.
There are, however, a couple of prob)HY(lems)YH(:
)0 P(
)4 OL()-1 LI( First, the server may learn erro)HY(neous)YH( things.
For instance, a client uses a Mind server, and gets a suggested action
\240 )TT(a)ES(. \240
The client reports the new state
\240 )TT(y)ES( \240
and the Mind server learns
that action
\240 )TT(a)ES( \240
led to state
\240 )TT(y)ES(. \240
But the client forgot to tell the Mind server that its action
was not actu)HY(ally)YH( obeyed \201it lost the compe)HY(ti)HY(tion)YH(\202,
so it was )I(some other action)ES(
that lead to state
\240 )TT(y)ES(. \240
The client may even be mali)HY(cious)YH(.
AI programs that learn from user input
online
have found that many users input nonsense or mislead)HY(ing)YH( infor)HY(ma)HY(tion)YH(
)0 2 A([Hutchens, undated])EA(.
The integrity of the Mind server cannot be compro)HY(mised)YH(
by a buggy or mali)HY(cious)YH( client.
So we suggest that
)BD( the Mind server learns rela)HY(tive)YH( to a partic)HY(u)HY(lar)YH( client only)ES(.
i.e. It stores a file of knowl)HY(edge)YH( that is only used with
that client.
What you teach it may only change how it inter)HY(acts)YH( with )I(you)ES(,
not how it inter)HY(acts)YH( with others.
)0 P(
)-1 LI( Some of the learn)HY(ing)YH( may only make sense rela)HY(tive)YH( to a partic)HY(u)HY(lar)YH( )I(Society)ES(
\201e.g. the W-values\202,
and so again we suggest it learns rela)HY(tive)YH( to this client only.
)LO(
)0 P(
This does not mean that other clients cannot access the new knowl)HY(edge)YH(.
It just means they have to do so explic)HY(itly)YH(:
)I( "Give me the Mind that you learnt
with client
\240 )TT(c)ES(". \240)ES(
)0 3 39 H()WB 62 Sn( Learn)HY(ing)YH( Temper)HY(a)HY(ture)YH( )EH()0 P(
A Mind server that learns also raises the ques)HY(tion)YH(
of which of these we want:
)0 P()4 OL()-1 LI( A pre-built server that has )I(already)ES( learnt what it wants to do
[pure exploita)HY(tion)YH(].
)-1 LI( A new version to start learn)HY(ing)YH( from scratch,
i.e. whose initial actions may be completely random
[pure explo)HY(ration)YH(].
)-1 LI( A server that has already learnt some )I(pref)HY(er)HY(ences)YH()ES(,
but still engages in some new explo)HY(ration)YH(
[some exploita)HY(tion)YH(, some explo)HY(ration)YH(].)LO(
)0 P(
We may pick one of these at the start of the run,
or even half-way through the run we may decide to
get the server to go back and re-learn.
We can control all this by passing a
"Temper)HY(a)HY(ture)YH(" param)HY(e)HY(ter)YH( to the server.
Temper)HY(a)HY(ture)YH( = 0
means we want the server to exploit its current knowl)HY(edge)YH(
with no explo)HY(ration)YH(.
High Temper)HY(a)HY(ture)YH(
means we want the server to do a lot of explo)HY(ration)YH(.
As Temper)HY(a)HY(ture)YH(
\240 )TT( -> infin)HY(ity)YH( )ES( \240
the server tends to engage in maximum explo)HY(ration)YH(.
The use of the word "Temper)HY(a)HY(ture)YH(" is explained in
[)0 2 A(PhD)EA(, \247)0 2 A(2.2.3)EA(].
Exactly what counts as a "high" Temper)HY(a)HY(ture)YH( for this server will be explained
by the server at its URL.
Rather than just provide the Temper)HY(a)HY(ture)YH( at the start,
we might provide it on a step-by-step basis,
so that at any point the client may send Temper)HY(a)HY(ture)YH( = 0,
which means "Send me your best action, based on your learn)HY(ing)YH( so far".
Gener)HY(ally)YH(, the temper)HY(a)HY(ture)YH( will decline over the course of the
learn)HY(ing)YH( run.
We have two basic strate)HY(gies)YH(:
)0 P(
)4 OL()-1 LI( )BD(Server main)HY(tains)YH( temper)HY(a)HY(ture)YH( -)ES(
The temper)HY(a)HY(ture)YH( is initialised, either explic)HY(itly)YH( by the client,
or the server is left to pick a reason)HY(able)YH( high temper)HY(a)HY(ture)YH(.
The server main)HY(tains)YH( an inter)HY(nal)YH( value for temper)HY(a)HY(ture)YH(,
and decreases it every step so
that by the end of
the learn)HY(ing)YH( run it will have reached the minimum temper)HY(a)HY(ture)YH( \201it stops learn)HY(ing)YH(\202.
The client will need to tell the server how long the run will be.
The client makes requests of the form
\240 )TT( Get action \201x\202 )ES( \240
)-1 LI( )BD(Client main)HY(tains)YH( temper)HY(a)HY(ture)YH( -)ES(
The client main)HY(tains)YH( the temper)HY(a)HY(ture)YH( value,
and passes it to the server with every request.
The client makes requests of the form
\240 )TT( Get action \201x,temper)HY(a)HY(ture)YH(\202 )ES( \240)LO(
)0 3 40 H()WB 63 Sn( Q-Temper)HY(a)HY(ture)YH( and W-Temper)HY(a)HY(ture)YH()EH()0 P(
If the world changes, we may ask the Mind server to re-learn
its Q-values from scratch,
i.e. increase the Q-Temper)HY(a)HY(ture)YH(.
If the collec)HY(tion)YH( of minds changes
\201i.e. the )I(compe)HY(ti)HY(tion)YH()ES( changes\202,
we may ask the Mind server to re-learn
its W-values from scratch,
i.e. increase the W-Temper)HY(a)HY(ture)YH(.
) 0 0 PR()RP(
)2 Al(
)BD()+4 Bf add FZ( Part 3 - Imple)HY(men)HY(ta)HY(tion)YH( )Ef()ES(
)Ea(
) 0 0 PR()RP(
)0 1 41 H()WB 64 Sn( Imple)HY(men)HY(ta)HY(tion)YH()WB 13 Sn( )EA( )EH()0 P(
Having defined in the first part of this paper
how a WWM scheme could work,
and what it would be good for,
we shall now move towards an actual
imple)HY(men)HY(ta)HY(tion)YH(.
First we need to define what the stan)HY(dard)YH( mode of oper)HY(a)HY(tion)YH( will be.
Will clients connect to servers for long periods of time?
Or will they connect, carry out some trans)HY(ac)HY(tion)YH(,
and then discon)HY(nect)YH(?
First note the differ)HY(ences)YH( with the Web:
)0 P(
)UL()-1 LI(The Web is a short, non-looping process
- Start request - Send URL - Get all files - End request.
)0 P(
)-1 LI(CGI is similar
- Start request - Send argu)HY(ments)YH(
- Get all data returned by program - End request.
)0 P(
)-1 LI(The WWM, however, is a looping, )I(indef)HY(i)HY(nite)YH(-length)ES( process
- Start run
- Run indef)HY(i)HY(nitely)YH( \201Get state, get action, execute action, get state\202.
)0 P(
An explicit "End run" command might be inserted,
perhaps by the client, or by a server when it has detected
some condi)HY(tion)YH(.
Or the loop could run for a pre-deter)HY(mined)YH( amount of time.
)0 P()LU(
)0 P(
)0 2 42 H()WB 65 Sn( Short, limited-length, client-server trans)HY(ac)HY(tions)YH()EH()0 P(
One way of break)HY(ing)YH( this indef)HY(i)HY(nite)YH( loop down might
be to treat each indi)HY(vid)HY(ual)YH( inter)HY(ac)HY(tion)YH(
with a server as a short, non-looping process.
The server responds to a short query
with a response that will return within a limited time.
The server does not know when, if ever, it will receive the next query.
)I(Other)ES( algo)HY(rithms)YH( imple)HY(ment)YH( loops and more complex logic
repeat)HY(edly)YH( using these prim)HY(i)HY(tive)YH( server queries.
)0 P(
)0 2 43 H()WB 66 Sn( Client algo)HY(rithm)YH( )EH()0 P(
The client soft)HY(ware)YH(, which is driving a single top-level Mind and World,
will imple)HY(ment)YH( a program some)HY(thing)YH( along these lines:
)0 P(
)4 OL()-1 LI( For each server:
)UL()-1 LI( Connect to server - Start request -
Tell server to start a new run for this client
- Receive a unique run ID, so that you can iden)HY(tify)YH( your)HY(self)YH( later
- End request)LU(
)0 P(
)-1 LI( Repeat:
)4 OL(
)-1 LI( Connect to World server - Start request
- Send run ID to iden)HY(tify)YH( your)HY(self)YH(
- Query state - Get state
\240 )TT(x)ES( \240
- End request
)-1 LI( Connect to Mind server - Start request
- Send run ID to iden)HY(tify)YH( your)HY(self)YH(
- Send state
\240 )TT(x)ES( \240
- Get action
\240 )TT(a)ES( \240
- End request
)-1 LI( Connect to World server - Start request
- Send run ID to iden)HY(tify)YH( your)HY(self)YH(
- Send action
\240 )TT(a)ES( \240
- Get new state
\240 )TT(y)ES( \240
- End request
)-1 LI( Connect to Mind server - Start request
- Send run ID to iden)HY(tify)YH( your)HY(self)YH(
- Tell it new state
\240 )TT(y)ES( \240
- Receive confir)HY(ma)HY(tion)YH( - End request
)LO(
)0 P(
)-1 LI( For each server:
)UL()-1 LI( Connect to server - Start request
- Send run ID to iden)HY(tify)YH( your)HY(self)YH(
- Send "End run" command
- Receive confir)HY(ma)HY(tion)YH(
- End request)LU(
)0 P()LO(
)0 P(
To clarify, the )I(non-tech)HY(ni)HY(cal)YH( client user)ES( will
use the servers through stan)HY(dard)HY(ised)YH(
client soft)HY(ware)YH(.
It is the )I(client soft)HY(ware)YH()ES( that will
imple)HY(ment)YH( this overall control algo)HY(rithm)YH(.
The non-tech)HY(ni)HY(cal)YH( client user will see none of this.
)0 P(
)0 3 44 H()WB 67 Sn( The server may be involved in many runs )EH()0 P(
The unique run ID is because the
server may be simul)HY(ta)HY(ne)HY(ously)YH( involved in many other runs
with other clients.
The server must keep the details of each run sepa)HY(rate)YH( from each other.
)0 2 A([Paulos and Canny, 1996])EA(
use a unique run ID like this in Inter)HY(net)YH( robotics,
where a World is servic)HY(ing)YH( multi)HY(ple)YH( Minds.
Here also the )I(Mind)ES( server may be
involved in )I(other Soci)HY(eties)YH()ES( running at the same time.
So the World-Wide-Mind is even stranger than having bits of your mind
distributed around the world.
It means that )BD(bits of your mind
are simul)HY(ta)HY(ne)HY(ously)YH( running in other minds)ES(.
)0 P(
)0 3 45 H(The)WB 68 Sn( client controls time and may imple)HY(ment)YH( time-outs)EH()0 P(
The Mind server does not talk to the World server directly.
Rather, the servers respond to short, finite-length requests.
The client algo)HY(rithm)YH( controls )I(how many)ES(
such requests occur.
It is up to the client how long it runs the above loop for.
The client may also imple)HY(ment)YH( a time-out.
If the Mind takes too long to reply,
the client could:
)0 P(
)4 OL( )-1 LI( Abort the Mind request, query the World again to make sure the
state is up to date, then query the Mind again.
)0 P(
or:
)0 P(
)-1 LI( Wait for the Mind to reply,
so we know it is back online again.
Then )I(ignore)ES( its reply,
query the World to get up to date,
and then query the Mind again.)LO(
)0 P(
Simi)HY(larly)YH(, if the World is down, the client may wait until it is back up,
and then requery the Mind with the new state,
instead of blindly execut)HY(ing)YH( the old, unex)HY(e)HY(cuted)YH( action.
This scheme could allow for a vari)HY(able)YH( use of time,
where the client may take )I(days)ES( to come back to each server
with the next request.
)0 P(
)0 3 46 H()WB 69 Sn( This is not a stim)HY(u)HY(lus)YH(-response model )EH()0 P(
Contin)HY(u)HY(ing)YH( the discus)HY(sion)YH( about time,
it is impor)HY(tant)YH( to reit)HY(er)HY(ate)YH( that
the above
does )I(not)ES( define the Mind as a stim)HY(u)HY(lus)YH(-response
machine.
The Mind is simply receiv)HY(ing)YH( a peri)HY(odic)YH( update about the
state of the World.
The Mind may run accord)HY(ing)YH( to a differ)HY(ent)YH( clock to the World:
)0 P(
)4 OL()-1 LI(
If the World changes slowly then a large number of
\240 )TT(x)ES( \240
in a row may be the same.
In this case the Mind is receiv)HY(ing)YH( more updates
than it needs, and if the model demands that it return an action
in response to each of these updates,
then we will want to define as one of our actions
an action
for "Do nothing".
)0 P(
)-1 LI(Aler)HY(na)HY(tively)YH(, just
because the current state
\240 )TT(x)ES( \240
is the param)HY(e)HY(ter)YH( that is sent along with the
"Get action" query,
does not mean that the action returned is a func)HY(tion)YH(
of
\240 )TT(x)ES( \240
)I(alone)ES(.
The Mind may
suddenly start taking actions
even though
\240 )TT(x)ES( \240
has not changed.
The Mind can be remem)HY(ber)HY(ing)YH( )I(all)ES( previ)HY(ous)YH( states,
and making its judge)HY(ment)YH( based on that knowl)HY(edge)YH(.
It can be build)HY(ing)YH( a world model.
It can have inter)HY(nal)YH( clocks that cause it to change plans
accord)HY(ing)YH( to )I(time-based)ES( action selec)HY(tion)YH(
[)0 2 A(Ring, 1992)EA(,
)0 2 A(Blum)HY(berg)YH(, 1994)EA(,
)0 2 A(White)HY(head)YH( et al., 1993)EA(,
)0 2 A(McFar)HY(land)YH(, 1989)EA(].
It can be learn)HY(ing)YH(,
start)HY(ing)YH( with random actions, and chang)HY(ing)YH( its policy
as it goes along.
It can be engaged in long-term or short-term plan)HY(ning)YH(.
It can be symbolic or non-symbolic.
)LO(
)0 P(
)0 2 47 H()WB 70 Sn( Mind)Sb(AS)Es( server algo)HY(rithm)YH( )EH()0 P(
The Mind)Sb(AS)Es( server responds to queries like any other server.
)I(Inside)ES( its "Get action" query
is some complex logic inter)HY(ro)HY(gat)HY(ing)YH( a list of Mind servers
to find a winning action.
This may be a loop but, unlike the client,
it will be a finite-length loop, not an indef)HY(i)HY(nite)YH(-length loop.
)0 P(
Simi)HY(larly)YH(,
the Mind)Sb(AS)Es( server
will receive
an "Inform it about new state
\240 )TT(y)ES(" \240
command
after each action is executed.
)I(Inside)ES( this command
it
will send an "Inform it about new state" command
to all of its subsidiary Mind servers,
along with extra infor)HY(ma)HY(tion)YH( that only
the Mind)Sb(AS)Es( server
knows, such as whether they were obeyed or not.
)0 3 48 H()WB 71 Sn( The Mind)Sb(AS)Es( server may also imple)HY(ment)YH( time-outs )EH()0 P(
The Mind)Sb(AS)Es( server may imple)HY(ment)YH( time-outs.
It is peri)HY(od)HY(i)HY(cally)YH( sending a query to
)I(all)ES( Mind servers.
It cannot afford to go round them in rota)HY(tion)YH(.
It cannot afford to wait until Mind server M1 has returned
before sending a request to M2.
Instead it must send requests to all of them in paral)HY(lel)YH(,
and receive the replies as they come in.
With multi)HY(ple)YH( Mind servers there is a much greater chance of some being
slow, offline, or even gone alto)HY(gether)YH( \201broken links\202.
Any sensi)HY(ble)YH( Mind)Sb(AS)Es( server will imple)HY(ment)YH( a time-out.
If some of the Mind servers do not respond within the time-out,
it will make a deci)HY(sion)YH( based on what)HY(ever)YH( actions
)I(have)ES( come in.
)0 P(
)0 2 49 H()WB 72 Sn( The servers \201and client soft)HY(ware)YH(\202 may imple)HY(ment)YH( any general-purpose algo)HY(rithm)YH( using the server queries)EH()0 P(
Clearly the above client algo)HY(rithm)YH( pseudo-code could be made more effi)HY(cient)YH(.
Perhaps there is no need to connect to the Mind
after each action - it can get to find out what happened
\201what the new state is\202
)I(next time around the loop)ES( when it is asked for a new action.
And next time round there is no need to query the World again
- we already know what the new state is from
when we executed the action.
But the point is that it is up to the )I(client)ES( to
write this program.
It will not be laid
down in the proto)HY(col)YH(.
Simi)HY(larly)YH(, a server may imple)HY(ment)YH( any algo)HY(rithm)YH( it likes
provided it responds to the set of queries expected of it.
)0 P(
) 0 0 PR()RP(
)0 1 50 H()WB 73 Sn( List)WB 14 Sn( of server queries )EA()EH()0 P(
The defi)HY(ni)HY(tion)YH( of the WWM comes down to this,
the defi)HY(ni)HY(tion)YH( of
the possi)HY(ble)YH( queries and responses of the servers.
The client soft)HY(ware)YH(
may imple)HY(ment)YH( any general-purpose algo)HY(rithm)YH(
based on these queries and responses.
The Mind servers,
the World servers,
the Mind)Sb(AS)Es( servers,
the Mind)Sb(M)Es( servers
and the World)Sb(W)Es( servers
may each imple)HY(ment)YH( any general-purpose algo)HY(rithm)YH(
based on these queries and responses,
provided that )I(they them)HY(selves)YH()ES( respond to these queries.
) 0 0 PR()RP(
)WB NL NP(
)0 2 51 H()WB 74 Sn( World server)EH()0 P()0 P(
)0 PT(
)0 P(
Notes:
)4 OL()-1 LI(The unique world run ID is known only to the client,
and used to iden)HY(tify)YH( itself each time
when it returns with a new query.
)-1 LI( The state and the action
are indef)HY(i)HY(nite)YH(-length, unde)HY(fined)YH( streams of plain text
\201termi)HY(nated)YH( by \240 )TT()ES(\202 \240
to be inter)HY(preted)YH( by the servers.
)-1 LI(The World should prob)HY(a)HY(bly)YH( support an action for "Do nothing".)LO(
)0 P(
A World)Sb(W)Es( server has the same inter)HY(face)YH( as a
World server.
) 0 0 PR()RP(
)0 2 52 H()WB 75 Sn( Mind server)EH()0 P()0 P(
)1 PT(
)0 P(
) 0 0 PR()RP(
Notes:
)4 OL()-1 LI(A Mind server may call other Mind servers,
thus setting up its own run with them, and its own run ID.
Presum)HY(ably)YH( Minds will start other Minds
with progres)HY(sively)YH( smaller "maximum allow)HY(able)YH( timeout" param)HY(e)HY(ters)YH(.
)0 P()LO(
) 0 0 PR()RP(
)WB NL NP(
)0 3 53 H(Addi)WB 76 Sn()HY(tional)YH( Mind)Sb(L)Es( queries )EH()0 P(
A Mind)Sb(L)Es( server is a
Mind server that learns,
and supports the follow)HY(ing)YH( addi)HY(tional)YH( queries:
)0 P(
)2 PT(
) 0 0 PR()RP(
)WB NL NP(
)0 3 54 H(Addi)WB 77 Sn()HY(tional)YH( Mind)Sb(i)Es( queries )EH()0 P(
A Mind)Sb(i)Es( server is a
Mind server
that accepts it may not be the only mind in the body,
and supports the follow)HY(ing)YH( addi)HY(tional)YH( queries:
)0 P(
)3 PT(
)0 P(
) 0 0 PR()RP(
Notes:
)4 OL()-1 LI( Any
Mind server may call another Mind server to get its action.
Up until now, the Mind server was not involved in any compe)HY(ti)HY(tion)YH(,
so it did not have to report to the client
that it was calling another server.
In response to "Get action", it just calls that other server
and returns the action.
)0 P(
If it )I(is)ES( involved in a compe)HY(ti)HY(tion)YH(, however,
it would be far more effi)HY(cient)YH(
to post)HY(pone)YH( calling the other Mind server until it has
actu)HY(ally)YH( )I(won)ES(
the compe)HY(ti)HY(tion)YH(.
So in this case it returns the other Mind URL to the client.
If it wins, the client can send "Get action" to that other Mind.
)LO(
) 0 0 PR()RP(
)0 3 55 H(Addi)WB 78 Sn()HY(tional)YH( Mind)Sb(Feu)Es( queries )EH()0 P(
A Mind)Sb(Feu)Es( server is a
Mind server that accepts )I(Feudal)ES( commands
of the form: "Take me to state c"
[)0 2 A(PhD)EA(, \247)0 2 A(18.2)EA(].
The other Mind servers have their )I(own)ES( moti)HY(va)HY(tions)YH(
and suggest actions accord)HY(ing)YH( to them,
and clients using them can then decide whether or not to use
these sugges)HY(tions)YH(.
But a Mind)Sb(Feu)Es( server does not have its own goals,
and is only used via this call by another Mind server
which has goals:
)0 P(
)4 PT(
)0 P(
) 0 0 PR()RP(
)0 3 56 H(Addi)WB 79 Sn()HY(tional)YH( Mind)Sb(AS)Es( queries )EH()0 P(
A Mind)Sb(AS)Es( server
is a Mind server that resolves compe)HY(ti)HY(tion)YH( between multi)HY(ple)YH( subsidiary
Mind servers.
Either this is )I(hidden)ES( from the client
\201and so the server just appears as an ordi)HY(nary)YH( Mind server above\202,
or else the client provides this list via a
special construc)HY(tor)YH(.
Having provided the list via the construc)HY(tor)YH(, the client there)HY(after)YH(
uses the server just like an ordi)HY(nary)YH( Mind server.
)0 P(
One inter)HY(est)HY(ing)YH( issue would be,
if we have a )I(hier)HY(ar)HY(chy)YH()ES( of
Action Selec)HY(tion)YH( compe)HY(ti)HY(tions)YH(,
and the Mind)Sb(AS)Es( server will
appear as just another prim)HY(i)HY(tive)YH( Mind)Sb(i)Es(
server compet)HY(ing)YH( in a )I(higher-level)ES(
Action Selec)HY(tion)YH( compe)HY(ti)HY(tion)YH(,
then where does it get its W-values from?
Does it pass upwards the W-values from the winning Mind server
)I(below)ES( it?
Of course, inter)HY(est)HY(ing)YH( as this is,
this is a problem for the server author,
not an issue for the WWM spec)HY(i)HY(fi)HY(ca)HY(tion)YH( here.
The Mind)Sb(AS)Es( server author must somehow
)I(use)ES( the queries defined here
to )I(gather)ES( infor)HY(ma)HY(tion)YH( from its subsidiary Mind servers
to compete at the higher level.
)0 P(
)5 PT(
)0 P(
) 0 0 PR()RP(
A Mind)Sb(M)Es( server may appear with the inter)HY(face)YH(
of any of these types of
Mind server.
) 0 0 PR()RP(
)0 1 57 H()WB 80 Sn( How)WB 15 Sn( to imple)HY(ment)YH( some exist)HY(ing)YH( agent archi)HY(tec)HY(tures)YH( as networks of WWM servers)EA()EH()0 P(
We now
show how a number of exist)HY(ing)YH( models of agent minds
can be imple)HY(mented)YH( as networks of WWM servers
using the server queries above.
)0 P(
)0 2 58 H()WB 81 Sn( Hand-coded program )EH()0 P(
A hand-coded mind program can clearly be imple)HY(mented)YH(
as a single Mind server,
receiv)HY(ing)YH(
\240 )TT(x)ES( \240
and return)HY(ing)YH(
\240 )TT(a)ES(. \240
There are a vast number of models of agent mind,
whether hand-coded, learnt or evolved,
that will repeat)HY(edly)YH(
produce an action given a state.
Most of these could be imple)HY(mented)YH( as WWM servers
without raising any partic)HY(u)HY(lar)YH( issues
apart from having to agree on the format of state and action
with the World server.
)0 P(We will not discuss any of these further, except where they raise
partic)HY(u)HY(lar)YH( issues
with respect to the WWM.
For example, below we will refer in detail to differ)HY(ent)YH( models
of Action Selec)HY(tion)YH(, because these raise partic)HY(u)HY(lar)YH( WWM issues.
)0 P(
)0 3 59 H()WB 82 Sn( Initial test - Eliza Mind talks to Eliza World )EH()0 P(
An initial test of the model could be by connect)HY(ing)YH(
two Eliza-type programs together
to have a conver)HY(sa)HY(tion)YH(.
In this case
\240 )TT(x)ES( \240
and
\240 )TT(a)ES( \240
are both streams of text.
The output
\240 )TT(a)ES( \240
for one is the input
\240 )TT(x)ES( \240
for the other.
Which we regard as the "Mind" and which as the "World"
under our scheme
does not matter.
Even in this initial test we could imple)HY(ment)YH(
some advanced ideas,
such as time-outs,
and Mind servers keeping track of previ)HY(ous)YH( states.
It also raises the issue of how a )I(human)ES( could become part of the
response of a World server or a Mind server.
)0 P(
)0 2 60 H()WB 83 Sn( The Subsump)HY(tion)YH( Archi)HY(tec)HY(ture)YH()EH()0 P(
A Subsump)HY(tion)YH( Archi)HY(tec)HY(ture)YH( model
[)0 2 A(Brooks, 1986)EA(,
)0 2 A(Brooks, 1991)EA(]
could be imple)HY(mented)YH( as a hier)HY(ar)HY(chy)YH( of Mind)Sb(M)Es(
servers, each one build)HY(ing)YH( on the ones below it.
Each one sends the current state
\240 )TT(x)ES( \240
to the server below it,
and then
either uses their output or over)HY(rides)YH( it.
So each Mind server sees state
\240 )TT(x)ES( \240
and gets to respond.
As in Brooks' model, a set of lower layers will still work
if the higher layers are removed.
On the WWM, there may be many choices
for \201remote, 3rd party\202 higher layers
to add to a given collec)HY(tion)YH( of lower layers.
)0 2 61 H(Serial)WB 84 Sn( models)EH()0 P(
In serial models,
a mind server will "complete" its activ)HY(ity)YH(
before another mind server will start
[)0 2 A(Singh, 1992)EA(,
)0 2 A(Tham and Prager, 1994)EA(,
)0 2 A(Wixson, 1991)EA(].
This can be driven by a master Mind)Sb(M)Es(
server that passes control from server to server.
This
Mind)Sb(M)Es(
server needs to know when each goal termi)HY(nates)YH(,
which requires it to have a lot of intel)HY(li)HY(gence)YH(.
)0 P(
To reduce the demands on the intel)HY(li)HY(gence)YH( of
the master server, each server )I(itself)ES(
may know whether it is ready to execute
or not
\201precon)HY(di)HY(tions)YH( not true yet,
or it has just completed its goal\202.
The server can return this in response to
the "Ready to suggest action?"
query.
Then the Mind)Sb(M)Es(
server only needs to know the order of the chain of servers.
The servers them)HY(selves)YH( tell it when it is time to switch to
the next server.
)0 P(Or we could avoid having a master Mind)Sb(M)Es(
server alto)HY(gether)YH( if
each server, when its goal is completed,
will pass all requests for actions there)HY(after)YH(
on to its )I(succes)HY(sor)YH()ES( server \201which it knows about\202.
Then we simply inter)HY(act)YH( with the Society
through the )I(first)ES( mind server
in the chain.
)0 P(
)0 3 62 H(Maes')WB 85 Sn( Spread)HY(ing)YH( Acti)HY(va)HY(tion)YH( Networks )EH(
Maes' )EM(Spread)HY(ing)YH( Acti)HY(va)HY(tion)YH( Networks)ES(
[)0 2 A(Maes, 1989)EA(,
)0 2 A(Maes, 1989a)EA(]
or )EM(Behav)HY(ior)YH( Networks)ES(
consist of a network of "servers" which are aware of their precon)HY(di)HY(tions)YH(.
Servers can be linked to from other servers that can help to make those precon)HY(di)HY(tions)YH( come true,
or be inhib)HY(ited)YH( by other servers who will cause their precon)HY(di)HY(tions)YH( to )EM(not)ES( hold.
They can in turn link to other servers whose precon)HY(di)HY(tions)YH( their behav)HY(ior)YH( can affect.
This might be imple)HY(mented)YH( on the WWM
by one server )I(construct)HY(ing)YH()ES( the state
\240 )TT(x)ES( \240
for the server it is calling,
putting the precon)HY(di)HY(tions)YH( into
\240 )TT(x)ES(. \240
)0 P(
Maes' )EM(spread)HY(ing)YH( acti)HY(va)HY(tion)YH( mech)HY(a)HY(nism)YH()ES( spreads exci)HY(ta)HY(tion)YH( and inhi)HY(bi)HY(tion)YH( from
server to server.
This might be imple)HY(mented)YH( on the WWM
using the "Change mind
strength" message.
)0 P(
)0 2 63 H()WB 86 Sn( Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH( )EH()0 P(
An ordi)HY(nary)YH( Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH( \201RL\202 agent,
which receives rewards and punish)HY(ments)YH( as it acts
)0 2 A([Kael)HY(bling)YH( et al., 1996])EA(,
can clearly be imple)HY(mented)YH(
as a single Mind server.
For example a Q-learn)HY(ing)YH( agent
)0 2 A([Watkins, 1989])EA(
builds up Q-values \201"Quality"-values\202
of how good each action is in each state:
\240 )TT(Q\201x,a\202)ES(. \240
This is stored
in a data struc)HY(ture)YH( inside the agent
- either a straight)HY(for)HY(ward)YH( lookup table,
or else a )I(gener)HY(al)HY(i)HY(sa)HY(tion)YH()ES( such as a neural network.
Then, given a state, the agent can produce an action based on these Q-values.
This maps easily to the WWM model of a Mind server above,
as does any similar notion of a state-space learner, e.g.
)0 2 A([Clocksin and Moore, 1989])EA(.
)0 P(
When learn)HY(ing)YH(, the Q-learner can calcu)HY(late)YH( its own reward
based on
\240 )TT(x)ES(, \240
\240 )TT(a)ES( \240
and
\240 )TT(y)ES( \240
[)0 2 A(PhD)EA(, \247)0 2 A(2.1.3)EA(].
So long as the client informs it what state
\240 )TT(y)ES( \240
resulted
from the previ)HY(ous)YH( action
\240 )TT(a)ES(, \240
it can calcu)HY(late)YH( rewards,
and learn.
)0 P(
)0 2 64 H()WB 87 Sn( Hier)HY(ar)HY(chi)HY(cal)YH( Q-Learn)HY(ing)YH( )EH()0 P(
Hier)HY(ar)HY(chi)HY(cal)YH( Q-Learn)HY(ing)YH(
)0 2 A([Lin, 1993])EA(
is a way of driving multi)HY(ple)YH( Q-learn)HY(ers)YH( with a master Q-learner.
It can be imple)HY(mented)YH( on the WWM as follows.
The client talks to a single Mind)Sb(AS)Es(
server, sending it
\240 )TT(x)ES( \240
and receiv)HY(ing)YH(
\240 )TT(a)ES(. \240
The Mind)Sb(AS)Es( server talks to a number of
Mind servers.
These do not )I(neces)HY(sar)HY(ily)YH()ES( have to support all of
the advanced queries of the
Mind)Sb(i)Es( server above.
They may simply return an action,
unaware that there are other minds in the body.
The
Mind)Sb(AS)Es( server
main)HY(tains)YH( a table of values
\240 )TT(Q\201x,i\202)ES( \240
where
\240 )TT(i)ES( \240
is which Mind server to pick in state
\240 )TT(x)ES(. \240
Initially its choices are random,
but by its own reward func)HY(tion)YH(,
noting what states the choices take us to,
the
Mind)Sb(AS)Es( server
fills in values for
\240 )TT(Q\201x,i\202)ES(. \240
Having chosen
\240 )TT(i)ES(, \240
it passes on the action suggested by Mind server
\240 )TT(i)ES( \240
to the client.
)0 P(
In fact, to save on the number of server queries
\201which is a more serious issue on the WWM than in a
self-contained system\202,
we would do the follow)HY(ing)YH(.
Each time step, when presented with a state
\240 )TT(x)ES(, \240
the Mind)Sb(AS)Es( server
makes a deci)HY(sion)YH( based on its Q-values
\201initially random\202
and then, having picked action
\240 )TT(i)ES(, \240
queries a )I(single)ES( Mind server
\240 )TT(i)ES( \240
for its action.
Note then that the ques)HY(tion)YH( of being obeyed or not obeyed
does not apply
to the other Mind servers - they were not even )I(asked)ES(
for an action on this step.
)0 P(
Whether they were asked for an action or not,
the other
Mind servers can still )I( learn)ES( while in this system,
if the
Mind)Sb(AS)Es( server
tells them what action it executed.
i.e. They will need to support at least one of the
advanced Mind)Sb(i)Es( queries above.
In general, any Mind server in a compe)HY(ti)HY(tion)YH( needs to be informed
if it was obeyed,
and what action was taken.
Other)HY(wise)YH( it may think that its action \201which was not taken\202
led to the new state.
)0 P(
One inter)HY(est)HY(ing)YH( possi)HY(bil)HY(ity)YH( with Hier)HY(ar)HY(chi)HY(cal)YH( Q-Learn)HY(ing)YH(
on the WWM is that
the Mind)Sb(AS)Es( server
)I(need not know its list of Mind servers in advance)ES(.
It can be passed this list by the client at startup,
using the special construc)HY(tor)YH( defined above.
Of course then it will have to learn from scratch
\201i.e. it is sent a high Temper)HY(a)HY(ture)YH( param)HY(e)HY(ter)YH(\202.
)0 P(Another possi)HY(bil)HY(ity)YH( is that the subsidiary Mind servers
)I(need not be Q-learn)HY(ers)YH()ES(.
They could be any type of Mind server, and
the Mind)Sb(AS)Es( server
simply learns which one to let through.
)0 P(
)0 2 65 H()WB 88 Sn( Action Selec)HY(tion)YH( with a single query or multi)HY(ple)YH( queries )EH()0 P(
For many of the follow)HY(ing)YH( models it will be useful to distin)HY(guish)YH(
between two types of Mind)Sb(AS)Es( server:
)0 P(
)4 OL( )-1 LI( An )BD( AS)Sb(s)Es( server )ES(
makes a single query of each Mind server
before making its deci)HY(sion)YH(.
)0 P(
)-1 LI( An )BD( AS)Sb(m)Es( server )ES(
makes multi)HY(ple)YH( queries of each Mind server
before making its deci)HY(sion)YH(.
)LO(
)0 P(
Hier)HY(ar)HY(chi)HY(cal)YH( Q-Learn)HY(ing)YH( is not either of these
because it does not even query )I(all)ES( Mind servers )I(once)ES(.
Based on its
\240 )TT(Q\201x,i\202)ES( \240
values it just makes one query of one Mind server.
)0 2 66 H(Static)WB 89 Sn( measures of W)EH()0 P(
We will consider a number of schemes where Mind servers
promote their actions with a weight W,
or "W-value".
Ideally the W-value will depend on the state
\240 )TT(x)ES( \240
and will be higher or lower depend)HY(ing)YH( on how much
the Mind server "cares" about winning the compe)HY(ti)HY(tion)YH( for this state
[)0 2 A(PhD)EA(, \247)0 2 A(5)EA(].
)0 P(
A )I(static)ES( measure of the W-value
[)0 2 A(PhD)EA(, \247)0 2 A(5.3)EA(]
is one in which the Mind server
promotes its action with a value of W
based on inter)HY(nal)YH( reasons, and
inde)HY(pen)HY(dent)YH( of the compe)HY(ti)HY(tion)YH(.
Any such method \201includ)HY(ing)YH(, say, W=Q\202
can clearly be imple)HY(mented)YH( as a Mind)Sb(i)Es(
server.
There will be a number of Mind)Sb(i)Es(
servers, and then a simple Mind)Sb(AS)Es( server
which lets through the one with the highest W-value.
This is an AS)Sb(s)Es( server.
)0 2 67 H(Dynamic)WB 90 Sn( measures of W)EH()0 P(
A )I(dynamic)ES( measure of W
[)0 2 A(PhD)EA(, \247)0 2 A(5.5)EA(]
is one in which the value of W
changes depend)HY(ing)YH( on whether the Mind server was obeyed,
and perhaps on who won instead if it did not.
Clearly this is
an AS)Sb(s)Es( server
that queries once,
lets through the highest W,
and then )I(reports back)ES( after)HY(wards)YH(
to each server whether or not it was obeyed,
using the WWM commands defined above.
The server may then )I(modify)ES( its W-value
next time round in this state.
)0 P(
)0 2 68 H()WB 91 Sn( W-learn)HY(ing)YH( )EH()0 P(
W-learn)HY(ing)YH(
[)0 2 A(PhD)EA(,
\247)0 2 A(5)EA(,
\247)0 2 A(6)EA(]
is a form of dynamic W
where W is modi)HY(fied)YH( based on
\201i\202 whether we were obeyed or not,
and \201ii\202 what the new state y is as a result.
This can clearly be imple)HY(mented)YH( on the WWM as
an AS)Sb(s)Es( server.
All the vari)HY(a)HY(tions)YH(, such as
)I(Stochas)HY(tic)YH()ES( highest W
[)0 2 A(PhD)EA(, \247)0 2 A(6.5)EA(],
and the winner )I(not)ES( alter)HY(ing)YH( their W-value
[)0 2 A(PhD)EA(, \247)0 2 A(6.3)EA(],
can clearly also be imple)HY(mented)YH( using the WWM queries defined above.
)0 P(
In the pure form of W-learn)HY(ing)YH(
[)0 2 A(PhD)EA(,
\247)0 2 A(6)EA(,
\247)0 2 A(11)EA(,
\247)0 2 A(13)EA(]
the Minds do not even share the same suite
of actions, and so, for example,
cannot simply get together and )I(nego)HY(ti)HY(ate)YH()ES(
to find
the optimum action \201see below\202.
The inspi)HY(ra)HY(tion)YH( was simply to see if compe)HY(ti)HY(tion)YH( could be resolved
between Minds that had as little in common as possi)HY(ble)YH(.
I was unable to give convinc)HY(ing)YH( exam)HY(ples)YH( where this might arise.
Now with the WWM, and Minds coming from totally differ)HY(ent)YH( origins,
I hope it is clearer what the useful)HY(ness)YH( of this is.
This is the type of AS method we will need for
many situ)HY(a)HY(tions)YH( on the WWM.
)0 P(
)0 2 69 H(Strong)WB 92 Sn( and Weak Mind servers)EH()0 P(
[)0 2 A(PhD)EA(, \247)0 2 A(8)EA(]
showed how alter)HY(ing)YH( the abso)HY(lute)YH( size of
a Q-learn)HY(ing)YH( Mind server's rewards
can change the size of the W-values it presents,
)I(without)ES( alter)HY(ing)YH( its policy.
To be precise, we can multi)HY(ply)YH( all the base Q-values by any constant
\240 )TT(c)ES( \240
to produce an agent with the same policy but differ)HY(ent)YH( W-values.
As a result one could ask for a "strong" version of a Mind server,
which would have the same policy as a weak version,
but present larger W-values.
This would be done by present)HY(ing)YH( the "mind strength" constant
\240 )TT(c)ES( \240
as an argu)HY(ment)YH( to the server at startup.
For a full expla)HY(na)HY(tion)YH( of how to carry out "Normal)HY(i)HY(sa)HY(tion)YH("
and "Exag)HY(ger)HY(a)HY(tion)YH(" of the same basic behaviour, see
[)0 2 A(PhD)EA(,
\247)0 2 A(C)EA(,
\247)0 2 A(D)EA(].
Arti)HY(fi)HY(cial)YH( Selec)HY(tion)YH( could search for good combi)HY(na)HY(tions)YH(
of strong and weak
servers by either:
)0 P(
)4 OL()-1 LI( Auto)HY(mated)YH( search.
)0 P(or:
)0 P(
)-1 LI( By hand.
Slowly increase or decrease the strength values,
leaving all the )I(details)ES( of the compe)HY(ti)HY(tion)YH(
to be resolved auto)HY(mat)HY(i)HY(cally)YH(,
and then observe the result)HY(ing)YH( global behaviour
[)0 2 A(PhD)EA(,
\247)0 2 A(16.3)EA(,
\247)0 2 A(17.2)EA(].
)LO(
)0 P(
)0 2 70 H()WB 93 Sn( Match)HY(ing)YH( World state defi)HY(ni)HY(tion)YH( with Mind state defi)HY(ni)HY(tion)YH( )EH()0 P(
Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH( also shows us how we can get away
with not defin)HY(ing)YH( a format for the state
\240 )TT(x)ES( \240
and action
\240 )TT(a)ES(. \240
In RL,
\240 )TT(x)ES( \240
and
\240 )TT(a)ES( \240
are abstrac)HY(tions)YH(, so that, for example,
we define a model where
execut)HY(ing)YH( action
\240 )TT(a)ES( \240
in state
\240 )TT(x)ES( \240
leads to state
\240 )TT(y)ES( \240
with prob)HY(a)HY(bil)HY(ity)YH(
\240 P)Sb(xa)Es(\201y\202 \240
- yet there is no need to actu)HY(ally)YH( define
the format of
\240 )TT(x)ES( \240
and
\240 )TT(a)ES( \240
at this point.
)0 P(
Simi)HY(larly)YH( with the WWM we leave state and action
as unde)HY(fined)YH( streams of text data
termi)HY(nated)YH( by
\240 )TT()ES(. \240
How these streams are to be decoded
is a matter for the World and Mind servers to agree
among them)HY(selves)YH(.
Servers will adver)HY(tise)YH( \201at their URLs\202
what format they expect
and what format they gener)HY(ate)YH(,
and others will act accord)HY(ingly)YH(.
Collec)HY(tions)YH( of servers that have incom)HY(pat)HY(i)HY(ble)YH( formats,
and there)HY(fore)YH( do not work, are not a problem.
People will )I(expect)ES( that vast numbers of
Soci)HY(eties)YH( will not work at all,
or work poorly,
and the whole mindset will be to
)I(search)ES( for ones that work better than others,
follow "Top 10" lists of good perform)HY(ers)YH( in a certain World,
and so on.
Soci)HY(eties)YH( that
are not compat)HY(i)HY(ble)YH(,
or even ones that
)I(are)ES( compat)HY(i)HY(ble)YH( but work )I(poorly)ES(,
will simply not be adver)HY(tised)YH(.
)0 P(
)0 3 71 H()WB 94 Sn( "Islands" of compat)HY(i)HY(ble)YH( worlds )EH()0 P(
This does raise the ques)HY(tion)YH(, though, of whether
differ)HY(ent)YH( )I(sub-zones)ES( of the WWM will develop,
each incom)HY(pat)HY(i)HY(ble)YH( with the other.
It seems that this will indeed happen.
For any World,
there will be an island of Minds that under)HY(stand)YH( this World
and inter)HY(pret)YH( its defi)HY(ni)HY(tion)YH( of state
\240 )TT(x)ES( \240
or some subset of
\240 )TT(x)ES(. \240
If the World is popular,
other Worlds might be built to the same spec)HY(i)HY(fi)HY(ca)HY(tion)YH(,
so that the same Mind can act in all of these Worlds
)0 2 A([Ray, 1995])EA(.
There will be a \201perhaps very large\202
"island" of compat)HY(i)HY(ble)YH( Worlds and Minds,
sepa)HY(rate)YH( from other islands built to differ)HY(ent)YH( spec)HY(i)HY(fi)HY(ca)HY(tions)YH(.
)0 P(
The AS servers might be more inde)HY(pen)HY(dent)YH( of the World defi)HY(ni)HY(tion)YH(,
so that the same AS server can be used in differ)HY(ent)YH( "islands".
The AS server will receive
\240 )TT(x)ES( \240
and return
\240 )TT(a)ES(, \240
but need not under)HY(stand)YH( the struc)HY(ture)YH( of either,
but just pass on
\240 )TT(x)ES( \240
to the Mind servers that )I(do)ES( under)HY(stand)YH( it,
make a deci)HY(sion)YH( as to who to pick based on, say, the highest W-value,
and then return what)HY(ever)YH( mean)HY(ing)HY(less)YH( stream of data they provide as
the action
\240 )TT(a)ES(. \240
)0 P(
)0 3 72 H()WB 95 Sn( The "island" of the phys)HY(i)HY(cal)YH( world )EH()0 P(
For real robots, since the real phys)HY(i)HY(cal)YH( world is the same for every)HY(one)YH(,
one might think there would be just one island
- so that any real-world Mind could act
on any real-robot World server.
Not so, of course,
because how you sense the real world \201state
\240 )TT(x)ES(\202 \240
depends on what sensors the robot hard)HY(ware)YH( possesses,
and what format they deliver their input in.
One could imagine, though,
that there will be a sepa)HY(rate)YH( island clus)HY(tered)YH( around each robot )I(make)ES(.
For instance, Mind servers that will run on any )I(Khepera)ES( robot.
Mind servers that will run on any LEGO Mind)HY(storms)YH( robot.
Mind servers that will run on a Nomad robot
that has certain spec)HY(i)HY(fied)YH( add-ons.
)0 P(
So, in conclu)HY(sion)YH(, the network of World-Wide-Minds will not be unified,
but will consist of a number of sepa)HY(rate)YH( incom)HY(pat)HY(i)HY(ble)YH( islands.
)0 3 73 H(Mind)WB 96 Sn( servers with differ)HY(ent)YH( senses in the same Society)EH()0 P(
[)0 2 A(PhD)EA(, \247)0 2 A(6.6)EA(]
discussed where Mind servers may have differ)HY(ent)YH( senses,
even within the )I(same Society)ES(,
which makes their compe)HY(ti)HY(tion)YH( even more confus)HY(ing)YH(.
Some)HY(times)YH( in a partic)HY(u)HY(lar)YH( state they win,
and some)HY(times)YH(, in what seems to be exactly the same state
\201but is perceived by another Mind server as a differ)HY(ent)YH( state\202
they lose
\201because the other Mind server competed differ)HY(ently)YH(\202.
)0 P(
In a WWM imple)HY(men)HY(ta)HY(tion)YH( of this, the Mind)Sb(AS)Es(
server may receive the )I(full)ES( state from the World,
and then send a differ)HY(ent)YH( sub-space of that to each Mind server
as )I(its)ES( input state.
This is actu)HY(ally)YH( what we did with Hier)HY(ar)HY(chi)HY(cal)YH( Q-learn)HY(ing)YH(
[)0 2 A(PhD)EA(, \247)0 2 A(4.4)EA(].
Both W-learn)HY(ing)YH( with subspaces
[)0 2 A(PhD)EA(,
\247)0 2 A(7)EA(,
\247)0 2 A(8)EA(]
and W-learn)HY(ing)YH( with full space
[)0 2 A(PhD)EA(, \247)0 2 A(10)EA(]
can also clearly be imple)HY(mented)YH( as
AS)Sb(s)Es( servers
using the WWM prim)HY(i)HY(tives)YH( above.
)0 2 74 H()WB 97 Sn( Global Action Selec)HY(tion)YH( deci)HY(sions)YH( )EH()0 P(
If Minds )I(do)ES( share the same suite of actions,
then we can make various global deci)HY(sions)YH(.
Say we have
\240 )TT(n)ES( \240
Mind servers.
Mind server
\240 )TT(i)ES('s \240
preferred action is action a)Sb(i)Es(.
\240
Mind server
\240 )TT(i)ES( \240
can quan)HY(tify)YH( "how good" action
\240 )TT(a)ES( \240
is in state
\240 )TT(x)ES( \240
by return)HY(ing)YH(:
)BQ()BQ(Q)Sb(i)Es(\201x,a\202)QB()QB(
and can quan)HY(tify)YH( "how bad"
action
\240 )TT(a)ES( \240
is in state
\240 )TT(x)ES( \240
by return)HY(ing)YH(:
)BQ()BQ(Q)Sb(i)Es(\201x,a)Sb(i)Es(\202 - Q)Sb(i)Es(\201x,a\202)QB()QB(
)0 P(
Then we have 4 basic approaches
[)0 2 A(PhD)EA(, \247)0 2 A(14)EA(]:
)0 P(
)4 OL()-1 LI()BD(Maxi)HY(mize)YH( the Best Happi)HY(ness)YH()ES(:
)BQ()BQ(MAX)Sb(a)Es( MAX)Sb(i)Es( \240 Q)Sb(i)Es(\201x,a\202)QB()QB(
which is in fact the same as static W=Q above,
and can be imple)HY(mented)YH( as
an AS)Sb(s)Es( server,
with just one query to each Mind server to get its best action
and its Q-value.
)0 P(
)-1 LI()BD(Mini)HY(mize)YH( the Worst Unhap)HY(pi)HY(ness)YH()ES(:
)BQ()BQ(MIN)Sb(a)Es( MAX)Sb(i)Es( \240
\201 Q)Sb(i)Es(\201x,a)Sb(i)Es(\202 - Q)Sb(i)Es(\201x,a\202 \202)QB()QB(
which is
an AS)Sb(m)Es( server,
requir)HY(ing)YH( multi)HY(ple)YH( queries of each Mind server.
)0 P(
)-1 LI()BD(Mini)HY(mize)YH( Collec)HY(tive)YH( Unhap)HY(pi)HY(ness)YH()ES(:
)BQ()BQ(MIN)Sb(a)Es( \240
[ SUM)Sb(i)Es( \201 Q)Sb(i)Es(\201x,a)Sb(i)Es(\202 - Q)Sb(i)Es(\201x,a\202 \202 ])QB()QB(
which is
an AS)Sb(m)Es( server.
)0 P(
)-1 LI()BD(Maxi)HY(mize)YH( Collec)HY(tive)YH( Happi)HY(ness)YH()ES(:
)BQ()BQ(MAX)Sb(a)Es( \240
[ SUM)Sb(i)Es( Q)Sb(i)Es(\201x,a\202 ])QB()QB(
which is
an AS)Sb(m)Es( server.)LO(
)0 P(
)0 2 75 H(Other)WB 98 Sn( Action Selec)HY(tion)YH( methods based on RL )EH()0 P(
There are a number of other related AS methods, which can all be imple)HY(mented)YH(
as WWM servers:
)4 OL()-1 LI(
)BD(Nego)HY(ti)HY(ated)YH( W-learn)HY(ing)YH()ES(
[)0 2 A(PhD)EA(, \247)0 2 A(11)EA(]
is an
AS)Sb(m)Es( method.
)0 P(
)-1 LI()BD(Collec)HY(tive)YH( W-learn)HY(ing)YH()ES(
[)0 2 A(PhD)EA(, \247)0 2 A(12.2)EA(]
can be imple)HY(mented)YH( by the Mind)Sb(AS)Es( server
build)HY(ing)YH( up a table of
\240 )TT( W\201x,i\202)ES( \240
- the combined )I(loss)ES( that Mind server
\240 )TT(i)ES( \240
causes for )I(every)HY(one)YH( else)ES(
when it wins
\201each server reports back to the Mind)Sb(AS)Es( server
their own loss W\202.
Like Hier)HY(ar)HY(chi)HY(cal)YH( Q-learn)HY(ing)YH(, this is neither AS)Sb(s)Es(
nor AS)Sb(m)Es(.
It chooses a Mind server based on its W-values table
and then makes one query of one server
to return its action.
Then it sends a command to )I(every)ES( server to tell it what happened,
and adjusts its W-value accord)HY(ing)YH( to the losses the servers
report in their responses.
All the vari)HY(ants)YH( of this
can clearly be imple)HY(mented)YH( as well, includ)HY(ing)YH(
Stochas)HY(tic)YH( lowest W
[)0 2 A(PhD)EA(, \247)0 2 A(12.2.2)EA(]
and )BD(Nego)HY(ti)HY(ated)YH( Collec)HY(tive)YH( W-learn)HY(ing)YH()ES(
[)0 2 A(PhD)EA(, \247)0 2 A(12.2.4)EA(]
\201which is an AS)Sb(m)Es( method\202.
)0 P(
)-1 LI(
)BD(Collec)HY(tive)YH( Equal)HY(ity)YH()ES(
[)0 2 A(PhD)EA(, \247)0 2 A(12.4)EA(]
is an AS)Sb(m)Es( method.
)0 P(
)-1 LI(Any form of )BD(scaling the W-value)ES(
[)0 2 A(PhD)EA(, \247)0 2 A(8.1.2)EA(]
can be imple)HY(mented)YH( as well,
with extra complex)HY(ity)YH( in the Mind server,
but no need for extra server queries.
)0 P()-1 LI(As refer)HY(enced)YH( in
[)0 2 A(PhD)EA(, \247)0 2 A(F)EA(],
there are other measures of Happi)HY(ness)YH( and Unhap)HY(pi)HY(ness)YH(
that may or may not make sense,
all of which can be imple)HY(mented)YH( by single
or repeated WWM queries.)LO(
)0 2 76 H()WB 99 Sn( Other paral)HY(lel)YH( models )EH()0 P(
The DAMN Archi)HY(tec)HY(ture)YH(
[)0 2 A(Rosen)HY(blatt)YH(, 1995)EA(,
)0 2 A(Rosen)HY(blatt)YH( and Thorpe, 1995)EA(]
imple)HY(ments)YH( an action selec)HY(tion)YH( method
similar to Maxi)HY(mize)YH( Collec)HY(tive)YH( Happi)HY(ness)YH(.
The Q-values of Mind server
\240 )TT(i)ES( \240
are multi)HY(plied)YH( by weights w)Sb(i)Es(
which reflect the current prior)HY(i)HY(ties)YH( of the system.
This could be imple)HY(mented)YH( as an AS)Sb(m)Es(
server, where the AS server main)HY(tains)YH( a set of weights w)Sb(i)Es(.
)0 P(
)BD(Product Maxi)HY(mize)YH( Collec)HY(tive)YH( Happi)HY(ness)YH()ES(
[)0 2 A(PhD)EA(, \247)0 2 A(15.5.2)EA(],
adapted from Grefen)HY(stette)YH('s work
)0 2 A([Grefen)HY(stette)YH(, 1992])EA(,
can be imple)HY(mented)YH( on the WWM as an AS)Sb(m)Es( server.
)0 P(
A number of other authors
[)0 2 A(Aylett, 1995)EA(,
)0 2 A(Tyrrell, 1993)EA(,
)0 2 A(White)HY(head)YH( et al., 1993)EA(,
)0 2 A(Karls)HY(son)YH(, 1997)EA(,
)0 2 A(Ono et al., 1996)EA(]
imple)HY(ment)YH(, using a variety of nota)HY(tions)YH(,
one of the 4 basic AS methods
defined above
[see )0 2 A(PhD)EA(, \247)0 2 A(15.4)EA(].
Though none,
as far as I am aware, have tried a
Mini)HY(mize)YH( the Worst Unhap)HY(pi)HY(ness)YH( strat)HY(egy)YH(.
)0 2 77 H()WB 100 Sn( The AS server remem)HY(ber)HY(ing)YH( the winner)EH()0 P(
To reduce the number of server queries needed,
the AS server may )I(remem)HY(ber)YH()ES( who won the state last time,
and build up a table
\240 )TT(k\201x\202)ES( \240
for the winner
\201or
\240 )TT(a\201x\202)ES( \240
for compro)HY(mise)YH( actions\202
so it does not have to run the compe)HY(ti)HY(tion)YH( again
[)0 2 A(PhD)EA(, \247)0 2 A(11)EA(].
Obvi)HY(ously)YH( this only works if the servers remain unchanged \201they are
not learn)HY(ing)YH(\202,
and if the )I(collec)HY(tion)YH()ES( of servers remains unchanged
\201no new servers, or old ones leaving\202.
)0 2 78 H(Dynam)WB 101 Sn()HY(i)HY(cally)YH( chang)HY(ing)YH( collec)HY(tions)YH()EH()0 P(
To continue that last point,
the WWM server queries
allow for a collec)HY(tion)YH( of Mind servers where new ones are added
or old ones removed during the course of the run
[)0 2 A(PhD)EA(, \247)0 2 A(17.6)EA(].
The imple)HY(men)HY(ta)HY(tion)YH( of the "Add mind" and "Remove mind" commands
in the Mind)Sb(AS)Es( server
will then send a "Collec)HY(tion)YH( changed" message to all of its
subsidiary Mind servers,
to inform them that the compe)HY(ti)HY(tion)YH( has changed
and they may have to re-learn their W-values.
)0 2 79 H()WB 102 Sn( Nested Mind servers)EH()0 P(
Digney
)0 2 A([Digney, 1996])EA(
defines Nested Q-learn)HY(ing)YH(, where )I(each)ES( Mind in a collec)HY(tion)YH(
is able to call on any of the others.
Each Mind server has its own set of actions
Q)Sb(i)Es(\201x,a\202
)I(and)ES( a set of actions
Q)Sb(i)Es(\201x,k\202
where action
\240 )TT(k)ES( \240
means "do
what)HY(ever)YH( server
\240 )TT(k)ES( \240
wants to do"
\201as in Hier)HY(ar)HY(chi)HY(cal)YH( Q-learn)HY(ing)YH(\202.
Of course we already have in general that a Mind)Sb(M)Es( server
can call other Mind servers.
What is differ)HY(ent)YH( here is:
)4 OL()-1 LI(It )I(learns)ES( how good it is to call other servers.
To do this, it needs to be supplied with some extra infor)HY(ma)HY(tion)YH(,
such as who won.
)-1 LI( Because it learns, it can be supplied with the list of
Mind servers at startup, rather than having it pre-coded.)LO(
)0 P(
In a WWM imple)HY(men)HY(ta)HY(tion)YH(,
each Nested server has a list of Mind URLs,
either hard-coded
or passed to it at startup.
So the Nested server )I(looks)ES( like a
Mind)Sb(AS)Es( server
co-ordi)HY(nat)HY(ing)YH( many Mind servers to make its deci)HY(sion)YH(.
But of course it is )I(not)ES( making the final deci)HY(sion)YH(.
It is merely )I(suggest)HY(ing)YH()ES( an action to the
master Mind)Sb(AS)Es( server that
coor)HY(di)HY(nates)YH(
the compe)HY(ti)HY(tion)YH( between the Nested servers them)HY(selves)YH(.
When the
master Mind)Sb(AS)Es( server is started up with a list of
Mind servers, it passes the list to each of the servers.
)0 P(
Consider the number of server queries
in a Nested WWM system.
The
master Mind)Sb(AS)Es( server is given
\240 )TT(x)ES( \240
and asked for an action
\240 )TT(a)ES(. \240
It sends
\240 )TT(x)ES( \240
to each Mind server.
Server
\240 )TT(i)ES( \240
looks at its Q-values and either suggests
an action directly,
or returns the URL of some server
\240 )TT(j)ES(. \240
Server
\240 )TT(j)ES( \240
is )I(not)ES( yet queried.
We wait to see if server
\240 )TT(i)ES( \240
can win the compe)HY(ti)HY(tion)YH(.
\201In fact, server
\240 )TT(j)ES( \240
may already have been queried sepa)HY(rately)YH(
for its )I(own)ES( action.\202
If server
\240 )TT(i)ES( \240
wins, then we query server
\240 )TT(j)ES( \240
and get an action,
which may be "Do what server
\240 )TT(k)ES( \240
does" and so on.
As well as allow)HY(ing)YH( the Nested server to return a Mind URL
instead of an action,
we also need the master server to )I(tell it)ES( the Mind URL
of the winner.
Remem)HY(ber)YH( that in Hier)HY(ar)HY(chi)HY(cal)YH( Q-learn)HY(ing)YH(,
the master server needs to know who won,
so it can put values on
Q\201x,i\202.
But of course it knows itself who won.
Here, the Nested server needs to know who won,
so it can put values on
Q)Sb(i)Es(\201x,k\202.
So it needs to be )I(told)ES( who won by the master server.
)0 P(
)0 3 80 H()WB 103 Sn( Each server calling a differ)HY(ent)YH( list of servers )EH()0 P(
In the basic model we just described,
all Mind servers can call
all other Mind servers in the list.
But in fact, the list could be differ)HY(ent)YH( for each server.
Each server could hard-code its own list of servers that it may call,
similar to how any hand-written Mind)Sb(M)Es(
server hard-codes its list of servers.
One confu)HY(sion)YH( would be, when we tell the server who won,
and we pass it the URL of a server that is not in its list
of possi)HY(ble)YH( servers to call.
)0 3 81 H()WB 104 Sn( Servers outside the AS loop )EH()0 P(
[)0 2 A(PhD)EA(, \247)0 2 A(18.1)EA(]
also shows how some of the Nested servers might actu)HY(ally)YH( be outside
the
Action Selec)HY(tion)YH( compe)HY(ti)HY(tion)YH(,
and simply )I(wait)ES(
to be called by a server that )I(is)ES( in the compe)HY(ti)HY(tion)YH(.
I call these "passive" servers.
We have the same with hand-coded Mind)Sb(M)Es( servers,
where some Mind servers may have to wait to be called by others.
A server may be "passive" in one Society
and at the same time "active"
\201i.e. the server is in the Action Selec)HY(tion)YH( loop\202
in a differ)HY(ent)YH( Society.
)0 P(
)0 2 82 H()WB 105 Sn( Feudal Mind servers)EH()0 P(
Watkins
)0 2 A([Watkins, 1989])EA(
defines a )I(Feudal)ES( \201or "slave"\202
Q-learner as one that accepts commands of the form
"Take me to state
\240 )TT(c)ES(". \240
On the WWM, these Feudal Mind servers will be driven by other Mind servers
that actu)HY(ally)YH( have pref)HY(er)HY(ences)YH( about what goal state to get to.
In Watkins' system,
the command is part of the current state.
Using the nota)HY(tion)YH(
\240 )TT( \201x,c\202,a -> \201y,c\202 )ES( \240
the slave
will receive rewards for tran)HY(si)HY(tions)YH( of the form:
\240 )TT( \201*,c\202,a -> \201c,c\202 )ES( \240
So the master server drives the slave server by )I(explic)HY(itly)YH()ES(
alter)HY(ing)YH(
the state for it.
We do not have to change our defi)HY(ni)HY(tion)YH( of the server above.
It receives
\240 )TT(x)ES( \240
and produces
\240 )TT(a)ES(. \240
It is just that the server driving it is construct)HY(ing)YH( the state
\240 )TT(x)ES( \240
rather than simply passing it on from above.
)0 P(
Another possi)HY(bil)HY(ity)YH( is that the real state
and the command are )I(explic)HY(itly)YH()ES( sepa)HY(rated)YH( in the server query,
which is what we allowed for with the
addi)HY(tional)YH( Mind)Sb(Feu)Es(
queries above.
Using either of these approaches,
the WWM model allows
for Mind servers that provide a service of taking one to explicit goal
states.
e.g. Moore
)0 2 A([Moore, 1990])EA(
has a concept of an explicit goal state,
and Kael)HY(bling)YH('s Hier)HY(ar)HY(chi)HY(cal)YH( Distance to Goal \201HDG\202 algo)HY(rithm)YH(
)0 2 A([Kael)HY(bling)YH(, 1993])EA(
addresses the issue of giving the server )I(new)ES( explicit goal
states at run-time.
)0 P(
)0 2 83 H()WB 106 Sn( The sub-symbolic Society of Mind )EH()0 P(
The Nested and Feudal models
are combined in
[)0 2 A(PhD)EA(, )0 2 A(Fig. 18.4)EA(]
showing the general
form of a Society of Mind based on Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH(.
It is suggested that Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH( would be one of the most
fruit)HY(ful)YH( areas in which to begin imple)HY(ment)HY(ing)YH( the WWM.
That is, we shall begin with a )I(sub)ES(-symbolic Society of Mind.
Indeed, the whole model of a
complex, over)HY(lap)HY(ping)YH(, compet)HY(ing)YH(, dupli)HY(cated)YH( Society of Mind
that we have devel)HY(oped)YH(
in this paper
is based on the gener)HY(alised)YH( form of a
Society of Mind based on
Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH(.
)0 2 84 H()WB 107 Sn( More complex commu)HY(ni)HY(ca)HY(tion)YH( between Mind servers)EH()0 P(
Baum's Economy of Mind
)0 2 A([Baum, 1996])EA(
has new Mind servers paying off the old ones to gain control.
This can still be done through our model.
The payments would be managed through the
Mind)Sb(AS)Es( server,
which receives payments through the W-value,
and redis)HY(tributes)YH( them through the
"Inform it about winner" command.
)0 2 85 H()WB 108 Sn( Is this a sub-symbolic model? )EH()0 P(
So far we have only defined a proto)HY(col)YH(
for conflict reso)HY(lu)HY(tion)YH(
where the AS server
makes queries of the Minds for differ)HY(ent)YH( numeric weights,
e.g. "How much will you pay to stop this happen)HY(ing)YH(?".
As discussed,
we may need further proto)HY(cols)YH( for more sophis)HY(ti)HY(cated)YH(, symbolic commu)HY(ni)HY(ca)HY(tion)YH(
among Mind servers.
We imagine that numeric weights will be easily gener)HY(ated)YH( by
)I(sub-symbolic)ES( Minds,
and are harder to gener)HY(ate)YH( in symbolic Minds.
This is because symbolic Minds often know )I(what)ES( they want to do
but not "how much" they want to do it.
Sub-symbolic Minds, who prefer certain actions
precisely because numbers for that action
have somehow risen higher than numbers for other actions,
may be able to say precisely "how much" they want to do some)HY(thing)YH(,
and )I(quan)HY(tify)YH()ES( how bad alter)HY(na)HY(tive)YH( actions would be
[)0 2 A(PhD)EA(, \247)0 2 A(5.2)EA(].
)0 P(
The Action Selec)HY(tion)YH( model may be some)HY(times)YH( limit)HY(ing)YH(, though,
in )I(demand)HY(ing)YH()ES( that the Mind
win the compe)HY(ti)HY(tion)YH( objec)HY(tively)YH(.
We cannot just )I(say)ES( that
"Mind M3 should always win
when the World is in state Z".
Instead, M3 has to )I(win the compe)HY(ti)HY(tion)YH()ES(
in that state.
The solu)HY(tion)YH( then is we can surround the Action Selec)HY(tion)YH(
by a Mind)Sb(M)Es( server
that )I(ensures)ES( that M3 wins in state Z.
)0 P(
It may be that in the )I(symbolic)ES( domain
we will make a lot more use of Mind)Sb(M)Es( servers,
and maybe even avoid Action Selec)HY(tion)YH( alto)HY(gether)YH(.
This might be a popular alter)HY(na)HY(tive)YH( to having Minds gener)HY(ate)YH( Weights
to resolve compe)HY(ti)HY(tion)YH(.
The draw)HY(back)YH(, of course, is that the
Mind)Sb(M)Es( server needs a lot of intel)HY(li)HY(gence)YH(.
It needs to under)HY(stand)YH( the goals of all the Mind servers.
This relates to the
"homuncu)HY(lus)YH(" problem,
or the need for an intel)HY(li)HY(gent)YH( head)HY(quar)HY(ters)YH(,
see [)0 2 A(PhD)EA(, \247)0 2 A(5)EA(].
)0 P() 0 0 PR()RP(
)0 1 86 H()WB 109 Sn( HTTP)WB 16 Sn( CGI using XML)EA( )EH()0 P(
We now ask what actual tech)HY(nol)HY(ogy)YH( should we use to
imple)HY(ment)YH( the WWM queries.
I suggest one over)HY(rid)HY(ing)YH( objec)HY(tive)YH(:
)0 P(
)4 OL()-1 LI( )I(That the WWM server authors be required to know
as little as possi)HY(ble)YH(
to get their servers on the network.)ES()LO(
)0 P(
The server authors are inter)HY(ested)YH( in AI,
not neces)HY(sar)HY(ily)YH( in networks.
They may only know AI program)HY(ming)YH( languages such as LISP.
They may have never written a network appli)HY(ca)HY(tion)YH(,
and they may not want to learn.
If we accept this crite)HY(rion)YH(,
then we should seek a )I(lowest-common-denom)HY(i)HY(na)HY(tor)YH()ES( approach
that will enable AI researchers to put their minds and worlds online
with the minimum of delay.
Ideally, we would have the follow)HY(ing)YH(:
)0 P(
)4 OL(
)-1 LI( The WWM server authors
can write their program in any program)HY(ming)YH( language,
accord)HY(ing)YH( to any program)HY(ming)YH( method)HY(ol)HY(ogy)YH(,
on any oper)HY(at)HY(ing)YH( system.
)-1 LI( The WWM server authors
do not have to install
any new soft)HY(ware)YH(, but can run their programs on exist)HY(ing)YH(
Web servers.
)-1 LI( World server authors do not have to learn any partic)HY(u)HY(lar)YH(
language for describ)HY(ing)YH( a world, such as VRML.
)-1 LI( The WWM server authors
do not have to learn any
new program)HY(ming)YH( language, such as Java, Perl,
or any other language.
)-1 LI( The WWM server authors
do not have to learn any
new network
or object-oriented program)HY(ming)YH( tech)HY(niques)YH(.
If all they know how to do is
read from stdin and write to stdout,
that should be suffi)HY(cient)YH( to write
a WWM server.
)LO(
)0 P(
As )0 2 A([Bosak and Bray, 1999])EA(
put it:
)I("schemes that rely on
complex, direct program-to-program inter)HY(ac)HY(tion)YH( have not worked well in prac)HY(tice)YH(, because they depend on a unifor)HY(mity)YH( of process)HY(ing)YH( that does
not exist.")ES(
)0 2 A([Paulos and Canny, 1996])EA(
make a strong call for a lowest-common-denom)HY(i)HY(na)HY(tor)YH( approach
in remote access to robots.
)0 2 87 H()WB 110 Sn( HTTP CGI )EH(
It is clear what the lowest-common-denom)HY(i)HY(na)HY(tor)YH( system is
on the network today, the system by which thou)HY(sands)YH( of program)HY(mers)YH(
have put programs and scripts online that were never online before.
It is CGI.
It is proposed that the lowest-common-denom)HY(i)HY(na)HY(tor)YH(
imple)HY(men)HY(ta)HY(tion)YH( of the WWM be done using CGI across HTTP.
Every AI program)HY(mer)YH(
has access to a HTTP server with CGI,
and every AI program)HY(mer)YH(
can write a program that receives stdin and writes to stdout.
)0 2 88 H()WB 111 Sn( XML )EH(
The data trans)HY(mit)HY(ted)YH( would not be HTML,
as in "normal" CGI scripts,
but would rather
be the server queries, responses, and asso)HY(ci)HY(ated)YH( data.
It is proposed that this be encoded as text-based XML
)0 2 A([Bosak and Bray, 1999])EA(
rather than in a binary format.
The advan)HY(tages)YH( would be:
)0 P(
)4 OL()-1 LI( XML is human-read)HY(able)YH( text, so it can be read and altered by hand
on any system.
One does not have to go through any partic)HY(u)HY(lar)YH( appli)HY(ca)HY(tion)YH(.
In partic)HY(u)HY(lar)YH(,
it is easy to get your own program \201in any language\202
to gener)HY(ate)YH( XML text output.
)-1 LI(As for reading XML input,
it is a stan)HY(dard)YH( format \201open tag, close tag\202
so that XML parsers are avail)HY(able)YH(
in most languages
\201and it is easy to parse your)HY(self)YH( in any case\202.
)-1 LI( It can be trans)HY(mit)HY(ted)YH( by CGI now
to and from exist)HY(ing)YH( Web servers,
with no extra modi)HY(fi)HY(ca)HY(tion)YH( needed.
)-1 LI( It is easy to extend the tag defi)HY(ni)HY(tions)YH(
\201and hence the server query defi)HY(ni)HY(tions)YH(\202
in future,
)I(without)ES( break)HY(ing)YH( the old defi)HY(ni)HY(tions)YH(.
)LO(
)0 3 89 H()WB 112 Sn( XML encod)HY(ing)YH( of server queries )EH(
An example of an XML-encoded query would be as follows.
The client asks the mind server to set up a new run,
telling it what world we will be running it in.
HTTP CGI POST is used to send the data to the mind server,
so that the mind server receives the follow)HY(ing)YH( XML code on stdin:
)0 P(
)BQ()BQ() 6 81 PR(
40031
http://worldserver/currentruns/40031.html
)RP()QB()QB(
)0 P(
The mind server replies, assign)HY(ing)YH( the client a unique run ID.
The server writes to stdout:
)0 P(
)BQ()BQ() 6 78 PR(
5505
http://mindserver/currentruns/5505.html
)RP()QB()QB(
)0 P(
The client uses this unique ID in each subse)HY(quent)YH( request:
)0 P(
)BQ()BQ() 8 38 PR(
5505
x
)RP()QB()QB(
)0 P(
The state is simply a series of text char)HY(ac)HY(ters)YH( repre)HY(sent)HY(ing)YH( the state,
termi)HY(nated)YH( by the
\240 )TT()ES( \240
tag.
How to decode these char)HY(ac)HY(ters)YH( is some)HY(thing)YH( that
the servers have to agree among them)HY(selves)YH(.
The mind server returns an action:
)0 P(
)BQ()BQ() 7 28 PR(
a
)RP()QB()QB(
)0 P(
Again, the format of the action is some)HY(thing)YH( the servers have to agree on.
)0 P(
)0 3 90 H()WB 113 Sn( "AIML" )EH(
When we have
precisely expressed the server queries as XML,
we might call the result)HY(ing)YH( markup language
)BD("AIML")ES(
or "AI Markup Language".
)0 P(
Though it has to be noted that the name "AIML" is
currently being used
in a much more restricted domain
- It is being used
by the ALICE chatbot project
[)R12 2 A(alice)HY(bot)YH(.org)EA(]
as a means of allow)HY(ing)YH( users to define their own chat)HY(bots)YH(.
In this case, XML is being used to define the )I(program)ES( itself
rather than the data being passed back and forth.
A chatbot is only one form
of many possi)HY(ble)YH( types of WWM server,
so a name like "ChatML" or even "ElizaML" would have been
much more appro)HY(pri)HY(ate)YH(
than "AIML".
But crit)HY(i)HY(cism)YH( of this point aside, one inter)HY(est)HY(ing)YH( thing about ALICE
is that in trying to allow non-tech)HY(ni)HY(cal)YH( users
construct entire servers,
in some ways it takes 3rd party involve)HY(ment)YH(
even further than envis)HY(aged)YH( in this work.
)0 P(
The )I(Swarm)ES( project,
which aims to provide a stan)HY(dard)HY(ised)YH( simu)HY(la)HY(tor)YH(
for multi-agent worlds,
has also recently moved to XML
because of the restric)HY(tions)YH( inher)HY(ent)YH( in forcing the use of any
partic)HY(u)HY(lar)YH( program)HY(ming)YH( language
)0 2 A([Daniels, 1999])EA(.
Again, XML is used as a way of defin)HY(ing)YH( the envi)HY(ron)HY(ment)YH( and agents
and )I(avoid)HY(ing)YH( program)HY(ming)YH()ES(,
rather than as a way of commu)HY(ni)HY(cat)HY(ing)YH( between
sepa)HY(rate)YH( minds and worlds.
)0 2 A([Noda et al., 1998])EA(
is prob)HY(a)HY(bly)YH( the closest
previ)HY(ous)YH( work to the WWM, using a client-server design,
program)HY(ming)YH( language inde)HY(pen)HY(dent)YH(, trans)HY(mit)HY(ting)YH( ASCII strings.
)0 2 91 H()WB 114 Sn( Address)HY(ing)YH( )EH(
All requests to a WWM server
are requests to
a CGI program on a Web server:
)0 P(
)BQ() 1 29 PR(http://site/directory/program)RP()QB(
)0 P(
All argu)HY(ments)YH( \201includ)HY(ing)YH( the type of WWM request being sent\202
are passed in stdin.
)0 2 92 H()WB 115 Sn( Persis)HY(tent)YH( CGI )EH(
Normally, CGI is 1 process per request.
In a normal CGI request, input comes in on stdin,
)I(a new process is started)ES(,
output is gener)HY(ated)YH( on stdout,
and then )I(the process termi)HY(nates)YH()ES(.
Here, though,
we have a WWM server program
where we want to send it
)I(multi)HY(ple)YH()ES( requests
at differ)HY(ent)YH( times
over the course of a long run.
The ques)HY(tion)YH( is:
How do we main)HY(tain)YH( state in between requests?
)0 P(
)4 OL()-1 LI()BD( Save to disk and Restore - )ES(
The first issue is whether we can main)HY(tain)YH( state )I(at all)ES(.
The lowest-common-denom)HY(i)HY(na)HY(tor)YH( approach
would be for the program)HY(mer)YH( to
)I(save the state)ES( of their program
to disk after each WWM request,
and then )I(restore)ES( it \201from disk\202
when the next request comes in.
All program)HY(mers)YH( can do this, though it may be some work.
It is also very inef)HY(fi)HY(cient)YH(, start)HY(ing)YH( the program again from scratch
for each new request.
But with power)HY(ful)YH( machines, this
might not matter greatly.
The impor)HY(tant)YH( point is that the AI program)HY(mer)YH(
can save and restore the state
without learn)HY(ing)YH( any new program)HY(ming)YH( tech)HY(niques)YH(.
)0 P(
)-1 LI()BD("Persis)HY(tent)YH( CGI" - )ES(
The second issue is whether an )I(effi)HY(cient)YH()ES( WWM server can be built.
For example, one where the "Start run" request starts a process
running that does )I(not)ES( termi)HY(nate)YH( when the "Start run" request
termi)HY(nates)YH(.
Later CGI requests simply talk to this
inde)HY(pen)HY(dently)YH(-running process.
Finally, the "End run" CGI request termi)HY(nates)YH( the process.
)0 P(
It is no surprise that
)BD(this is actu)HY(ally)YH( a well-known issue with CGI programs,)ES(
and there are many approaches
to it
discussed in the CGI commu)HY(nity)YH(,
espe)HY(cially)YH( where scripts talk to large )I(databases)ES(.
How exactly to do it
depends on the program)HY(ming)YH( language and
server used, and
)BD(there is no stan)HY(dard)YH( solu)HY(tion)YH(.)ES()LO(
)0 P(
It is not the job of the WWM to propose a solu)HY(tion)YH(
to the problem of persis)HY(tent)YH( CGI.
WWM server authors should be able to use any of the tech)HY(nolo)HY(gies)YH(
that the CGI commu)HY(nity)YH( propose.
Here we simply note that for an )I(effi)HY(cient)YH()ES( WWM server
the server author may need
to learn some
network program)HY(ming)YH(, which is some)HY(thing)YH( we wanted to avoid.
But this is not neces)HY(sary)YH( to set up a WWM server )I(at all)ES(,
which can be done using the save-to-disk method.
)0 P(
The AI program)HY(mer)YH( might get the server online )I(initially)ES(
using save-to-disk,
and maybe some)HY(time)YH( later, after learn)HY(ing)YH( some
network program)HY(ming)YH(,
convert to a persis)HY(tent)YH( process.
The client would not notice any differ)HY(ence)YH(
\201except a speed improve)HY(ment)YH(\202.
)0 P(
)0 2 93 H(Asyn)WB 116 Sn()HY(chronous)YH( worlds)EH(
The CGI model is client-driven.
Servers only respond to client requests.
So how could we have an )I(asyn)HY(chronous)YH( world)ES(
- a World that changes even when no client is making
requests to it?
Note this is actu)HY(ally)YH( the same issue as persis)HY(tent)YH( CGI above:
How can
we start a process
that does not end when the "Start run" request ends,
but that carries on,
and only ends when a new "End run" request is made?
)0 P(
It is also the same issue as:
If the client )I(never)ES( issues an "End run" command,
can we )I(time it out)ES( if we haven't received queries from it
in a long time.
This would be impor)HY(tant)YH( to relin)HY(quish)YH( control of a shared resource,
e.g. a robot
)0 2 A([Stein, 1998])EA(.
This could still be client-driven:
The old client gets timed out when the new client makes its
"Start run" attempt.
)0 P(
There is a similar "quick and dirty"
way of making an asyn)HY(chronous)YH( world
while still retain)HY(ing)YH( the simple client-driven model:
The )I(next)ES( time the client makes a request,
the server calcu)HY(lates)YH( the time since the last request,
and runs the world forward that number of timesteps
)I(before)ES( reply)HY(ing)YH(.
An alter)HY(na)HY(tive)YH(, but more complex way, would be
for the server to have its own "clock-tick" client,
which sends it a peri)HY(odic)YH( clock tick
using the "no op" command.
Each time it receives a clock tick it can update the world.
)0 P(
) 0 0 PR()RP(
)2 Al(
)BD()+4 Bf add FZ( Part 4 - Future work and Conclu)HY(sion)YH( )Ef()ES(
)Ea(
) 0 0 PR()RP(
)0 1 94 H()WB 117 Sn( Future)WB 17 Sn( work)EA()EH()0 P(
This is clearly the start of an enor)HY(mous)YH( program
of imple)HY(men)HY(ta)HY(tion)YH( and testing.
The major imme)HY(di)HY(ate)YH( issues to be solved are the follow)HY(ing)YH(:
)0 P(
)0 2 95 H()WB 118 Sn( Define the server queries )EH()0 P(
)4 OL()-1 LI(Nail down the list of server queries and responses above.
Is this list suffi)HY(cient)YH( to imple)HY(ment)YH( all current sub-symbolic
agent minds and worlds?
)-1 LI()BD("AIML" - )ES(
Precisely express these server queries and responses in XML.
Define which fields are manda)HY(tory)YH( and which are optional.
Define all error condi)HY(tions)YH(, error codes,
error text messages, etc.)LO(
)0 P(
)0 2 96 H(Define)WB 119 Sn( the client user view)EH()0 P(
Having defined the server queries and encoded them in XML,
)BD(server authors)ES( can now construct servers,
write programs to talk to servers,
display the results, etc.
So in that sense, our work is done.
)0 P(
But how about the )BD(client user)ES(?
How could they use the system, without having to write
programs to talk to servers?
Obvi)HY(ously)YH( some client soft)HY(ware)YH( is needed.
The basic ques)HY(tion)YH( is whether this soft)HY(ware)YH( can be provided
through exist)HY(ing)YH( Web browsers
or whether some plug-in
or sepa)HY(rate)YH( client appli)HY(ca)HY(tion)YH( needs to be installed
by each user.
)0 P(
)0 3 97 H()WB 120 Sn( Client use through exist)HY(ing)YH( Web browsers)EH(
Consider that we want the non-tech)HY(ni)HY(cal)YH( client user
to be able to do the follow)HY(ing)YH(:
)0 P(
)4 OL()-1 LI( Browse exist)HY(ing)YH( Mind and World servers.
)-1 LI( Specify a Mind server with a number of argu)HY(ments)YH(
\201some of which may be the addresses of other Mind servers\202,
and a World server with a number of argu)HY(ments)YH(.
)-1 LI( Be able to )I(link)ES( to this Mind/World combi)HY(na)HY(tion)YH( \201with argu)HY(ments)YH(\202
from a Web page, so that any 3rd party may run it.
)-1 LI( Run this Mind/World combi)HY(na)HY(tion)YH(.
)-1 LI( View the run in progress.
3rd parties can also view the run in progress.
)-1 LI( The run either lasts for a fixed time,
or until the user clicks some "End run" button.
)LO(
)0 P(
This could in fact all be done in exist)HY(ing)YH( Web browsers,
if we can assume the exis)HY(tence)YH( of an Inter)HY(net)YH( portal
to help the non-tech)HY(ni)HY(cal)YH( user:
)0 P(
)4 OL()-1 LI( Servers have URLs at which they describe what they do.
)-1 LI( A public site, that we shall call
\240 )TT(WWM.COM)ES(, \240
helps clients
construct WWM combi)HY(na)HY(tions)YH(.
It provides a HTML
form in which one can specify
the two remote servers,
plus argu)HY(ments)YH( for them.
)-1 LI( When you complete the form, it sets up a
)I(client URL)ES(
at
\240 )TT(WWM.COM)ES( \240
explain)HY(ing)YH( the argu)HY(ments)YH( and what servers are being used,
and provid)HY(ing)YH( a "Start run" button.
)0 P(
)-1 LI( When you \201or any 3rd party\202 click the "Start run" button
on this page,
a special )I(client program)ES( starts.
This program
will imple)HY(ment)YH( some algo)HY(rithm)YH(
making requests
to the remote Mind and World servers,
manag)HY(ing)YH( time-outs, repeated queries, and so on.
Perhaps this program actu)HY(ally)YH( runs on
\240 )TT(WWM.COM)ES('s \240
machine.
Or perhaps it is a Java applet
written by
\240 )TT(WWM.COM)ES( \240
and running on the client machine.
)0 P(
)-1 LI(Once the client user clicks the "Start run" button,
\240 )TT(WWM.COM)ES( \240
directs us onto a new page, specific to this partic)HY(u)HY(lar)YH( run:
)0 P(
)BQ() 1 54 PR(http://WWM.COM/user-no-5503/combination-no-7/run-no-20)RP()QB(
)0 P(
This provides links to the World display URL,
Mind display URLs, etc.
This run can be viewed by any 3rd party.
)0 P(
)-1 LI(Either the client program runs for
a fixed number of steps and then termi)HY(nates)YH(
\201in which case it could appear to the client user as a normal CGI script,
albeit a very long one\202,
or else click)HY(ing)YH( the button starts a
program that does not termi)HY(nate)YH(.
In the latter case
\240 )TT(WWM.COM)ES( \240
provides an "End run" button perhaps in the Java applet
or perhaps on the page above.
When clicked, this termi)HY(nates)YH( the program that "Start run" began.
In fact we want other people to be able to view the run
at the URL above,
but only the client user that started the run
\201which is )I(not)ES( neces)HY(sar)HY(ily)YH( user-no-5503\202
can termi)HY(nate)YH( it.
In which case we store infor)HY(ma)HY(tion)YH( on the client side,
e.g. as a cookie, or perhaps have a special URL:
)0 P(
)BQ() 1 63 PR(http://WWM.COM/user-no-5503/combination-no-7/run-no-20/uniqueid)RP()QB(
)0 P(
Presum)HY(ably)YH( the client user can book)HY(mark)YH( this, log out,
and wait for )I(weeks)ES(
before coming back and hitting "End run".
)LO(
)0 P(
)TT(WWM.COM)ES( \240
will have pages listing of all the combi)HY(na)HY(tions)YH( constructed on it,
perhaps sorted by World.
Using the "End run" infor)HY(ma)HY(tion)YH(,
\240 )TT(WWM.COM)ES( \240
may be able to )I(high)HY(light)YH()ES( combi)HY(na)HY(tions)YH( that scored well,
run "Top 10" lists and so on.
)0 P(
Servers have URLs as well,
and each server could have links to all the servers it calls,
all the servers that call it,
all the combi)HY(na)HY(tions)YH( it was ever part of
\201i.e. it would point to
many differ)HY(ent)YH( client URLs around the network\202,
and which of these combi)HY(na)HY(tions)YH( scored well.
)0 P(
)0 3 98 H()WB 121 Sn( Dedi)HY(cated)YH( client soft)HY(ware)YH( )EH(
While it should be possi)HY(ble)YH( to use the WWM through a
normal Web browser,
it should be possi)HY(ble)YH( to write a dedi)HY(cated)YH(
client appli)HY(ca)HY(tion)YH( that makes using it )I(easier)ES(
for non-tech)HY(ni)HY(cal)YH( client users
\201and prob)HY(a)HY(bly)YH( server authors too\202.
Ideally this soft)HY(ware)YH( would
still allow us, when we are finished, to
)I(link)ES( to a success)HY(ful)YH( Combi)HY(na)HY(tion)YH(
that can still be run by someone who does not have the soft)HY(ware)YH(.
Also conversely, click)HY(ing)YH( on a Combi)HY(na)HY(tion)YH(
in our Web browser would launch this soft)HY(ware)YH(.
)0 P(
)0 2 99 H()WB 122 Sn( Testing)EH(
To fully define the above,
we should build and test
many
differ)HY(ent)YH( types of WWM networks:
)0 P(
)4 OL()-1 LI( Imple)HY(ment)YH( all of the agent minds and worlds mentioned
in this paper,
includ)HY(ing)YH( Tyrrell's world,
Noda's soccer server,
a generic Q-learn)HY(ing)YH( mind,
generic Action Selec)HY(tion)YH( servers, etc.
)0 P(
)-1 LI( Imple)HY(ment)YH( all of the various alter)HY(na)HY(tive)YH( forms of WWM servers and
networks
described in this paper
- Mind)Sb(M)Es( servers,
Mind)Sb(AS)Es( servers,
World)Sb(W)Es( servers,
multi-level networks,
real robots,
shared virtual worlds,
world display URLs \201for virtual worlds and real robots\202,
time-outs,
synchronous and asyn)HY(chronous)YH( worlds,
learn)HY(ing)YH( servers,
auto)HY(mated)YH( searches with no user inter)HY(face)YH(, evolu)HY(tion)HY(ary)YH( searches,
etc.
)0 P(
)-1 LI( Take exist)HY(ing)YH( AI projects that have already been put online
)0 2 A([see Yahoo list of AI programs online])EA(
and put them online as WWM servers
- includ)HY(ing)YH( Eliza, MGonz, etc.
)0 P()LO(
)0 2 100 H()WB 123 Sn( Long-term prospects )EH(
If all of the above is solved,
we should have a scheme for imple)HY(ment)HY(ing)YH( the full promise
of the WWM for all sub-symbolic models of mind,
and many simple symbolic ones.
What, then, is the next step?
)0 P(
)4 OL(
)-1 LI( Imple)HY(ment)YH( more complex )I(symbolic)ES( models of mind
as networks of WWM servers.
Presum)HY(ably)YH( these will be more )I(high-band)HY(width)YH()ES(
than the schemes discussed in this paper.
The servers will commu)HY(ni)HY(cate)YH( by some )I(agent language)ES(,
rather than just by numeric values.
As discussed above, stan)HY(dar)HY(d)HY(is)HY(ing)YH( a high-level agent language
is diffi)HY(cult)YH(.
)0 P(
Within symbolic AI, DPS uses multi)HY(ple)YH(
)I(co-oper)HY(at)HY(ing)YH()ES( minds to solve one problem.
We can currently imple)HY(ment)YH( this on the WWM
using a top-level
Mind)Sb(M)Es( server
to collate multi)HY(ple)YH( Mind servers' results
to solve a problem.
There is scope, though, for expand)HY(ing)YH( the list of
server queries to more effi)HY(ciently)YH(
imple)HY(ment)YH( some of the DPS models, such as black)HY(board)YH( archi)HY(tec)HY(tures)YH(
and contract nets.
)0 P(
)-1 LI( Apply the model to more than just )I(behaviour)ES(.
Can we share / use /
partially-over)HY(ride)YH( other people's )I(repre)HY(sen)HY(ta)HY(tions)YH()ES(?
There may be appli)HY(ca)HY(tions)YH( to
)I(distributed memory across the network)ES(
)0 2 A([Porter et al.])EA(,
or
)I(symbol-ground)HY(ing)YH()ES( using multi)HY(ple)YH( repre)HY(sen)HY(ta)HY(tions)YH(.
Note that we can already imple)HY(ment)YH( some)HY(thing)YH( like this with the current system,
where the same input goes to multi)HY(ple)YH( Mind servers,
each of which may form its own repre)HY(sen)HY(ta)HY(tions)YH(.
Taking this further might involve a repre)HY(sen)HY(ta)HY(tion)YH(
spread over multi)HY(ple)YH( servers,
or servers passing repre)HY(sen)HY(ta)HY(tions)YH( to each other.
)0 P(
)-1 LI( Servers might send signals to each other
that are slightly inde)HY(pen)HY(dent)YH( of the current state.
For example, a flow of )I(emotions)ES( or )I(hormones)ES(
or exci)HY(ta)HY(tion)YH( or inhi)HY(bi)HY(tion)YH( flowing through the network
[e.g. )0 2 A(Maes, 1989)EA(,
)0 2 A(Maes, 1989a)EA(].
Perhaps some of this could be done with the
"Change mind strength" message above.
)0 P(
Or one could have servers construct)HY(ing)YH( new plans and thoughts
inde)HY(pen)HY(dent)YH( of the current state.
Perhaps "conscious)HY(ness)YH(" servers construct)HY(ing)YH( a flow of )I(narra)HY(tives)YH()ES(
through the network.
)0 P(
)-1 LI( Can we combine high-band)HY(width)YH( \201symbolic\202
and low-band)HY(width)YH( \201numeric\202 servers
in networks?
)0 P(
)-1 LI( Minds talking to Minds.
- As discussed,
we may have a mind server talking to another mind server
as its "world".
In this case we could have "real" soci)HY(eties)YH( of indi)HY(vid)HY(u)HY(als)YH(
instead of just soci)HY(eties)YH( of mind.
This may relate to exper)HY(i)HY(ments)YH( in autonomous language forma)HY(tion)YH(
)0 2 A([Steels and Kaplan, 1999])EA(,
trans)HY(mis)HY(sion)YH( of memes
)0 2 A([Dawkins, 1976])EA(,
and so on.
In fact, the first test of this system will prob)HY(a)HY(bly)YH( be in the domain
of language evolu)HY(tion)YH(
)0 21 1 A([Walshe, 2001])21 0 TN TL()Ec /AF f D(.
)LO(
) 0 0 PR()RP(
)0 1 101 H()WB 124 Sn( Conclu)HY(sion)YH()WB 18 Sn()EA()EH()0 P(
There are )I(two)ES( issues here - first,
that we need a system of decen)HY(tralised)YH( network AI minds,
and second a proposed proto)HY(col)YH( for it.
Even if the proto)HY(col)YH( here is not adopted,
the first part of
this paper
\201the need to decen)HY(tralise)YH( AI\202
stands on its own.
)0 P(
)0 2 102 H()WB 125 Sn( Endnote)WB 19 Sn()EA( - Showing the world what a mind looks like )EH()0 P(
If the WWM scheme becomes success)HY(ful)YH(,
much of the user popu)HY(la)HY(tion)YH( of the Inter)HY(net)YH(
will grad)HY(u)HY(ally)YH( become famil)HY(iar)YH( with minds made up of hundreds
or even thou)HY(sands)YH( of distributed compo)HY(nents)YH(;
minds that have little iden)HY(ti)HY(fi)HY(able)YH( head)HY(quar)HY(ters)YH(,
but are made up of a crowded collec)HY(tion)YH( of sub-minds,
dupli)HY(cat)HY(ing)YH(, compet)HY(ing)YH(, over)HY(lap)HY(ping)YH(, commu)HY(ni)HY(cat)HY(ing)YH(
and learn)HY(ing)YH(,
with
)I("alter)HY(na)HY(tive)YH(
strate)HY(gies)YH( constantly bubbling up, seeking atten)HY(tion)YH(, wanting to be given control of the body")ES(
[)0 2 A(PhD)EA(, \247)0 2 A(18.3)EA(].
)0 P(
Such models may be long famil)HY(iar)YH(
\201at least in theory\202 to AI researchers,
but they are not much under)HY(stood)YH( outside of AI.
As a result, outside of AI, people still tend to judge state)HY(ments)YH( such as
"The mind is a machine"
by the stan)HY(dards)YH( of machines )I(they)ES(
are famil)HY(iar)YH( with, such as, say, Microsoft Word.
The WWM scheme may help large numbers of people
expand their imag)HY(i)HY(na)HY(tion)YH( to think about
what a mind )I(could)ES( be.
)0 P(
) 0 0 PR()RP(
)0 1 103 H()WB 126 Sn( Acknowl)HY(edge)HY(ments)YH()WB 20 Sn()EA( )EH(
Thanks to my brother Richard
for encour)HY(ag)HY(ing)YH( me to pursue this project.
)0 P(
Thanks to Dave O'Connor,
Ciaran O'Leary,
Amanda Marsh,
David Sinclair and
Ray Walshe
for impor)HY(tant)YH( contri)HY(bu)HY(tions)YH( and discus)HY(sions)YH(.
)0 P(
Thanks to Eliz)HY(a)HY(beth)YH(, Thomas and James for putting up with my
absences.
) 0 0 PR()RP(
)WB NL NP(
)BR(
)+3 Bf add FZ()BD( Refer)HY(ences)YH()WB 21 Sn()EA( )ES()Ef(
)0 P(
Aylett, Ruth \2011995\202, Multi-Agent Plan)HY(ning)YH(: Modelling Execu)HY(tion)YH( Agents,
)I(Papers of the 14th Work)HY(shop)YH( of the UK Plan)HY(ning)YH( and Schedul)HY(ing)YH( Special Inter)HY(est)YH( Group)ES(.
)0 P(
Axelrod, Robert and Hamil)HY(ton)YH(, William \2011981\202,
The evolu)HY(tion)YH( of coop)HY(er)HY(a)HY(tion)YH(, )I(Science)ES( 211\2014489\202:1390-6.
)0 P(
Axelrod, Robert \2011984\202,
)I(The evolu)HY(tion)YH( of coop)HY(er)HY(a)HY(tion)YH()ES(.
)0 P(
Baum, Eric B. \2011996\202, Toward a Model of Mind as a Laissez-Faire Economy of Idiots,
)I(Proceed)HY(ings)YH( of the Thir)HY(teenth)YH(
Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Machine Learn)HY(ing)YH()ES(.
)0 P(
Blum)HY(berg)YH(, Bruce \2011994\202, Action-Selec)HY(tion)YH( in Hams)HY(ter)HY(dam)YH(: Lessons from Ethol)HY(ogy)YH(,
)I(Proceed)HY(ings)YH( of the Third Inter)HY(na)HY(tional)YH(
Confer)HY(ence)YH( on Simu)HY(la)HY(tion)YH( of Adap)HY(tive)YH( Behav)HY(ior)YH( \201SAB-94\202)ES(.
)0 P(
Bosak, Jon and Bray, Tim \2011999\202,
)R13 2 A(XML and the Second-Gener)HY(a)HY(tion)YH( Web)EA(,
)I(Scien)HY(tific)YH( Amer)HY(i)HY(can)YH()ES(, May 1999.
)0 P(
Brooks, Rodney A. \2011986\202, A robust layered control system for a mobile robot,
)I(IEEE Journal of Robotics and Automa)HY(tion)YH()ES(
2:14-23.
)0 P(
Brooks, Rodney A. \2011991\202, Intel)HY(li)HY(gence)YH( without Repre)HY(sen)HY(ta)HY(tion)YH(,
)I(Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH()ES( 47:139-160.
)0 P(
Brooks, Rodney A. \2011997\202,
)R14 2 A( From Earwigs to Humans)EA(,
)I(Robotics and Autonomous Systems)ES(, Vol. 20, Nos.
2-4, June 1997, pp. 291-304.
)0 P(
Brooks, Rodney A.;
Breazeal, Cynthia;
Marjanovic, Matthew;
Scas)HY(sel)HY(lati)YH(, Brian
and
Williamson, Matthew M. \2011998\202,
)R14 2 A( The
Cog Project: Build)HY(ing)YH( a Humanoid Robot)EA(,
)I(Compu)HY(ta)HY(tion)YH( for Metaphors, Analogy
and Agents)ES(,
Vol. 1562 of Springer Lecture Notes in Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH(, Springer-Verlag, 1998.
)0 P(
Brooks, Michael \2012000\202,
)R15 2 A(Global Brain)EA(,
)I(New Scien)HY(tist)YH()ES(, 24th June 2000.
)0 P(
Bryson, Joanna \2012000\202,
)R16 2 A(Cross-Paradigm Anal)HY(y)HY(sis)YH( of Autonomous Agent Archi)HY(tec)HY(ture)YH()EA(,
)I(Journal of Exper)HY(i)HY(men)HY(tal)YH( and Theo)HY(ret)HY(i)HY(cal)YH( Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH(
\201JETAI\202)ES( 12\2012\202:165-89.
)0 P(
Bryson, Joanna \2012000a\202,
)R16 2 A(Hier)HY(ar)HY(chy)YH( and Sequence vs. Full Paral)HY(lelism)YH( in Reac)HY(tive)YH( Action Selec)HY(tion)YH( Archi)HY(tec)HY(tures)YH()EA(,
)I(Proceed)HY(ings)YH( of the
Sixth Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Simu)HY(la)HY(tion)YH( of Adap)HY(tive)YH( Behav)HY(ior)YH( \201SAB-00\202)ES(.
)0 P(
Bryson, Joanna;
Lowe, Will and Stein, Lynn Andrea \2012000\202,
)R16 2 A(Hypoth)HY(e)HY(sis)YH( Testing for Complex Agents)EA(,
)I(Proceed)HY(ings)YH( of the NIST Work)HY(shop)YH( on Perfor)HY(mance)YH(
Metrics for Intel)HY(li)HY(gent)YH( Systems)ES(.
)0 P(
Clocksin, William F. and Moore, Andrew W. \2011989\202, Exper)HY(i)HY(ments)YH( in Adap)HY(tive)YH( State-Space Robotics,
)I(Proceed)HY(ings)YH( of the 7th
Confer)HY(ence)YH( of the Society for Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH( and Simu)HY(la)HY(tion)YH( of Behaviour \201AISB-89\202)ES(.
)0 P(
Daniels, Marcus \2011999\202,
)R17 2 A(Inte)HY(grat)HY(ing)YH( Simu)HY(la)HY(tion)YH( Tech)HY(nolo)HY(gies)YH( With Swarm)EA(,
)R18 2 A()I(Proceed)HY(ings)YH( of the
Work)HY(shop)YH( on Agent Simu)HY(la)HY(tion)YH(: Appli)HY(ca)HY(tions)YH(, Models, and Tools)ES()EA(,
Univer)HY(sity)YH( of Chicago, Oct 1999.
)0 P(
Darwin, Charles \2011859\202,
)I(The Origin of Species)ES(.
)0 P(
Dawkins, Richard \2011976\202,
)I(The Selfish Gene)ES(.
)0 P(
Diamond, Jared \2011997\202,
)I(Guns, Germs and Steel: The Fates of Human Soci)HY(eties)YH()ES(,
Jonathan Cape, London.
)0 P(
Digney, Bruce L. \2011996\202, Emer)HY(gent)YH( Hier)HY(ar)HY(chi)HY(cal)YH( Control Struc)HY(tures)YH(: Learn)HY(ing)YH( Reac)HY(tive)YH(/Hier)HY(ar)HY(chi)HY(cal)YH( Rela)HY(tion)HY(ships)YH( in Rein)HY(force)HY(ment)YH( Envi)HY(ron)HY(ments)YH(,
)I(Proceed)HY(ings)YH( of the
Fourth Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Simu)HY(la)HY(tion)YH( of Adap)HY(tive)YH( Behav)HY(ior)YH( \201SAB-96\202)ES(.
)0 P(
Gins)HY(berg)YH(, Matthew L. \2011991\202,
)R19 2 A(Knowl)HY(edge)YH( Inter)HY(change)YH( Format: The KIF of Death)EA(, )I(AI Maga)HY(zine)YH()ES(,
Vol.5, No.63, 1991.
)0 P(
Goertzel, Ben \2011996\202,
)I(The World)HY(Wide)HY(Brain)YH(:
Using the World)HY(WideWeb)YH( to Imple)HY(ment)YH( Glob)HY(ally)YH( Distributed Cogni)HY(tion)YH()ES(,
)R20 2 A(goertzel.org/papers/wwb.html)EA(
)0 P(
Gold)HY(berg)YH(, Ken;
Santar)HY(ro)HY(mana)YH(, Joseph;
Bekey, George;
Gentner, Steven;
Morris, Rose)HY(mary)YH(;
Sutter, Carl and
Wiegley, Jeff \2011996\202,
)R21 2 A(A Tele-Robotic Garden on the World Wide Web)EA(,
)I(SPIE
Robotics and Machine Percep)HY(tion)YH( Newslet)HY(ter)YH()ES(, 5\2011\202, March 1996.
)0 P(
Gold)HY(berg)YH(, Ken;
Chen, Billy;
Solomon, Rory;
Bui, Steve;
Farzin, Bobak;
Heitler, Jacob;
Poon, Derek
and
Smith, Gordon \2012000\202,
)R22 2 A(Collab)HY(o)HY(ra)HY(tive)YH( Tele)HY(op)HY(er)HY(a)HY(tion)YH( via the Inter)HY(net)YH()EA(,
)I( IEEE Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Robotics and Automa)HY(tion)YH(
\201ICRA-00\202)ES(.
)0 P(
Grefen)HY(stette)YH(, John J. \2011992\202, The Evolu)HY(tion)YH( of Strate)HY(gies)YH( for Multi-agent Envi)HY(ron)HY(ments)YH(,
)I(Adap)HY(tive)YH( Behav)HY(ior)YH()ES( 1:65-89.
)0 P(
Harvey, Inman;
Husbands, Philip
and Cliff, Dave \2011992\202,
Issues in Evolu)HY(tion)HY(ary)YH( Robotics,
)I(Proceed)HY(ings)YH( of the Second
Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Simu)HY(la)HY(tion)YH( of Adap)HY(tive)YH( Behav)HY(ior)YH( \201SAB-92\202)ES(.
)0 P(
Heylighen, Francis \2011997\202,
Towards a Global Brain:
Inte)HY(grat)HY(ing)YH( Indi)HY(vid)HY(u)HY(als)YH( into the World-Wide Elec)HY(tronic)YH( Network,
published in German in
Brandes and Neumann, eds., )I(Der Sinn der Sinne)ES(
\201Steidl Verlag, Gottin)HY(gen)YH(\202,
but avail)HY(able)YH( in English at:
)R23 2 A(pespmc1.vub.ac.be/papers/GBrain-Bonn.html)EA(
)0 P(
Holland, John H. \2011986\202,
Escap)HY(ing)YH( Brit)HY(tle)HY(ness)YH(:
The possi)HY(bil)HY(i)HY(ties)YH( of General-Purpose Learn)HY(ing)YH( Algo)HY(rithms)YH(
applied to Paral)HY(lel)YH( Rule-Based Systems,
in Michal)HY(ski)YH( et al., eds.,
)I(Machine Learn)HY(ing)YH(: an Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH( approach)ES(, Vol.2.
)0 P(
Humphrys, Mark \2011989\202,
The MGonz program,
)0 2 A(www.compapp.dcu.ie/~humphrys/eliza.html)EA(
)0 P(
Humphrys, Mark \2011991\202,
)0 2 A()I(The Objec)HY(tive)YH( evidence:
A real-life compar)HY(i)HY(son)YH( of Proce)HY(du)HY(ral)YH( and Object-Oriented Program)HY(ming)YH()ES()EA(,
tech)HY(ni)HY(cal)YH( report, IBM Ireland Infor)HY(ma)HY(tion)YH( Services Ltd.
)0 P(
Humphrys, Mark \2011997\202,
)0 2 A()I(Action Selec)HY(tion)YH( methods using Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH()ES()EA(,
PhD thesis, Univer)HY(sity)YH( of Cambridge,
Computer Labo)HY(ra)HY(tory)YH( \201Tech)HY(ni)HY(cal)YH( Report no.426\202,
)0 2 A(www.compapp.dcu.ie/~humphrys/PhD)EA(
)0 P(
Humphrys, Mark \2011997a\202,
)0 2 A( )EM( AI is possi)HY(ble)YH( .. but AI won't happen: The future of Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH()ES()EA(,
the "Next Gener)HY(a)HY(tion)YH(" sympo)HY(sium)YH(, the "Science and the Human Dimen)HY(sion)YH(" series,
Jesus College, Cambridge, Aug 1997.
)0 P(
Humphrys, Mark \2011999\202,
)0 2 A(Why on earth would I link to you?)EA(,
)I(The Irish Times)ES(, 15th Feb 1999.
)0 P(
Hutchens, Jason \201undated\202,
)I(How MegaHAL works)ES(,
)R24 2 A(amris)HY(tar)YH(.com.au/~hutch/megahal/How.html)EA(
)0 P(
Kael)HY(bling)YH(, Leslie Pack \2011993\202, Hier)HY(ar)HY(chi)HY(cal)YH( Learn)HY(ing)YH( in Stochas)HY(tic)YH( Domains,
)I(Proceed)HY(ings)YH( of the Tenth Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Machine Learn)HY(ing)YH()ES(.
)0 P(
Kael)HY(bling)YH(, Leslie Pack; Littman, Michael L. and Moore, Andrew W. \2011996\202,
Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH(: A Survey,
)I(Journal of
Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH( Research)ES( 4:237-285.
)0 P(
Karls)HY(son)YH(, Jonas \2011997\202, )I(Learn)HY(ing)YH( to Solve Multi)HY(ple)YH( Goals)ES(, PhD thesis, Univer)HY(sity)YH( of Rochester, Depart)HY(ment)YH( of Computer Science.
)0 P(
Lawrence, Steve;
Giles, C. Lee
and Bollacker, Kurt \2011999\202,
)R25 2 A(Digital Libraries and Autonomous Cita)HY(tion)YH( Index)HY(ing)YH()EA(,
)I(IEEE Computer)ES(, 32\2016\202:67-71.
)0 P(
Lin, Long-Ji \2011993\202, Scaling up Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH( for robot control,
)I(Proceed)HY(ings)YH( of the Tenth Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH(
on Machine Learn)HY(ing)YH()ES(.
)0 P(
Maes, Pattie \2011989\202, How To Do the Right Thing,
)I(Connec)HY(tion)YH( Science)ES( 1:291-323.
)0 P(
Maes, Pattie \2011989a\202, The dynam)HY(ics)YH( of action selec)HY(tion)YH(,
)I(Proceed)HY(ings)YH( of the 11th Inter)HY(na)HY(tional)YH( Joint Confer)HY(ence)YH( on Arti)HY(fi)HY(cial)YH(
Intel)HY(li)HY(gence)YH( \201IJCAI-89\202)ES(.
)0 P(
Martin, Fran)HY(cisco)YH( J.;
Plaza, Enric
and Rodriguez-Aguilar, Juan A. \2012000\202,
)R26 2 A( An Infras)HY(truc)HY(ture)YH( for Agent-Based Systems: an Inter)HY(a)HY(gent)YH( Approach)EA(,
)I(Inter)HY(na)HY(tional)YH( Journal of Intel)HY(li)HY(gent)YH( Systems)ES(
15\2013\202:217-240.
)0 P(
McCal)HY(lum)YH(, Andrew;
Nigam, Kamal;
Rennie, Jason
and
Seymore, Kristie \2012000\202,
)R27 2 A(Automat)HY(ing)YH( the Contruc)HY(tion)YH( of Inter)HY(net)YH( Portals with Machine Learn)HY(ing)YH()EA(,
)I( Infor)HY(ma)HY(tion)YH(
Retrieval Journal)ES( 3:127-163.
)0 P(
McFar)HY(land)YH(, David \2011989\202, )I(Prob)HY(lems)YH( of Animal Behaviour)ES(.
)0 P( Minsky, Marvin \2011986\202, )I(The Society of Mind)ES(.
)0 P(
Minsky, Marvin \2011991\202,
Society of Mind: a response to four reviews,
)I(Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH()ES( 48:371-96.
)0 P(
Minsky, Marvin \2011996\202,
How Computer Science Will Change Our Lives,
plenary talk,
)I(Arti)HY(fi)HY(cial)YH( Life V)ES(.
)0 P(
Moore, Andrew W. \2011990\202, )I(Effi)HY(cient)YH( Memory-based Learn)HY(ing)YH( for Robot Control)ES(, PhD thesis, Univer)HY(sity)YH( of Cambridge, Computer Labo)HY(ra)HY(tory)YH(.
)0 P(
Nilsson, Nils J. \2011995\202,
)R28 2 A( Eye on the Prize)EA(,
)I(AI Maga)HY(zine)YH()ES( 16\2012\202:9-17, Summer 1995.
)0 P(
Noda, Itsuki;
Matsub)HY(ara)YH(, Hitoshi;
Hiraki, Kazuo
and
Frank, Ian \2011998\202,
)R29 2 A( Soccer Server: A Tool for Research on Multi)HY(a)HY(gent)YH( Systems)EA(,
)I(Applied Arti)HY(fi)HY(cial)YH( Intel)HY(li)HY(gence)YH()ES( 12:233-50.
)0 P(
Numao, Masayuki \2012000\202,
)R30 2 A(Long-term learn)HY(ing)YH( in Global Intel)HY(li)HY(gence)YH()EA(,
)I(17th Work)HY(shop)YH( on Machine Intel)HY(li)HY(gence)YH( \201MI-17\202)ES(,
Bury St Edmunds, Suffolk.
)0 P(
Nwana, Hyacinth S. \2011996\202,
)R31 2 A(Soft)HY(ware)YH( agents: an overview)EA(,
)I( Knowl)HY(edge)YH( Engi)HY(neer)HY(ing)YH( Review)ES(, 11\2013\202.
)0 P(
Ono, Nori)HY(hiko)YH(; Fuku)HY(moto)YH(, Kenji and Ikeda, Osamu \2011996\202, Collec)HY(tive)YH( Behav)HY(ior)YH( by Modular Rein)HY(force)HY(ment)YH(-Learn)HY(ing)YH( Animats,
)I(Proceed)HY(ings)YH( of the Fourth
Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Simu)HY(la)HY(tion)YH( of Adap)HY(tive)YH( Behav)HY(ior)YH( \201SAB-96\202)ES(.
)0 P(
Paulos, Eric and Canny, John \2011996\202,
)R32 2 A(Deliv)HY(er)HY(ing)YH( Real Reality to the World Wide Web via Teler)HY(obotics)YH()EA(,
)I(IEEE Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Robotics and Automa)HY(tion)YH( \201ICRA-96\202)ES(.
)0 P(
Pell, Barney \2011993\202,
)R33 2 A()I(Strat)HY(egy)YH( Gener)HY(a)HY(tion)YH( and Eval)HY(u)HY(a)HY(tion)YH( for
Meta-Game Playing)ES()EA(,
PhD thesis, Univer)HY(sity)YH( of Cambridge, Computer Labo)HY(ra)HY(tory)YH(.
)0 P(
[PhD] is
short)HY(hand)YH( for
)0 2 A([Humphrys, 1997])EA(.
)0 P(
Pollack, Jordan B. \2011989\202,
)R34 2 A(No Harm Intended: A Review of the "Percep)HY(trons)YH(" expanded edition)EA(,
)I(Journal of Math)HY(e)HY(mat)HY(i)HY(cal)YH( Psychol)HY(ogy)YH()ES(, 33\2013\202:358-65.
)0 P(
Porter, Brad;
Rangaswamy, Sudeep
and
Shalabi, Sami \201undated\202,
)I(Collab)HY(o)HY(ra)HY(tive)YH( Intel)HY(li)HY(gence)YH( - Agents over the Inter)HY(net)YH()ES(,
Under)HY(grad)HY(u)HY(ate)YH( final year project,
MIT Labo)HY(ra)HY(tory)YH( of Computer Science.
)0 P(
Ray, Thomas S. \2011995\202,
)I( A proposal to create a
network-wide biodi)HY(ver)HY(sity)YH( reserve for
digital organ)HY(isms)YH()ES(,
Tech)HY(ni)HY(cal)YH( Report
TR-H-133,
ATR )R35 2 A(Human Infor)HY(ma)HY(tion)YH( Process)HY(ing)YH()EA(
Research Labo)HY(ra)HY(to)HY(ries)YH(, Japan.
)0 P(
Ring, Mark \2011992\202, Two Methods for Hier)HY(ar)HY(chy)YH( Learn)HY(ing)YH( in Rein)HY(force)HY(ment)YH( Envi)HY(ron)HY(ments)YH(,
)I(Proceed)HY(ings)YH( of the Second
Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Simu)HY(la)HY(tion)YH( of Adap)HY(tive)YH( Behav)HY(ior)YH( \201SAB-92\202)ES(.
)0 P(
Rosen)HY(blatt)YH(, Julio K. \2011995\202, DAMN: A Distributed Archi)HY(tec)HY(ture)YH( for Mobile Navi)HY(ga)HY(tion)YH(,
)I(Proceed)HY(ings)YH( of the 1995 AAAI Spring Sympo)HY(sium)YH( on Lessons Learned from
Imple)HY(mented)YH( Soft)HY(ware)YH( Archi)HY(tec)HY(tures)YH( for Phys)HY(i)HY(cal)YH( Agents)ES(.
)0 P(
Rosen)HY(blatt)YH(, Julio K. and Thorpe, Charles E. \2011995\202, Combin)HY(ing)YH( Multi)HY(ple)YH( Goals in a Behav)HY(ior)YH(-Based Archi)HY(tec)HY(ture)YH(,
)I(Proceed)HY(ings)YH( of the 1995 Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH(
on Intel)HY(li)HY(gent)YH( Robots and Systems \201IROS-95\202)ES(.
)0 P(
Russell, Peter \2012000\202,
)R36 2 A()I(The Global Brain Awakens)ES()EA(,
Element Books.
)0 P(
Simmons, Reid G.;
Goodwin, Richard;
Haigh, Karen Zita;
Koenig, Sven;
O'Sulli)HY(van)YH(, Joseph
and
Veloso, Manuela M. \2011997\202,
)R37 2 A(Xavier: Expe)HY(ri)HY(ence)YH( with a Layered Robot Archi)HY(tec)HY(ture)YH()EA(,
ACM SIGART )I(Intel)HY(li)HY(gence)YH()ES( maga)HY(zine)YH(.
)0 P(
Sims, Karl \2011994\202,
)R38 2 A(Evolv)HY(ing)YH( 3D Morphol)HY(ogy)YH( and Behav)HY(ior)YH( by Compe)HY(ti)HY(tion)YH()EA(,
)I(Arti)HY(fi)HY(cial)YH( Life IV Proceed)HY(ings)YH()ES(.
)0 P(
Singh, Satin)HY(der)YH( P. \2011992\202, Trans)HY(fer)YH( of Learn)HY(ing)YH( by Compos)HY(ing)YH( Solu)HY(tions)YH( of Elemen)HY(tal)YH( Sequen)HY(tial)YH( Tasks,
)I(Machine Learn)HY(ing)YH()ES(
8:323-339.
)0 P(
Sloman, Aaron and Logan, Brian \2011999\202,
)R39 2 A(Build)HY(ing)YH( cogni)HY(tively)YH( rich agents using the SIM_AGENT toolkit)EA(,
)I( Commu)HY(ni)HY(ca)HY(tions)YH( of the ACM)ES(,
43\2012\202:71-7, March 1999.
)0 P(
Spolsky, Joel \2012000\202,
"Things You Should Never Do, Part I",
Joel on Soft)HY(ware)YH(,
)R40 2 A(joel.edit)HY(this)HY(page)YH(.com)EA(
)0 P(
Steels, Luc and Kaplan, Fred)HY(eric)YH( \2011999\202,
)R41 2 A(Boot)HY(strap)HY(ping)YH( Grounded Word Seman)HY(tics)YH()EA(,
in Briscoe, Ted, ed.,
)I( Linguis)HY(tic)YH( evolu)HY(tion)YH( through language acqui)HY(si)HY(tion)YH(:
formal and compu)HY(ta)HY(tional)YH( models)ES(, Cambridge Univer)HY(sity)YH(
Press.
)0 P(
)R42 2 A(Steels, Luc)EA( \2012000\202,
)R43 2 A()WB 22 Sn( The Emer)HY(gence)YH( of Grammar in Commu)HY(ni)HY(cat)HY(ing)YH(
Autonomous Robotic Agents)EA(,
)I(Proceed)HY(ings)YH( of ECAI 2000)ES(.
)0 P(
Stein, Matthew R. \2011998\202,
)R44 2 A(Paint)HY(ing)YH( on the World Wide Web: The Puma)HY(Paint)YH( Project)EA(,
)I( IEEE / RSJ Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Intel)HY(li)HY(gent)YH( Robotic Systems
\201IROS-98\202)ES(.
)0 P(
)R45 2 A(Stone, Peter)EA(
and )R46 2 A(Veloso, Manuela)EA( \2012000\202,
)R47 2 A(Multi)HY(a)HY(gent)YH( Systems: A Survey from a Machine Learn)HY(ing)YH( Perspec)HY(tive)YH()EA(,
)I(Autonomous Robots)ES(, 8\2013\202, July 2000.
)0 P(
Sutton, Richard S. and Santa)HY(maria)YH(, Juan Carlos \201undated\202,
A Stan)HY(dard)YH( Inter)HY(face)YH( for Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH( Soft)HY(ware)YH(,
)R48 2 A(www-anw.cs.umass.edu/~rich/RLin)HY(ter)HY(face)YH(/RLin)HY(ter)HY(face)YH(.html)EA(
)0 P(
Taylor, Ken and Dalton, Barney \2011997\202,
)R49 2 A( Issues in Inter)HY(net)YH( Teler)HY(obotics)YH()EA(,
)I(Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Field and Service Robotics
\201FSR-97\202)ES(.
)0 P(
Tham, Chen K. and Prager, Richard W. \2011994\202, A modular Q-learn)HY(ing)YH( archi)HY(tec)HY(ture)YH( for manip)HY(u)HY(la)HY(tor)YH( task decom)HY(po)HY(si)HY(tion)YH(,
)I(Proceed)HY(ings)YH( of the Eleventh Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Machine Learn)HY(ing)YH()ES(.
)0 P(
Tyrrell, Toby \2011993\202,
)I(Compu)HY(ta)HY(tional)YH( Mech)HY(a)HY(nisms)YH( for Action Selec)HY(tion)YH()ES(, PhD thesis,
Univer)HY(sity)YH( of Edin)HY(burgh)YH(, Centre for
Cogni)HY(tive)YH( Science.
)0 P(
Walshe, Ray \2012001\202,
The Origin of the Speeches: language evolu)HY(tion)YH( through collab)HY(o)HY(ra)HY(tive)YH(
rein)HY(force)HY(ment)YH( learn)HY(ing)YH(,
submit)HY(ted)YH( to the
)I(6th Euro)HY(pean)YH(
Confer)HY(ence)YH( on Arti)HY(fi)HY(cial)YH( Life \201ECAL-01\202)ES(.
)0 P(
Watkins, Christo)HY(pher)YH( J.C.H. \2011989\202,
)I(Learn)HY(ing)YH( from delayed rewards)ES(, PhD thesis, Univer)HY(sity)YH( of Cambridge, Psychol)HY(ogy)YH(
Depart)HY(ment)YH(.
)0 P(
Weizen)HY(baum)YH(, Joseph \2011966\202,
)R50 2 A(ELIZA - A computer program for the study of natural language commu)HY(ni)HY(ca)HY(tion)YH( between man and machine)EA(,
)I(Commu)HY(ni)HY(ca)HY(tions)YH( of the ACM)ES( 9:36-45.
)0 P(
White)HY(head)YH(, Steven; Karls)HY(son)YH(, Jonas and Tenen)HY(berg)YH(, Josh \2011993\202, Learn)HY(ing)YH( Multi)HY(ple)YH( Goal Behav)HY(ior)YH( via Task Decom)HY(po)HY(si)HY(tion)YH( and
Dynamic Policy Merging, in Connell and Mahade)HY(van)YH(, eds., )I(Robot Learn)HY(ing)YH()ES(, Kluwer Academic Publish)HY(ers)YH(.
)0 P(
Wilson, Stewart W. \2011990\202, The animat path to AI,
)I(Proceed)HY(ings)YH( of the First Inter)HY(na)HY(tional)YH( Confer)HY(ence)YH( on Simu)HY(la)HY(tion)YH(
of Adap)HY(tive)YH( Behav)HY(ior)YH( \201SAB-90\202)ES(.
)0 P(
Wixson, Lambert E. \2011991\202, Scaling rein)HY(force)HY(ment)YH( learn)HY(ing)YH( tech)HY(niques)YH( via modu)HY(lar)HY(ity)YH(,
)I(Proceed)HY(ings)YH( of the Eighth Inter)HY(na)HY(tional)YH(
Confer)HY(ence)YH( on Machine Learn)HY(ing)YH()ES(.
)0 P(
Yahoo list of AI programs online,
)R51 2 A( yahoo.com/Recre)HY(ation)YH(/Games/Computer_Games/Inter)HY(net)YH(_Games/Web_Games/Arti)HY(fi)HY(cial)YH(_Intel)HY(li)HY(gence)YH()EA(
)0 P(Yahoo list of ALife programs online,
)R52 2 A(
yahoo.com/Science/Arti)HY(fi)HY(cial)YH(_Life/Online_Exam)HY(ples)YH()EA(
)0 P(
Yahoo list of robots online,
)R53 2 A( yahoo.com/Comput)HY(ers)YH(_and_Inter)HY(net)YH(/Inter)HY(net)YH(/Devices_Connected_to_the_Inter)HY(net)YH(/Robots)EA(
)0 P(
)WB NL /BO 0 D TC /Ba f D Bs /AU f D /UR () D RC ZF
()0 1 -1 H(The World-Wide-Mind)EH(
)0 2 -1 H(Table of Contents)EH()WB
ND 1 gt{Ts 3 mul Np 0()0 C()BD(The World-Wide-Mind)ES()0 1 TN()EA()BN}if
1 NH le{23(1\240\240)1 C( Intro)HY(duc)HY(tion)YH()WB 1 Sn( )23 1 TN()EA()BN}if
2 NH le{24(1.1\240\240)2 C( AI is too big a problem)24 1 TN()EA()BN}if
2 NH le{25(1.2\240\240)2 C( Dupli)HY(ca)HY(tion)YH( of Effort )25 1 TN()EA()BN}if
2 NH le{26(1.3\240\240)2 C( Unused agents and worlds )26 1 TN()EA()BN}if
2 NH le{27(1.4\240\240)2 C(Minds will be too complex to be fully under)HY(stood)YH()27 1 TN()EA()BN}if
1 NH le{28(2\240\240)1 C( The)WB 2 Sn( World-Wide-Mind)28 1 TN()EA()BN}if
2 NH le{29(2.1\240\240)2 C( Types)WB 3 Sn( of servers )29 1 TN()EA()BN}if
2 NH le{30(2.2\240\240)2 C( Types)WB 4 Sn( of Soci)HY(eties)YH( )30 1 TN()EA()BN}if
2 NH le{31(2.3\240\240)2 C(Types)WB 5 Sn( of users )31 1 TN()EA()BN}if
2 NH le{32(2.4\240\240)2 C(Using other people's agent worlds )32 1 TN()EA()BN}if
3 NH le{33(2.4.1\240\240)3 C(No)WB 6 Sn( user inter)HY(face)YH( )33 1 TN()EA()BN}if
2 NH le{34(2.5\240\240)2 C( Using other people's agent minds )34 1 TN()EA()BN}if
1 NH le{35(3\240\240)1 C( Further)WB 7 Sn( issues on agent minds)35 1 TN()EA()BN}if
2 NH le{36(3.1\240\240)2 C( Mind)Sb(AS)Es( server queries the Mind servers \201not Client\202 )36 1 TN()EA()BN}if
2 NH le{37(3.2\240\240)2 C( Client talks to the World \201not Mind server\202 )37 1 TN()EA()BN}if
2 NH le{38(3.3\240\240)2 C(Low-band)HY(width)YH( commu)HY(ni)HY(ca)HY(tion)YH( )38 1 TN()EA()BN}if
2 NH le{39(3.4\240\240)2 C(Numeric commu)HY(ni)HY(ca)HY(tion)YH( - Q-values and W-values)39 1 TN()EA()BN}if
2 NH le{40(3.5\240\240)2 C( The role of Mind)Sb(M)Es( servers)40 1 TN()EA()BN}if
2 NH le{41(3.6\240\240)2 C( What is the defi)HY(ni)HY(tion)YH( of state and action? )41 1 TN()EA()BN}if
1 NH le{42(4\240\240)1 C( Further)WB 8 Sn( issues on agent worlds)42 1 TN()EA()BN}if
2 NH le{43(4.1\240\240)2 C(Why not sepa)HY(rate)YH( World and Body servers? )43 1 TN()EA()BN}if
3 NH le{44(4.1.1\240\240)3 C( Chang)HY(ing)YH( the Body for the World )44 1 TN()EA()BN}if
3 NH le{45(4.1.2\240\240)3 C( Multi)HY(ple)YH( Bodies in the same World )45 1 TN()EA()BN}if
3 NH le{46(4.1.3\240\240)3 C( The joint World-Body model is no restric)HY(tion)YH()46 1 TN()EA()BN}if
2 NH le{47(4.2\240\240)2 C( What if the Mind cannot make sense of the World? )47 1 TN()EA()BN}if
2 NH le{48(4.3\240\240)2 C(Real robots)48 1 TN()EA()BN}if
2 NH le{49(4.4\240\240)2 C(Time)49 1 TN()EA()BN}if
2 NH le{50(4.5\240\240)2 C( The)WB 9 Sn( name "The World-Wide-Mind" )50 1 TN()EA()BN}if
1 NH le{51(5\240\240)1 C( How)WB 10 Sn( the WWM will be used in AI )51 1 TN()EA()BN}if
2 NH le{52(5.1\240\240)2 C( Divid)HY(ing)YH( up the work in AI )52 1 TN()EA()BN}if
2 NH le{53(5.2\240\240)2 C( Making AI Science - 3rd party exper)HY(i)HY(men)HY(ta)HY(tion)YH( )53 1 TN()EA()BN}if
2 NH le{54(5.3\240\240)2 C( Arti)HY(fi)HY(cial)YH( Selec)HY(tion)YH()54 1 TN()EA()BN}if
2 NH le{55(5.4\240\240)2 C( How 3rd party )I(AI researchers)ES( will use the scheme )55 1 TN()EA()BN}if
2 NH le{56(5.5\240\240)2 C( Bring every agent online )56 1 TN()EA()BN}if
1 NH le{57(6\240\240)1 C( Objec)HY(tions)YH()WB 11 Sn( to the model )57 1 TN()EA()BN}if
1 NH le{58(7\240\240)1 C( Miscel)HY(la)HY(neous)YH()WB 12 Sn( issues)58 1 TN()EA()BN}if
2 NH le{59(7.1\240\240)2 C( Hidden server insides )59 1 TN()EA()BN}if
2 NH le{60(7.2\240\240)2 C(Credit )60 1 TN()EA()BN}if
2 NH le{61(7.3\240\240)2 C( Learn)HY(ing)YH( servers )61 1 TN()EA()BN}if
3 NH le{62(7.3.1\240\240)3 C( Learn)HY(ing)YH( Temper)HY(a)HY(ture)YH( )62 1 TN()EA()BN}if
3 NH le{63(7.3.2\240\240)3 C( Q-Temper)HY(a)HY(ture)YH( and W-Temper)HY(a)HY(ture)YH()63 1 TN()EA()BN}if
1 NH le{64(8\240\240)1 C( Imple)HY(men)HY(ta)HY(tion)YH()WB 13 Sn( )64 1 TN()EA()BN}if
2 NH le{65(8.1\240\240)2 C( Short, limited-length, client-server trans)HY(ac)HY(tions)YH()65 1 TN()EA()BN}if
2 NH le{66(8.2\240\240)2 C( Client algo)HY(rithm)YH( )66 1 TN()EA()BN}if
3 NH le{67(8.2.1\240\240)3 C( The server may be involved in many runs )67 1 TN()EA()BN}if
3 NH le{68(8.2.2\240\240)3 C(The client controls time and may imple)HY(ment)YH( time-outs)68 1 TN()EA()BN}if
3 NH le{69(8.2.3\240\240)3 C( This is not a stim)HY(u)HY(lus)YH(-response model )69 1 TN()EA()BN}if
2 NH le{70(8.3\240\240)2 C( Mind)Sb(AS)Es( server algo)HY(rithm)YH( )70 1 TN()EA()BN}if
3 NH le{71(8.3.1\240\240)3 C( The Mind)Sb(AS)Es( server may also imple)HY(ment)YH( time-outs )71 1 TN()EA()BN}if
2 NH le{72(8.4\240\240)2 C( The servers \201and client soft)HY(ware)YH(\202 may imple)HY(ment)YH( any general-purpose algo)HY(rithm)YH( using the server queries)72 1 TN()EA()BN}if
1 NH le{73(9\240\240)1 C( List)WB 14 Sn( of server queries )73 1 TN()EA()BN}if
2 NH le{74(9.1\240\240)2 C( World server)74 1 TN()EA()BN}if
2 NH le{75(9.2\240\240)2 C( Mind server)75 1 TN()EA()BN}if
3 NH le{76(9.2.1\240\240)3 C(Addi)HY(tional)YH( Mind)Sb(L)Es( queries )76 1 TN()EA()BN}if
3 NH le{77(9.2.2\240\240)3 C(Addi)HY(tional)YH( Mind)Sb(i)Es( queries )77 1 TN()EA()BN}if
3 NH le{78(9.2.3\240\240)3 C(Addi)HY(tional)YH( Mind)Sb(Feu)Es( queries )78 1 TN()EA()BN}if
3 NH le{79(9.2.4\240\240)3 C(Addi)HY(tional)YH( Mind)Sb(AS)Es( queries )79 1 TN()EA()BN}if
1 NH le{80(10\240\240)1 C( How)WB 15 Sn( to imple)HY(ment)YH( some exist)HY(ing)YH( agent archi)HY(tec)HY(tures)YH( as networks of WWM servers)80 1 TN()EA()BN}if
2 NH le{81(10.1\240\240)2 C( Hand-coded program )81 1 TN()EA()BN}if
3 NH le{82(10.1.1\240\240)3 C( Initial test - Eliza Mind talks to Eliza World )82 1 TN()EA()BN}if
2 NH le{83(10.2\240\240)2 C( The Subsump)HY(tion)YH( Archi)HY(tec)HY(ture)YH()83 1 TN()EA()BN}if
2 NH le{84(10.3\240\240)2 C(Serial models)84 1 TN()EA()BN}if
3 NH le{85(10.3.1\240\240)3 C(Maes' Spread)HY(ing)YH( Acti)HY(va)HY(tion)YH( Networks )85 1 TN()EA()BN}if
2 NH le{86(10.4\240\240)2 C( Rein)HY(force)HY(ment)YH( Learn)HY(ing)YH( )86 1 TN()EA()BN}if
2 NH le{87(10.5\240\240)2 C( Hier)HY(ar)HY(chi)HY(cal)YH( Q-Learn)HY(ing)YH( )87 1 TN()EA()BN}if
2 NH le{88(10.6\240\240)2 C( Action Selec)HY(tion)YH( with a single query or multi)HY(ple)YH( queries )88 1 TN()EA()BN}if
2 NH le{89(10.7\240\240)2 C(Static measures of W)89 1 TN()EA()BN}if
2 NH le{90(10.8\240\240)2 C(Dynamic measures of W)90 1 TN()EA()BN}if
2 NH le{91(10.9\240\240)2 C( W-learn)HY(ing)YH( )91 1 TN()EA()BN}if
2 NH le{92(10.10\240\240)2 C(Strong and Weak Mind servers)92 1 TN()EA()BN}if
2 NH le{93(10.11\240\240)2 C( Match)HY(ing)YH( World state defi)HY(ni)HY(tion)YH( with Mind state defi)HY(ni)HY(tion)YH( )93 1 TN()EA()BN}if
3 NH le{94(10.11.1\240\240)3 C( "Islands" of compat)HY(i)HY(ble)YH( worlds )94 1 TN()EA()BN}if
3 NH le{95(10.11.2\240\240)3 C( The "island" of the phys)HY(i)HY(cal)YH( world )95 1 TN()EA()BN}if
3 NH le{96(10.11.3\240\240)3 C(Mind servers with differ)HY(ent)YH( senses in the same Society)96 1 TN()EA()BN}if
2 NH le{97(10.12\240\240)2 C( Global Action Selec)HY(tion)YH( deci)HY(sions)YH( )97 1 TN()EA()BN}if
2 NH le{98(10.13\240\240)2 C(Other Action Selec)HY(tion)YH( methods based on RL )98 1 TN()EA()BN}if
2 NH le{99(10.14\240\240)2 C( Other paral)HY(lel)YH( models )99 1 TN()EA()BN}if
2 NH le{100(10.15\240\240)2 C( The AS server remem)HY(ber)HY(ing)YH( the winner)100 1 TN()EA()BN}if
2 NH le{101(10.16\240\240)2 C(Dynam)HY(i)HY(cally)YH( chang)HY(ing)YH( collec)HY(tions)YH()101 1 TN()EA()BN}if
2 NH le{102(10.17\240\240)2 C( Nested Mind servers)102 1 TN()EA()BN}if
3 NH le{103(10.17.1\240\240)3 C( Each server calling a differ)HY(ent)YH( list of servers )103 1 TN()EA()BN}if
3 NH le{104(10.17.2\240\240)3 C( Servers outside the AS loop )104 1 TN()EA()BN}if
2 NH le{105(10.18\240\240)2 C( Feudal Mind servers)105 1 TN()EA()BN}if
2 NH le{106(10.19\240\240)2 C( The sub-symbolic Society of Mind )106 1 TN()EA()BN}if
2 NH le{107(10.20\240\240)2 C( More complex commu)HY(ni)HY(ca)HY(tion)YH( between Mind servers)107 1 TN()EA()BN}if
2 NH le{108(10.21\240\240)2 C( Is this a sub-symbolic model? )108 1 TN()EA()BN}if
1 NH le{109(11\240\240)1 C( HTTP)WB 16 Sn( CGI using XML )109 1 TN()EA()BN}if
2 NH le{110(11.1\240\240)2 C( HTTP CGI )110 1 TN()EA()BN}if
2 NH le{111(11.2\240\240)2 C( XML )111 1 TN()EA()BN}if
3 NH le{112(11.2.1\240\240)3 C( XML encod)HY(ing)YH( of server queries )112 1 TN()EA()BN}if
3 NH le{113(11.2.2\240\240)3 C( "AIML" )113 1 TN()EA()BN}if
2 NH le{114(11.3\240\240)2 C( Address)HY(ing)YH( )114 1 TN()EA()BN}if
2 NH le{115(11.4\240\240)2 C( Persis)HY(tent)YH( CGI )115 1 TN()EA()BN}if
2 NH le{116(11.5\240\240)2 C(Asyn)HY(chronous)YH( worlds)116 1 TN()EA()BN}if
1 NH le{117(12\240\240)1 C( Future)WB 17 Sn( work)117 1 TN()EA()BN}if
2 NH le{118(12.1\240\240)2 C( Define the server queries )118 1 TN()EA()BN}if
2 NH le{119(12.2\240\240)2 C(Define the client user view)119 1 TN()EA()BN}if
3 NH le{120(12.2.1\240\240)3 C( Client use through exist)HY(ing)YH( Web browsers)120 1 TN()EA()BN}if
3 NH le{121(12.2.2\240\240)3 C( Dedi)HY(cated)YH( client soft)HY(ware)YH( )121 1 TN()EA()BN}if
2 NH le{122(12.3\240\240)2 C( Testing)122 1 TN()EA()BN}if
2 NH le{123(12.4\240\240)2 C( Long-term prospects )123 1 TN()EA()BN}if
1 NH le{124(13\240\240)1 C( Conclu)HY(sion)YH()WB 18 Sn()124 1 TN()EA()BN}if
2 NH le{125(13.1\240\240)2 C( Endnote)WB 19 Sn( - Showing the world what a mind looks like )125 1 TN()EA()BN}if
1 NH le{126(14\240\240)1 C( Acknowl)HY(edge)HY(ments)YH()WB 20 Sn( )126 1 TN()EA()BN}if
/TE t D NP TU PM 0 eq and{/Pn () D showpage}if end restore