Generating chat bots from web API specifications

Companies want to offer chat bots to their customers and employees which can answer questions, enable self-service, and showcase their products and services. Implementing and maintaining chat bots by hand costs time and money. Companies typically have web APIs for their services, which are often documented with an API specification. This paper presents a compiler that takes a web API specification written in Swagger and automatically generates a chat bot that helps the user make API calls. The generated bot is self-documenting, using descriptions from the API specification to answer help requests. Unfortunately, Swagger specifications are not always good enough to generate high-quality chat bots. This paper addresses this problem via a novel in-dialogue curation approach: the power user can improve the generated chat bot by interacting with it. The result is then saved back as an API specification. This paper reports on the design and implementation of the chat bot compiler, the in-dialogue curation, and working case studies.

[1]  Munindar P. Singh,et al.  Conversational Agents , 1997 .

[2]  Michael F. McTear,et al.  Book Review: Spoken Dialogue Technology: Toward the Conversational User Interface, by Michael F. McTear , 2002, CL.

[3]  Frederick B. Thompson,et al.  Introducing ASK, A Simple Knowledgeable System , 1983, ANLP.

[4]  Daniel G. Bobrow,et al.  A frame driven dialog system , 1980 .

[5]  Geoffrey Zweig,et al.  Rapidly Scaling Dialog Systems with Interactive Learning , 2015, IWSDS.

[6]  Fabio Casati,et al.  REST APIs: A Large-Scale Analysis of Compliance with Principles and Best Practices , 2016, ICWE.

[7]  Herbert H. Clark,et al.  Grounding in communication , 1991, Perspectives on socially shared cognition.

[8]  Matthew Arnold,et al.  META: Middleware for Events, Transactions, and Analytics , 2016, IBM J. Res. Dev..

[9]  Bruce Lucas VoiceXML for Web-based distributed conversational applications , 2000, CACM.

[10]  Rohit J. Kate,et al.  Learning to Transform Natural to Formal Languages , 2005, AAAI.

[11]  Perry Cheng,et al.  The serverless trilemma: function composition for serverless computing , 2017, Onward!.

[12]  Daniel G. Bobrow,et al.  GUS, A Frame-Driven Dialog System , 1986, Artif. Intell..

[13]  Jorma Sajaniemi,et al.  An empirical analysis of spreadsheet calculation , 1988, Softw. Pract. Exp..

[14]  Peter Thanisch,et al.  Natural language interfaces to databases – an introduction , 1995, Natural Language Engineering.

[15]  Hani Jamjoom,et al.  API Harmony: Graph-based search and selection of APIs in the cloud , 2016, IBM J. Res. Dev..

[16]  Carsten Binnig,et al.  Making the Case for Query-by-Voice with EchoQuery , 2016, SIGMOD Conference.

[17]  Martin Hirzel,et al.  I Can Parse You: Grammars for Dialogs , 2017, SNAPL.

[18]  Allison Dougherty Garvey,et al.  If This, Then That , 2004 .

[19]  Tobias Kuhn,et al.  A Survey and Classification of Controlled Natural Languages , 2014, CL.

[20]  Emerson R. Murphy-Hill,et al.  Enron's Spreadsheets and Related Emails: A Dataset and Analysis , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[21]  Sumit Gulwani,et al.  NLyze: interactive programming by natural language for spreadsheet data analysis and manipulation , 2014, SIGMOD Conference.

[22]  John McCarthy,et al.  History of LISP , 1978, SIGP.