Natural language programming

Natural language programming

Natural language programming - NLP - is an ontology-assisted way of programming in terms of natural language sentences, e.g. English. A structured document with Content, sections and subsections for explanations of sentences forms a NLP document, which is actually a computer program. An example of natural language programming is in sEnglish that is short for "system English".



The smallest unit of statement in NLP is a sentence. Each sentence is stated in terms of concepts from the underlying ontology, attributes in that ontology and named objects in capital letters. In an NLP text every sentence unambiguously compiles into a procedure call in the underlying high level programming language such as MATLAB, Octave, SciLab, Python, etc.

Symbolic languages such as Mathematica are capable of interpreted processing of queries by sentences. This can allow interactive requests such as that implemented in Wolfram Alpha (see external links). The difference between these and NLP is that the latter builds up a single program or a library of routines that are programmed through natural language sentences using an ontology that defines the available data structures in a high level programming language.

An example text from an English language NLP program (in sEnglish) is as follows:

 If  U_ is 'smc01-control',  then do the following. Define surface weights Alpha as "[0.5, 0.5]".
Initialise matrix Phi as a 'unit matrix'. Define J as the 'inertia matrix' of Spc01. Compute
matrix J2 as the inverse of J .  Compute position velocity error Ve and angular velocity error
Oe from dynamical state X, guidance reference Xnow .   Define the joint sliding surface G2
from the position velocity error Ve and angular velocity error Oe using the surface weights
Alpha. Compute the smoothed sign function SG2 from the joint sliding surface G2 with sign
threshold 0.01.  Compute special dynamical force F from dynamical state  X and surface
weights Alpha.  Compute control torque T and control force U from matrix J2, surface weights
Alpha, special  dynamical force F , smoothed sign function SG2.  Finish conditional actions.

that defines a feedback control scheme using a sliding mode control method. This entry describes NLP in its general form, without being specific about the underlying high level programming language.

The following are discussed:

Why does one write NLPs ?

Natural language programs use sentences, sections, subsections, ontology description sections, references and meta data on the author, similarly to an ordinary document. Hence NLPs are similar in appearance to administrative or technical manuals, engineering or science publications, and can be used as such. The added advantage is, relative to ordinary documents, that NLP documents can also be interpreted by suitable software agents that control machines.

What is the software paradigm of NLP ?

Natural language programming is a top down method of writing software. Its stages are as follows:

  • Definition of an ontology - taxonomy - of concepts needed to describe tasks in the topic addressed. Each concept and all their attributes are defined in natural language words. This ontology will define the data structures the NLP can use in sentences.
  • Definition of one or more top level sentences in terms of concepts from the ontology. These sentences are later used to invoke the most important activities in the topic.
  • Defining of each of the top level sentences in terms of a sequence of sentences.
  • Defining each of the lower level sentences in terms of other sentences or by a simple sentence of the form Execute code "...". where ... stands for a code in terms of the associated high level programming language.
  • Repeating the previous step until you have no sentences left undefined. During this process each of sentences can be classified to belong to a section of the document to be produced in HTML or Latex format to form the final NLP program.
  • Testing the meaning of each sentence by executing its code using testing objects.
  • Providing a library of procedure calls (in the underlying high level language) which are needed in the code definitions of some low-level-sentence meanings.
  • Providing a title, author data and compiling the sentences into an HTML or LaTex file.
  • Publishing the NLP program as a webpage on the Internet or as a PDF file compiled from the LaTex document.

What is the publication value of an NLP program and document ?

An NLP program is a precise formal description of some procedure that its author created. It is human readable and it can also be read by a suitable software agent. For example a web page in an NLP format can be read by a software personal assistant agent to a person and she or he can ask the agent to execute some sentences, i.e. carry out some task or answer a question. There is a reader agent available for English interpretation of HTML based NLP documents that a person can run on her personal computer .

What is the contribution of NLP programs to machine knowledge ?

An ontology class in a natural language program that is not a concept in the sense as humans use concepts. Concepts in an NLP are examples (samples) of generic human concepts. Each sentence in an NLP program is either (1) stating a relationship in a world model or (2) carries out an action in the environment or (3) carries out a computational procedure or (4) or invokes an answering mechanism in response to a question.

A set of NLP sentences, with associated ontology defined, can also be used as a pseudo code that does not provide the details in any underlying high level programming language. In such an application the sentences used become high level abstractions (conceptualisations) of computing procedures that are computer language and machine independent.

Natural languages and interfaces

  • Supernova programming language, scripting language presents the concept of programming with direct Fiction Description using Clear subset of pure Human Language.

See also



[1] Natural Language Programming of Agents and Robotic Devices: publishing for agents and humans in sEnglish by S M Veres, ISBN 978-0-9558417-0-5, London, June 2008. .

Papers at conferences:

[2] Documents for Intelligent Agents in English. by S M Veres and L Molnar. Proc. AIA2010, 10th IASTED Conference on Artificial Intelligence and Applications, 15-17 Feb, 2010, Innsbruck, Austria.

[3] Sliding mode control of autonomous spacecraft. (half written in sEnglish) by S M Veres an N K Lincoln, Proc. TAROS’2008, Towards Autonomous Robotic Systems , Edinburgh, 1–3 September 2008.

[4] Mission Capable Autonomous Control Systems in the Oceans, in the Air and in Space by S M Veres, Hanazawa et al. (Eds.): Brain-Inspired Info. Technology, SCI 266, pp. 1–10, Springer, 2010.

External links

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Natural Language Programming — Natural Language Programming,   Abk. für NLP …   Universal-Lexikon

  • Natural language processing — (NLP) is a field of computer science and linguistics concerned with the interactions between computers and human (natural) languages; it began as a branch of artificial intelligence.[1] In theory, natural language processing is a very attractive… …   Wikipedia

  • Natural language user interface — Natural Language User Interfaces (LUI) are a type of computer human interface where linguistic phenomena such as verbs, phrases and clauses act as UI controls for creating, selecting and modifying data in software applications. In interface… …   Wikipedia

  • Natural Language Toolkit — Original author(s) Edward Loper, Steven Bird Developer(s) NLTK Developers and contributors Initial release 2001[1] …   Wikipedia

  • Natural language — This article is about natural language in neuropsychology and linguistics. For natural language in computer systems, see Natural language processing. Neuropsychology …   Wikipedia

  • Natural language understanding — Learning to read by Sigurður málari, 19th century. Natural language understanding is a subtopic of natural language processing in artificial intelligence that deals with machine reading comprehension. The proc …   Wikipedia

  • natural language — noun a) a human language which has evolved naturally in a community, usually in contrast to computer programming languages or to artificially constructed languages such as . , Itll be a long time before computers understand natural language. b)… …   Wiktionary

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Programming paradigm — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concu …   Wikipedia

  • Programming language specification — A programming language specification is an artifact that defines a programming language so that users and implementors can agree on what programs in that language mean.A programming language specification can take several forms, including the… …   Wikipedia