As part of the monitoring functionalities of KorAP, I have implemented a framework to allow logging and tracing of user and service activities. Whereas that alone represents a fulfilment of a design requirement imposed by licence agreements of the containing data (text and annotations alike), the framework also includes the possibility of recording users’ query activity. Thus, KorAP’s Auditing framework allows the retrieval of query information such as the most frequently formulated queries or the data/level of annotations that are queried most frequently. Not only does this allow KorAP to create usage statistics concerning the underlying data set, but it also enables the developers to improve KorAP’s usability for feature releases according to the data retrieved.
For example, in the case of null query (queries with no result) tracking, the data can be used to extend and improve documentation or even find new traps in users’ understanding and application of query language constructs. All recorded information is subject to legal data protection and in case it is published, the user data will be anonymized. When in production mode, KorAP will inform the users about the extent of record keeping and the usage of the data.
The API was designed with the following design concepts in mind:
- to be easily extendible for future developer convenience
- separation of duties (Auditing takes place outside of the system logic via Spring proxy calls)