Description | return |
The content of ActiveMath is made of OMDoc files, each contains mathematical items which have an identifier, a type, a metadata, and a textual part. The content of the OMDoc files is read using a simple interface which provides:
- List of the items by collections or theories
- Extraction of textual or metadata parts of items by id
- Queries for the relations from an item to the other items
- Queries for the relations to an item to the other items
This interface is provided, programmatically, by the MBaseRef interface.
The requirement to support the delivery to a classroom of 30 students implies a relatively high performance of the content storage, about 300 queries per second.
Current Implementations
The content storage of ActiveMath currently in use is called LuceneMBase, it uses the Lucene index engine as storage and query mechanism. It offers the index to be reloaded in order to support the incremental development of content typical of an authoring activity.
Challenges and Originality
Since ActiveMath combines individual OMDoc items so as to promote reuse of content by another instructor, the single-resource approach typical of most web-servers is not applicable and extraction methods have to be provided. Combined with the requirement to provide relations in both directions (e.g. for the search tool or tutorial component), the need for a database arises.
The current content store is not using a classical SQL database but the Lucene index engine since it provides a java-native high-performance query engine.