Using L2 Tools

Using L2 Tools

Back to Main Page

Contents


Candidate Manager

The Candidate Manager displays information about the candidates and the candidate equivalence classes returned by Livingstone, and allows a user to select a particular candidate and time-step for display. Candidate equivalence classes are unique in their mode components, but not unique in their time permutations. The tool consists of four basic parts, the Classes Table, the Candidates Table, the Time-step List, and the Assignment Tree. The Time-step List and the Assignment Tree will not work unless there is a selected candidate. There are also two panes at the bottom of the tool: "Discrepant Commands and Observations" which displays observations responsible for conflicts; and a one line pane displaying the search termination information.

Candidate Classes Table (the Classes tab)

The table has five columns. For each candidate class it displays: By clicking on one of the rows of the table, the Candidate Manager will select that equivalence class. This will cause the "Candidates" tab to be presented with the time permutations of the selected class highlighted in yellow. The user then selects one of the time permutations, and that candidate is installed by Livingstone. If the candidate class has only one instance of time permutation, the Candidate Manager will automatically select the one candidate instance for installation. Also, if there is only one candidate class (which may be <the-empty-candidate>) it will be automatically be installed.

Candidates Table (the Candidates tab)

The table has five columns. For each candidate it displays: By clicking on one of the rows of the table, the Candidate Manager will select that candidate. This will cause the Time-step List to update with a list of all time-steps from the point of truncation to the current time, and send the Livingstone model state for the selected candidate, at the currently selected time, to all active L2 tools. At the bottom of the frame is the Search Termination String which tells the user how Livingstone's search method completed it's diagnosis. If no time-step selection has previously been made, the Candidate Manager will assume the user is interested in the latest time-step and display that information. If the user selects a different time-step and then a new set of candidates are returned by Livingstone, followed by a new candidate selection, the time-step selection will persist.

Time-step List

At the top of the Candidate Manager, the Time-step List consists of a box with a pull-down list and a left and right browse button. When there is no selection the box will appear empty. If there are no data to select from, (most likely because no candidate has been selected) the pull-down list will also appear empty. If a candidate has been selected, the list will be updated and the selection will go by default to the latest time-step. By pressing on the down arrow and displaying the list of alternate choices, the user can select a different time-step. After selection the data will be sent to all active L2 tools. Also the user can step to the previous or next time-step with the left and right arrow buttons, respectively. However, if a selection is not possible the arrow will go grey and become unresponsive. If the user selects a time-step other than the last, and then makes a new candidate selection, the time-step selection will persist.

Assignment Tree (the Assignments tab)

This is simply a tree of the components attributes and their assignments. After a candidate and time-step selection, the user can use this tree structure to browse the model and see the assignments. This part of the Candidate Manager is mostly unused and may vanish in future versions.

Discrepant Commands And Observations Pane

The "discrepancy" command output has been integrated into the L2 Tools GUI. Previously it was available only through the Livingstone command line interface. When a "find-candidates" is requested, Livingstone returns all discrepant commands/observations related to a candidate set. The discrepant commands and observations appear in this pane, which is scrollable. The user can resize the window by clicking (single mouse click) on the unidirectional arrows, or dragging the "separator" (located between this pane and the classes/ candidates table). The discrepancy set is refreshed along with the classes/ candidates table. The "discrepancy" command returns a list of commands and observations responsible for the current inconsistency", in the following manner:
Example Scenario:

progress cbAndLed.cb.cmdIn=on       
assign cbAndLed.led.ledState=off
fc

The first line is intended to turn the CB on. The second line observes
that the LED is off. The third line finds candidates that can explain the
inconsistency in the system. In addition it queries for the observations 
responsible for the conflict. Here is the output:

test.cbAndLed.led.ledState = off:0

The number 0 indicates the cost/rank/weight of the assignment. Only
autonomous (failure) transitions have nonzero cost/rank/weight. Command
and observable assignments will always have a 0 cost/rank/weight.
Notes:

History Table

The History Table displays the variables (attributes) of the currently loaded Livingstone model as a spread sheet, with the left-most column containing the variable names, and the second to nth columns containing the values at each time step. It is updated by L2 Tools at model load time, and afterwards when it processes Livingstone commands 'fc' and 'progress'.

The input slot labeled "Disjunctive Filter" can be used to reduce the number of variables displayed, by filtering the variable names with the entered substring.

