Visual Logic also performs computation of 'evident,' 'supported,' and 'conflicted' propositions. These logical concepts are introduced by Fisher as extensions to classical logic. They are meant to provide a framework for dealing with logic programs which may be classically inconsistent (unsatisfiable) as a whole but which may nevertheless contain interesting sub-programs that are in themselves consistent. For additional information, see
Visual Logic was implemented using SWI-Prolog and the graphical package XPCE. Both SWI-Prolog and XPCE were developed at the University of Amsterdam and have been ported to various Unix/X11 platforms as well as Microsoft Windows (Win32s, 95 and NT). Visual Logic itself has been designed to run on any platform for which SWI-Prolog/XPCE is available.
The extension, by default, is '.vl' and may be omitted. Invoking the tool without an argument:
will open a file finder dialog from which the file may be selected. If a new (non-existing) file is specified, the user will be given the option to create it.
or p :- q1, q2, ..., qn . n > 0.
where vertical bars ( | ) represent disjunction and commas represent conjunction. Negation of a term is indicated by preceding it with a tilde ( ~ ). Otherwise, syntax for terms adheres to Prolog rules. That is, names and functors start with a lower case letter while variables start with an upper case letter. The underscore ( _ ) should be used in place of anonymous variables. Each clause must be terminated by a period.
Disjunction is allowed only in the head. Clauses whose implication operator is :- are added to the clause database unchanged. Clauses whose implication operator is <- are converted to a corresponding set of all possible contrapositive forms. That is, each clause
is converted to a set of m+n clauses
~qj :- ~p1,~p2, ... ,~pn, q1, q2, ..., qj-1,qj+1 , ... , qm . j =1..m
Note that 'p <- true.' 'p :- true.' and 'p.' are all equivalent but 'p <- .' and 'p :- .' are not allowed.
A goal may contain variables. In fact, typing in a lone variable X and clicking Query gives all possible derivations for the current program, For a large database, this may take a very long time to compute.
The tool responses to a query in one of two ways. If the goal fails, it simply returns a 'failed' message. Otherwise, it lists the results on the left pane of the window. A result may be listed more than once if there is more than one way to derive it.
Important: a node's attribute shows its calculated global value and is not necessarily borne out by the tree it is in. That is, if a node is colored blue, then the node can be shown to be evident; however, it may not be the case that this particular tree shows that the node is evident. Also, the value of a node as shown is the most encompassing value that can be computed. Therefore, if a node is blue, then its term can be shown to be evident and no more, i.e., it is neither conflicted nor supported. It is also possible to show only a node's value according to the tree it is in, i.e., its local value (see below).
Tip: right click on a result (left pane) or a node (right pane) to invoke the pop-up menu which gives access to all available commands. Also, place the mouse pointer over a button (in this or any window) to see a brief description of the button's function.