Media Adaptors

everything works on all formats annotation robust locations robust hyperlink signing text extraction full-text indexing native viewing in browser install new one simply by copying JAR alongside main Multivalent.jar DVI, Plucker

Media Adaptors bridge existing concrete document formats into the system. Behaviors operate on an abstract definition of the document presented by media adaptors, enabling them to operate across all concrete types without modification. For example, the same few lines of code that implement the hyperlink behavior for HTML work on scanned page images, ASCII, manual pages, and document types yet to be supported (or invented).

Native support of a document format with a media adaptor yields several benefits. The document trees provide a uniform data structure for services such cross-type text searching and any-to-any document conversions. As opposed to OLE and other architectures that simply display another application within their own window, behaviors can deeply manipulate documents, sorting tables and incrementally reformatting to place annotations between lines, for instance. Native support is better than conversions, such as to HTML, because no one document format (especially HTML) can fully capture the semantic structure of the source format, and so information is lost; conversions have to be maintained as the original document is updated; and conversions may not be conveniently available when browsing other sites.

  1. PDF - Based on PDF 1.5. Annotatable with built-in tools.
  2. Scanned paper: XDOC - select and paste, annotate with incremental reformatting; based on ScanSoft OCR
  3. Scanned paper: PDA - select and paste, annotate with incremental reformatting; based on Caere's OCR
  4. HTML - HTML 3.2 (TABLE, FRAME, FORM) with extensive correction of erroneous markup, but not yet JavaScript, applet, plug-ins
  5. UNIX Manual Page - reads [tn]roff source, optional outline display
  6. TeX DVI - using Type 1 versions of TEX fonts only (no bitmaps)
  7. Apple II AppleWorks word processing
  8. native Multivalent hub - lists behaviors to applicable to all documents, those of particular genre, or single document
  9. ASCII - UNIX, Macintosh, and Windows line endings
  10. Perl POD - [for developers, it's an example of how to convert to HTML internally, on demand]
  11. Java .class - show methods and fields from compiled Java bytecode
  12. Zip - see contents, sort by name/size/date, extract files
  13. local directories - navigate around directory tree, sort by name/size/date
  14. FTP directories - marks up files and directories with links, automatically displays README
  15. hex dump - also extract strings from binary
  16. raw image - displays Java built-in types: PNG, JPEG, GIF. Also supports XBM. Participates in the Java Image I/O framework, so you can add new image types simply by adding a new JAR; for instance, the Java Advanced Imaging API adds JPEG 2000, TIFF, BMP and WBMP.