TODO items for tGenerator

Stephen W. Thomas
Last updated November 2010.


IMMEDIATE TODOs
------------------------------------------------------------------
- Make inputs overwritable on the command line
- Fix warning about number of authors (compute as we add authors?) 
- Make name of temporal schema an input
- Shred a single, non-temporal document (or, make a shred application)
- Create make file and run scripts
- Update documentation in file
- Use xmldiff to compare output of squash and output.final.xml
- Add txmllint to the list of checks for checkAll



LONG TERM TODOs
------------------------------------------------------------------
- Spilt functionality between multiple files; 2000 lines in one file
  is no good.
- Make everything more general, so that it can take in an aribtrary 
  XML document, a list of XPath expressions explaining what's temporal,
  and doesn't have hard-coded stuff everywhere. Would be really cool!
- Create wiki
- Add scaling factors to easily manipulate datasets
- Be more efficient with pool; only use on insert or change (not delete), and
  don't need to use with relate_items.
- Refactor common XML functionality from tGenerator and tXSchema into some
  kind of utilities package (like creating a DOM document).
- Possibly get rid of lots of compleixty in tGenerator by using squash; Simply
  output xml slices, and at the end, squash them together. complication:
  shredding the temporal doc? Maybe making shredding another tool that takes
  XPath expressions? Also, first need to fix Squash!



DONE (Left here for record keeping)
------------------------------------------------------------------
- Write checkRefs.pl, which does simple referential integrity
- Output XML slices, not just current version (works for relations)
- Need to solve this riddle: should related_items always point to 
  valid, currently existing items? If so, need to change code.
- Port to tDOM for ease and complexity reduction (Decided NOT to do)
- Change _item and _version to _RepItem and _Version, respectively
- Add <temporalRoot> header, footer (see email from Rui Nov 3)
- Get representational schema to validate against output.final.xml
- Get snapshot schema to validate against output.slices.xml (wrote validate script)
- Make sure outputXmlSlice and shredXml slice are consistent
- Ensure ref. integrity of each individual slice.
- Write tCorruptor, which takes a "clean" output.final.xml and 
  violates a constraint.
- Write man page (decided NOT to do)
- Add support for non-sequenced cardinality constraint (I think it works;
  check with Rui)
- Add isItem and originalElement attributes to each RepItem
- Create slice listings file
- Add repitem and version to catalog
- Making getXmlSlice more efficient
- Fix ref inte problems when we delete items (dangling pointers)
- Make sure ensureRelated doesn't point to myself
- Organize directory structure


