HOME

TheInfoList



OR:

Natural-language programming (NLP) is an
ontology In metaphysics, ontology is the philosophical study of being, as well as related concepts such as existence, becoming, and reality. Ontology addresses questions like how entities are grouped into categories and which of these entities ...
-assisted way of programming in terms of
natural-language In neuropsychology, linguistics, and philosophy of language, a natural language or ordinary language is any language that has evolved naturally in humans through use and repetition without conscious planning or premeditation. Natural langu ...
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 A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components. A computer progra ...
. Natural language programming is not to be mixed up with natural language interfacing or voice control where a program is first written and then communicated with through natural language using an interface added on. In NLP the functionality of a program is organised only for the definition of the meaning of sentences. For instance, NLP can be used to represent all the knowledge of an autonomous robot. Having done so, its tasks can be scripted by its users so that the robot can execute them autonomously while keeping to prescribed rules of behaviour as determined by the robot's user. Such robots are called ''transparent robots'' as their reasoning is transparent to users and this develops trust in robots. Natural language use and natural-language user interfaces include Inform 7, a natural programming language for making interactive fiction,
Shakespeare William Shakespeare ( 26 April 1564 – 23 April 1616) was an English playwright, poet and actor. He is widely regarded as the greatest writer in the English language and the world's pre-eminent dramatist. He is often called England's natio ...
, an
esoteric Western esotericism, also known as esotericism, esoterism, and sometimes the Western mystery tradition, is a term scholars use to categorise a wide range of loosely related ideas and movements that developed within Western society. These ideas a ...
natural programming language in the style of the plays of
William Shakespeare William Shakespeare ( 26 April 1564 – 23 April 1616) was an English playwright, poet and actor. He is widely regarded as the greatest writer in the English language and the world's pre-eminent dramatist. He is often called England's natio ...
, and Wolfram Alpha, a computational knowledge engine, using natural-language input. Some methods for program synthesis are based on natural-language programming.


Interpretation

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 letter Letter case is the distinction between the letters that are in larger uppercase or capitals (or more formally ''majuscule'') and smaller lowercase (or more formally ''minuscule'') in the written representation of certain languages. The writing ...
s. In an NLP text every sentence unambiguously compiles into a procedure call in the underlying
high-level programming language In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to ...
such as
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementa ...
,
Octave In music, an octave ( la, octavus: eighth) or perfect octave (sometimes called the diapason) is the interval between one musical pitch and another with double its frequency. The octave relationship is a natural phenomenon that has been refer ...
, SciLab, Python, etc. Symbolic languages such as
Wolfram Language The Wolfram Language ( ) is a general multi-paradigm programming language developed by Wolfram Research. It emphasizes symbolic computation, functional programming, and rule-based programming and can employ arbitrary structures and data. It is ...
are capable of interpreted processing of queries by sentences. This can allow interactive requests such as that implemented in Wolfram Alpha.Wolfram Alpha computes answers
Tech Crunch, 8 March 2009 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 natural-language program is as follows:
If U_ is 'smc01-control', then do the following. Define surface weights Alpha as " .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.


Software paradigm

Natural-language programming is a top-down method of writing software. Its stages are as follows: * Definition of an
ontology In metaphysics, ontology is the philosophical study of being, as well as related concepts such as existence, becoming, and reality. Ontology addresses questions like how entities are grouped into categories and which of these entities ...
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 natural-language 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 The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
or
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosper ...
file. * Publishing the natural-language program as a webpage on the Internet or as a PDF file compiled from the LaTeX document.


Publication value of natural-language programs and documents

A natural-language program is a precise
formal Formal, formality, informal or informality imply the complying with, or not complying with, some set of requirements (forms, in Ancient Greek). They may refer to: Dress code and events * Formal wear, attire for formal events * Semi-formal attire ...
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 A personal assistant, also referred to as personal aide (PA) or personal secretary (PS), is a job title describing a person who assists a specific person with their daily business or personal task,. it is a sub-specialty of secretarial duti ...
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 A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or tech ...
.


Contribution of natural-language programs to machine knowledge

An ontology class is a natural-language program that is not a
concept Concepts are defined as abstract ideas. They are understood to be the fundamental building blocks of the concept behind principles, thoughts and beliefs. They play an important role in all aspects of cognition. As such, concepts are studied by s ...
in the sense as humans use concepts. Concepts in an NLP are examples (samples) of generic human concepts. Each sentence in a natural-language 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) 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.


See also

* Controlled natural language * Context-free language * Domain-specific language (or DSL) * End-user programming *
Knowledge representation Knowledge representation and reasoning (KRR, KR&R, KR²) is the field of artificial intelligence (AI) dedicated to representing information about the world in a form that a computer system can use to solve complex tasks such as diagnosing a medic ...
* Natural-language processing *
Source-code generation In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level. There has been little ...
* Very high-level programming language ;Programming languages with English-like syntax: *
AppleScript AppleScript is a scripting language created by Apple Inc. that facilitates automated control over scriptable Mac applications. First introduced in System 7, it is currently included in all versions of macOS as part of a package of system aut ...
* Attempto Controlled English *
COBOL COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily ...
*
ClearTalk ClearTalk is a controlled natural language—a kind of a formal language for expressing information that is designed to be both human-readable (being based on English) and easily processed by a computer. Anyone who can read English can immediate ...
* FLOW-MATIC * HyperTalk * Inform 7 *
JOSS Joss may refer to: * Joss (name), including a list of people with the name * JOSS, a time-sharing programming language * Joss (Chinese statue), a religious object * Joss JP1, an Australian-built supercar * Joss paper, a type of burnt offering ...
* SenseTalk *
Software AG Founded in 1969, Software AG is an enterprise software company with over 10,000 enterprise customers in over 70 countries. The company is the second largest software vendor in Germany, and the seventh largest in Europe. Software AG is traded on t ...
* Transcript * Structured Query Language (or SQL) * xTalk


References


Bibliography

;Books: * ''Natural Language Programming of Agents and Robotic Devices: publishing for agents and humans in sEnglish'' by S M Veres, , London, June 2008. * * * ;Papers at conferences: * * ''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. * * ; Program synthesis from natural language specifications * Raza, Mohammad, Sumit Gulwani, and Natasa Milic-Frayling.
Compositional Program Synthesis from Natural Language and Examples
" IJCAI. 2015. * Green, Cordell.
A Summary of the PSI Program Synthesis System
" IJCAI. Vol. 5. 1977.


External links


English Script
(dormant since 2016)
Plain English Programming
Programming language using English sentences in ASCII.
SEMPRE
a toolkit for training semantic parsers
sysbrain.com
sEnglish Editor in C++/ROS for robot programming to develop transparent robots.
wy-lang.org
"Programming Language for the ancient Chinese"
How natural should a natural interface be?
thoughts on how "natural" the
Ubiquity Ubiquity is a synonym for omnipresence, the property of being present everywhere. Ubiquity may also refer to: * Ubiquity (software), a simple graphical installer made for the Ubuntu operating system * Ubiquity (Firefox), an experimental extens ...
interface (dormant since 2009)
Metafor turns English to code
(dormant since 2005)
Computer knowledge representation format, system, methods, and applications
{snd US patent re: hyperlinking to .who/what/where/when/how XML files that embed NL Algorithm description languages Structured English Computer programming Natural language processing