Seed Software
I. Description
Seed is java software distributed as a jar file, which generates uniformly at random
tree structures specified by the user using a grammar described in an XML file.
Seed was designed by Pierre-Cyrille Heam, from the University of
Franche-Comté, and by Cyril Nicaud from the University of Paris-Est
Marne-la-Vallée. It has been written by Cyril Nicaud.
II. Trying seed
III. Using seed
- To use seed on a description file named 'filename.xml' to generate
k random objects of size n, use the following command:
java -jar seed.jar filename.xml n k
-
The output is an XML file whose root tag is "trees". Children of the
root are k tags labelled by "tree" corresponding to the k random generations.
The XML description of each tree is quite explicit as the XML structure
encodes directly the tree structures.
-
If there are quantified variables in the specification
they appear at the beginning in the form
<exists value="x"/>
-
The standard output is used, so you can easily redirect the result in a file
or in a program using. For instance, to write the output in random.xml use:
java -jar seed.jar filename.xml n k > random.xml
- Changing k into -count gives the exact number of distinct objects of
size n statisfying the specification. For instance:
java -jar seed.jar LTL1.xml 20 -count
Indicates that there are 30,330,559,552,144 such LTL formulas.
- Changing k into -text generates one object that is written as a one line
text. It is mainly used to verify if the given specification behave as intended.
For instance
java -jar seed.jar LTL1.xml 20 -text
Could output
next(neg((a or (neg(b) until (neg((b until a)) or next(next((c or (a or next(a))))))))))
IV. Writting a specification
The specification must follow this DTD.
A complete set of examples is available here.
A complete tutorial is available to learn
how to use it.