The scripts used to generate content are parameterized - for example, they can produce content with varying levels of detail. This makes it easy to generate content for an adaptive course. This approach is probably useful for many other courses.
The knowledge base describes the taxonomy of a number of species of trees, and it describes the various traits of each species. It uses an XML syntax that is particular to its topic. Here's an excerpt:
<tree-info> <family name="pine"> <scientific-name>Pinaceae</scientific-name> <common-name>Pine</common-name> </family> ... <species name="douglas-fir"> <common-name>Douglas-fir</common-name> <scientific-name>Pseudotsuga menziesii</scientific-name> <parent-genus>douglas-fir</parent-genus> <misc> <fact unique="all"> Ranks first in the U.S. in timber production volume. </fact> </misc> <habitat> <fact>Often in large pure stands.</fact> </habitat> <form> <image unique="all">images/a_douglas_fir_form.jpg</image> <height>80'-200'</height> </form> <leaf> <image>images/a_douglas_fir_leaf.jpg</image> <fact>Length: 3/4" to 11/4"</fact> <fact>Spreading in 2 rows</fact> <fact>Blunt, very fragrant</fact> </leaf> <cone> <fact> Length: 2" - 31/2" </fact> <fact>Long, protruding three-pointed bract under each scale.</fact> <image>images/a_douglas_fir_cone.jpg</image> <image>images/pmenziesfruit.jpg</image> </cone> <bark> <image>images/a_douglas_fir_bark.jpg</image> <fact> Smooth and gray on young stems, becoming thickened, red-brown with ridges and deep furrows. </fact> </bark> </species> ... </tree-info>