An adaptive user interface for the Deriva platform.
Switch branches/tags
v0.0-rbk.0 v0.0-alpha.1.4 v0.0-alpha.1.3 v0.0-alpha.1.2 v0.0-alpha.1 v0.0-alpha.0 synapse-20180129.1 synapse-20180117.1 synapse-20171211.1 synapse-20171109.1 synapse-20170913.1 synapse-20170718.1 synapse-20170612.1 synapse-20170419.1 synapse-20170308.1 synapse-20161205.1 synapse-20161004.2 synapse-20161004.1 rbk-pre-faceting rbk-20180924 rbk-20180920 rbk-20180918 rbk-20180917 rbk-20180904 rbk-20180731 rbk-20180709 rbk-20180615 rbk-20180516 rbk-20180515 rbk-20180413 rbk-20180412 rbk-20180411 rbk-20180403 rbk-20180303 rbk-20180222 rbk-20180202 rbk-20171204 rbk-20171128 rbk-20171031 rbk-20171031-2 rbk-20171030 rbk-20171003 rbk-20171002 rbk-20170727 rbk-20170724 rbk-20170608 rbk-20170530 rbk-20170427 rbk-20170417 rbk-20170221 rbk-20170208 rbk-20170206 rbk-20170123 rbk-20161117 rbk-20161117-prod rbk-20161027 rbk-20161019 rbk-20161014 rbk-20161003 rbk-20160817 rbk-20160812 rbk-20160803 rbk-20160601.1 rbk-20160503.2 rbk-20160503.1 rbk-20140413 rbk-2016-03-16 pre-faceting gpcr-20180831.1 gpcr-20170612.1 gpcr-20170609.2 gpcr-20170306.1 gpcr-20161024.1 gpcr-20161007.1 gpcr-20161003.1 gpcr-20160822.1 gpcr-20160726.1 gpcr-20160628.1 gpcr-20160617.1 gpcr-20160610.1 gpcr-2016107.1 fb-2016-04-25 faceting-mvp-v1 facebase-20180824.1 facebase-20180806.1 facebase-20180727.1 facebase-20180605.1 facebase-20180511.1 facebase-20180403.1 facebase-20180311.1 facebase-20180111.1 facebase-20171115.1 facebase-20171023.1 facebase-20171008.1 facebase-20170913.1 cirm-20180523.1 cirm-20171110.1 cirm-20170901.1 cirm-20170802.1 cirm-20170609.1
Nothing to show
Clone or download
Failed to load latest commit information.
common fix check presence bug Sep 24, 2018
docs deleting dupe file + fixing anchor Sep 25, 2018
images MD help page v1 Jul 15, 2017
login Add Google Tag Manager scripts to Chaise apps Mar 28, 2017
record change css rule because of FF. add delay to show shae so you can't op… Sep 15, 2018
recordedit fix debug enabled [ci skip] Sep 6, 2018
recordset fix debug enabled [ci skip] Sep 6, 2018
scripts Updated bootstrap.js version from 3.2.0 to 3.3.7 Sep 4, 2018
search styling changes to search app to remove regressions that were created… Oct 16, 2017
sitemap use trailing slash '/' after record resource Apr 4, 2016
styles styling changes to search app to remove regressions that were created… Oct 16, 2017
test removed tests that verify null-option in popup modal Sep 24, 2018
viewer Updating jQuery in Viewer app from 1.11.1 to 3.3.1 Sep 4, 2018
views styling changes to search app to remove regressions that were created… Oct 16, 2017
wiki-images Added images for enabling pop-up in different browsers. Mar 1, 2017
.gitattributes Convert FA icons to BS glyphicons (#789) Nov 18, 2016
.gitignore aded done and wait Aug 15, 2018
.travis.yml merge master and remove branch change in .travis.yml Sep 14, 2018
LICENSE closes #52; add license file Mar 11, 2016
Makefile change jquery version of new apps to 1 Sep 6, 2018 update readme [ci skip] Aug 14, 2018
chaise-config-sample.js parent links navigable (documentation) Sep 7, 2018 Changed version to gitversion and added no directory handling Aug 23, 2017
karma.conf.js Updated bootstrap.js version from 3.2.0 to 3.3.7 Sep 4, 2018
mkdocs.yml create [ci skip] Aug 14, 2018
package.json change angular version to 1.6.9 Feb 27, 2018

Chaise Build Status

Computer-human access interface with schema evolution!


Chaise is a model-driven web interface (more formally a user agent) for data discovery, analysis, visualization, editing, sharing and collaboration over tabular data (more specifically relational data) served up as Web resources by the ERMrest service. Chaise dynamically renders relational data resources based on a small set of baseline assumptions, combined with its rendering heuristics, and finally user preferences in order to support common user interactions with the data. Chaise is developed in JavaScript, HTML, and CSS which runs in most modern Web browsers. This includes Chrome 13 (or better), Firefox 7 (or better), Internet Explorer 10 (or better including ME Edge), and Safari 6 (or better). Chaise is the front-end component of the Deriva Platform. Chaise utilizes [ERMrestJS] client library to interact with the Deriva services including including ERMrest, Hatrac, and ioboxd.

Dynamic Rendering Approach

Chaise is intended to support specific user interactions, as briefly introduced above (e.g., discovery, analysis, editing, etc.). As such, its presentation capabilities are narrowly scoped to support these interactions. Thus, Chaise makes a few assumptions about how users will interact with the underlying data.

A few representative but non-exhaustive examples of these assumptions include:

  • search, explore, and browse collections of data
  • navigate from one data record to the next by following their relationships (i.e., following links)
  • add, edit, remove data records from the database
  • create, alter, or extend the data model itself
  • subset and export data collections
  • share data with other users
  • annotate data records with tags or controlled vocabulary terms

Beyond these baseline assumptions about basic usage, Chaise makes almost no assumptions about the structure of the underlying data model, such as its tables, columns, keys, foreign key relationships, etc. Chaise begins by introspecting the data model by getting the catalog/N/schema resource from ERMrest. The schema resource includes lightweight semantic annotations about the model in addition to the underlying relational database schema. Chaise uses its rending heuristics to decide, for instance, how to flatten a hierarchical structure into a simplified (or denormalized) presentation for searching and viewing. The schema annotations are then used to modify or override its rendering heuristics, for instance, to hide a column of a table or to use a specific display name in the interface that is different than the column name from the table definition of the schema. Chaise then applies user preferences to further override the rendering decisions and annotations, for instance, to present a nested table of data in a transposed layout (i.e., with the columns and rows flipped).

Available Applications

Chaise is suite of the following applications:

  • record: Shows all the information for an entity.
  • recordset: Shows a set of entities that can be faceted.
  • recordedit: Gives the ability to add(or update) single or multiple entities.
  • viewer:High resolution pyramidal, tiled image visualization tool with pan and zoom capability.


See Chaise installation.

Help and Contact

Please direct questions and comments to the project issue tracker at GitHub.


Chaise is made available as open source under the Apache License, Version 2.0. Please see the LICENSE file for more information.

About Us

Chaise is developed in the Informatics group at the USC Information Sciences Institute.