L-system generator
Wandora's L-system generator is used to construct topic map graphs using formal grammar called L-systems. L-systems are generally known as iterative computational methods used to generate self-similar fractals, usually plants and other biological organisms.
Wandora's L-system generator starts with File > Generate > L-system generator.... Option opens a dialog with two tabs: L-system and Parser. By default the L-system tab is active. L-system tab is used to enter actual L-system to the generator. Below is a snapshot of L-system tab view in Wandora. Tab contains also drop-down-selector to select ready-made L-systems. User can also store his/her own L-system by clicking new button and entering name for the L-system into a dialog Wandora opens. Wandora stores L-systems to options.
L-system contains in Wandora
- An initiator
- One or more rules
Initiator is the first line in L-system. It is usually an alphabet or set of alphabets. Initiator initializes the L-system string. For example, the snapshot above has an L-system with initiator x.
L-system rules have always two parts: Predecessor and successor. Rule is executed whenever L-system generated string contains predecessor. Predecessor is replaced by successor string during the rule execution. For example, the snapshot L-system above contains one rule where predecessor is x and successor is a[xx].
L-system execution continues only limited time. Each execution step is called iteration. Text field below the L-system definition text area contains number of L-system iterations. As L-system string may grow exponentially large it is suggested you not to use more than 10 iterations unless you are sure about the outcome of L-system.
As iteration continues the initiator string is gradually changed by rules. For example examining the snapshot above initiator x is changed:
0: x 1: a[xx] 2: a[a[xx]a[xx]] 3: a[a[a[xx]a[xx]]a[a[xx]a[xx]]] 4: a[a[a[a[xx]a[xx]]a[a[xx]a[xx]]]a[a[a[xx]a[xx]]a[a[xx]a[xx]]]] etc.
As you notice, the string grows very rapidly.
L-systems itself carry no interpretation of generated string. Generated strings are semantic free, you could say. This reflects to Wandora's L-system generator feature also. L-system string generation is separated from the interpretation. Interpretation is handled by special L-system string parser that reads the generated string and interprets each token in the string.