#
# BUGS/ISSUES
#
# 1. These classes parse an XML file.  Should we test the overall syntax
# 	of the file first?  I think there are XML files to do that if we
#	have an XML style sheet.
#
# 2. These class extract just a subset of the XML information that might
#	be in a file.  If 'extra' information is provided, is that an error?
#	Should we capture that 'extra' information in a standard manner?
#	If so, we should probably have these classes inherit from a base
#	class that defines generic XML information (attributes, text, etc)
#	
# 3. The semantics of how this class differs from the Pickled XML used in
#	EXACT may be unclear to the user.  In both cases, we refer to how
#	these classes are 'loaded' from XML.
#
# 4. I made a design decision to try to make these classes naturally follow
#	from the XML specification used with 'runexp'.  Thus, we need
#	to reconcile how these scripts relate to the EXACT EXIST database.
#
# 7. The XML specification of a 'results' file should be changed to make it
#	more specific to the results for a _single_ experiment.
#
# 8. Do we need to have the experimental trial store the type of the 
#    data elements?
#
# 9. When an experiment is run, the *results.xml file is generated based on
#	the name of the experiment file.  This is an error, as it should
#	be generated based on the experimental study name (which could default
#	to the prefix of the experimental study filename).  This 
#	discrepancy confuses this Python code, which does not necessarily
#	know about the XML that was used to generate the XML parse tree.
#
# 10. What convention should we use for function/method names?  Should we
#	use
#		level_names()
#	or
#		levelNames()
#	??
#
# 12. What formating style should be used with Python?  I've put two spaces
#	between method declarations in classes, because one didn't seem like enough...
#
# 13. What python statistics package should we integrate for experimental testing?
#	I think that simple summary statistics are available in some packages, but for
#	more powerful tests we need R.
#
# 14. Process warning information from config.xml and build.xml files.
#
# 15. Consider treating the scenario key as a tuple, which can be hashed.
#
# 17. Should we rename the controls/replication block to controls/replications?
#	That seems more natural.
#
# 18. Use 'glob' instead of 'find' in the 'exact' command.
#
# 19. Manage analysis value over-rides more dynamically.  (Revert to default
#	values.
#
# 20. Extend semantics of validation tool to include multiple
#	data blocks ... or a regular expression of experiment names
#	... or a 'foo' object to select experiment files...
#
# 21. Create output directory per study/experiment/analysis
#
# 22. Raise an exception when two experiments are defined with the same
#	name in a study, or when two analyses are defined within the same
#	name in a study.
#
# 23. In general, the existing analysis tools will fail if two of the
#	experiments have the same name (e.g. when brought in from different
#	files).  This needs to be recognized, and in that case we need
#	to support an alternate naming convention for the internal
#	storage of results.
#




#
# 5. Should we rename 'analyze' to 'analysis'?  That seems a better naming
#	convention.  But perhaps the question is whether the 'analyze' block
#	contains multiple tests, or whether we should have a separate
#	'analysis' block for each test/analysis that we want to do... Hmmm.
#
# WEH - I've started using the 'analysis' block semantics, and each
#	analysis is independent

#
# 6. Make I/O controlable at a global level, to enable a 'quiet' mode.
#
# WEH - You can reference the global_data.debug value to control
#	verbosity at a very coarse level.

#
# 11. How are we going to organize these objects and functions into the exact
#	package?  (More fundamentally, is EXACT a package or module?)
#	Similarly, are these examples of how EXACT works, or are we going to
#	rework EXACT to make these the core experimental objects?
#
# WEH - I've setup an EXACT package.  However, we may want to further
#	decompose these files at a later date.  In particular, I could
#	imagine the set of analysis objects growing quite large.

#
# 16. Executions of an experiment may set the EXACT_DRIVER environmental 
#	variable, which can override a user-specified value.  We need to
#	manage this better.  If this is set in the environment should the
#	experimental value be used?  If so, then we need to reset this
#	environmental variable after finishing the experiment.
#
# WEH - I've assumed that the study's value of the driver over-rides the
#	user environment.  This provides predictable behavior for a user,
#	which I generally prefer.  The EXACT_DRIVER value is reset
#	after the execution of an experiment.
