IPAT-S Philosophy
The IPAT-S language is a tool: it is a domain language for the domain of
scenario development. It was designed with several practical goals in mind,
arising from the authors experience building sustainability scenarios. The IPAT-S suite includes:
- The IPAT-S interpreter, a program that processes IPAT-S scripts
- IPAT Studio, an integrated development environment (IDE) for IPAT-S
- IPAT Data eXchange (IPAT DX), a program for entering and sharing data
- IPAT Scenario Navigator (IPAT SN), a program for interactively exploring IPAT-S scripts
While each element of the suite can be used by itself, they are designed to work well together. Also,
they can be used for quick studies or for more involved modeling efforts.
For a description of how they can be used to support an involved scenario modeling effort,
see the report Workflow Using IPAT-S (a PDF document)
and the essay Numbers in Scenario Studies (also a
PDF).
Primary goal
The primary goal of IPAT-S is to support rapid development of sustainability scenarios
in a participatory process.
Most of the features of IPAT-S follow from this goal. The most important ones are:
- IPAT-S is a programming (scripting) language
Because IPAT-S is a scripting language, it is very flexible: users can make the structure they
desire, instead of being tied to someone elses structure.
- IPAT-S features a compact syntax
The compact syntax means that scenarios can be built rapidly, and the resulting scripts can be more easily understood than if
they were in a general-purpose language like Fortran, C++ or Visual Basic.
- IPAT-S makes it easy to create new indicators
Indicators are the key to communicating the outcome of a scenario study.
In a participatory study, participants might ask for any kind of indicator to illustrate their points. The modeling team
should be able to generate new indicators quickly, and IPAT-S makes this easy to do.
- The IPAT-S interpreter is fast
Because most IPAT-S calculations are converted into fast C routines, the interpreter runs quickly,
supporting rapid, interactive development of scenarios.
- IPAT-S is built around the IPAT framework
The IPAT framework is intuitive, flexible and robust. By emphasizing that framework, scenarios can be developed quickly
and communicated easily.
- IPAT-S improves on the IPAT framework
Most of the factors in the IPAT equation can be given as growth rates, rather than levels. For example, the
population growth rate is always important, but you may or may not need to know the
level of population. IPAT-S encourages the use of growth rates when specifying
problems.
- IPAT-S is free, and has free supporting tools
Free software encourages participatory processes. Anyone who has an IPAT-S script can
download the
free interpreter, the IPAT Studio IDE or IPAT Scenario Navigator, run it,
view outputs and modify the script if he or she wishes.
Other goals
Many other goals have driven specific features in IPAT-S:
- To encourage transparency and openness, and permit exchange over low-bandwidth connections
The IPAT-S interpreter and IPAT Studio are open-source and freely downloadable, and scripts are text files - open format and very small.
- To encourage code documentation
IPAT-S offers in-line and block comments, as well as self-documenting features of the language.
- To simplify development, from quick sketch to large study
IPAT-S offers a compact syntax, flexible output formats and modularization through subfiles.
- To support disaggregated analysis
Variables can have dimensions that are handled by IPAT-S.
- To support balances (energy, land, water, food, economy, etc.) and allow optimization sub-models
IPAT-S offers a compact syntax for linear programming (LP) models.
- To allow extension through external libraries
IPAT-S offers an API for external procedures that can be included using dynamic link libraries (DLLs).
- To allow other programs to run IPAT-S scripts and use the results
IPAT-S takes a text file as input (the script) and produces a text file as output. Many languages,
including Perl, Tcl/Tk, Ruby, PHP, C, C++, Visual Basic and Delphi, can run external programs and
use the text output they produce. IPAT-S can be the engine behind the scenes for a custom-built
scenario interface.
Backward compatability
Since it was first created in 2002, there have been many different versions of the IPAT-S
language. However, with one exception, all versions have been backward compatible: almost
any script written at any time should run under the most recent version of IPAT-S. If it
doesnt, then that is a bug.
The only exception to this is that the N/A notation was removed.
It is not longer legal to write:
:: N/A >> ratio -> var Dont do this!
It never made much sense, and a much more sensible alternative has always been available.
To update scripts using N/A, simply delete the N/A and they should run.
Use this instead:
:: >> ratio -> var This is correct