OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] Evolving Information by XML Element Mutations

[ Lists Home | Date Index | Thread Index ]

my view - as expressed before - you have to allow errors, chaos, and 
anarchy - it is healthy. fwiw i've notcied that the tighter i make our 
commercial systems the more the operators resist....

the second aspect is the inverse of traditional evolution. there is a 
sense in which evolution is the survival of the "fittest" - overused and 
poorly understood. but i think evolution is also opportunistic. and 
that's what the bugs showed. one did something strange, and another 
reacted opportunistically to the event.

so you need a stylesheet that can a) make mistakes; b) survive in spite 
of the mistakes; and c) take advantage of the mistakes (new environment)

part a) is probably best accomplished by an external agent that 
interferes with the passing on of accurate xml files. also the files 
would need to be a collectioin that gets combined for processing.

COLLECTION OF XML FILES (possibly faulty - loses them occassionally)
 -> EXTRACT FROM COLLECTION (possibly faulty - doesn't pick up all files)
 -> SINGLE XML FILE (possibly faulty aggregater - sometimes corrupts a file)
 -> SPLITTER (possibly faulty - loses them sometimes)
 -> STORAGE ROUTINE (possibly faulty - sometimes corrupts file)

this is the start of some real intelligence.



ps 400 generations is a long time - 6000 to 8000 years in human generations

Roger L. Costello wrote:

> Hi Folks,
> I am interested in hearing your thoughts on evolving information by 
> mutating XML elements.
> First, some relevant (and interesting) background information from a 
> book I am reading [1].
> "Where does diversity come from?  In 1983, microbiologist Julian Adams 
> discovered a clue when he brewed up a soup of cloned E. coli 
> bacteria.  He purified the broth until he had a perfectly homogeneous 
> pool of identical creatures.  He put this soup of clones into a 
> specially constructed chemostat that provided a uniform environment 
> for them - every E. coli bug had the same temperature and nutrient 
> bath.  Then he let the soup of identical bugs replicate and ferment.  
> At the end of 400 generations, the E. coli bacteria had bred new 
> strains of itself with slightly different genes.  Out of a starting 
> point in a constant featureless environment, life spontaneously 
> diversified."
> "A surprised Adams dissected the genes of the variants (they weren't 
> new species) to find out what happened.  One of the original bugs had 
> undergone a mutation that caused it to excrete acetate, an organic 
> chemical.  A second bug experienced a mutation that allowed it to make 
> use of the acetate excreted from the first.  Suddenly a symbiotic 
> codependence of acetate maker and acetate eater had emerged from the 
> uniformity, and the pool diverged into an ecology."
> Cool, aye?
> Now let me relate this to XML.  I have created an XSLT stylesheet 
> which processes Pickers on a Vineyard.  Each Picker makes a decision 
> on where to move based purely upon local information - a Picker will 
> move to the nearest lot containing the maximum grapes.  After a Picker 
> moves to a lot it eats some of the grapes on the lot, and stores the 
> remainder.  Each Picker operates independently, using local 
> information.  My XSLT stylesheet simply provides an implementation to 
> carry out these local decisions.  The state of this "Vineyard System" 
> is captured in an XML document. 
> I run my stylesheet over and over (creating hundreds of generations of 
> the Vineyard System).  I have a separate stylesheet which pictorially 
> displays the state of the Vineyard (i.e., pictorially displays the XML 
> document).  Watching the behavior of the Pickers is fascinating!
> I'd like to take the next step.  I would like to introduce small 
> mutations in the Vineyard System.  Currently my Vineyard System 
> is comprised of a bunch of "cloned" Pickers, i.e., the Vineyard 
> System is a "perfectly homogeneous pool of identical creatures". 
> Here is an example of a Picker:
> <picker id="203">
>     <location tract-ref="34" lot-ref="9"/>
>     <grape-wealth>25</grape-wealth>
>     <metabolism>4</metabolism>  
>     <vision>6</vision>
> </picker>
> Notes:
> 1. metabolism = the number of units of grapes that the Picker must eat 
> each step of the system, to maintain bodily health.
> 2. vision = the number of lots that the Picker can see.  Example, a 
> vision of 6 means that the Picker can see grapes that are 6 lots 
> distant, left, right, up, or down.
> 3. grape-wealth = the number of units of grapes that the Picker has 
> stored, after meeting his metabolic requirements.
> Here is an example of a lot:
> <lot tract-num"34" lot-num="9">
>     <grape>
>         <quantity>4</quantity>
>         <capacity>5</capacity>
>     </grape>
> </lot>
> Notes:
> 1. capacity = the maximum amount of grapes that the lot can hold.
> 2, quantity = the number of units of ripe grapes currently on the lot.
> The Vineyard is simply a bunch of these lots and Pickers:
> <vineyard>
>     <lot ..>...</lot>
>     <lot ..>...</lot>
>     <picker ...>...</picker>
>     <lot ..>...</lot>
>     <picker ...>...</picker>
>     <picker ...>...</picker>
>     ...
> </vineyard>
> With each step of the Vineyard System (one run of the stylesheet) this 
> Vineyard.xml document changes.
> Now that you've seen the way that I store the state of the Vineyard 
> System (Vineyard.xml), and I've given you some intuition on how my 
> stylesheet operates, do you have suggestions on how to introduce 
> mutations in the Vineyard System?  I can imagine mutations occurring 
> by means of the stylesheet periodically generating random, new 
> elements with random data.  For example:
> <vineyard>
>     <lot ..>...</lot>
>     <lot ..>...</lot>
>     <picker ...>...</picker>
>     <lot ..>...</lot>
>     <fjkele>30fkopcd0</fjkele>
>     <picker ...>...</picker>
>     <picker ...>...</picker>
>     ...
> </vineyard>
> We see the Vineyard System has mutated to include a new element, 
> <fjkele>, which has new data, 30fkopcd0.  What kind of mutation would 
> be required so that Pickers can start using this new element and 
> data?  Does the stylesheet need to undergo a mutation?  This seems 
> very complicated (especially trying to mutate a stylesheet).  There 
> must be a simpler way to introduce mutations.  What are your thoughts? 
> Oddly enough, this book that I am reading is helping me to appreciate 
> the importance of errors!  Here's another interesting paragraph from 
> the book:
> "Error keeps the glue of coevolutionary relationships from binding too 
> tightly into runaway spiral deaths, and therefore error keeps a 
> coevolutionary system afloat and moving forward.  Honor thy errors."
> I think that this topic is incredibly fascinating.  Hopefully some of 
> you will share my excitement.  /Roger
> [1] Out of Control - The New Biology of Machines, Social Systems, and 
> the Economic World by Kevin Kelly

fn:Rick  Marshall
tel;cell:+61 411 287 530


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS