[mod.techreports] st2.x tech reports

E1AR0002@SMUVM1.BITNET (10/29/86)

\documentstyle{article}
\textwidth 6in
\textheight 8.5in
\topmargin -24pt
\oddsidemargin 18pt

\begin{document}

\noindent TECHNICAL NOTE:  73\hfill PRICE:  \$40.00\\[0.01in]

\noindent TITLE:  QA4:  A PROCEDURAL CALCULUS FOR INTUITIVE REASONING\\
AUTHORS:  J. F. RULIFSON, J. A. DERKSEN, and R. J. WALDINGER\\
DATE:  NOVEMBER 1972\\[0.01in]

     ABSTRACT: This report presents  a language, called  QA4, designed
to facilitate the   construction of problem-solving  systems  used for
robot planning, theorem proving, and  automatic  program synthesis and
verification.   QA4  integrates an omega-order   logic  language  with
canonical composition, associative retrieval, and pattern matching  of
expressions; process-structure  programming;  goal-directed searching;
and demons.    Thus it provides many  useful   programming aids.  More
importantly, however,  it  provides  a semantic  framework  for common
sense reasoning about these problem  domains.  The interpreter for the
language is extraordinary general, and  is therefore an adaptable tool
for   developing  the specialized  techniques  of intuitive,  symbolic
reasoning used by the intelligence system.

     Chapter  One is     an  informal introduction  to    the  unusual
programming concepts available in the QA4 language.  Chapter  Two is a
primer for the language.  It informally presents the  language through
the use of examples.  Most of  the unusual or complicated features  of
the  language are  not   discussed.   The chapter   concludes  with  a
presentation  of a small  robot  planning  system that  uses only  the
language features presented in the  chapter.  Chapter Three presents a
series  of  examples   chosen to illustrate    solutions  to automatic
programming problems.  The QA4 programs used in Chapter Three rely  on
language  features not presented in  the  primer.  They are,  however,
explained   as they occur.  These   programs  illustrate most of   the
programming   concepts just  discussed.   Chapter Four   is a complete
reference guide to the language.  It provides the semantics of all the
features of the language together  with many  implementation notes and
design  rationale.  Chapter Five discusses extensions  to the language
that     will  probably   be    done    during    the   next     year.\\
--------------------------------------------------------------------------------
-------------------------------------------------\\
\noindent TECHNICAL NOTE: 86\hfill PRICE: \$20.00\\[0.01in]

\noindent TITLE:  REASONING ABOUT PROGRAMS\\
AUTHORS:  R. J. WALDINGER and K. N. LEVITT\\
DATE:  OCTOBER 1973\\[0.01in]

     ABSTRACT: This paper  describes  a theorem  prover that  embodies
knowledge about  programming   constructs,  such  as  numbers, arrays,
lists, and expressions.  The program can reason  about these  concepts
and is used as  part of a  program verification system  that uses  the
Floyd-Naur explication of program semantics.  It is implemented in the
QA4  language;  the   QA4  system  allows  many   pieces  of strategic
knowledge, each  expressed  as a small  program, to  be coordinated so
that a  program stands forward when it  is  relevant to the problem at
hand.  The language allows clear, concise representation of this  sort
of knowledge.  The QA4 system also  has special facilities for dealing
with    commutative  functions, ordering  relations,  and  equivalence
relations; these features are heavily  used in  this deductive system.
The program interrogates the user and asks his advice in the course of
a proof.  Verifications have  been found  for Hoare's FIND  program  a
real-number division algorithm, and some sort programs, as well as for
many simpler algorithms.  Additional theorems have been proved about a
pattern matcher and  a  version of Robinson's  unification  algorithm.
The appendix contains a complete, annotated  listing of the  deductive
system and annotated traces of several of the deductions performed  by
the system.\\
\pagebreak
--------------------------------------------------------------------------------
-------------------------------------------------\\
TECHNICAL NOTE:  98\hfill PRICE:  \$10.00\\[0.01in]

