Chapter 7. Data Mining and freedom of access.

QOF separates the data from the application. Data can be handled, queried, modified, transformed, processed and calculated outside the limits of what the source application can support. This provides two main benefits:

Handling generic data. Users often need their data presented in specialised or unusual ways. It is a waste of resources for the application to implement these customised formats and it is inefficient for the user to have to wait for the application to support ever more specialised reports. QOF can build applications around the data using the QOF generator project. QOF provides the engine and a backend (QSF XML), and the generated code provides the front-end - a command line interface with SQL-type query handling. The command line interface itself is a cut-down version of pilot-QOF, man pages are included in this documentation.

Any QOF application can use any QOF object - once the application code is removed. QOF generator will be able to recreate enough C code to handle any QOF object based on the QSF XML exported by the original application, producing a C file that describes the QOF object and which can be used by any other QOF application. This should make data mining easier as customised applications can be developed quickly and easily. Create the C code for the objects from the XML, download a mini-application that links that C code against QOF, insert other objects from other sources and you can do whatever you need to do with the data. The custom application will be able to load any QSF file that describes the supported objects - no matter which application originally wrote the file.

7.1. Data mining within QOF

Recursive queries. The results of each query made within QOF can be saved to XML which can then be used to create the data set for the next query.

Additive queries. Data sets (QOfBooks) can be built up using a series of queries, constructing a larger data set. This allows fine control over exactly which records (entities) are included and excluded from the data set

Object transformations. QOF uses a generic format to describe objects from different applications in a standard way. The objects can also be translated from one application to another, allowing one data set to be constructed from disparate applications. Objects themselves can be copied between applications. Future releases of the QOF generator project will recreate the objects in C from exported XML. This will allow customised applications that handle existing objects natively, including objects from more than one source application.