ebr modelebr modelebr modelebr model

EBR Process

“I'd like to attempt to clearly characterize the process in which we are engaged. This has three interdependent domains: Anne's design; Ewan's database, the backend; my middle and front ends. My parts mediate the other two. I construct JavaScript/CSS/HTML implementations of Anne's design. I take the XML representations of the db that Ewan delivers and XSLtransform them into the shape of my JS/CSS/HTML creations. I am the alchemist that transmutes base data into golden life. Because of the massive mutuality of the middle, front and back ends, my work will always be the last to be done, and any changes in either of the other parts ramifies into my domain.

... the three parts develop dialogically in the process of realization. Anne's design has morphed in response to my breathing life into her forms. And, more recently, Ewan has been modifying his XML output (the input for my XSL) in response to my attempts at actualizing the virtual ebr that resides in his domain.”
— me, email to collaborators

Constructing the Weave of Search Results

FOUR FORMS OF DATA; THREE TRANSFORMATIONS

(the output from Ewan's backend transformations)

Form 1 = XML

<results> <entries total="24"> ... <essay title="Stuttering Screams and Beastly Poetry" name="undigitized" uri="http://www.electronicbookreview.com/thread/musicsoundnoise/undigitized" primary_affiliation_index="0" date="09-01-2001" year="2001" relevance="1" review="true"> <authors> <author>Allison Hunter</author> </authors> <secondary_affiliations> <thread index="0" affiliated="false" /> <thread index="1" affiliated="false" /> <thread index="2" affiliated="false" /> <thread index="3" affiliated="false" /> <thread index="4" affiliated="false" /> <thread index="5" affiliated="true" /> <thread index="6" affiliated="false" /> <thread index="7" affiliated="false" /> <thread index="8" affiliated="false" /> </secondary_affiliations> <blurb>Allison Hunter writes on Douglas Kahn, a modern musicologist who takes in the noise of modern battle, recordings from the tops of trains and the interiors of coalmines, and the musicality of undigitized everyday noise.</blurb> </essay> ... </entries> </results>

Transform 1 = XSLt transforms XML into JS Vars embedded in HTML (on Server, delivered to Browser).

Form 2 = JavaScript Variables (array/list)

titles = new Array(); ... titles[9] = [ 0, "http://www.electronicbookreview.com/thread/musicsoundnoise/undigitized", "09-01-2001", 2001, "undigitized", 1, "Allison Hunter", "Stuttering Screams and Beastly Poetry", "Allison Hunter writes on Douglas Kahn, a modern musicologist who takes in the noise of modern battle, recordings from the tops of trains and the interiors of coalmines, and the musicality of undigitized everyday noise.", [ false,false,false,false,false,true,false,false,false ], false,false,false,true ]; ...

Transform 2 = Embedded JavaScript Variables transformed into JavaScript Object structure.

Form 3 = JavaScript Objects

entryObjects[9] = new Entry(9,titles[9]); ... entryObjects[9] = { this.index = 9; this.affil = 0; this.link = "http://www.electronicbookreview.com/thread/musicsoundnoise/undigitized"; this.date = "09-01-2001"; this.year = 2001; this.wordstring = "undigitized"; this.rel = 1; this.relRGB = rgb(109, 109, 80); this.author = "Allison Hunter"; this.title = "Stuttering Screams and Beastly Poetry"; this.blurb = "Allison Hunter writes on Douglas Kahn, a modern musicologist who takes in the noise of modern battle, recordings from the tops of trains and the interiors of coalmines, and the musicality of undigitized everyday noise."; this.affil2 = [false,false,false,false,false,true,false,false,false]; ... this.elem = makeElement("div", [["position", "absolute"], ["left", this.x + "px"], ["top", this.y + "px"], ["width", this.w + "px"], ["height", this.h + "px"], ["cursor", "pointer"]], null); this.elem.obj = this; this.elem.onmouseover = function () { this.obj.over(this); }; this.elem.onmouseout = function () { this.obj.out(); }; this.elem.onclick = function () { document.location.href = this.obj.link; }; ... }

Transform 3: JavaScript Objects transmuted into visible, interactive HTML Elements (to Anne's Design).

Form 4 = HTML/CSS Elements, with JavaScript Event Handlers (that communicate with JS Objects)

1
Allison Hunter
Stuttering Screams and Beastly Poetry
undigitized

<div id="base"> ... <div onmouseover="this.obj.over(this);" onmouseout="this.obj.out();" onclick="document.location.href = this.obj.link;" style="position: relative; left: 0px; top: 0px; height: 14px; cursor: pointer; width: 1074px; background-color: rgb(0, 0, 0); line-height:14px;"> <div style="position: absolute; left: 0px; top: 0px; width: 31px; height: 14px; background-color: rgb(204, 204, 51);"></div> <div style="padding: 0px 3px 0px 2px; position: absolute; left: 33px; top: 0px; clip: rect(0px, 67px, 14px, 0px); font-size: 9px; width: 62px; height: 14px; color: rgb(255, 255, 255); background-color: rgb(109, 109, 80); text-align: right;">1</div> <div style="padding: 0px 0px 0px 2px; position: absolute; left: 101px; top: 0px; clip: rect(0px, 113px, 14px, 0px); font-size: 9px; font-family:arial; width: 111px; height: 14px; background-color: rgb(204, 204, 51); color: rgb(0, 0, 0);">Allison Hunter</div> <div style="padding: 0px 0px 0px 2px; position: absolute; left: 215px; top: 0px; clip: rect(0px, 243px, 14px, 0px); font-size: 9px; font-family:arial; width: 241px; height: 14px; background-color: rgb(204, 204, 51); color: rgb(0, 0, 0);">Stuttering Screams and Beastly Poetry</div> <div style="padding: 0px 0px 0px 2px; position: absolute; left: 461px; top: 0px; clip: rect(0px, 67px, 14px, 0px); width: 65px; height: 14px; font-size: 9px; font-family:arial; background-color: rgb(204, 204, 51);">undigitized</div> <div style="position: absolute; left: 529px; top: 0px; width: 67px; height: 14px; background-color: rgb(59, 76, 84);"></div> <div style="position: absolute; left: 597px; top: 0px; width: 67px; height: 14px; background-color: rgb(76, 67, 50);"></div> <div style="position: absolute; left: 665px; top: 0px; width: 67px; height: 14px; background-color: rgb(59, 67, 50);"></div> <div style="position: absolute; left: 733px; top: 0px; width: 67px; height: 14px; background-color: rgb(73, 73, 56);"></div> <div style="position: absolute; left: 801px; top: 0px; width: 67px; height: 14px; background-color: rgb(84, 59, 50);"> <div style="border-top: 1px solid rgb(255, 102, 51); border-bottom: 3px solid rgb(204, 204, 51); overflow: hidden; margin-top: 4px; width: 100%; height: 1px;"></div> </div> <div style="position: absolute; left: 869px; top: 0px; width: 67px; height: 14px; background-color: rgb(61, 68, 84);"></div> <div style="position: absolute; left: 937px; top: 0px; width: 67px; height: 14px; background-color: rgb(76, 67, 59);"></div> <div style="position: absolute; left: 1005px; top: 0px; width: 67px; height: 14px; background-color: rgb(67, 67, 76);"></div> <div style="position: absolute; left: 1074px; top: 0px; height: 14px; background-color: rgb(204, 204, 51); width: 190px;"></div> </div> ... </div>