Design looks better. Cleaner variables, and proper inherited classes. Explit construction of index ID and a run ID to name system output directories and files. Minor Terrier-specific additions.
Drives trec_eval correctly. Issues with system output resolved. Runs go to runs directory, and not runs/withinruns/runfile. Evals, similary go to eval. param[evals] and param[runs] disambiguated. They both point to files now. Their env[] counterparts are directories.
Working our way around Indri. Indri is driven by an xml parameters-file, which seems to be too strict on formatting. BeautifulSoup's prettify() output breaks Indri's indexing. It can't accept newlines within tags.
souper.py is a hack to get around this pain of not being able to run through Indri, an XML prettified by BeautifulSoup.