The commands of this section add information to the network, either in
the form of a node, a node and some arcs, or an assertion tag. It
is not possible to add just an arc to the network. Isolated nodes
cannot be added to the network, so the commands # and $
can only be used within the lexical context of a build,
assert, or add.
We will use the term wire to mean a labelled arc and the node it points to. So a molecular node has a set of wires coming out of it.
(build
{relation nodeset}
)
(assert {relation nodeset}
context-specifier)
(add {relation nodeset}
context-specifier)
Puts a node in the network with an arc labelled relation to each node in the following
nodeset, and returns a singleton set containing the built node.
The new node is added to the value of the SNePSUL variable
nodes. If this new node would look exactly like an already existing
node, i.e., would have exactly the same set of wires emanating from
it, then no node is built, but a singleton set containing the extant
node is returned. build creates an unasserted node.
assert is just like build, but creates the node as an asserted
node (an hypothesis), and adds it to the hypothesis set of the context
specified by context-specifier. add is just like
assert, but, in addition, triggers forward inference. Note:
where relation is specified in the syntax, neither a converse
relation nor a non-unit path is allowed. build is not a
top-level SNePSUL command in SNePS 2.
(activate
{nodeset}
context-specifier)
Finds all the nodes that dominate the nodes in nodeset, and
that are asserted in the context specified by context-specifier,
and triggers forward inference on them.
(!node context-specifier)
A postfix command that asserts node in the context specified by
context-specifier, and returns a singleton set containing
node.
![]()
#symbol
A macro command that creates a new base node, assigns a singleton set
containing the new node as the value of the SNePSUL variable
symbol, and returns that set. This may not be used at the top-level
SNePSUL loop, since that would create an isolated node. (Note: The
# macro is smart enough to guess whether you want to create a
base node or whether the standard COMMON LISP dispatching macro
is intended. This means that the #! ``with-snepsul'' syntax is
available at the SNePS top level, as well as in GATN grammars, etc.,
and that other common uses, such as #' for functions, are
available too.)
$symbol
A macro command that creates a new variable node, assigns a singleton set
containing the new node as the value of the SNePSUL variable symbol, and
returns that set. This may not be used at the top-level SNePSUL loop, since
that would create an isolated node.