a /3. /o . U.S. Department of Commerce National Bureau of Standards S^o - &8 V S~ ' Computer Science and Technology NBS Special Publication 5OO-68^2£j»0- The Expert Assistance System for the NBS Network Access Machine Digitized by the Internet Archive in 2013 http://archive.org/details/expertassistanceOOwatk Computer Science and Technology NBS Special Publication 500-68 The Expert Assistance System for the NBS Network Access Machine Shirley Ward Watkins Center for Computer Systems Engineering Institute for Computer Sciences and Technology National Bureau of Standards Washington, DC 20234 ** ° F c a U.S. DEPARTMENT OF COMMERCE Philip M. Klutznick, Secretary Jordan J. Baruch, Assistant Secretary for Productivity, Technology and Innovation National Bureau of Standards Ernest Ambler, Director Issued November 1980 Reports on Computer Science and Technology The National Bureau of Standards has a special responsibility within the Federal Government for computer science and technology activities. The programs of the NBS Institute for Computer Sciences and Technology are designed to provide ADP standards, guidelines, and technical advisory services to improve the effectiveness of computer unitilization in the Federal sector, and to perform appropriate research and development efforts as foundation for such activities and programs. This publication series will report these NBS efforts to the Federal computer community as well as to interested specialists in the academic and private sectors. Those wishing to receive notices of publications in this series should complete and return the form at the end of this publication. National Bureau of Standards Special Publication 500-68 Nat. Bur Stand. (U.S.), Spec. Publ. 500-68. 44 pages (Nov. 1980) CODEN: XNBSAV Library of Congress Catalog Card Number: 80-600178 U.S. GOVERNMENT PRINTING OFFICE WASHINGTON: 1980 For sale by the Superintendent of Documents, U.S. Government Printing Office, Washington, D.C. 20402 Price $2.50 (Add 25 percent for other than U.S. mailing) TABLE OF CONTENTS 1.X) INTRODUCTION 2.K) NETWORK ASSISTANCE 3.K) THE EXPERT ASSISTANCE SYSTEM 3.3 3. '4 The NBS Network Access Machine Design Axioms 3.2.1 Optionality 3.2.2 Compactness 3.2.3 Ease of Use Levels of Expert Assistance 3.3.1 Transcript 3.3.1.1 Overv iew 3.3.1.2 NBS EAS Implementation Parameterization 3.3.2.1 Overv iew 3.3.2.2 NBS EAS Implementation Unxpected Response Handling 3.3.3.1 Overv iew 3.3.3.2 NBS EAS Implementation Upper Levels of Expert Assistance 3.3.4.1 Learning Feature 3.3.4.2 Query Capability 3.3.4.3 Optimization Components of the EAS 3.4.1 The Recording Module Translation Module 2.1 Macro Directives 2.2 Echo Removal 2.'3 Parameterization 3.4.3 The Knowledge Base 3.3.2 3-3. 3 3.3.4 3.4.2 The 3.'4, 3.4, 3.4, The 4.0 ENHANCEMENT TO THE CURRENT NBS EAS 4.1 User Selection of Parameters 4.2 User-specified Parameters 4.3 EAS Subsystem to Expand the Knowledge Base 5.0 SUMMARY 6.0 REFERENCES APPENDICES A — H Page 2 3 4 6 6 6 7 8 9 9 9 10 10 10 12 12 12 14 14 15 15 16 16 17 18 20 21 22 25 25 26 26 27 28 30-39 111 DISCLAIMER Certain commercial products are identified in this special publication in order to adequately specify the Network Access Machine and the Expert Assistance System. In no case does such identification imply recommendation or endorsement by the National Bureau of Standards, nor does it imply that the products identified are the best available for the purposes described. iv The Expert Assistance System For The NBS Network Access Machine Shirley Ward Watkins ABSTRACT The Expert Assistance System (EAS) was developed at the National Bureau of Standards as a prototype to assist network users. Network users are faced with the problem of learning different procedures in order to access similar services on different host systems. A great deal of research has been precipitated by the desire to simplify network usage and many tools have been developed to assist the network user . been mac hi of n targe comma net wo if t prov i f unc t comma One o to im ne tr etwor t ho s nd s r ks . he u ded b ions nd la f th pi em ansl k a t sy whic An ser y th to i ngua e ap en t ates nd s stem h a iron des e in nd iv ge - pr oach an in t simpl ystem th re ap ic con ires termed id ua 1 - that es tak ermed i e user comman us , t pi ic ab se quen to ex p iar y m need s , of th en 1 ar y com d s r he le ceo and ac hi the e in n ne mac h mand equi user on f su the ne o use term twor k ine . s into red fo lear differ chan basic r to r has ed iar y ass The th r ex ns ent appr set tail to 1 mac i sta inte e s ec ut one sys oach of f or earn hine nee rmed eque ion set terns i s unc t ex is ano its has iar y nces on a of and that ions ting ther elf. The EAS addresses the problem of building procedures for an intermediary machine. The EAS automatically generates procedures by recording an interaction between a user and network system and then translating this interaction into the commands required for execution on the intermediary machine. Development of the EAS was facilitated by the existence of an intermediary machine at the National Bureau of Standards -- the NBS Network Access Machine (NAM) . This report briefly describes the motivation for the development of a network assistance technique, discusses the design and implementation of the EAS at NBS, and then concludes with a view of future enhancements to the current EAS.' The context for the description of the EAS is the NBS NAM; however the concepts are applicable to the general field of network user assistance. Key words: Command languages; Communications; Computer access; Computer networks; Minicomputers; Protocols; User inter f ac es . This Special Publication is one of a series prepared as part of a jointly sponsored effort by the National Bureau of Standards and the U.' S.' Air Force Rome Air Development Center under contract number F 30602 -77-F-0066 . ' 1.0 INTRODUCTION The diversity of service offerings provided by computer networks was a major catalyst to the growth in popularity of networking. In addition to sparking the interest of computer enthusiasts, networking proved to be an attractive alternative to another class of computer user--those desiring access to remote computer resources or services. Services are defined as programs or combinations of programs provided by a computer system: e.g., assemblers, compilers, information retrieval systems, report generators and text processors. Due to this interest in the "end products" of networking, the members of this class are referred to as end user s . In attempting to use the services provided by heterogeneous networks, end users are faced with the problems of accessing services provided on different systems. Even the same services may have different access procedures when offered on different systems. In response to this access problem, numerous approaches to aiding end users have been investigated. As reported by Rosenthal [ROSER 76], these approaches fall into a number of categories. Some of these categories reflect the type of assistance provided (basic communications assistance, resource identification, resource connection, and service integration), while others reflect the architecture of the assistance technique (distributed assistance, minicomputer hosts, and intelligent terminals). An implementation of one approach is the National Bureau of Standards* Network Access Machine (NAM) in which user procedures are implemented as macros which drive a user/system session. Following a general discussion of network assistance, this report will present details on the design and implementation of the NBS Expert Assistance System which is an aid to the NAM user. A brief description of the NAM is also included, with references to reports providing additional information. 2.0 NETWORK ASSISTANCE Watkins and Kimbleton [WATKS 78] make several observations concerning network assistance which influenced the decision to extend the capabilities of the NBS NAM. Key points are summarized here; the reader is referred to the original report for justifications. Of the three major network user categories (end users, applications programmers, and systems programmers), the category which is most receptive to network access support is that of end users. Further, if a network access technique limits itself to support of this restricted audience, the development of the required access support still proves difficult. This diff skil in te serv acce init stag amen r equ it i ind i Ther grou thro icul 1, nsi t ice . ss ial i es , able ires s un v id u efor ps ugh ty rate y, Wa to za t i it to int r eas al s e , s for serv is d of and tkins a ser on , u appe the u r icat onabl to uc h s the ic e a ue c ha acce and v ice tili ar s tili e kn e to be uppo ser cces to th nge ss c Kimb pr oc za t io that zat io o wled ex pe kno wl r t sh v ic es s sta e foil in a omplex leton eed s i n and c en tr n stag ge of c t an edgeab ould b , by nd ar d i owi ng ccessi ity a [ WATKS n four term i al i zed e. T the se y ind 1 e in e pr ov the zat ion user ng ssoc 78] sta nat i ace he r v ic iv id all id ed serv v ar iat i serv ice iated wi also ob ges : ac on . Gi ess supp ut il izat es being ua 1 or network either ice d ev e ons : s, th a serve qui si v en or t i ion acce grou serv by loper user usage g iv en that t ion , these snot stage ssed ; p of ices. user s , or These observations are confirmed when reviewed in relation to the NBS NAM. The major interest in using the NAM comes from the end users: e.g., librarians, information retrieval specialists. The stages of network access most generally addressed are the acquisition, initialization, and termination stages; when the utilization stage is supported, "experts" in given services have been called upon to formulate a library of support macros, one of the primary NAM mechanisms for executing user procedures. There is another observation which may be made concerning usage of the NBS NAM; typically NAM users at some time wish to incorporate something new or different into the already existing macro library. At this point, they must write their own macros. Even if the end users restrict their macros to the minimally required NAM directives, there are complications; namely, detailed knowledge of the character strings (which may contain non-printing characters) received from a host system is required. Therefore, the end user would probably find it inconvenient, at best, to create individualized macros. Remembering that end users do not necessarily reflect a programming interest and that end users form the major category for access support, it seems reasonable that a technique be devised to aid them in the development of NAM macros . In recognition of the problems encountered by the end users in attempting to create individual macros, a technique was designed to autmatically generate macros for them. 3.0 THE EXPERT ASSISTANCE SYSTEM As noted above, NAM macros require exact specification of character strings which are to be received from host systems. If the specified character strings contain inaccurate or incomplete information, the NAM controlled interaction with the host system will not proceed properly. In order to insure the inclusion of the proper character strings, a usual procedure is to use the NAM to connect to the target system and then enter the command strings which should be sent to the target system by the NAM. An option is available in the NAM to create a transcript of an interaction for the NAM user. This transcript provides a record of all characters received from the target system (including normally non-printing or control characters). Using this transcript, the user then generates the required NAM d ir ec tiv es . Based on the observation that a user/target system interaction precedes the creation of NAM directives, it was concluded that it would be appropriate to provide a special subsystem to generate these directives based on the transcript. This facility is called the Expert Assistance System (EAS) . In this section, an overview of the NBS NAM* will be provided followed by the details of the design of the NBS EAS.' The NBS EAS will be described by presenting the design axioms, by providing a functional description of the EAS through a discussion of the increasing levels of EAS capability, and by describing the software components of the system . 3.'1 The NBS Network Access Machine The N of Standar end user , The NAM o per at ing Labor ator i mec han ism s user-enter on spec i f i network; ( typically could occ mec han isms col lee tiv e pr ogr amm in in ter ac tio macro ; th directives to the tar in spec ts system to etwork Access d s f ac il itates [BLANR 74], [ is implemente system . ( U es . ) Suppor t : macros wh ed commands i c networks and a response ana the expected ur ) dur ing th ( case stat ly, const it g language, n in which e mac ro is ( some of whic get system) ; each RESPONSE d eterm in e if a Machine (NAM) at the National Bureau access to network resources for the PYKET 73], [ROSER 74], [ROSER 76]. ! d on a PDP 11/45 running the UNIX NIX is a trademark of Bell is provided through three primary ich support expansion of simple nto the command sequences executable host computers connected to the lyzer allowing alternative responses response plus error conditions which e expansion of a macro; and control ements, i f- then-el se ,... ) which, ute a command language level Figure 3. '1-1 shows a simple the end user enters the name of a expanded into a sequence of NAM h are character STRING(s) to be sent and the response analyzer of the NAM which it receives from the target ny anomalies occur. END USER/TARGET SYSTEM INTERACTION Figure 3. '1-1 MACRO End > User < RESULT NAM STRING(s) > < RESPONSE(s) Target System legend : MACRO STRING(s) RESPONSE(s) RESULT name of a mac ro a character string or series of character strings sent by the NAM to perform the function defined by the m ac r o the text strings sent by the target system in reaction to a command string sent by the NAM presentation of macro execution; RESULT may or may not be identical to the text string RESPONSE The NAM design is based on the concept of presenting one uniform set of user commands which are executable across network boundaries and across heterogeneous host systems. In operation, user commands are first expanded into the command sequence appropriate to the system being accessed, responses are analyzed to determine if the interaction is proceeding as expected, anticipated errors are handled directly, and unanticipated errors are presented to the user for handl ing . These capabilities have proven sufficiently powerful to support a number of applications. Rosenthal [R0SE2 78] discusses these applications which include: an aide to host connection ([BLANR 7H], and [ROSER 74]); an experimental Remote Terminal Emulator ([ABRAM 77], and [MAMRS 78]); bibliographic information retrieval [TREUS 78]; and, "shopping" for network service based on the execution of benchmarks across target systems [R0SE1 78].' Each of the above applications had one key element in common -- the NAM macros which provide the foundation for each of these applications were written by persons quite versed in the NAM language. As previously mentioned, the NAM really provides a command language level programming language. This language requires that the user supply a minimum of the following information: the character string that should be sent to the target system, the conditions which indicate that the character string received from the system in response to the user character string is completed (the termination conditions), and the character string which indicates that the response from the system is what was "expected" (the match conditions). If the full capabilities of the NAM are employed, the user can formulate quite sophisticated conditional statements, perform complex string operations, and in fact call any program which is available under the UNIX operating system. 3.2 Design Ax ioms There are three design axioms which prevail in the EAS: (i) present this feature as an option to the user; (ii) keep the system compact; and (iii) construct an "easy to use" interface for the end user. 3.2.1 Optionality - NBS was user and a ssi boun are i ssu r eco targ term pr oc the The NAM; a d es /targ to id stanc d ar ie defi e s a rd s et s inate ed ur e r equi EAS i i t m ign et sy entif e in s o f ned . comma all ystem s t , the red N s im pi erne ust be ex d ec ision stem inte y them to m ac r o the inter The pr nd to the char ac ter ; the he reco EAS tran AM direct n ted pi ic not r ac t the buil ac ti oced NAM s e user rd in si at iv es as an o itl y inv to CO ion to r end use d ing , t on to be ur e is to inv x chang ed issue s g . Fo e s the r pt ional oked by nt inual 1 ecogni ze r . If t he EAS i conv er t the fol oke the between a NAM 1 lowi ng ecord ed featu the en y sea r epea he end s inv o ed int lowing EAS; the u comm this in ter a re o d use n th ted a user ked o a : th th ser a and r ec c t ion f the r . It e end c t ions wants nd the macro e user e EAS nd the wh ic h ord ing s into 3.2.2 Compactness - Compactness has been a primary consideration in the design of the EAS.' The processing required by the current NAM software is considerable; therefore, extensions to that existing software must be carefully weighed to balance service provided and resource consumption. Since the EAS represents an attempt to minimize the frustration of the end user, it is imperative that the processing time of this added software not impact response time perceived by that user . 3.2.3 Ease Of Use - Several features have been implemented to address the ease of use axiom: tailoring user/EAS interactions for two broad classes of end users, an on-line help feature, and added user response checking to buffer the end user from system diagnostics. Appendices A, B, C, D, and E present sample user sessions with the EAS to demonstrate the features designed in the interest of ease of use. These five appendices show the interactions required for translation of a transcript into a macro; all five use the same tr an sc r i pt . end u broad ( Appe inter que st Ver bo nov ic A and qui te the e There ser m , ex nd ix ac tin ions se mo e or Appe obv nd us ar e ay i pe r i A) g wi ask de ( infr nd ix ious er b two nter en ti pr es th t ed Appe eque B, V ecom modes ac t wi al cl umes t he EAS and t nd ix B nt use the d i erbose es f am ( no th t asse hat and he ) i r of ffer mod il ia rmal an he EAS. s of the end as sue pr oced u s prov the EA enc es i e would r wi th d v e ' Th EAS use his res id ed S. n t pro the rbose) in ese modes user . r is ex pe f am ilia of mac ro pr imar i By compar hese two bably be EAS. which the address two Normal mode r ienc ed wi th r with the tr an si at ion . ly for the ing Appendix modes are tedious once Appendices C and D demonstrate the on-line help facility of the EAS.' At any time an end user input is required, that end user may enter a "?" and receive all the options available for entry at that time. The EAS response to a "?" reflects the mode (normal or verbose) selected by the end user. Appendix C shows the help facility when normal mode is selected and Appendix D shows the same help features for verbose mode. An d iagnost NAM and the res user res issuing cor r ec tn r esponse user is po int . the name the nam format o of the prov id ed in a me is again spec i fie the EAS that th demonstr attempt is a ic messages EAS are impl ponses ente ponses conta oper ating ess . If t ( wi th res informed of An example of the macr e of the fi f the name i proper form by the oper aningful way found in m s a name wh i informs the e existing ates these e 1 so mad e or ignat emen ted . r ed by t in ing i system he end pect to the v iab of thi o to be le in wh s unacce at. The ating sy An ex aero fi ch d upl i end user file sh ase of u to shield ing from the This is ad he end user n format ion command s user enter the operat le options s type of as created . Th ich the macr ptable , the EAS also in stem and pre ample of thi 1 e nam ing . c ate s that o and asks t ould be over se f eatur es . the end system dressed for lega wh ic h i are s s an ing syst av ail ab si stance is name o is sto EAS info ter pr ets sents it s type o If th f an ex i he user wr itten . use on wh by c lity; s us c r een un ace em) , le a i s e al so red . rms t info to t f ass e en sting to App r from ich the hecking thus , ed for ed for eptable the end t that nter ing becomes If the he user rmat ion he user i stanc e d user mac ro , verify end ix E 3 . 3 Levels Of Expert Assistance This section provides a functional description of the EAS. Following this level of description, the software components required to implement the EAS will be described. Expert assistance may be subdivided into six increasing levels of sophistication: transcript, parameterization, unexpected response handling, learning feature, query system, and optimization. These levels form a hierarchy of assistance functions (see Figure 3.3-1). For the purposes of the NBS EAS effort, only the first three levels of assistance will be implemented. These levels are presented in this report by first giving a general overview of the capabilities implicit in a given level and then providing a description of the features of the NBS EAS at this level. Only a brief overview of the highest three levels is provided since they will not be incorporated into the NBS EAS.' \ / \ OPTIMIZATION FUNCTIONS / \ / \ QUERY CAPABILITY / \ / \ LEARNING FEATURE / \ _ / \UNEXPECTED RESPONSES/ \ / XPARAMETERIZATION/ \ / \ TYPESCRIPT / \ / Levels of Expert Assistance Figure 3-3.'1 3 - '3 - 1 Transcript - 3-3. 1 . '1 Overv iew - The minimum level of assistance provides a simple record/translate function. Based on the recorded user/system interaction, a sequence of NAM directives to replay a recorded interaction is produced. This level of expert assistance does not handle variations in a single system's response or minor changes in user commands, a support function that can be achieved through parameterization. . 3.3.1.2 NBS EAS Implementation - Initially, the utility of an EAS which only provided the transcript capability seemed non-existent. It was found that the need for parameterization was determined by the purpose of macro creation. There are two classes of EAS users: the individual end user and the "expert" user. The individual end user is characterized by an interest in building macros strictly for private use. The individual end user may not select parameterization for the acquisition, initialization, and termination stages of access because the macros are not intended for use by o ther s . The ex per t use o f s data bas The use c har ac te par tic ul the tar an impor NAM the ex pe r t i pur po se par amete acqui si t required " ex pe r serv ic e pec i fie e manag of t r i zed ar serv get ser tant d i mac ro n combi of bu r i za t io ion s for lo t" u sp bib em en he by ic e . v ic e st in li nati ildi n i tage gin ser is n ec ial ist 1 iograph t system EAS by b ui 1 d i Note t , not o n c t ion ; br ar ies on with ng 1 ibr s r equi , user will v ar ot ic s, t ng hat th in fo a s ar i red i y. an e for info text he lib thi e EA past r se er v i es » dent x per t ex am rmat i pr oc serv r ar ie s per S nor appl rv ice c e s of g for i f ica EAS Pie , on r esso ic e s o son on icat s we pec i ener ex t ion user , an ex etr iev r s , or spec f mac is an the NA ions o re bui al ist . ally u ampl e , s and rathe pert i al sys compi ial ist ros f ex pe r M. Th f the It by For sed ma in pa ss r an n the terns , 1 er s . i s or a t on is is NBS a NAM the cros , the wor d s 3.3.2 Parameterization - 3. 3. 2.1 Overview - At the parameterization level of expert assistance, certain fields of user commands can be identified as variable. Such identification can either be explicitly provided by the user or by the EAS based on its knowledge of commands and services. The identified fields can then be incorporated as parameters to the macro built by the EAS.' 3.3-2.2 NBS EAS Implementation - It is the intent of the design of the NBS EAS to implement parameterization by both allowing the user to force field identification and by providing a knowledge base of a few known systems and subsystems. However, in the current implementation, field identification is only provided through use of the knowledge base. As will be discussed in section 3.4, the developmental system has limited flexibility. User identification of fields is straightforward and discussion of how it can be incorporated into an operational model is provided here. User specified parameterization would be designated via a special character. This character would by default be a specific control character; however, a command should be made available to redefine this special character to be any character convenient for the user. When the user enters this special character, it would be trapped by the recording module of the EAS and stored in the transcript file but not forwarded to the target system. If in fact the end user wished to send the special character to the target system, the character would be entered twice. Figure 3.3-2 demonstrates the differences between what would be placed in the transcript file and what would be sent to the target system when the special character is used. The "@" designates the special character strictly for purposes of clarification for this example. In CASE 1, a field is flagged as variable; in CASE 2, the special character is sent to the target system. 10 Handling the Attention Character Figure 3-3-2 User Enter s CASE 1: log @Watkins CASE 2: log @@Watkins Placed In Tr an sc r i pt log @Watkins log @@Watkins Target System Rec eiv es log Watkins log & Watkin s It is obvious that user identification of not consistent with the philosophy of environment to build macros without prog ramm ing- type techniques on the end user, order to provide a flexible system, this optio included. As discussed above, expert us specialists) will require parameterization build libraries of macros for others. It is the service specialist is adequately versed in service to determine what types of informatio from user to user or session to session and sho be designated as parameters. par ameter s is pr ov id ing an im po sing Ho we v er , in n should be ers (service bee ause the y assumed that the target n wi 1 1 chang e uld therefore The kno in section implement th augment that Knowledge b necessitate cod e . Ho wev section, an make additio subsystem wh The followin knowledge ba is logging i EAS, th id en ti fie at i account num knowledge , t par ameter i za wledge base of the prototype NBS EAS (described 3.4.3) is small; however, the structure used to is base is sufficiently flexible and easy to future enhancements could be conveniently made, ase augmentations to the prototype NBS EAS program changes and r ecompi I at ion of the EAS er , as will.be discussed in the enhancements extension to the EAS could allow the end user to ns to the knowledge base by entering an EAS ich would query the user for needed information, g is an example of how parameterization via a se would work: the EAS recognizes that the user n to a system; if that system is known by the e EAS also knows what user onent i f icat ions (•e.g, identification, password, ber) are required to login; based on this he EAS knows what fields are candidates for t ion . 11 ism i*y 3 . 3-3 Unexpected Response Handling - 3.3.3.1 Overview - The unexpected response is certainly not an uncommon event in a networking environment. Therefore, macros should be flexible enough to recognize certain system responses, which do not match what was built into the macro as expected, and to deal with them properly. There are two approaches to handling the receipt of an unexpected response: a priori identification of all possible responses together with incorporation of appropriate actions; and user notification of the occurrence of an unexpected response which relies upon the user to specify the next action to be taken. The a p r io r i approach would be implemented via a preprogrammed EAS knowledge base. There are two impediments to this approach: identification of a large number of responses which are dependent upon such command parameters as the network, host system, and subsystem being used, and the remaining probability one-time or infrequent system responses (e.g., error or diagnostic messages) will still occur. It is certainly reasonable to implement a small knowledge base containing those "expected" unexpected responses which occur with some regularity (e.g., broadcast messages from the operators which are preceded by a constant tag). Therefore, coupling the preprogramming of a small base of such unexpected responses with user notification appears to be the most logical method of dealing with the unexpected response syndrome. 3.3.3.2 NBS EAS Implementation - This level of expert assistance is not implemented in the current NBS EAS; however, the anticipated implementation will closely mirror the above overview and the design considerations presented in this section. In order to determine which unexpected responses are reasonable for the EAS to handle, the reasons for their occurrence must be investigated in addition to the methodology for incorporating the procedures for handling unexpected responses. Basically, there are four reasons for receiving an unexpected response: 12 3. 4. An operating system change in which system messages to the user community differ from the messages pr ev iousl y sent , A one-time or rare occurrence of a particular system message , A target system crashes, and Responses which are not classified as "expected" but occur with some frequency. unex unex the en tr that the on the cont the o pt i hand The pec t pec t EAS y i s r e r ec e ho w c ur r in ua anom on ling fo ed ed r wi fou spon ived to ent t ion al y al so the 1 lowin r espon espons 11 be nd , th se; i r espo proce ex pan s of t occur r ex is anoma g m se h e is sc e EA f th nse ed . ion he m ed . ts iy i ethod and 1 i enco anned S use e ent to th Ther or ha ac ro If t to in n to t ology is ng : d ur i un ter ed , for a ma s the pre r y is not e end use e are two ve the us ex pansion he user s cor por ate he ex ist i used ng macro the kno tch; if programm found , r and qu ways to er inter from th elec ts t the use ng macro to i ex pan wl edge a cor ed pro the EA er ie s proce c ed e f e po in he la r proc ncor por ate sion i f an base of respond ing cedure for S presents the user ed : abort ollowed by t at which tter , the edures for The NBS EAS builds macros which consist of terminate, match and send triplets. If the user wishes macros to be expanded to handle more than one expected response, this triplet must be expanded. Namely, conditional statements must be added to the macro to allow for multiple correct possibilities. Logically, the macro would resemble the fol lowi ng : If Response == "Expected Response 1" then execute procedure 1 If Response == "Expected Response. 2" then execute proced ur e 2 If Response proced ur e N "Expected Response N" then execute Now hav e be to handl sui tab il response system the prev hav e th pe r pe tua for dea and rege mac ro s user kno in termed tha en g e u ity s wi chan io us e c te u 1 ing ner a v ia wled iary t the r iven an nex pec t of ex 11 be i ge whic 1 y used ur r en t sel ess wi th s te new an ed ge of t mac hin easo d th ed pec t nv es h el sys m ac info uc h ones itor he c e ,. w ns f o e met r espo ing t igat im in a tern r ros rmat i a c ha v ia Th omman hile r re hodo nse s the ed . tes espo ex te on . nge : the e fo d la the ceiv logy ha NBS In the nses nd ed The de EAS, rmer ng ua latt ing une for b u s been EAS to the cas probab i , it is ; thi user lete th or mod o pt ion ge r equ er does x pec ildi de hand e of lity unr s p has e pr ify doe ir em ted r ng pr scr ib le un an o of r eason roces two ev iou the s not en ts esponse s oced ur es ed , the ex pec ted per ating eceiv ing able to s would opt ions s macros ex ist ing pr esume of the 13 In the case of a one-time or rare occurrence of a particular system response, it is unnecessary to extend the current macro. A more reasonable procedure would be for the user to abort the current expansion and try again, or to intercede with the target system and continue macro expansion from that point. If the target system crashes, the current macro must be aborted. The user, of course, could then go to another target system and proceed, if the required services are av ail able . For handling responses that do occur regularity, it is certainly reasonable for the expect assistance. The very common "expected" responses for services known to the EAS impleme be contained in the EAS knowledge base. However, services or operating conditions not known to t capability would exist for the end user to deal anomaly and have the resulting in ter ac tion( s) i into the existing macro. It would be the decisi end user whether or not the actions taken upon re anomaly would be built into a macro. with some end user to unex pec ted ntors would for those he EAS, the with the ncor por ated on of the ceipt of an 3.3.^ Upper Levels Of Expert Assistance - The three upper levels of expert learning feature, a query capability, These levels are not be implemented however, a brief description of each interests of completeness. assistance are a and optimization. in the NBS EAS; is provided in the 3.3-4.1 Learning Feature - The capab il i knowledg gener ati knowledg user i interact encoun te user/ sys any) , th its kno response the EAS le ty e ba on e ba nter ion red tern e EA wl ed oc uses arm prov se o proc se o v ent wit fo in te S au ge cur s thi ng fe id ed f serv ess . f the ion . h a. r the r ac t io tomat i base ; in s new atur e by un ices i Ho we v EAS is For serv ic firs n( s) t cal 1 y when a sim i i n form is sim ex pec ted s used er , in d ynam i ex ampl e , e , a s t t ime ; r igger ed adds thi thi s 1 ar situ at ion . ilar to response to enhan the learni c al 1 y ex p based o ystem mes after by this s unexpect 11 expec ted ation with the han ce t ng fe and ed n on sag e ob ser r esp ed re " u ano t type dl ing he m atur e wi t e us may v ing onse spons nex pe her u of : a aero the ho ut er's be the (if e to c ted ser , It is anticipated that the type of information dynamically incorporated into the EAS knowledge base would no doubt take the form of system level messages which should 14 be ignored when encountered rather than generating faulty macro expansions. However, identifying the types of activity which are candidates for the learning feature requires thorough examination to determine inclusion, decided which are to be included. Certain activities are too general applicability individualized to assume; typical of the type of activity which would probably not be included is that which deals with the utilization stage of access (discussed in section 2 . X3 ) . The concept of incorporating a learning feature is not new; the RAND Corporation provided a similar feature in its prototype RITA system which acted as a user agent. Anderson [ANDE1 76] and [ANDE2 76] discusses the design of RITA.' 3. 3. '4. 2 Query Capability - At the level of the query capability, the user is guided by the EAS through the entire process of macro generation. The user simply specifies the target system and objective of usage (general class of activity) and the EAS automatically generates the appropriate macro. If user- spec i fie information is required for macro generation, the EAS queries the end user for the data. This level of expert assistance requires an extensive knowledge base of systems and services. As such, it also would consume large amounts of computer resources to support the expert assistance software. 3. '3-4. 3 Optimization - The highest level of expert assistance provides optimization support. At this level, the expert assistance system suggests to the user that certain activities are being repeated and could be incorporated into a macro. Further, the system suggests that more efficient ways to perform certain activities exist. While these objectives are beyond the scope of the NBS EAS, and, in fact, are contrary to the NBS EAS design axiom of optionality, such support mechanisms have been considered for provision as part of a military message processing system (see [HEAFJ 74]). 15 3. '4 Components Of The EAS This section describes the software components requirea to implement the features of the EAS discussed previously. The EAS consists of three major components: the recording module, the translation module, and a knowledge base. The translation module produces the NAM directives with information supplied by the recording module and the knowledge base. This section will describe the current implementation of these three components. In its operational state the EAS would be a subsystem of the NAM; however, during its developmental stages, it was implemented independently of the NAM. As a result the recording module operates in a more isolated environment. For example, using the NAM a user may alternate between issuing commands to the NAM (in the form of macro calls or other directives) and to the target system directly. However, using the recording module of the EAS, it is not possible to enter characters directed only to the EAS. Everything entered by the user is sent to the target system. 3.4.1 The Recording Module - The recording module of the EAS is quite target system is specified and a connection is with that system. Once the connection is characters exchanged between the target system user are recorded. Figure 3-4—1 shows an inter the recording module, RECORD. RECORD is cal parameter, the name of the system to which conne be made. The interaction shown in Figure 3 - 4 — 1 transcript used for building the macros shown in and Appendix H. The underlined portions of Figu the user-entered character strings. simple : a establ ished mad e , all and the end action with led with one ction is to produced the Appendix G re 3 • 4-1 are 16 Creation of the Transcript Figure 3 - T 4 — 1 I rj, c , or A i.si[^CR2 [LF ][CR][LF 3ISI-TENEX 1.34. '40, ISI-SYSTEM-A EXEC 1.54.27ECR] [LF ]glog in sww passwd [CjU [LF3J0B 36 on TTY36 8-Nov-79 08:43[CR] [LF 3PREVI0US LOGIN: 1-NOV-79 09:42[CR] [LF]§dir[CR] [LF][CR] [LF ][CR] [LF ]] ARC HIVE -DIRECTOR Y [ . "; 1 [CR] [LF]@logo[_CR_l [LF3KILLED JOB 36, USER SWW, ACCT GEN-NBS, TTY 36, AT 11/08/79 08U5[CR] [LF ]USED 0: 0: 2 IN 0: 0: 27 User and system characters (including system echos) are recorded using thep83300 exact time sequence they occur; the time at which characters occur is not recorded but the order of occurrence is preserved. In order to provide the translation module with an indication of which characters were originated by the user and which by the system, the recording module must record a flag for the post processing of the recorded data. Character information requires 7 bits for storage and 8 bits (one-half of a PDP 11/45 word) are provided. Therefore, the eighth bit of every character is available. This eighth bit is used to indicate if the character is user or system generated. If the eighth bit is set (equals 1), the character is from the system; if the eighth bit is not set (equals 0), the character is from the user . 3. '4. 2 The Translation Module - Once the user terminates the recording of a user/system interaction, the translation process begins. While the overall responsibility of the translation module is to create macro directives, implicit in this function is echo removal and parameterization. The translation module requests certain information from the user which is essential to the macro generation process. Appendices A through E are samples of user interactions with the translation module. The information requested by the translation module includes: the name of the macro to be built, the name of the system on which the macro will execute, and if the system and user activity are 17 recognized, a user decision concerning parameterization. The first piece of information, the name of the macro, allows the user the flexibility to invoke macros by names which are meaningful to the user rather than having the translation module create names in some homogenized fashion. The name of the system is required as a pointer into the knowledge base which contains the known services and the potential parameters. The last piece of information provides a parameterization option. 3.'4.2.'1 Macro Directives - The translation module builds triplets of NAM directives in the sequence: .term, .match, and .send. In the .term directive the conditions which must be satisfied in order for a system response to be judged complete are specified. These conditions may take one of two forms: a timeout or a character string. A timeout is the maximum number of seconds which may occur between the last user character transmitted and the first system response character received or between two consecutive system characters. In choosing a character string to be used for a terminate condition, the shortest, unique string is normally the best candidate. The requirement for uniqueness is mandatory: as soon as the terminate character string is encountered, the NAM ignores the remainder of the system characters sent and continues processing the macro. The possibility exists that an incomplete system response will result in the .match condition being unsatisfied or the next user string being prematurely sent to the target system. The translation module builds terminate conditions which are satisfied by a timeout or a character string. The timeout was arbitrarily chosen to be 30 seconds; it was felt that this interval insured that a timeout would be the result of a target system crash and not simply slow response due to system loading. The user/system interactions are scanned in couple transactions; that is, the file built by the reco module is viewed by the translation module as pairs of initiated stimuli and their associated system responses this context, the terminate character string is buil scanning a particular system response beginning wit last character sent by the target system. The cu system response is placed in the buffer SYSBUF. The character is considered a candidate as the terminate st as such it is placed in the buffer TSTBUF for testing, remainder of the system response is scanned for reoccurence of this character; if the character i found, the terminate string consists of a timeout o seconds or an occurence of that one character; i character is found, then that character is moved to the ts o f rd ing user In t by h the r r ent 1 ast ring; The the snot f 30 f the next 18 Page 19 position in TSTBUF and the character preceding that character in the system response becomes the first character in TSTBUF. At this time the remainder of the system response is scanned for the re-occurrence of these two characters and the process is repeated until a unique character string is found. Figure 3-^—1 demonstrates the process of finding a unique character string. Building A Unique Character String Figure 3 . T 4 — 1 SYSBUF ! W!E C! M| E 12 3 4 5 6 S t e p 1 : Step2: Scan SYSBUF for another the contents of TSTBUF; found occurrence o f dupl ication is Step3: TSTBUF M! E 1 Step4: Scan SYSBUF for another the contents of TSTBUF; is found occurrence o f no dupl ication The resulting directive built is: .term "t30l'ME'" The .match directive designates the system character string which indicates that the system response received is that which is expected. The match directive built by the EAS incorporates the exact character 03005 string as the corresponding .term directive. Using the example provided in Figure 3. '4-1. the .match directive would be: .match " 'ME' " 19 The .send directive designates the user character string to be transmitted to the target system. A sample .send directive is: .send "Login Watkins[CR]" Every character occurring within the double quotes is transmitted to the target system. The exception is marked by encountering square brackets. Bracketed terms indicate non-printing or control characters from the ASCII character set which should be transmitted. Appendix H lists these abbreviations. When the user desires parameterization, the character string which is variable is denoted by "$N" where N is a positive integer. Using the above login request, the following would be the .send directive generated: .send "Login $1 [CR]" Parameterization is discussed in more detail below. 3. '4. 2. 2 Echo Removal - The recording module mai characters exchanged between the is the r esponsib il ty of the distinguish between systems ch system response and those which system, characters entered by t user's terminal (echoed) after t record containing echos is directives, there would be a triplet built for every char Therefore, echos must be str interactions prior to macro gene nta ins a r ecord user and target s translation m aracters which are are echos. In a f he user are sent b hey are received, used to build .term , .mate h , acter entered by ipped from the ration . of all ystem; it odule to part o f a ull duplex ack to the If the the macro and .send the user . r ecorded The algorithm for echo removal produces an approximation for the half duplex representation of a full-duplex interaction. While the sequence of characters is preserved in an echo, the timing is not. Any number of user characters may be interposed between a user character and its echo. The problem is to identify when a character transmitted from the target system is an echo and when it is the beginning of a sequence of system response characters. The algorithm requires that the beginning of a user character sequence be identified. This is accomplished by defining any character from the user as terminating a system transmission. Likewise, any character from the system which is not an echo terminates the user transmission. The procedure involves placing user characters in a buffer (USRBUF), and maintaining pointers to the end of USRBUF and to the current user character ( CHR ) . Each target system character received is an echo candidate and has to be compared with the current user character. As long as a 20 match exists, the pointer is advanced and the process repeated. When the end of the buffer is reached, the user transmission is terminated. If there is a nonmatch before the end of the buffer, the remaining user characters end the target system transmission and begin the next user transmission, irrespective of the time at which the various characters occurred. There is one exception for a nonexact match. An upper case character from the target system is treated as a match to the corresponding lower case character from the user. This option is required by the existence of target systems echoing all uppercase characters irrespective of the case of the user character received. 3. '4. 2.3 Parameterization - Parameterization is provided as an option to the user and is implemented via a knowledge base. The parameterization algorithm is dependent upon the following data: the name of the system on which the macro is to execute, the relative position of the user message, the contents of the user message, and the user's parameterization decision. The name of the system is used as the main pointer into the knowledge base of known systems and subsystems called " sys t par ameter " . Details of the structure of the knowledge base are provided in the next section. If the system name is not known (that is, there is no entry in the knowledge base), the variable KNWNFLG is set to a minus one (-1). The parameterization procedure is never invoked under the condition that "KNWNFLG = -1". If the system is found in the knowledge base (that is, KNWNFLG = 0), then the macro is a candidate for parameterization. The next step in the parameterization procedure is dependent upon the sequential position of the user message in the transcript. For the purpose of the translation algorithm, a user message is viewed as being composed of individual words (character strings separated by spaces or carriage return). The first user message has significance in terms of the parameterization procedure because it is the one used to determine if potential parameters exist. The contents of the first user message are scanned to determine if the user activity is defined in the knowledge base. The name of the system provides a pointer into the structure which contains the names of known activities (or subsystems) called "sub". The contents of the first line are compared with the names of subsystems to determine if a m ate h exists. 21 If a match is found, the user is informed that the macro may be constructed with parameters, and what those parameters are. For example, if the system is recognized and the activity recognized is "login", the user would be informed of the following: "This macro may be built with the following parameter s : id pa s sword account Should the macro be built with these parameters? " If the user responds in the ne strings generated for the .sen what was recorded in the transc in the positive, then the char the first parameter is replaced a "$2" , etc. In the above entered by the user would be re by $2, and the account by $3. identification, password and ac information which would be ente call, not the character strings example, the user-entered str be "Watkins" therefore the replaced by a $1 wherever it oc gative, then the character d directives are identical to ript. If the user responds acter string corresponding to with a "$1", the second with example, the identification placed with $1, the password To further clarify, the terms count describe the type of red as arguments to the macro entered by the user. For ing for an identification may string "Watkins" would be curred in the macro. In the current version, the user must accept all the parameters listed by the EAS or none. As described in the enhancements section, any combination of the potential parameters could be specified rather than an "all or nothing at all" condition. 3. '4. 3 The Knowledge Base - The knowledge base contains system-specific and service-specific information used by the translation module of the EAS.' At the current time the information contained in the knowledge base relates only to par ameter izt ion ; however, the same structure defined in this section is suitable for unexpected response handling. The language in which the NAM and EAS software is written is " C" which is a general-purpose programming language providing fundamental flow of control constructs and flexible structures [KERNB 78].' The structures provided by C made the implementation of the knowledge base straightforward, flexible and expandable. 22 A structure is a collection of one or more variables, possibly of different types, grouped together under a single name. A structure is declared using the keyword "struct" which is a list of declarations enclosed in braces. The structure may optionally be named by suppling a structure tag . As described in section 3-'4.2.3, the knowledge base of known systems used for parameterization is called 11 systpar ameter" . Three systems were selected for inclusion in the experimental system: one at Bolt, Beranek, and Newman in Cambridge, Massachusetts (bbn), one of the Information Sciences Institute of the University of Southern California (isi), and one at the Experimental Computer Facility at the National Bureau of Standards ( nb s 1 ) . EAS makes connections to all three via a packe t- swi tc hing communications network (ARPANET) and to the NBS facility also via direct-dial. The following is the structure " systpar ameter" : structure declaration for the struct systpar ameter { char * sys tname ; struct sub *subsystpnt; } systemsC ] { "nbs10" , &nb ssub sys , "bbn" , &bbnsub sys , "isi", & isi sub sys , }; where the name of the structure (structure " sys tpar ameter " , and the members are pairs o arrays (names of systems) and pointers to structu by a structure declaration named "sub". The label following the structure declaration "sys defines an array "systems" of structures of this element of the array is a structure; by leaving the compiler computes the number of entries i thus allowing the expansion of the "systems" adding a name/ str uc tur e pointier pair and not wor maintaining prespecified array sizes. tag) is f c har ac ter res d ef ined "systems!!]" tpar ameter" type . Eac h [] empty n "systems" by simpl y rying about The user supplies the name of the system which is compared to the names of systems contained in "systems" ( nb s 1 , bbn, and isi). If a match is found, then the pointer to the appropriate structure with a structure tag of "sub" is used to determine if the subsystem or user activity i s known . 23 The following is the structure declaration for "sub" struct sub{ char * sub s ; char **pntr ; } nb ssub sys[ ] { "login" , &tenloginparameters, "logout" , &tenlogoutpar am eters, "mail", &tenmailparameters, } .bbnsub sys[ ] { "login" , &tnxloginparameters, "logout" , &tnx logout par am eters, "mail", &tnxmail par am eters, } , i si sub sys[ ] { "login" , &tnx log in par am eters, "logout" , &tnxlogoutpar am eters, "mail", &tnxmailpar am eters , . }; The structures declared by a "struct" statement do not have to have the same number of member pairs; that is, using the above "sub" declaration as an example, login may be a known activity for all known systems, but mail may only be known for one of the systems. To complete a description of the knowledge base the two variables " tenlog in par ameter s" and " tnx log inpar ameter s" follow: 24 char * tenlog inparameter s[ ] { " id " , }; char * tnx log in parameter s[ ] { H id M , "password* 1 , "sccoun t" , }; The knowledge base for unexpected response handling would be quite similar. The entry into the knowledge base would again be the name of the system on which the macro is running. Associated with each name, would be an array of pairs of "expected" unexpected system messages and the macro directives which should be associated with that message. 4.'0 ENHANCEMENTS TO THE CURRENT NBS EAS Three enhancements to the NBS EAS were identified in the development of the prototype. They are (in prioritized order): user selection of potential parameters, user- spec i fied parameters, and a subsystem to expand the EAS knowledge base. The main factors used in this priority scheme were ease of implementation and immediate need. 4.'1 User Selection Of Parameters The EAS requires that the user accept all or none of the EAS-iden ti f ied parameters for a macro. It is a straightforward task to query the user on each parameter and allow the user to select any combination of the parameters. While the need for this option was not recognized in the design of the prototype system, it was during the trial usage. An example of the desirability of this feature was found in one of the ourrently known subsystems "login": a user may have one identification and account number for a system for the entire length of time that system is used; however, the user may change passwords frequently. Therefore, that user would probably desire to have the macro built with the identification and account as macro parameters and not the password. 25 4 . 2 User-specified Parameters As identified in the section on parameterization, there are two ways to provide this feature: allow the user to flag a field as variable and use a knowledge base. Although the latter is the more complicated to implement, it is the only way currently provided to support parameterization. The reason that the user can not flag fields is due to the prototype EAS configuration in which all characters entered by a user are directly sent to the target system. Had the system proceeded to an operational state, it would have used the NAM software for connecting to target systems, and the recording module could have trapped special characters . The methodology in the ope special character indicates following character string a character is retained in th forwarded to the target system; that special character to th special character twice; two o in the transcript file, but o system. When the translati transcript file, encounteri indicates that "$N" (where N is replace the special characte following it in the .send di characters appear consecutivel d ir ec tiv e . ration that t s v ar e tr a if t e syst f the nl y on on m ng o a pos r and r ec tiv y , one al he u iabl n scr he u em , char e is od ul ne i tiv th e; is EAS ser e; ipt ser the ac te sen e spe e i e c if pi ac wo ul is fl the file wi she user r s ar t to pr oce c ial ntege har ac two ed in d b aggi s bu s to ente e e the sses cha r) ter of the e : a ng the pec ial t not send r s the nter ed target the r ac ter should str ing these .send 4.3 EAS Subsystem To Expand The Knowledge Base This enhancement would require the greatest amount of developmental effort and would in fact be available only to a few "privileged" users. The reason for this limitation is that the result of this activity is a r ecompil ation of the EAS code. This subsystem would enable a user to interact with the EAS to expand the knowledge base. The user would be guided through this activity by questions from the EAS.' In this manner, new systems could be added to the knowledge base, or subsystems of known systems expanded. It was also envisioned that the knowledge base of "expected" unexpected responses could be expanded in this manner; however, if the user wished to expand this knowledge base, that user would have to be prepared to enter highly system-specific information. The user would have to supply what the exact message from the target system is which constitutes the "expected" unexpected response, what user message should be sent (if any) in response, and the target system response 26 which is to be expected in reaction to the new user message 5.X) SUMMARY This report has described an extension to the NBS Network Access Machine (NAM) which was implemented in 1978; however, the concepts are applicable to the general field of network user assistance. The report provides an introduction to the field of network assistance, a description of the NBS work in network assistance, and technical description of the extension to the NAM called Expert Assistance System (EAS). a an The NBS EAS is a tool for users of the NBS NAM; it automatically generates macro directives for users of the NAM by observing a user/target system interaction and then translating this record into a macro suitable for execution on the NAM. It was designed as a strictly optional tool to relieve the NAM user of the more tedious tasks in writing mac ro s . The macros built by the NBS EAS utilize only the directives required by the NAM for macro expansion. There are some quite sophisticated commands for flow of control constructs and string matching which are not used. It was decided to focus on the smallest, feasible command^ set due to the design axioms of optionality, compactness, and ease of use. The prototype system has demonstrated that limiting the scope to these few required directives provides a sufficiently powerful system for building short macros for the acquisition, initialization, and termination stages of service access . 27 6.X) REFERENCES [ABRAM 77] [ANDE1 76] [ANDE2 76] Abrams, Marshall D.', "Techniques for Evaluating the Effectiveness of Interactive Computer Service", Proceedings 1977 ACM Annual Conference, pp. 452 - 458, 1977. ' Anderson, Robert H.', and Gillogly, James J.', The MM Intelligent If-LHiO-iL AS. mi (_RI_TA2, Rand Report R-1809-ARPA, February 1976.' Anderson, Robert H.', and Gillogly, James J.', "The RAND Intelligent Agent (RITA) as a Network Access Aid," £. Housed Ing s of the National Computer Conference 1976, pp. 501 - 509. ■ [BLANR 74] [FITZM 78] Blanc, Robert P.', "Assisting Network Users with a Network Access Machine," Proceed ings of the ACM, 1974, November, 1974. ' Fitzgerald, M. L.', Common Command Language for Z.11 6 . Manipulation £!l! N^l-H^nk l2.!l J:?!®2.H!Li2J21 AH Example , NBS Special Publicaton 500-37, August 1978.' [HEAFJ 74] Heafner, John F.', A Methodology for Selecting and ReXlnlni. Man-Corn puter Languages t^o Improv e Users' P e r_£o Usance , Information Sciences Institute, University of Southern California, ISI/RR-74-2 1 , ARPA Order No. 2223, September 1974, 53P- [KERNB 78] Kernighan, Brian W. , and Ritchie, Dennis M., The 9. ZL°S.Il a .!lL!5.iO.S. t§.G.S.H a .S. e . » Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1978, 228p. [KIMBS 78] Kimbleton, Stephen R.\ Wood, Helen M. , and Fitzgerald, M. L.', "Network Operating Systems -- An Implementation Approach", pp. 77 3 - 778, Proceedings of the 197 8 National Computer Conference, Volume 47, June, 1978.' [MAMRS 78] Mamrak, Sandra A.', and Amer , Paul D.', A Methodology for the Sel^ec Hon of Inter ac tiv e Compu te r Services, NBS Special Publication 500-44.' [PYKET 73] Pyke , Thomas N.', Jr., "Some Technical Considerations for Improved Service to Computer Network Users," Proceed ings COM PC ON 73_, February 1973, PP. 53-55.' 28 [R0SE1 78] Rosenthal, Robert, and Lucas, Bruce D.', The De sig n and I^PLejUej^a^i -!! of the_ j__J___°-I__1_l Bur_e_au of Standards^ Network Access Machine __N__.M )_ , NBS Special Publication 500-35, June 1978.' [R0SE2 78] Rosenthal, Robert, "A Report on Several Experiments that Utilize the NBS NAM", internal memorandum, July 1978 [ROSER 74] Rosenthal, Robert, and Watkins, Shirley Ward, "Automated Access to Network Resources -- A Network Access Machine", PLOSL^-L-Lilli. 3 - Computer^ Networks : XLlG.ll EH! APP.Li c .§.^.i°. n . s . l_.j_iL» IEEE Inc., New York, 1974, pp. 47 - 50.' [ROSER 76] Rosenthal, Robert, A Review of Network Access Techn ique s wi_th a Case Study^ The Mf.twor_k Ac.S.lH Ma 2_]__J_,_i » NBS Technical Report 917, July 1976.' [TREUS 79] Tr eu , Se ig fr ied , Un i f orm it y to Languages , NBS preparation) . A Z_L_i.tbed for PL°Y-ili_LS MHL~P_2ro.Py.ter l!l_i?._l_l_i_i _._._: Special Publication (in [WATKS 78] Watkins, Shirley Ward, and Kimbleton, Stephen R. , "Network Access Technology -- A Perspective", Proceed ing s of the N_.ti.onal Computer CojiJ^erence 1978, pp. 495 - 503, June 1978.' 29 APPENDIX A EAS INTERACTION IN NORMAL MODE Do you wish to receive verbose or brief prompts? For verbose, type a v followed by a carriage return. For brief, type a b followed by a carriage return. For a fuller explanation, type ? followed by a carriage return . b Macro filename? logintoisil System name? isi This macro may be built with the following parameters: id pa ssword accoun t Par ameti zat ion? (y/n) y 30 APPENDIX B EAS INTERACTION IN VERBOSE MODE Do you wish to receive verbose or brief prompts? For verbose, type a v followed by a carriage return. For brief, type a b followed by a carriage return. For a fuller explanation, type ? followed by a carriage r e tur n . Enter the name of the file (maximum of 14 characters) which will contain the macro followed by a carriage return. logintoisi2 Name of system to which macro will be applied? Enter a ? followed by a carriage return for a list of systems know to the EAS." i si This macro may be built with the following parameters: id pa s sword accoun t Should macro be generated with these parameters marked as arguments to macro invocation? If parameterization is desired, whenever this macro is invoked arguments must be provided. Enter y for yes and n for no followed by a carriage r etur n . n 31 APPENDIX C ON-LINE HELP FACILITY IN NORMAL MODE Do you wish to receive verbose or brief prompts? For verbose, type a v followed by a carriage return. For brief, type a b followed by a carriage return. For a fuller explanation, type ? followed by a carriage return . In verbose mode, the prompts from the Expert Assistance System (EAS) contain much greater detail. In brief mode, it is assumed that the user of the EAS is familiar enough with the required inputs that minimal prompts are needed. Brief mode assumes prior usage of the EAS.' At any time an input is requested, the user may enter followed by a carriage return. The following are your current options: v or V for verbose b or B for brief, or ? for this message. Do you want verbose or brief prompts? b Macro filename? ? A filename may contain up to 14 printing characters ( al phabetic s , numerics, and special characters). Enter f il ename . log into isi 3 System name? ? nbs10 bbn isi System name? isi This macro may be built with the following parameters: id pa s sword account Parameterization? (y/n) ? 32 APPENDIX C ( continued) Parameterization is provided for subsystems known to the EAS." If you answer yes, then ALL of the parameters listed below must be provided as arguments to macro invocation. If you answer no, then a macro will be built which will execute a dialogue identical to the one just recorded. This macro may be built with the following parameters: id pa s sword accoun t Par amet i zation? (y/n) n % 33 APPENDIX D ON-LINE HELP FACILITY IN VERBOSE MODE Do you wish to receive verbose or brief prompts? For verbose, type a v followed by a carriage return. For brief, type a b followed by a carriage return. For a fuller explanation, type ? followed by a carriage return . Enter the name of the file (maximum of 14 charactrs) which will contain the macro followed by a carriage return. A filename by contain up to 14 printing characters ( al phabetic s , numberics, and special characters). Enter f il ename . log into isi 4 Name of system to which macro will be applied? Enter followed the EAS.' nbs10 bbn isi by a carriage return for a list of systems know to Name of system to which macro will be applied? Enter a ? followed by a carriage return for a list of systems known to the EAS.' isi This macro may be built with the following parameters: id pa s sword accoun t Should macro be generated with these parameters marked as arguments to macro invocation? If parameterization is desired, whenever this macro is invoked arguments must be provided. Enter y for yes and n for no followed by a carriage return. ? Parameterization is provided for subsystems known to the EAS.' If you answer yes, then ALL of the parameters listed below must be provided as arguments to macro invocation. If you answer no, then a macro wil be built which will execute a dialogue identical to the one just recorded. 34 APPENDIX D (continued) This macro may be built with the following parameters: id pa s sword accoun t Should macro be generated with these parameters marked as arguments to macro invoction? If parameterization is desired, whenever this macro is invoked arguments must be provided. Enter y for yes and n for no followed by a car r iage return . y 35 APPENDIX E USER'S PERSPECTION OF EAS HANDLING OF DIAGNOSTICS Do you wish to receive verbose or brief prompts? For verbose, type a v followed by a carriage return. For brief, type a b followed by a carriage return. For a fuller explanation, type ? followed by a carriage return . Enter the name of the file (maximum of 14 characters) will contain the macro followed by a carriage return, log inlog into isi whic h FILENAME TOO LONG! ! Reenter f il ename . A maximum of 14 characters is allowed. log intoisil File ALREADY exists! ! Should the existing file be overwritten? Enter Y for yes and N for no followed by a carriage return. If you overwrite the file, the current contents of the file will be lost! n Enter filename log in to isi5 Name of system to which macro will be applied? Enter a ? followed by a carriage return for a list of systems known to the EAS.' isi This macro may be built with the following parameters: id pa s sword accoun t Should macro be generated with these parameters marked as arguments to macro invocation? If parameterization is desired, whenever this macro is invoked arguments must be provided. Enter y for yes and n for no followed by a carriage r etur n . 36 APPENDIX F ASCII ABREVIATIONS FOR NON-PRINTING AND CONTROL CHARACTERS Abb r ev ia t ion Func tion Octal Code NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC 1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US DEL null character 000 start of header 001 start of text 002 end of text 003 end of transmission 004 enquiry 005 acknowlege 006 bell 007 backspace 10 horizontal tabulation 011 line feed 012 vertical tabulation 013 form feed 014 carriage return 015 shift out 016 shi ft in 17 data link escape 020 device control 1 02 1 device control 2 022 device control 3 02 3 device control 4 024 negative acknowledge 025 synchronous idle 026 end of transmission block 027 cancel 030 end of medium 031 sub st itute 032 escape 033 file separator 034 group separator 035 record separator 036 unit separator 037 delete 177 37 APPENDIX G NAM MACRO CREATED BY EAS WITHOUT PARAMETERIZATION cat . te .ma .se .te .ma .se .te .ma .se % sww watt ' §' " log in to isi2 rm " t30 ! * @' " tch " » @' " nd "login rm "t30 ! tch " » @' » nd "dir[CR][LF ]" rm "30 ! 'IN •" tch " » IN »" nd "logo[CR][LF]" [CR][LF]" 38 APPENDIX H NAM MACHO CREATED BY EAS WITH PARAMETERIZATION % cat 1 og in to isil .term "t30 ! ' §' " .match " ' g« " .send "login "$1" "$2" "$3" [CR][LF]" .term "t30 ! ' §' " .match " • §' " .send "dir [ CR ] [LF ] " .term "t30 ! 'IN •" .match "'IN ' " .send "logo[CR][LF ]" % •U.S. GOVERNMENT PRINTING OFFICE: 1980-0-340-997/313 39 JBS-114A (REV. 2-8C) U.S. DEPT. OF COMM. BIBLIOGRAPHIC DATA SHEET (See instructions) 1. PUBLICATION OR REPORT NO. NBS SP 500-68 2. Performing Organ. Report No 3. Publication Date November 1980 4. TITLE AND SUBTITLE The Expert Assistance System for the NBS Network Access Machine 5. AUTHOR(S) Shirley Ward Watkins 6. PERFORMING ORGANIZATION (If joint or other than NBS. see instructions) NATIONAL BUREAU OF STANDARDS DEPARTMENT OF COMMERCE WASHINGTON, D.C. 20234 7. Contract/Grant No. 8. Type of Report & Period Covered Final 9. SPONSORING ORGANIZATION NAME AND COMPLETE ADDRESS (Street. City, State. ZIP) Same as No. 6 10. SUPPLEMENTARY NOTES Library of Congress Catalog Card Number: 80-600178 J Document describes a computer program; SF-185, FlPS Software Summary, is attached. 11. ABSTRACT (A 200-word or less factual summary of most significant information. If document includes a significant bi bliography or literature survey, mention it here) The Expert Assistance System (EAS) was developed at the National Bureau of Standards' as a prototype to assist network users. Network users are faced with the problem of learning different procedures in order to access similar services on different host sys- tems. A great deal of research has been precipitated by the desire to simplify network usarte and many tools have been developed to assist the network user. One of the approaches taken in network assistance has been to implement an inter- mediary machine. The intermediary machine translates simple user commands into the se- quences of network and system commands required for execution on a target host system; thus, the user learns one set of commands which are applicable on different systems and networks. An ironic consequence of such an approach is that if the user desires to ex- pand the basic set of functions provided by the intermediary machine or to tailor exist- ing functions to individual needs, the user has to learn another command language — that of the intermediary machine itself. The EAS addresses the problem of building procedures for an intermediary machine. The EAS automatically generates procedures by recording an interaction between a user and network system and then translating this interaction into the commands required for execution on the intermediary machine. Development of the EAS was facilitated by the existence of an intermediary machine at the National Bureau of Standards — the NBS Net- work Access Machine (NAM). This report briefly describes the motivation for the development of a network assistance technique, discusses the design and implementation of the EAS at NBS, and then concludes with a view of future enhancements to the current EAS. The context for the description of the EAS is the NBS NAM; however the concepts are applicable to the general field of network user assistance. 12. KEY WORDS (Six to twelve entries; alphabetical order; capitalize only proper names; and separate key words by semicolons) Command languages; communications • computer acco"-T connutcr networks; minicomputers; protocols; user interfaces. 13. AVAILABILITY rX^| Unlimited 33] F° r Official Distribution. Do Not Release to NTIS (Xn Order From Superintendent of Documents, U.S. Government Printing Office, Washington, D.C. 20402. Order From National Technical Information Service (NTIS), Springfield, VA. 22161 14. NO. OF PRINTED PAGES 44 15. Price $2.50 ANNOUNCEMENT OF NEW PUBLICATIONS ON COMPUTER SCIENCE & TECHNOLOGY Superintendent of Documents, Government Printing Office, Washington, D. C. 20402 Dear Sir: Please add my name to the announcement list of new publications to be issued in the series: National Bureau of Standards Special Publication 500-. Name Company. Address _ City State Zip Code (Notification key N-503) There's anew look to... . . . the monthly magazine of the Nation- al Bureau of Standards. Still featured are special ar- ticles of general interest on current topics such as consum- er product safety and building technology. In addition, new sec- tions are designed to . . . PROVIDE SCIENTISTS with illustrated discussions of recent technical developments and work in progress . . . INFORM INDUSTRIAL MANAGERS of technology transfer activities in Federal and private labs. . . DESCRIBE TO MAN- UFACTURERS advances in the field of voluntary and mandatory standards. The new DIMENSIONS/NBS also carries complete listings of upcoming conferences to be held at NBS and reports on all the latest NBS publications, with information on how to order. Finally, each issue carries a page of News Briefs, aimed at keeping scientist and consum- alike up to date on major developments at the Nation's physi- cal sciences and measurement laboratory. (please detach here) SUBSCRIPTION ORDER FORM Enter my Subscription To DIMENSIONS/NBS at $11.00. Add $2.75 for foreign mailing. No additional postage is required for mailing within the United States or its possessions. Domestic remittances should be made either by postal money order, express money order, or check. Foreign remittances should be made either by international money order, draft on an American bank, or by UNESCO coupons. Send Subscription to: □ Remittance Enclosed (Make checks payable to Superintendent of Documents) D Cnarge to my Deposit Account No. NAME-FIRST, LAST 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 COMPANY NAME OR ADDITIONAL ADDRESS LINE 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 I 1 1 1 1 1 1 1 1 ! 1 1 II STREET ADDRESS 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 I 1 I I I I I I I I I I I I I MAIL ORDER FORM TO: Superintendent of Documents Government Printing Office Washington, D.C. 20402 PLEASE PRINT PENN STATE UNIVERSITY LIBRARIES ADDDD71 1 23123