wiki:Help/PluginDev

Plugin Development

ESTEST plugins include custom XQuery transforms that act on UR XML documents. These plugins extend the post-processing, visualization, converting capabilities, etc. of ESTEST tremendously. Anyone can write an ESTEST plugin since it is purely based off XQuery 1.0 and run independently of any single ESTEST server. With the help of a XQuery processor, the plugin downloads UR XML documents from any ESTEST server to the localhost cache and transforms them.

The transform can be customized to do almost anything with the UR XML data. Some example transforms include unit conversions, format conversions, extract certain data elements such as total energy, computing the atomic distances between atoms in the basis, calculating the volume of the unit cell. More advanced transforms could be 2d plotting transforms, proper band structure plots with paths based on symmetry, and interactive visualizations of the atomic basis.

Because of the freedom and level of customization available to developers of ESTEST plugins, describing how to develop them is much better accomplished through providing example rather than procedure. The input to plugins at least contains references to the UUIDs of UR XML documents. The output can be any plain-text format including XML and HTML.

(Loose) Guide to Writing Plugins

Although there are some rules created by the authors of ESTEST to define what constitutes a perfectly valid ESTEST plugin that can be executed and distributed from an ESTEST server; it is not necessary to know these to initially write a plugin transform for personal use. Plugin developers who want their work distributed, however, should read these rules carefully at the end of these guide(s).

XQuery based plugins

CGI based plugins

Last modified 6 years ago Last modified on 06/15/11 11:06:23