A PHP Topic Maps engine with persistent storage which supports ISO/IEC 13250-2 Topic Maps Data Model (TMDM).
2015/12/13: QuaaxTM 1.0 is released. See the changes log and download here. Note: This project will NOT be continued.
What is QuaaxTM?
QuaaxTM is a PHP Topic Maps engine which supports ISO/IEC 13250-2 Topic Maps Data Model (TMDM). The TMDM is a subject centric data model.
QuaaxTM implements the PHPTMAPI core and index interfaces. PHPTMAPI is based on the TMAPI specification and provides a standardized API for PHP 5 to access and process data held in a topic map.
QuaaxTM persists Topic Maps data using MySQL with InnoDB or MariaDB with XtraDB as storage engine and therefore benefits from transaction support and referential integrity.
- Topic Maps Data Model (TMDM) compliance,
- Duplicate suppression and duplicate removal,
- Automerging of topics (Topic::mergeIn(Topic $other)) and merging of topic maps (TopicMap::mergeIn(TopicMap $other)),
- Persistent storage of multiple topic maps,
- Import and export of XTM 2.0, XTM 2.1, and JTM 1.0; import of JTM 1.1 (QuaaxTMIO library),
- Export of CXTM (used for the syntaxes tests in the QuaaxTMIO library),
- memcached based MySQL / MariaDB result cache (currently only available in AssociationImpl::getRoles(), AssociationImpl::getRoleTypes(), TopicMapImpl::getAssociations(), and TopicMapImpl::getTopics()).
How can I get it?
Download release 1.0 which implements PHPTMAPI 2.0.1.
Browse the PHPTMAPI documentation for API usage (opens in new window).
QuaaxTM is licensed under the GNU Lesser General Public License.
Download package further contains
- A quick install guide (README) and examples (example.php),
- A comprehensive test suite including ensurance of PHPTMAPI 2.0.1 compliance,
- PHPTMAPI 2.0.1,
- QuaaxTMIO including an install guide (README) and a CXTM based test suite which also ensures TMDM compliance.
QuaaxTM's requirements are
- PHP >= 5.2 with SPL enabled (PHP >= 5.3 is recommended),
- MySQL >= 5.0 with InnoDB or MariaDB 5.5.35 with XtraDB enabled (prior versions of MariaDB should also work but are not tested).
- Optional: memcached and libmemcached based PECL extension for using the QuaaxTM MySQL / MariaDB query result cache. See http://memcached.org/, http://libmemcached.org/, and http://www.php.net/manual/en/book.memcached.php. Version 1.0 is tested against memcached 1.4.13-0ubuntu2, libmemcached 0.44-1.1build1, and PECL memcached extension 1.0.2-2 (see README for further details).
QuaaxTMIO's requirements are
"Quaax" is a made-up word - used by Andreas Stephan and Johannes Schmidt for various projects and purposes...