Friday, January 21, 2005

Xanadu in Code - in disconnected fashion

I've been reading a bit about Ted Nelson and his project Xanadu. Nelson is a character who seems to flit in and out of public view, seemingly hard to nail down - much like his Xanadu project. Inasmuch as intertexuality supercedes the intratextual, xanalogical structure supercedes our ideas of the relationships between/among documents/texts. In a sense, Nelson is after the Urtext as formulated in the consciousness, the perfect original as planned based upon both background and future-planned; the portmanteau in the "telescoping" sense that Robert Withington used: the meanings "slide" into each other, are mutually - aye, symbiotically - dependent.

Shift.

There are several ways that texts can "link" - whether truly xanalogical or not. Xanadu looks primarily at how text link within the sense of the text itself, secondarily at how they link in terms of "relation". Intertextuality delves more into the latter, with a firm hold on the former. Deeper still, within the terms of our linguistic ability to express ourselves - a pressing out of the Whorfian walls - lies the ability to link texts at the/a linguistic level. That is, a translation of sorts, changing a text not only in terms of language, but also in terms of paradigm and intent. Such is the shift we see among "code poets", just take a gander at Perl Poetry, for example. There are several concepts at play here: linguistic innovation, reflection, and artistic expression.

Of the above concepts, I assume that the only one that might bear brief introduction is reflection. Thus, you might take a brief look, a google search, etc. Here is a starting point.

Anyway, years ago (2002), I translated a poem from Wang Chih-Huan, at least as already translated by Wai-Lim Yip: Heron Tower. As an exercise, I quickly translated the poem into Java code - compilable, the poem formed the main execution routine and output itself. The code itself is nothing great (really even that good), but the purpose wasn't the result as much as it was the method. Below is the code, for those interested:


//#######################################################################################
//## 11/6/2002 Robert Pratte, rpratte@acacia.nodezero.net
//## This is a translation of Wang Chih-huan's "Ascend the Heron Tower"
//## character based translation by Wai-Lim Yip:
//## white sun follow mountain end
//## yellow river enter sea flow
//## to exhaust thousand mile sight
//## again up one more level tower
//#######################################################################################

public class HeronTower
{
//========================================
// Class methods pertaining to movement
//========================================
public static String follows (String passedLine_)
{
return ("follows " + passedLine_);
}

public static String enters (String passedLine_)
{
return ("enters " + passedLine_);
}

public static void exhausts (String passedLine_)
{
System.out.println (passedLine_);
}

public static class ascend
{
static String movement = "ascend";

static void again (String passedLine_)
{
System.out.println (movement + " again the " + passedLine_);
}
}

//========================================
// Main - this builds and executes the poem
//========================================
public static void main (String args[])
{
PoemObject mountain = new PoemObject ( "mountain" );
PoemObject sea = new PoemObject ( "sea" );
PoemObject tower = new PoemObject ( "tower" );
PoemObject sun = new PoemObject ( "sun" );
PoemObject river = new PoemObject ( "river" );

int mile = 0;

try
{
//====================================
// Begin poem execution
//====================================
sun.white (follows (mountain.tops));

river.yellow (enters (sea.flowing));

while (mile < 1000)
{
mile++;
}
exhausts ("to see for " + mile + " miles...");

ascend.again (tower.stairs);
//====================================
// End poem execution
//====================================
} // end try

catch (Exception e)
{
System.out.println ("Error: " + e + "\n");
} // end catch
} // end main
} // end class

//====================================
// Class for poem objects
//====================================
class PoemObject
{
public String tops;
public String stairs;
public String flowing;
public String baseObject;

PoemObject (String passedObject_)
{
//============================
// some of these words should
// "always" be modified
//============================
if (passedObject_ == "mountain") {
tops = passedObject_ + " tops";
} else if (passedObject_ == "sea") {
flowing = "flowing " + passedObject_;
} else if (passedObject_ == "tower") {
stairs = passedObject_ + " stairs";
} else {
baseObject = passedObject_;
}
}

public void white (String phrase_)
{
SceneColor color = new SceneColor ("white");
System.out.println (color.apply (baseObject + " " + phrase_));
}

public void yellow (String phrase_)
{
SceneColor color = new SceneColor ("yellow");
System.out.println (color.apply (baseObject + " " + phrase_));
}
} // end class

//====================================
// Class to "color" poem objects
//====================================
class SceneColor
{
public String instanceColor;

SceneColor (String passedColor_)
{
instanceColor = passedColor_;
}

public String apply (String passedLine_)
{
return (instanceColor + " " + passedLine_);
}
} // end class

0 Comments:

Post a Comment

<< Home