NLCI: a natural language command interpreter

  • Mathias Landhäußer
  • Sebastian Weigelt
  • Walter F. Tichy
Article

DOI: 10.1007/s10515-016-0202-1

Cite this article as:
Landhäußer, M., Weigelt, S. & Tichy, W.F. Autom Softw Eng (2016). doi:10.1007/s10515-016-0202-1
  • 139 Downloads

Abstract

Natural language interfaces are becoming more and more common, because they are powerful and easy to use. Examples of such interfaces are voice controlled navigation devices, Apple’s personal assistant Siri, Google Voice Search, and translation services. However, such interfaces are extremely difficult to build, to maintain, and to port to new domains. We present an approach for building and porting such interfaces quickly. NLCI is a natural language command interpreter that accepts action commands in English and translates them into executable code. The core component is an ontology that models an API. Once the API is “ontologized”, NLCI translates input sentences into sequences of API calls that implement the intended actions. Two radically different APIs were ontologized: openHAB for home automation and Alice for building 3D animations. Construction of the ontology can be automated if the API uses descriptive names for its components. In that case, the language interface can be generated completely automatically. Recall and precision of NLCI on a benchmark of 50 input scripts are 67 and 78 %, resp. Though not yet acceptable for practical use, the results indicate that the approach is feasible. NLCI accepts typed input only. Future work will use a speech front-end to test spoken input.

Keywords

Programming in natural language End-user programming Knowledge-based software engineering Program synthesis Natural language processing for software engineering 

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  • Mathias Landhäußer
    • 1
  • Sebastian Weigelt
    • 1
  • Walter F. Tichy
    • 1
  1. 1.Karlsruhe Institute of Technology, Institute for Program Structures and Data OrganizationKarlsruheGermany