This document contains answers to common questions about the JUMBL. It is not comprehensive documentation. You may find more information in the JUMBL User Guide.
All Trademarks and Servicemarks in this file are the property of their respective owners.
Basics
What is the JUMBL?
How is the JUMBL developed?
Installation
On what platforms is the JUMBL supported?
How do I install JUMBL under Windows?
How do I install JUMBL under UNIX?
Why does JUMBL report that it cannot find Java?
Why does JUMBL report that it cannot find jumbl_rt.jar?
How can I get rid of the configuration warning?
Where does JUMBL store its configuration file?
What are the various settings which can be set in the configuration file?
Is there a way to set a configuration option without invoking the editor?
How can I prevent the warning when I start GUI elements of the JUMBL?
Building Models
Can I use the JUMBL with ToolSET_Certify?
Can I construct or view models in Graphlet or yEd?
What is the maximum size model that can be used with the JUMBL?
What are the various model formats?
Analyzing Models and Tests
What do the analysis results mean?
Why doesn't the JUMBL use native code for the analysis?
The JUMBL is a Java class library for constructing, manipulating, and analyzing Markov chain usage models.
The architecture of the core library of the JUMBL (models, states, arcs, model references, constraints, and TML compilation) was developed iteratively. The library was created, evaluated, and thrown away twice. Lessons learned from the first two iterations were used to create the core library as it exists today. As a result, there has been no significant change in the core library since its development in 2000.
Other features of the library have been developed by relying on careful requirements, thorough code review, and in some cases, verification and proofs. For example, the JUMBL's numerical routines were carefully checked against their intended functions and tested against independent implementations in Scilab.
The LU decomposition code in the JUMBL was tested by generating random matrices with certain properties, factoring them, and then using LAPACK routines to multiply and check the result. For computations such as the mean first passage times, the computations were re-developed in Scilab; and the JUMBL was tested against the Scilab implementation.
Very little testing is done on the JUMBL overall, as development focuses on requirements, architecture, code review, and verification.
On what platforms is the JUMBL supported?
The JUMBL runs on any platform with a 1.6 or later Java SDK. With that in mind, the use of the JUMBL is simplified by the use of a wrapper, which provides additional options. Wrappers are available for UNIX (using the SH shell) and Windows (as an EXE).
How do I install JUMBL under Windows?
The JUMBL for Microsoft Windows platforms consists of two files: jumbl_rt.jar and jumbl.exe. These files should be dropped in a directory in the PATH. A good choice for this is C:\WINDOWS or C:\SQRL.
How do I install JUMBL under UNIX?
The JUMBL for UNIX platforms consists of two files: jumbl_rt.jar and jumbl. The latter file is an SH script which assumes that /bin/sh is the SH shell executable. These two files should be dropped in any directory in the user's PATH. A good choice is /usr/local/bin.
If you have the sh executable located somewhere other than /bin/sh, you must edit the first line of the jumbl wrapper to point to the correct location of the executable.
Why does JUMBL report that it cannot find Java?
A Java runtime environment must be available in order to use the JUMBL, and the Java executable must be in the PATH.
On Windows Vista and beyond, open the Control Panel, open System, change to the Advanced tab, and click Environment Variables. On Windows XP, the System entry is found by clicking on Performance and Maintenance. Edit the PATH environment variable to include the directory which contains the Java executable.
Why does JUMBL report that it cannot find jumbl_rt.jar?
The jumbl_rt.jar file must be available and in a location where it can be found by the wrapper. The UNIX wrapper expects the file to be readable and located in the same directory as the wrapper itself. On UNIX, type "which jumbl" to determine the location of the wrapper, and then verify that the jumbl_rt.jar file is in the same directory, and is readable.
On Windows, the wrapper searches for the jumbl_rt.jar in well-known locations. The following directories are searched, in order: C:\JUMBL, C:\SQRL, %SystemRoot%, C:\WINDOWS, C:\WINNT, C:\WIN95, C:\WIN98. If you wish to place the jumbl_rt.jar in another location, set the environment variable JUMBLPATH to the name of the directory which holds the jumbl_rt.jar file. See How do I install JUMBL under Windows for information about setting environment variables.
How can I get rid of the configuration warning?
The configuration warning is generated if there is no configuration file. You can create one as follows. Type "jumbl Options" and press Enter. When the options dialog appears, click Exit. Click Yes to save changes. This will create a configuration file, and you should not see the warnings any more.
Where does JUMBL store its configuration file?
Type "jumbl Options" and press Enter. The configuration file location is shown at the top of the dialog.
What are the various settings that can be set in the configuration file?
Do not edit the configuration file by hand; there is a configuration file editor as part of the JUMBL. Type "jumbl Options" to invoke the editor. It describes the various options.
Is there a way to set a configuration option without invoking the editor?
Yes, you can set an option for the duration of a single command (a transient setting) by including the setting in square brackets on the command line. So to suppress multiple edges in GML output you might type:
jumbl WriteModel -tGML MyModel.tml [GML.multiple=false]
This is the same as un-checking the multiple option on the GML tab, running the command, and then changing the option back to its prior setting.
How can I prevent the warning when I start GUI elements of the JUMBL?
On some UNIX and Linux distributions the following warning is generated when one starts GUI elements of the JUMBL.
Warning: Cannot convert string "MetaCtrl<Key>Insert" to type VirtualBinding
This warning can safely be ignored. To prevent this warning, you can issue the following from the command line.
xprop -root -remove _MOTIF_DEFAULT_BINDINGS
Can I use JUMBL with ToolSET_Certify?
ToolSET_Certify® is a Markov chain usage model construction and analysis tool provided by Q-Labs, Inc. It uses a textual format for storing usage models. It appears that Certify is no longer supported by Q-Labs.
The Certify .mod format is supported by the JUMBL. The JUMBL can read .mod files, and the Write command can be used to output .mod files by specifying the type MOD as --type=MOD or -tMOD.
Can I construct or view models in Graphlet or yEd?
Yes. Support for the Graph Modeling Language (GML) is provided in JUMBL. Any tool which supports GML should work with the JUMBL. The JUMBL can read GML, and the Write command can generate GML using --type=GML or -tGML.
What is the maximum size model that can be used with the JUMBL?
The JUMBL imposes no limits on model size, but of course there are memory constraints. If a model has more than 800 states it will probably be necessary to increase memory to the Java virtual machine with the --mem switch. For example, to increase the memory available to 256 Mb, use --mem=256. See the user's guide for more information.
There is a limit to how much memory you can give the virtual machine with the --mem switch, but this limit is dependent on the architecture and memory of your particular system. For example, if you try to give the Sun Java virtual machine too much memory, you will get the following error.
Error occurred during initialization of VM Could not reserve enough space for object heap
What are the various model formats?
Models can be created and manipulated in several forms. Some of the formats currently supported by the JUMBL are described below.
Kind | Name |
Special | SM
The Saved Model (SM) format is the default format for usage models because of its small size. This format is subject to change, and not documented for end users. |
Textual | TML
The Model Language (TML) is a simple language for describing usage models in terms of states and arcs, and supports submodels, labels, and constraints. MML Model Markup Language (MML) is an XML extension for describing usage models, and supports the same features as TML. EMML Extended Model Markup Langauge (EMML) is an XML extension for describing usage models in terms of usage variables, predicates, assignments, and assertions. Constraints and labels are supported, but not submodels. |
Third Party Support | CSV
Comma Separated Value (CSV) is a common format for importing / exporting data to / from spreadsheets and databases. Constraints are supported, but not labels or submodels (at present). GML Graph Meta Language (GML) is a language for describing graphs used in graph drawing and layout tools. The GML format supports all model information when used with editors that preserve unrecognized information, such as Graphlet (http://www.infosun.fmi.uni-passau.de/Graphlet/). GML documentation is available on the web (http://www.infosun.fmi.uni-passau.de/Graphlet/GML/index.html). MOD ToolSET_Certify® is another tool for working with usage models. This tool is owned by Q-Labs, Inc., but appears to be unsupported. Because of limitations of the Certify tool, submodels and labels are not maintained, and constraints are always resolved to probabilities. |
Export Only Formats |
DOT The DOT format is used by the AT&T Graphviz tools to describe graphs. At present, the JUMBL cannot read the DOT format. GDL Graph Description Language (GDL) is a format used by the aiSee graph layout tool. At present, the JUMBL cannot read the GDL format. HTML HyperText Markup Language (HTML) is the language in which web pages are constructed. Models and their constraints and labels can be exported as a set of web pages for viewing, only. |
What do the analysis results mean?
There are web pages for both the model and test analysis results. Those can be visited at
Why doesn't the JUMBL use native code for the analysis?
A native implementation of the analysis engine using the BLAS and LAPACK has been considered, but there are no current plans to implement this. To date, the emphasis has been on portability and correctness of computations.