Welcome to CLARITY



This page is  




CLARITY is a programming tool that enables users to generate programs though diagrams. CLARITY has been developed to make computer modeling and simulation more accessible to non-programmers, by supporting a collaborative approach to the design, implementation, testing and evaluation of computer models.

One might begin with the design of a program sketched informally, for example, on a paper napkin.  Nobel Laureate Harry Kroto explains how the paper napkins on which they sketched the first possible models of a spherical structure for C60, were thrown away soon after they left the restaurant.  We kept an image of one of ours:

This can be drawn directly in a CLARITY function window, as illlustrated below. The system checks the diagram as it interprets it. The program is stored both as code (in the Functional language FAITH ) and as a diagram or series of diagrams.

Runnable program code is generated from diagrams such as this one, drawn in a window:

A CLARITY diagram of one component of a program called EXPLORE


A diagram of one component of a  sub-routine in a program called "experimenters".


CLARITY is more than a graphical interface to a functional language: CLARITY is itself a functional schematic programming language .
The CLARITY modeling package provides a programming environment that allows a programmer to design and draw a program as a set of directed graphs. We are now using the term schema, to avoid confusion with languages that generate pictures but do not use graphs to represent a program (or model) directly.
 

System Requirements

Clarity can be run on any PC running Windows (up to NT) or any Macintosh running system 6.5.1 through to OS8.6, with a minimum of 8 Mb of main memory.
 

Programs developed using CLARITY include:


For the Faraday project, CLARITY has been used to produce a number of standard cognitive science simulations and to develop less conventional models of a variety of scientific activities, including:


Output from CLARITY
Programs designed and implemented with CLARITY can output data or text to dedicated graphics, narrative or text windows, or data can be written files for graphical display or statistical analysis. The following plot of CLARITY data displays the changing confidence of one actor for a range of hypotheses. The actor is part of a simulation of the interaction of scientists exchanging information about experiments.

A plot (in MSWord) of simulation data for one of several actors in
a simulation of scientists exchanging information about experiments.

The following plot displays the changing status of several actors, who can decide whether to perform new experiments or to consult another actor in the simulation:


In this plot each colored trajectory represents the status of an actor, indicating whether the actor is consulting other actors or is making a new experiment.



Displaying Networks of Programs and Routines
CLARITY can also display high-level maps of complex programs. The diagram below represents an inventory of objects used by a program that simulates electromagnetic experiments by Michael Faraday and his contemporaries around 1821. This high-level map was generated directly from the program code:

A CLARITY Network Diagram. Clicking on any of the boxes will open the program or sub-routine associated with it.




Members of the Clarity research group, from left to right:

David Gooding (since 1990), Jan Townsend-Addis and Tom Addis (since 1986) and Simon Gray (1994-96).




You can find out more about the models from our working papers. These will be made available as .html, Acrobat Reader files or as downloadable .ps files at:

Clarity Documents (Sorry! files not yet available) .

You can obtain a recent version of CLARITY from the
Clarity Graphical Programming Site, maintained at the Department of Information Sciences, Portsmouth.

Other Links:
Science Studies Centre

Science Studies (HPS) Courses at the University of Bath


Return to D. Gooding's Home Page



dcg 01.01.01