The "Copy" button can be used to make a copy of the History Table widget.

Each value "cell" responds to Mouse-right clicks with a menu:

Justification Tool

The Justification Tool provides a graphical explanation of a particular attribute (inferred by the Livingstone Engine). In other words, why did Livingstone assign a particular value to a model attribute? The tool is invoked via the History Table. For any displayed History Table attribute, the user can right-click on a table cell (column: time step, rows:attribute values) to display a popup menu. One of the pop-up menu options (Show Justification) is an explanation of this model attribute.

The Justification tool contains three main windows and a menu bar. The window pane labeled "attribute list" displays all model attributes involved in Livingstone's chain of reasoning. Each model attribute is marked with a specific icon. The icon marker designates whether the attribute assignment is the proposition to be explained, an assumption, or an immediate supporting clause proposition. The icons are itemized at the top of the list. Their tooltip provides their individual meanings. In some inference trees, various assumptions and propositions occur multiple times. The attribute list displays only unique attribute assignments. Therefore, the user may select an attribute from the "attribute list" and the tree will highlight all occurrences of this attribute assignment. By default the tree will highlight the path from the proposition to explain (root) to the selected proposition. If there is more than one occurrence of the same selected proposition, the tool highlights the one with a minimum number of inference steps.

The Inference Tree pane contains a summary of the attribute explanation. The user can expand the tree and select propositions of interest. For the selected proposition, the tree highlights the path from the selected proposition to the proposition to be explained (root). In addition, any identical occurrences of the selected proposition are also marked.

The Supporting Clause pane displays immediate supporting propositions (clause) that Livingstone used to explain the selected attribute.

In the main menu, the VIEW option allows the user to toggle between the JTree outline view and a graph/lattice view. The Graph view draws a summarization of the expanded inference tree. Since labeling the nodes with the actual attribute assignments makes the tree unwieldy. An alternate technique has been implemented. Instead each node is given a numerical value. Each numerical value maps to an attribute description in the "attribute list" pane. In addition, tooltips are provided for each of the graph nodes. When an attribute is selected in the graph, its path is also highlighted.

Under the main menu, there is a DETAIL submenu. It allows the user to reconfigure the view of the tree. By default Livingstone's entire chain of reasoning is displayed (proposition level). In addition there are two alternate views. The Assumption Level view displays the justified proposition with all of Livingstone's assumptions. The Attribute Level view extracts a summarized view of the entire chain of reasoning. It attempts to filter out attributes that are repeated in the inference tree. Additional filtration methods could be added to this submenu in future releases.

Errors are categorized under three classes. One, Livingstone errors (example, invalid attribute values) are reported under L2NativeException. Two, Livingstone engine state errors are reported under DataModelStateExceptions. Three, runtime exceptions are reported in the third category.


L2 Tools Command Line

Typing `help' at the command line will list the available L2 Tools
commands, and if a Livingstone engine is running, the Livingstone commands.

The following commands, entered at the command line, will be
handled by L2 Tools:

  newEngine CBFS <maxCandidateClasses>
      <maxCandidates> <maxSearch>
      <maxCutoffWeight> <maxHistory>
      <maxTrajectories>
      <progressCmdType> <fcCmdType>  - specify CBFS engine params
  newEngine COVER <maxRank> 100 100
      100 <maxHistory>
      <maxTrajectories>
      <progressCmdType> <fcCmdType>  - specify COVER engine params 
  loadModel <model-pathname>         - load model files (.xmpl, .ini, .hrn),
                                         allocate engine
  destroyEngine                      - deallocate current engine

  historyTable                   - start a History Table tool

  refresh                        - current L2 state
  modelBrowser                   - start browser for jmpl code of loaded model

  stanleyViewer                  - start Stanley in Viewer mode
  stanleyViewer modelState       - initialize current model state in Stanley Viewer

Livingstone commands like assign, progress, and fc are intercepted by
L2 Tools, before being passed on to Livingstone via the Java
Native Interface (JNI).  This will be noted thusly:
======> assign test.led1.ledState=on
L2Tools.command(assign test.led1.ledState=on)

Other commands are passed directly on to Livingstone.  If they are not
valid Livingstone commands, the user will be prompted to type
`help' to see a list of valid commands.

Back to Main Page

 

 

Last updated April 20, 2006. Direct feedback to william.m.taylor@nasa.gov