Specifying Logic Programs in Controlled Natural Language
Norbert E. Fuchs, Rolf Schwitter (Department of Computer Science,, University of Zurich)

TL;DR
This paper introduces a controlled natural language approach for writing formal, executable specifications of programs, translating them into Prolog for easier understanding and processing by non-specialists.
Contribution
It presents a novel method to specify programs using controlled natural language that is automatically translated into Prolog, bridging the gap between natural language and formal specifications.
Findings
Successfully processed specifications of a simple ATM system
Automated translation from controlled natural language to Prolog
Enhanced DCG with feature structures for accurate translation
Abstract
Writing specifications for computer programs is not easy since one has to take into account the disparate conceptual worlds of the application domain and of software development. To bridge this conceptual gap we propose controlled natural language as a declarative and application-specific specification language. Controlled natural language is a subset of natural language that can be accurately and efficiently processed by a computer, but is expressive enough to allow natural usage by non-specialists. Specifications in controlled natural language are automatically translated into Prolog clauses, hence become formal and executable. The translation uses a definite clause grammar (DCG) enhanced by feature structures. Inter-text references of the specification, e.g. anaphora, are resolved with the help of discourse representation theory (DRT). The generated Prolog clauses are added to a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNatural Language Processing Techniques · Logic, programming, and type systems · Logic, Reasoning, and Knowledge
