This is an alpha version and may contain bugs or other problems. Please report any problems to jonkv@ida.liu.se.
Though it has been a couple of years since the last major release, I have mainly concentrated on TALplanner. Therefore the list of changes to VITAL is not as long as it might have been. Nevertheless, there are several major improvements compared to 2.999.107.13.
Bugs fixed:
A number of user interface bugs were fixed.
VITAL could try to split (reason by cases) on the value of a built-in feature such as $plus. In certain circumstances this could lead to an infinite loop.
A couple of NullPointerExceptions were fixed.
VITAL would not ask whether a narrative window should be closed when you pressed Ctrl-W.
Fixed an annoying bug where we would re-parse a narrative unnecessarily.
The syntax highlighter highlighted the range operator ".." as an error.
Updated terminology from the TAL tutorial. For example, we use "narrative" or "narrative description" instead of "scenario description". Also, a lot of messages and menu items have been updated to be more easily comprehensible to the average user, rather than just the main developer :-) This is an ongoing process.
Many improvements in the formula optimization methods. These methods are mainly useful for TALplanner, but sometimes make some difference in VITAL too.
New parser.
Rewritten in plain Java, without a parser generator -- much faster.
Better parse error messages.
Statements can occur in arbitrary order -- no need to split a domain into two sections, one declaration section followed by one formula / statement section.
Added support for timeless functions. It is no longer necessary to write "[0] 7+4 == 11" or "valueof(0, 7+4) = 11" to provide a temporal context to the built-in operator "+". Instead, you can write "7+4 = 11", which is far more natural (although it may possibly require extensions to the TAL specification).
The parser is now able to parse integer literals such as 42 properly even if they could belong to several different integer domains, as long as the domain can be determined from the context. This makes it less necessary to use value name prefixes for integer domains.
Several extensions for object-oriented modeling as described in Elaboration Tolerance using Object-Orientation. The manual is not yet updated, and neither are the Missionaries and Cannibals domains included in VITAL.
Preprocessor with support for #if, #endif, and #include. This is experimental and is mainly intended for TALplanner.
Many user interface improvements. The following are some of them:
Changed to the Kunststoff Look-and-Feel. Changed to smaller fonts (closer to what most other programs use).
Structured line wrapping for formulas when TALplanner shows a parsed / translated narrative in the lower part of the narrative window. Before, formulas were not wrapped at all. Now, VITAL adapts line breaks to the structure of a formula. For example, VITAL attempts to wrap lines at the "outermost" connectives as far as possible. This should make formulas easier to read.
Syntax highlighting for formulas when TALplanner shows a parsed / translated narrative in the lower part of the narrative window.
VITAL can use Unicode symbols for connectives and quantifiers (for example, implication arrows and universal quantifiers) rather than using their ASCII representation. VITAL automatically detects which symbols are available in the font you are using and falls back to plain text for other symbols.
In the interpretation timeline display, you can get an explanation for each "interpretation title" (the yellow header above each interpretation).
In the interpretation timeline display, interpretations can be collapsed (only the header is shown). Use the right-click menu or double-click the yellow header.
In the interpretation timeline display, the default colors are somewhat better and more readable. You can still change these colors in VITAL / Options.
In the interpretation timeline display, it is now possible to not highlight differences against another interpretation. Also, the way such differences are highlighted has changed: Instead of drawing striped colors, colored timelines highlight differences by drawing an oval, and instead of adding a "#" to the value name, text-based timelines highlight differences by using a different background color.
In the interpretation timeline display, you can scroll interpretations using the arrow keys. Make sure the keyboard focus is in the interpretation timelines (click in the timelines to make sure).
The Missionaries and Cannibals narrative examples do not use the object-orientation macros from Elaboration Tolerance through Object-Orientation. Also, the narratives should be included in a modular form where it is more clear what is used from the original narrative and what is part of an elaboration.
Some additional debugging code is turned on and some optimizations have been turned off in order to catch potential problems earlier. The downloadable version of VITAL is therefore a bit slower than the development version (but should still be considerably faster than the previous release version, 2.329).
You can download VITAL 2.999.824 alpha here.