\noindent TITLE:  KNOWLEDGE AND REASONING IN PROGRAM SYNTHESIS\\
AUTHORS:  ZOHAR MANNA and R. J. WALDINGER\\
DATE:  NOVEMBER 1974\\[0.01in]

     ABSTRACT:  Program synthesis is  the construction  of  a computer
program from given  specifications.    An automatic program  synthesis
system must combine reasoning and programming ability with a good deal
of knowledge about the subject  matter of the  program.  This  ability
and knowledge  must be manifested both procedurally  (by programs) and
structurally (by choice of representation).

     We describe some of the reasoning and programming capabilities of
a  projected synthesis  system.  Special attention    is  paid to  the
introduction of conditional tests,  loops, and instructions with  wide
effects in the  program being   constructed.  The ability to   satisfy
several interacting goals simultaneously   proves to be  important  in
many contexts.   The modification of  an   already existing program to
solve a  somewhat different problem has been  found to   be a powerful
approach.

     We    illustrate these concepts with   hand   simulations  of the
synthesis of  a number of pattern-matching programs.   Some   of these
techniques have  already been implemented,  some are in  the course of
implementation,  while others seem  equivalent to  well-known unsolved
problems in artificial intelligence.\\
--------------------------------------------------------------------------------
-------------------------------------------------\\
TECHNICAL NOTE:  107\hfill PRICE:  \$10.00\\[0.01in]

\noindent TITLE:  ACHIEVING SEVERAL GOALS SIMULTANEOUSLY\\
AUTHOR:  RICHARD WALDINGER\\
DATE:  JULY 1975\\[0.01in]

     ABSTRACT:   In the synthesis of a   plan or computer program, the
problem  of achieving several  goals  simultaneously  presents special
difficulties, since a  plan to  achieve   one goal may  interfere with
attaining the others.  This paper develops the  following strategy: to
achieve two  goals  simultaneously, develop a  plan to achieve  one of
them and then  modify  that plan to achieve  the  second as well.    A
systematic program modification technique is presented to support this
strategy.  The  technique   requires  the introduction   of  a special
skeleton model to represent  a  changing world  that can accommodate
modifications in the plan.  This skeleton model also provides  a novel
approach to the frame problem.

     The strategy is illustrated by its application to three examples.
Two examples    involve  synthesizing   the      following   programs:
interchanging the values of two variables and sorting three variables.
The third  entails   formulating  a  tricky  blocks  world plan.   The
strategy has been implemented in a simple QLISP program.

     It is argued that  skeleton modeling  is  valuable as a  planning
technique apart   from its   use in  plan  modification,  particularly
because  it facilitates  the representation  of influential  actions
whose effects may be far reaching.

     The second part of the paper is a critical survey of contemporary
planning literature, which compares our approach with other techniques
for facing the same problems.\\
--------------------------------------------------------------------------------
-------------------------------------------------\\
TECHNICAL NOTE:  109\hfill PRICE:  \$20.00\\[0.01in]

\noindent TITLE:  A STRUCTURE FOR PLANS AND BEHAVIOR\\
AUTHOR:  EARL D. SACERDOTI\\
DATE:  AUGUST 1975\\[0.01in]
\pagebreak


     ABSTRACT: This report describes  progress that has  been made  in
the ability of a computer system to understand and reason actions.   A
new method for representing actions within a computer  memory has been
developed, and this new representation, called the procedural net, has
been employed in developing  new strategies for solving  problems  and
monitoring the execution of the resulting solutions.

     A  set of running  computer programs,  called  the NOAH (Nets  of
Action   Hierarchies)   systems,    embodies   the representation  and
strategies discussed above.  Its major goal is to  provide a framework
for storing  expertise about the actions  of a particular task  domain
and to impart that expertise to a human in the cooperative achievement
of nontrivial tasks.

     A problem is presented to NOAH as a statement that is  to be made
