OMBase

OMBase is the working title for an implementation of a system similar to MBase, i.e. a database for based on::OMDoc.

Evaluation of MBase

 * unable to test demo locally, error messages
 * Online demo has less errors, but still some :-(
 * Seems to depend on old MySQL libraries
 * hard-coded dependencies on the OpenMath standard content dictionaries (for search heuristics?)
 * database schema corresponds to OMDoc's XML schema -- i.e. not a generic XML database
 * OMDoc is "relationalized" manually
 * (Advantage: any fragment of a document is easily accessible)
 * Term search uses pattern matching and heuristics (unlike MathWebSearch)
 * does not support versioning

Simple Features

 * generic XML database that stores documents and allows for accessing fragments via XPath queries
 * Add a cross-platform software layer for accessing the data (e.g. a RESTful web interface)
 * Revision / Version management; it should be possible to create patches and pass them around
 * Queries:
 * get document
 * get fragment (e.g. a symbol in a theory) by ID
 * get fragment by XPath

High-Level Features
High-level features that depend on certain markup languages (e.g. OMDoc) should be implemented in the software layer only -- not in the database, as the database should be a generic XML database.


 * for SciML-like languages (e.g. OMDoc)
 * Cross-references between different documents should be transparent when reading something in the database via its URI, e.g., when obtaining a theory, I should also get all theories it imports from.

See also our combined JOMDoc/OMBase Use Cases.

Steps
Implement OMDocStorage based on the PostgreSQL database behind SWiM
 * Start with SWiM's current DB layout
 * Evaluate PostgreSQL's XML features (partly done)
 * Versioning is already available in SWiM/IkeWiki
 * Restructure database (in parallel to SWiM's current layout):
 * one column per XML document (XML data type)
 * access smaller fragments via XPath
 * for SWiM (and potentially other applications): extract RDF not only on document, but also on fragment level
 * Add a RESTful interface to access documents/fragments/theories/...
 * later: connect MathWebSearch

Andrei Ioniţă is preparing this system in an internship from June to August 2007.