Projects: Atom: isoTope

What is isoTope

isoTope is a web-based application framework built around Atom and the AtomAPI (it currently supports Atom 0.3 and AtomAPI 0.9). It is written using PHP and Bas van Galen's phpdomxml. The main reason for this implementation is to create the groundwork in which Atom-facing applications can be built (as well as testing whether PHP can deliver an adequate XML-based environment).

Atom is an XML format for syndicating, archiving and editing episodic website, so its natural strength is in blogs. However, I don't believe Atom is limited to just blogs, I believe Atom can deliver an interface to other message-based environments - like annotation systems, email and usenet, discussion forums, and list / outline based tools. Even web-based configuration is a possibility.

Architecture and design

isoTope is designed to be modular, offering a set of services that can be plugged into the framework. The design also modularises the storage, so two identical services could be run using two different means of storage with no change to the service implementation (for example one using flat files, while the other a mySQL database).

Content-wise, this implementation currently supports plain text, HTML, OPML and OML.

Limitations

Being written in PHP, any XML-based application suffers from PHP's limitations in its XML handling. Notably, PHP lacks decent support of character sets other than plain ASCII and ISO-8859-1. This downside isn't a problem for me since all my material is in English, with very infrequent use of foreign character sets.

The default PHP parser isn't namespace-aware, and a lot of PHP's XML manipulations make assumptions about namespace usage. So namespace handling had to be manually-inserted.

License

isoTope is released under the GNU General Public License.

Requirements

isoTope requires PHP4.1 with the Expat parser. This tends to be a standard configuration for shared webhosting. The isoTope framework itself requires no databases, but each service running within the framework may require it.

Download

Version 0.1.2 of the framework is available for download as a zip file.

Changelog

Documentation

Ongoing: isoTope Documentation