Kargo, Inc. recently announced Morphis as an open-source wireless transcoding platform for application development supporting wireless devices, including mobile phones, handheld PCs and personal digital assistants. "Central to the Morphis solution is WAX (Wireless Abstract XML), a set of tools and an abstract markup language used to author content for wireless applications; it provides a general foundation for performing any type of content transformation (including binary, plain text and text markup) and is also able to perform multiple complex transformations, including industry standard XSLT-based transformations.
Morphis product description: "Morphis is an Open Source wireless content transcoder written in Java that enables developers to easily create wireless applications that reach all wireless devices and provides a framework to perform retrieval, translation and conversion of any document. Morphis WAX is a set of Morphis tools and an abstract markup language used to write content for wireless applications. Morphis provides an XML processing framework based on XML SAX event processing and XSLT. Documents may be processed through multiple filters, and multiple translations; custom SAX filters can perform logic based on XML SAX events, or complex logic can be written using XSLT extensions. WAX is extensible, and adding new components and language elements is easy. Morphis provides a general foundation for performing any type of simple or complex content transformation: binary, plain text, text markup, etc. It can process images, HTML, WML, or the Morphis wireless content language: WAX. It's also able to perform multiple complex transformations, including XSLT transformations via a pipeline SAX processing engine. Content may be cached for fast retrieval." Issued under GPL.
WAX description: "WAX is Wireless Abstract XML. The WAX language and components provide an easy mechanism for delivering the right content to wireless devices, with little effort. Morphis WAX provides direct translation into WML, HDML, HTML, and contains specific features to deliver the right set of text and images to the right devices. WAX enables developers to write the content and create wireless applications once while delivering a customized form of that content to any wireless device. WAX is easy to learn, providing for faster development of mobile applications over creating customized content in WML, HDML, and HTML...Morphis includes an XML database of devices, devices recognition rules, and device attributes and features. Morphis uses the registry to determine how best to deliver content, and may be extended by developers to create device groupings and deliver content best suited to these device groups. For example, if a bug is found in a family of devices, these devices can be grouped and fixed via stylesheets, Morphis filters, or any other device-aware application logic... Usually the last WAX processing step is to translate WAX language into a language best suited to the requesting device. This language may be HTML, HDML, WML or any other language understood by the device. WAX includes XSLT stylesheets to convert WAX into these browser-specific languages. Stylesheets may target a generic set of devices (e.g. WML 1.1), or target an individual device. Currently, Morphis includes stylesheets for Nokia browsers, Phone.Com 3.0 and 4.0 browsers, generic WML browsers, HDML browsers, HTML browsers (like AvantGo), cHTML browsers, NeoPoint devices. This list is constantly growing as the Morphis and WAX development community targets more and more devices. WAX used with Morphis as a foundation also provides for DIS - dynamic item selection for choosing the right image and text to server to each device. In addition, WAX can be easily extended to incorporate new devices and wireless languages as they are introduced -- ensuring the compatibility of WAX applications built today with the development of wireless platforms. The WAX language is translated to various wireless languages via XSL stylesheets. Currently stylesheets exist to support translation to WML, HDML, and HTML. WAX can be easily extended to incorporate other wireless languages as they develop and come into use... DIS is Dynamic Item Selection, a feature of Morphis WAX that enhances the delivery of the proper content to devices. Morphis will dynamically choose the image or text that is best suited for the device. This feature benefits developers by ensuring that each device will get the best available content - be it the right image size for the device or the right welcome message for the recipient. WAX also provides for full customization of which images and text are delivered to which devices if the developer wants to detail that customization."
SAX Translator: "The SAX Translator provides translation on HTML and XML streams using one or more filters which act on XML SAX events. This type of translator is useful for scenarios like: converting XML to XML or XHTML, converting HTML into XML or XHTML, converting HTML into another type of HTML, or converting XML into HTML. To use the SAX Translator you must tell Morphis you which to translate using the org.morphis.translator.SAXTranslator... the translator itself may have multiple filters. Each filter may also be associated with multiple parameters. Filters perform the actual translation, and are chained together to perform complex translation. Morphis includes a built-in XSLT filter for performing XSLT translation, and custom SAX translator filters may be written to perform custom behavior. Each filter is given a name that defines how it will be processed. SAX Translators will only look at filters whose type are 'translate'. [SAX Translators: XSLT Translation using the XSLTAdapter Filter:] XSLT translation is used to translate one flavor of XML (or, SAX-ified versions of HTML) into either XML, or HTML. Morphis accomplishes this by wrapping Apache's Xalan product with the XSLTAdapter SAX Filter. This functionality treats XSLT processing just like any other SAX filter. In fact, you can chain all of these filters together to come up with a custom processing pipeline. Since the pipeline is SAX based, processing is fast, and requires less overhead than a traditional DOM based implementation. Many different scenarios are possible with this model."
Principal references:
- Morphis web site
- Announcement 2001-01-31. - "Kargo Annouces Open-Source Wireless Transcoding Platform. Leading wireless infrastructure software company powers the next generation of wireless applications."
- Morphis WAX DTD (HTML)
- Morphis WAX DTD (text), [cache DTDs]
- Morphis FAQ document
- Morphis downloads