http://www.cs.bham.ac.uk/research/poplog/src/master/S.pcwnt/teach/a.
TEACH ATNSUM (ATN SUMMARY) Chris Mellish February 1983
This file gives a short summary of a small subset of the ATN formalism. For more details and an introduction, see * ATNS and especially thereferences cited in it. This summary is necessarily simplified andcontains a core that is probably present in most ATN implementations,even though all ATN systems differ in details. It is mainly the LISPnotation for ATNs that is described. The alternative diagrammaticnotation is usually easier for people to read, but is normally used onlyas a device to summarise an ATN, since it does not readily show allrelevant detail.
--- NOTATION -----------------------------------------------------------
This summary will make use of a number of notational devices. Any stringof characters in between < and > are supposed to stand for any member ofthe class specified, which must appear in this position. Thus, forinstance, one could describe the format of the VED command in POP-11 by:
This does not mean that one has to literally type the characters "<","f", etc. after the string "ved". Rather, one types any file name inthis position. A second convention concerns the use of the symbol "*" toindicate that any number of items of a given class can appear in someposition. Using both notations together, the following:
indicates one possible form of the POP-11 VARS statement.
--- THE NETWORK AS A WHOLE ---------------------------------------------
An ATN as a whole is a list of nodes. These are written in LISP notationbetween brackets, and separated by spaces. I.e. the structure of thenetwork is:
For example, the following are possible forms for an ATN:
( <node> ) ( <node> <node> ) ( <node> <node> <node> ) .
A node is a list consisting of the name of the node followed by therepresentation of the arcs that leave this node, ie:
So the following would be a node with 4 arcs leaving it:
(<node name> <arc> <arc> <arc> <arc>)
--- THE FORMAT OF ARCS -------------------------------------------------
Each arc specifies a special condition that must be satisfied for it tobe followed and a special action to be performed, as well as (usually)an additional test and additional actions to be carried out when it istraversed. We consider here 5 kinds of arc:
(WRD <word> <test> <action>*)
This can be traversed if the next word in the input is the one specified and in addition the test specified is true. The special register * is given this word as its value and the input pointer is moved on.
http://www.cs.bham.ac.uk/research/poplog/src/master/S.pcwnt/teach/a.
(CAT <category> <test> <action>*)
This can be traversed if the next word in the input is of the specified syntactic category and also the test is true. The * register is given the word as its value and the input pointer is moved on.
(PUSH <node name> <test> <action>*)
This can be traversed if the test is true and the network starting at the node named can successfully process part of the input string. If this is so, the actions are performed with * set to the result returned by that network. The input pointer is moved on as directed by the path through the subnetwork.
This can be traversed if the test is true. It indicates that the current network has successfully processed part of the input. The value specified is returned as the result of this work. The input pointer is not moved.
(JUMP <node name> <test> <action>*)
This can be traversed if the test if true. The arc has the node specified as its destination. The * register and the input pointer are not altered.
--- VALUES (FORMS) -----------------------------------------------------
In order to build syntax trees and other structures, an ATN must be ableto pass pieces of information around from place to place and to buildlarger structures from smaller ones. There are various ways ofspecifying these values.
This refers to the current value of the register named
This refers to the current value of the * register (it is a shorthand for (GETR *))
This refers to the constant value provided by the pattern. Constant values are treated in this way to distinguish them from values that have to be treated specially - a constant value stands for itself, whereas something like "(GETR NP)" has to be specially interpreted. However, constants appearing in BUILDQs (see below) do not have to be explicitly marked.
(GETF <feature name> <register name>)
This refers to the value of a given property (eg plurality) of the value of a register.
(BUILDQ <pattern> <register name>*)
This refers to a structure built up from the given pattern by substituting values of registers for occurrences of the symbol "+". The value of the first register is substituted for the first "+", the value of the second for the second, and so on. For example, if register "A" has the value "(CAT)" and "B" has the value "DOG" then the value of:
http://www.cs.bham.ac.uk/research/poplog/src/master/S.pcwnt/teach/a.
(APPEND <list of values> <value>)
This refers to the list formed by appending the single value to the end of the list specified.
--- TESTS --------------------------------------------------------------
The tests on ATN arcs either look for particular relationships betweendifferent values, or are composed by logical operations of tests of thatform.
This is the test that always succeeds (T stands for "true")
This is the test that the first value is the same as the second
This succeeds if the first test succeeds and the second test succeeds
This succeeds if either of the two tests succeeds
This succeeds if the test specified within it does not succeed
--- ACTIONS ------------------------------------------------------------
The actions on ATN arcs cause values to be associated with registers, orparticular events to occur.
(SETR <register name> <value>)
This causes the register to be set to the value (assignment)
This causes processing of the network to continue from the node named. Every arc except a JUMP or POP arc must have one of these as its last action.
--- EXAMPLE ------------------------------------------------------------
Here is an example of a simple ATN, expressed in the LISP notation andpartially summarised in diagrammatic form.
(s (push np t (setr np *) (to s_np))) (s_np (push vp t (setr vp *) (to s_vp))) (s_vp (pop (buildq (s + +) np vp) t))
(np (cat det t (setr det (buildq (det *))) (to np_det)) (cat npr t (setr np (buildq (np (npr *)))) (to np_np))) (np_det(cat n t (setr np (buildq (np (det +) (noun *)) det))(to np_np))) (np_np (jump np_np1 t (setr pps ())))
(np_np1 (push pp t (setr pps (append (getr pps) *))(to np_np1)) (jump np_end t))
(np_end (pop (buildq (np + (pps +)) np pps) t))
(vp (cat verb t (setr verb *)(setr pps ())(to vp_v))) (vp_v (push np t (setr obj *) (to vp_np))) (vp_np (push pp t (setr pps (append (getr pps) *))(to vp_np))
http://www.cs.bham.ac.uk/research/poplog/src/master/S.pcwnt/teach/a.
(jump vp_np1 t)) (vp_np1 (pop (buildq (vp (verb +) + +) verb obj pps) t))
(pp (cat prep t (setr prep *) (to pp_p))) (pp_p (push np t (setr np *) (to pp_pp))) (pp_pp (pop (buildq (pp (p +) +) prep np) t))
*------* *------* *------*| | NP | | VP | || S |---->-----| S/NP |---->-----| S/VP |----->| | | | | |*------* *------* *------*
*------* *--------* | | DET | | | NP |---->-----| NP_DET | | | | | *------* *--------* | | | | NPR | *-------* | N | | | | `-->--| NP_NP |--<--' | | *-------* | | .
--- C.all/teach/atnsum ---------------------------------------------------- Copyright University of Sussex 1988. All rights reserved. ----------
Celery contains androsterone, a hormone naturally produced inmales that stimulates sexual arousal in females. Whether or not thishormone found in celery actually affects the body is still unclear. Buthey, the vegetable has it so it's a plus. AskMen.comIt had been a tough spring for me. TomiSue, my bodacious long-time live-in girlfriend, had delivered the ultimatum after a Jabba theHut figu