true by  applying a sequence of actions   in an initial  state  of the
world.  The actions are drawn from a set of actions previously defined
to the system.  NOAH first creates a one-step  solution to the problem
(essentially Solve the given goal).   Then it progressively  expands
the  level of detail of the  solution,  filling in  ever more detailed
actions.  All the individual actions, composed into plans at differing
levels of detail, are stored in a data structure called the procedural
net.  The system avoids imposing unnecessary  constraints on the order
of the actions, rather than as linear sequences.

     The same data structure is used to guide the human user through a
task.  Since  the  system has planned the  task  at  varying levels of
detail, it can issue requests for action to the user at varying levels
of  detail,  depending  on his  competence  and  understanding of  the
higher-level actions.   If more  detail  should  be needed  than  was
originally planned for, or if  an unexpected event causes the  plan to
go  awry,  the  system can  continue to   plan from  any  point during
execution.

The key ideas that are explored include:

\begin{enumerate}

\item Planning at many levels of detail

\item  Representing a plan as a partial ordering of actions with respect to
     time.

\item  Execution monitoring and error recovery usig hierarchial plans.

\item Using procedures that represent a task domain to generate
declartive (frame-like) structures that represent individual actions.

\item Using abstract actions to model iterative operators.

\end{enumerate}

     The major point of the report is that the structure of a plan of
actions is as important for problem solving and execution monitoring
as the nature of the actions themselves.\\
--------------------------------------------------------------------------------
-------------------------------------------------\\
TECHNICAL NOTE:  112\hfill PRICE:  \$10.00\\[0.01in]

\noindent TITLE:  A TUNEABLE PERFORMANCE GRAMMAR\\
AUTHOR:  JANE J. ROBINSON\\
DATE:  SEPTEMBER 1975\\[0.01in]

     ABSTRACT: This  paper  describes  a tuneable performance  grammar
currently  being  developed for  speech understanding.   It shows  how
attributes of words are defined and propagated  to successively larger
phrases, how  other attributes are acquired, how factors reference
them to help the parser choose among competing definitions in order to
interpret the utterance correctly, and how these factors can easily be
changed to adapt the grammar to other discourses and contexts. Factors
that  might be classified  as  syntactic  are emphasized, but  the
attributes  they  reference need  not  be,   and   seldom are,  purely
syntactic.\\
\pagebreak
--------------------------------------------------------------------------------
-------------------------------------------------\\
TECHNICAL NOTE:  113\hfill PRICE:  \$10.00\\[0.01in]

\noindent TITLE:  SEMANTIC PROCESSING FOR SPEECH UNDERSTANDING\\
AUTHOR:  GARY G. HENDRIX\\
DATE:  SEPTEMBER 1975\\[0.01in]

     ABSTRACT:  The  semantic component   of the speech  understanding
system  being  developed  jointly  by SRI and  SDC   rules out  phrase
combinations   that   are    not  meaningful  and   produces  semantic
interpretations for  combination  that are.  The system  consists of a
semantic network model and routines that interact with it.  The net is
partitioned into a set of hierarchically ordered subnets, facilitating
the  encoding of  higher-order    predicates  and the  maintenance  of
multiple parsing    hypotheses.    Composition   routines,   combining
utterance components into  phrases, consult  network descriptions   of
prototype  situations   and surface-to-deep-case  maps.   Outputs from
these routines are network fragments   consisting  of several  subnets
that in aggregate  capture  the interrelationships between  a phrase's
syntax and semantics.\\
--------------------------------------------------------------------------------
-------------------------------------------------\\
TECHNICAL NOTE: 117\hfill PRICE: \$25.00\\[0.005in]

\noindent TITLE:  PERCEPTUAL STRATEGIES FOR PURPOSIVE VISION\\
AUTHOR:  THOMAS D. GARVEY\\
DATE:  SEPTEMBER 1976\\
     ABSTRACT:   This   report  describes  a  computer  program  that
