|
The following is a list of changes in SNePS version 2.8. Only
changes that are visible to the SNePS user are listed.
SNePS 2.8 also includes some additional improvements.
- SNePS
-
- SNePS can now be compiled by Armed Bear Common Lisp (ABCL), which
produces Java bytecode.
- Nodes whose identifiers are not readable by Lisp as symbols
(e.g. numbers and identifiers with spaces in them) are now printed with
escape brackets.
- When typing nodes, a user may use the escape character and escape brackets.
- SNePSLOG
- In version 2.7.1, if an atomic symbol (individual constant, function
symbol, etc.) began with a substring that matched any of the following:
and , or , nand , nor ,
xor , iff , andor ,
thresh , or nexists
it would be misparsed, or an error would result. For example,
instanceOf(north, direction) would be parsed as
instanceOf(~th, direction) .
That has now been fixed. However, now none of these connectives may immediately
be followed by a blank, but must immediately be followed either by
"{ " or "( ", whichever is appropriate.
-
tell has been given optional format arguments. So instead
of evaluating
(tell (format nil "~A(~A)." 'Dog 'Fido))
you may now do
(tell "~A(~A)." 'Dog 'Fido)
- The character "!" is now optional at the end of a wffname. If the "!"
is not the terminal character of the wffNameCommand (that is, is not the
final character of the SNePSLOG command), it will be ignored.
- The macro
(foreachsub variables subs &body forms) has
been added to the tell/ask interface. For each substitution in
subs , foreachsub evaluates the forms in
forms with the variables in variables taking
on the values specified by that substitution. This is particularly
useful for processing the values returned by (askwh ...)
or by (tell `askwh...') .
- Individual constants whose identifiers are not readable by Lisp as symbols
(e.g. numbers and strings with spaces in them) are now printed with
escape brackets.
- The SNePSLOG parser can read individual constants containing the escape character
and escape brackets.
- The show command now displays molecular nodes using their wff names.
- The attempt to assert a negated, universally quantified andor or
thresh, such as
~(all(x)(B(a,x) <=> x)) previously caused an
error. This has been fixed.
- SNIP
- Before if p(a) were an hypothesis of the current context, and p(a) |- r(a),
then p(a)=>r(a) would not be inferred because SNIP didn't think that p(a) was
introduced in the hypothetical context. That has now been fixed.
- SNeBR
- SNeBR has been greatly improved. Previously, SNeBR performed manual
nonprioritized belief revision in most cases, and automatic prioritized
belief revision when a new belief was added by the
believe
act, but then only with direct contradictions between hypotheses. Now,
the user can independently specify prioritized vs. nonprioritized
and manual (now called "assisted") vs. automatic belief revision,
and derived contradictions triggered by believe are
recognized and handled. The user can also specify what epistemic
entrenchment ordering function the system is to use during automatic
belief revision. Several such ordering functions are supplied, and the
user can define others. For the details, see Chapter 8 of the
User's Manual.
- SNeRE
|