Previous release comparison

David Karger edited this page Nov 12, 2015 · 3 revisions

The following table compares feature gaps between Exhibit 3 and the previous release, Exhibit 2.2.0. This list will be updated as gaps are addressed.

Some of the features are marked as "no plans to implement" which suggests interested parties may want to develop and deploy them as Exhibit 3.0 extensions. They are likely to be too niche to include in the core of Exhibit 3, but discussion is welcome.


The expression language remains the same.

The Exhibit attribute-based configuration has changed for HTML5. A compatibility mode remains for Exhibits in XHTML files. HTML5 does not support XML namespaces, providing a new custom attribute mode in its stead. Moving from Exhibit 2.2.0 in XHTML to Exhibit 3 in HTML5 requires changing all attributes prefixed with ex: to be prefixed with data-ex- instead. In addition, all capital letters within the attribute name should be converted to a hyphen and lower case, e.g., ex:itemTypes becomes data-ex-item-types. The HTML5 data attribute API treats capitalization differently during document processing and when attribute access occurs, necessitating the change to hyphenation.

Anything used in a rel attribute has changed from using the / character to the - character. The / usage is deprecated; it will still work now but will not in the future. This mostly pertains to <link rel="exhibit-data" ...>.

Updated, native browser JSON libraries are now used. These implement a much stricter implementation of the JSON specification. A one off extension to upgrade JSON was added to the selection of Exhibit extensions. Otherwise, you may need to run your existing Exhibit JSON through JSONlint to re-qualify it for use with Exhibit 3.

Loading extensions should now be done using a <link> element instead of a <script> to allow Exhibit to load them in the right order. For example, loading maps should be done with <link rel="exhibit-extension" href="path/to/map/map-extension.js">.

A new component, the control panel, was added to Exhibit 3 to contain Exhibit-wide widgets, like the new bookmarking widget.

You no longer need a __history__.html file to accompany your Exhibit files.


Exhibit 2.2.0 feature Exhibit 3 status
Tile Fully implemented
Tabular Fully implemented
Thumbnail Fully implemented
Timeline Extension Fully implemented
Map Extension Partially implemented1,2
Chart Extension Implemented by Haystack group
Timeplot Extension Not yet implemented
Calendar Extension Not yet implemented
Editing Hooks provided, view not yet implemented

(1) The Map Extension no longer incorporates the OpenLayers or VirtualEarth, now Bing Maps, providers. Interested parties should be able to review the Google Maps v2 and v3 provider scripts to see how to include a mapping provider. Consider using MapQuest as a default tile service for OpenLayers.

(2) The Map Extension is designed to minimize dependence on the SIMILE Painter map icon-generating service. However, using icons that would load images from a host remote to the page using Exhibit will require using Painter due to browser security. For instance, if you were aiming to load images from Wikipedia into the map icons on your personally hosted Exhibit of architecture, you must either download and host the building images next to your Exhibit or settle for relying on the Painter service. (The only case this isn't true is if the image host allows CORS requests from your host, but due to the way this fails if CORS is disallowed, it hasn't been integrated.)


Exhibit 2.2.0 feature Exhibit 3 status
List Fully implemented
Cloud Fully implemented
Text Search Fully implemented
Numeric Range Fully implemented
Alphabetic Range Fully implemented
Hierarchical Fully implemented
Slider Fully Implemented1
Image in HEAD

(1) The Slider Facet can probably be better implemented using new elements available in HTML 5. The pre-HTML 5 version may be made available as a backwards compatibility headed towards deprecation.


Exhibit 2.2.0 feature Exhibit 3 status
Exhibit JSON Fully implemented
RDF/XML Fully implemented
Semantic MediaWiki Fully implemented
Tab-Separated Values Fully implemented
BibTeX Fully implemented
Facet Selection URL Obsoleted by bookmarking system


Exhibit 2.2.0 feature Exhibit 3 status
Exhibit JSON Fully implemented
Google Spreadsheet Fully implemented
Generic JSONP Framework Fully implemented
Babel-based1 Fully implemented2
Generic JSON Framework No plans to implement
Generic XML Framework No plans to implement
Embedded HTML Table Framework Fully Implemented
Generic HTML Table Framework No plans to implement3
RDFa No plans to implement4

(1) Babel-based importers include BibTeX, Excel spreadsheet, Exhibit JSON, Exhibit page, JPEG, N3, RDF/XML, Tab-Separated Values.

(2) While fully implemented, users must now supply a Babel installation URL to their Exhibit in order to take advantage of Babel's import web service. NB, public Babel services formerly provided by previous SIMILE project member organizations may be turned off in the future.

(3) The Exhibit 2.2.0 Generic HTML Table Framework for importing relied on an XPath content extractor built into Babel and faces the same Babel caveats for successfully running it.

(4) The RDFa importer loaded an externally hosted script from within itself. This qualifies it for being an extension instead.


Exhibit 2.2.0 feature Exhibit 3 status
Toolbox Fully implemented
Exhibit Logo Fully implemented
Resizable Element Fully implemented
Options Fully implemented
Collection Summary Fully implemented
Legend Fully implemented
Legend Gradient Fully implemented 1
Bookmark New to Exhibit 3
History Reset Development Tool New to Exhibit 3.0

(1) NB to developers, the Legend Gradient widget should be rewritten.


The localization system has changed significantly. All locales require a new key-value set to work. While all localizations have been converted to the new system, some new keys were introduced that could use some translation, and some of the old keys were never properly translated before. While those cases will still display in English, please let us know if you can help provide a translation.

Exhibit 2.2.0 locale Exhibit 3 status
English (en) Fully implemented
French (fr) Fully converted
German (de) Fully converted
Spanish (es) Fully converted
Dutch (nl) Fully converted
Norwegian (no) Fully converted
Swedish (sv) Fully converted

More coming.