approaches   perception  as  a  problem-solving  task.  The    system
uses information   about   the appearances of objects,  about  their
interrelationships, and about available sensors to produce a plan  for
locating  specified objects in images of  room scenes.  The strategies
produced allow  for  cost-effective processing  by utilizing  cheap
features in  the early stages, reserving more  complex operations  for
later  in   the process,  when    the  content has  been  sufficiently
restricted.

     The general strategy paradigm used  by  the  system is to acquire
image samples expected  to belong to the  target  object; validate the
hypothesis that the  acquired samples  do belong  to  the target;  and
finally to bound the image of the object by outlining it  in a display
picture.

     Sensors used  by  the system include  a vidicon  with three color
filters and a master-scanned, laser-rangefinder capable of producing a
range image.   In   addition,     the range-finder  measures   the
reflectivity   at the   laser wavelength, at  each  post, producing  a
gray-scale image in  perfect registration with  the  range image.  The
primitive  attributes of  brightness,  line, saturation, height,   and
local surface orientation at specified range locations can be computed
from these images.  These attributes represent the new  data available
to the  system  for   recognizing  and identifying   objects.   Object
descriptions  are provided  initially by indicating the  object to the
system, and allowing the system to  measure  attributes.   Other data,
such  as  typical object relationships,  are provided interactively by
the user.
     When  required to  locate  an  object,  the  system  computes   a
distinguishing  features  representation that will   serve to separate
parts of the target from those of other objects.  These distinguishing
features are combined into a strategy represented as a planning graph.
This graph   contains optimal  subgoals  for achieving   the  goal  of
locating the object. An execution routine selects the best subgoal,
executes it,  rates  its effect,  and selects  the   next best   goal,
continuing with the  progress until either the  object is located,  or
there are no options remaining.

     This  approach   offers  several  contributions   to   perception
research.  By  capitalizing  on   the  goal-directed  aspects  of  the
problem, the system is able to select relevant information from a mass
of irrelevant data.  The system is able to organize  its processing in
such a way as   to optimize the  use  of sensor data.    By generating
strategies when needed, the program allows for  the easy  introduction
of new  objects and new sensors.   The system allows  for the  logical
introduction of new information deriving algorithms.\\
--------------------------------------------------------------------------------
-------------------------------------------------\\
TECHNICAL NOTE:  120\hfill PRICE: \$10.00\\[-0.15in]
\begin{tabbing}
\noindent TITLE:  \= QLISP:  A LANGUAGE FOR THE INTERACTIVE DEVELOPMENT\\
              \> OF COMPLEX SYSTEMS\\
AUTHORS:  \= EARL SACERDOTI, RICHARD FIKES, RENE REBOH, DANIEL SAGALOWICZ, \\
      \> RICHARD WALDINGER and B. MICHAEL WILBER\\
DATE:  MARCH 1976\\[-0.15in]
\end{tabbing}
     ABSTRACT:  This paper presents   a functional  overview   of  the
features and capabilities of QLISP, one of the  newest  of the current
generation   of  very high   level  languages    developed for  use in
artificial intelligence (AI) research.

     QLISP  is both    a  programming  language and  an    interactive
programming  environment.  It embeds  an  extended version of QA4,  an
earlier AI language, in INTERLISP, a widely available  version of LISP
with a variety of sophisticated programming aids.

     The language  features provided by  QLISP  include  a  variety of
useful data   types, an associative   data  base for the  storage  and
retrieval of  expressions,   a  powerful pattern matcher  based  on  a
unification algorithm, pattern-directed function invocation, teams
of pattern involved functions, a sophisticated mechanism  for breaking
a data base into contexts, generators for associative  data retrieval,
and easy extensibility.  System features available in QLISP  include a
very   smooth interaction with the  underlying  INTERLISP  language, a
facility for aggregating multiple  pattern matches, and  features  for
interactive control of programs.

     A number of the implemented applications of QLISP are briefly
discussed, and some directions for future development are presented.\\
--------------------------------------------------------------------------------
-------------------------------------------------\\
-------