wiki:usecase_papers

Managing Document Collections

Introduction

The exam generation use case described above can be seen as a special case of managing (here extracting custom documents from) a collection of primary (content) documents and creating secondary documents from them that aggregate parts of the content. These secondary documents can either be used for communication to the outside (payload documents) or for management of the document collections. In this terminology, the exams above can be seen as the payload documents derived from the content documents in the problem collection. That is where VDs may naturally come into play as we have seen above. A very simple application of VDs in payload documents are queries for a table of contents (collecting all sectioning elements in a narrative document), the references (collecting all ci- tations, sorting them, and completing them with information from a bibliographic database), or an index. In DocBook? [WM08] these aggregated document parts generated by XSLT stylesheets in the presentation phase, which may incur performance bottlenecks in practice, since this is not supported by indexing and caching. Moreover, VDs make separate concep- tually the issue of auto-aggregation and presentation, which allows to support workflows like previews/editing of aggregated document parts and materialization (e.g. of branches and tags) for archiving. Another simple application of VDs in technical payload documents is in XML-based lit- erate programming [Knu92], where program text is intermingled with its documentation and explanation in a single document. Here a VD can be used to extract the program text (with comments that cross-link to) from the literate source. As a concrete XML-based example take the XMLSpec-based source of the MathML3 Recommendation [ABC+09] from which we generate the MathML3 RelaxNG Schema. A VD would have considerably simplified this process. We have already seen Diff VDs as examples of management VDs for version management 12 in the last section. But VDs can also support proofreading, a very important task in the document life cycle. Often one wants to proofread special aspects of a document, e.g. whether certain technical terms are used consistently. For this we can quickly specify these terms as parameter to an XQuery that assembles all paragraphs that contain them. Then we can proofread (and edit) the text passages, commit them back to the collection, and move on to other proofreading tasks.

Realization