Welcome to Harmony!
Harmony is a generic synchronization framework for tree-structured
data. This site is a live demo of some of Harmony's features.
- If you are new to Harmony, press the "Next" button above,
,
for a quick introduction to this demo interface and a brief tour of Harmony's
basic architecture.
- If you're already familiar with the basic ideas of Harmony and
want to experiment with some more sophisticated demos, choose one of the
"Tutorial" demos from the pull-down menu above. (Some additional demos are
available under "Expert" demos. Documentation for these is minimal, but you
may enjoy playing with them.)
- If you are familiar with our paper, Combinators for
Bi-Directional Tree Transformations: A Linguistic Approach to the View
Update Problem (POPL 2005, available here),
and want to play with lenses, choose "Lens Programming" for a short tutorial.
- If you are familiar with our paper, Exploiting Schemas in Data
Synchronization (DBPL 2005, available here),
and want to see some interesting examples of the use of schemas to
guide the synchronization process, the address book and structured
text demos are particularly recommended.
- Our recent work on lenses for relational databases, described in
our paper Relational Lenses: A language for defining
updateable views (PODS 2006, available here), is illustrated in the
tutorial section on "Relational Lenses."
These demos require a browser with full support for JavaScript
and CSS. (Internet Explorer, in particular, is known not to work.)