Coronavirus (Covid-19): Latest updates and information
Skip to main content Skip to navigation

Instructions for using the symbol info tool

Within the /dcs/emp/empublic/teaching/cs405/UsingEMPE directory, you can find the syminfoBeynon2011 subdirectory. Executing the run.eden file within this subdirectory using tkeden launches a basic tool that can be used to explore and record observables within any model that has been loaded into the same environment. You are recommended to use this tool in a directory in which you have write permissions.

The tool supplies an interface through which you can record information about observables in a construal.

Each observable that is recorded has an assigned "observable index" (though this is not necessarily fixed and may change when an observable is deleted). There must always be at least one observable entry at all times, but an observable can be spurious (i.e. it doesn't have to be present in the model).

To record an observable, you must first know the NAME of the observable as it is represented in Eden (so for instance the Donald observable door/hinge is represented in Eden as _door_hinge etc and a component of an Angel observable such as pres_scoutbox.height is represented in Eden as pres_scoutbox_height).

The red entries in the display are intended to be edited by the modeller. You record an observable by entering its name into the NAME field, and entering an informal natural language characterisation of the observable into the INFO field. When you then press the "Add observable" button, the current definition and value of the observable (as specified by dependencies in Eden) will be displayed in the DEFN and VALUE fields.

The modeller is not intended to edit the entries in the DEFN and VALUE fields directly. Should you inadvertently interfere with the text in these fields in any way (e.g. by clicking in these fields), the dependency linking these fields to the the observable name is broken. To restore the dependency, you should click the "Refresh observable" button.

You can add the same observable more than once, either by accident, or in order to refine the information recorded about an observable. You can use the "Delete observable" button to remove redundant entries.

You can cycle through the observables recorded by using the "Next observable" and "Previous observable" buttons. If you know the observable number for a specific observable of interest, you can access it directly by setting 'currentindex' to this number.

Two Eden lists of strings are used to store the information that is recorded. These lists are called listobs and listinfoobs. They have the same length, and the i-th entry in these lists are the name and the description of the i-th observable respectively. To ensure that the information you gather about observables is stored after your interaction with the tool terminates, you should copy the values of these two lists to a file. To resume the recording process, you can then use the recorded values to assign initial values to listobs and listinfoobs and load these values when you later start-up the tool with the same construal. For instance, in the basic start-up configuration the initial values of listobs and listinfoobs are set up as follows:

listobs = ["listinfoobs","listobs"];
listinfoobs = ["The list of descriptions of recorded observables","The list of names of recorded observables"];

Note that when copying and pasting the definitions oflistobs andlistinfoobsinto the EDEN Input Window, you will need to ensure that no spurious line breaks occur in the RHS of their (long string) definitions.

As an alternative to this rather tricky manual process, you can use the EDEN code in the file reclistobslistinfoobs.e within the syminfoBeynon2011 directory to record the current definitions of listos and listinfoobs in an auxiliary file. Provided that you have write permissions in the current directory in which the EDEN interpreter is operating [this directory can be identified using the command writeln(cwd());], and that the observable listobs has the form [listobs, listinfoobs, ...], then executing the code in the file reclistobslistinfoobs.e will create a file called syminfodefns.eden within that directory. One thing to be aware of when navigating through directories using the File tab in the EDEN interpreter is that some construals only work properly when the current operating directory is appropriately set - for instance, any file includes are typically specified relative to a specific current operating directory. If you change the current operating directory in the course of introducing definitions (e.g. if you navigate to the syminfoBeynon2011 directory), you may need to restore the current operating directory before continuing [this can be done by a command of the form cd("directory_name");].

Another way to process the information in listobs automatically is to use the EDEN code in the file outputdefns.e. This will record the EDEN definitions of all observables whose value is defined by dependency rather than explicitly in a file called somedefns.e. This is a good way to generate input for the Dependency Modelling Tool (DMT).


There are two Eden observables that can be used to change the font in the display in the symbolinfo tool: these are fontname and fontsize.
The default settings of these observables are:

fontname = "Arial""; fontsize = 12;