OMBase
From MathWeb
OMBase is the working title for an implementation of a system similar to MBase, i.e. a database for OMDoc.
Contents |
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
Requirements
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.