|
- SNePS
-
- Previously, the functions
+ and & took
only two arguments. Now they can take zero or more.
- The function
show has been added. It uses the
dot graph-drawing program to produce a graphical version
of parts of a SNePS network. The dot program, which is
part of Graphviz, must be downloaded separately from AT&T
Labs-Research.
- Previously, if you created a node with a name consisting of all
lower-case letters, or with a name whose first letter was upper case
and whose subsequent letters were lower case, then any node name with
different case conventions would be recognized as that earlier node.
Now case is preserved just as it is in ACL version 6.
- SNePSLOG
-
- Previously, if one set
*infertrace* to
nil in SNePSLOG, and then got into lisp and back into
SNePSLOG, *infertrace* was reset to
:surface . Now, that won't happen.
- Previously, an SNePSUL command could not be used as a SNePSLOG
individual constant. That has been fixed.
- There was a bug in the SNePSLOG generator when using Mode 2. That
has been fixed.
- SNePSLOG commands
activate and
activate! have been added. activate builds
a term or wff and performs forward inference on all asserted
propositions that dominate it. activate! builds a wff,
asserts it, and performs forward inference on it and on all asserted
propositions that dominate it. Both activate and
activate! use the SNePSUL command activate ,
which was available since SNePS 2.5.
- SNePSLOG commands
ask , askifnot ,
askwh , and askwhnot have been added. They
each take a wff as argument and do backward
inference on it. Then ask prints the inferred positive
instances of wff , askifnot prints the
inferred negative instances of wff ,
askwh prints the individuals in inferred positive
instances that are substituted for the free variables in
wff , and askwhnot prints the
individuals in inferred negative instances that are substituted for
the free variables in wff .
- SNIP
-
- Previously if, during inference, it was discovered that the wrong
number of argument-propositons in an
and-or or a
thresh were asserted or their negations were asserted,
the undefined function stop was called. Now,
sneps-error is called instead. In the future, this
situation should trigger SNeBR.
- A function
sneps:negate.n has been added. Now,
when the negation of a proposition is entered by the user or inferred
by the system, the first applicable of the following transformations
is made:
- ~~P --> P
- ~andor(0, j){P1, ..., Pn} -->
andor(j+1, n){P1, ..., Pn}
- ~andor(i, n){P1, ..., Pn} -->
andor(0, i-1){P1, ..., Pn}
- ~andor(i, j){P1, ..., Pn} -->
thresh(i, j){P1, ..., Pn}
- ~thresh(i, j){P1, ..., Pn} -->
andor(i, j){P1, ..., Pn}
- ~P --> andor(0, 0){P}
We refer to the results of this transformation as the canonicalized
negation of P.
- Any attempt to build the negation of a belief P, results in the
canonicalized negation of P.
- Any attempt to build an and-entailment with only one
antecedent, instead builds an or-entailment.
- Previously, SNIP would not backchain through an explicit negation.
For example, the following inference would not be done:
all(x)(andor(1,1){eatsgrass(x), predator(x)}).
all(x)(~predator(x) => prey(x)).
eatsgrass(deer).
prey(deer)?
That has now been fixed.
- SNeBR
-
- Previously, it occasionally happened that a hypothesis was also
recorded as having been derived from itself. That has been fixed.
- SNeBR recognizes the canonicalized negations of beliefs.
- SNeRE
-
- The
believe act has been enhanced. Previously, if
believe was performed on some proposition, P, and
andor(0,0){P}, was asserted, it would be disbelieved first.
Now, the following are checked:
- If any negation of P, as determined by
sneps:negate.n (see above), is asserted, it is disbelieved.
- If andor(i,1){P, Q, ...} and Q are asserted (for
any i), Q is disbelieved.
- An
snsequence that specified one act to be performed
repeatedly, only did it once. Now, it is done repeatedly correctly.
- Previously when
believe was performed on a
non-hypothesis, an error resulted, but no error message was issued.
Now a clear message is issued, and an error is not raised.
- Previously, when no plan was found to achieve some goal, a bad
DEAD END error message was issued. Now that error message is clearer.
- The
sneps-error error message was improved.
|