Significance of Study:
Today, there are two of the most common AI (Artificial Intelligence) computer programming languages are LISP and Prolog. They are designed with two distinct programming paradigms, and LISP is a functional language, whereas Prolog is a formal language. The main difference between these languages is that LISP was considered a computation model based on the theory of recursive functions. In contrast, the prolog includes a set of formal logic specifications that employ first-order predicate calculus.
John McCarthy’s
algebraic list processing language for artificial intelligence work on the IBM 704 computer arose in the summer of 1956 during the Dartmouth Summer Research Project on Artificial Intelligence which was the first organized study of AI. During this meeting, Newell, Shaw and Simon described IPL 2, a list processing language for Rand Corporation’s JOHN[1]NIAC computer in which they implemented their Logic Theorist program. There was little temptation to copy IPL, because its form was based on a JOHNNIAC loader that happened to be available to them, and because the 2 FORTRAN idea of writing programs algebraically was attractive. It was immediately apparent that arbitrary subexpressions of symbolic expressions could be obtained by composing the functions that extract immediate subexpressions, and this seemed reason enough to go to an algebraic language.
(In the late 1950s, neat output and convenient input notation was not generally considered important. Programs to do the kind of input and output customary today wouldn’t even fit in the memories available at that time. Moreover, keypunches and printers with adequate character sets didn’t exist).
Lisp is one of the oldest programming languages still in widespread use today. There have been many versions of Lisp, each sharing basic features but differing in detail. In this book we use the version called Common Lisp, which is the most widely accepted standard. Lisp has been chosen for three reasons. First, Lisp is the most popular language for AI programming, particularly in the United States. If you’re going to learn a language, it might as well be one with a growing literature, rather than a dead tongue. Second, Lisp makes it easy to capture relevant generalizations in defining new objects. In particular. Lisp makes it easy to define new languages especially targeted to the problem at hand. This is especially handy in AI applications, which often manipulate complex information that is most easily represented in some novel form. Lisp is one of the few languages that allows full flexibility in defining and manipu[1]lating programs as well as data. All programming languages, by definition, provide a means of defining programs, but many other languages limit the ways in which a program can be used, or limit the range of programs that can be defined, or require the programmer to explicitly state irrelevant details. Third, Lisp makes it very easy to develop a working program fast. Lisp programs are concise and are uncluttered by low-level detail. Common Lisp offers an unusually large number of useful predefined objects, including over 700 functions. The pro[1]gramming environment (such as debugging tools, incremental compilers, integrated editors, and interfaces to window systems) that surround Lisp systems are usually very good. And the dynamic, interactive nature of Lisp makes it easy to experiment and change a program while it is being developed.
As is well known, the name “Prolog” was invented in Marseilles in 1972. Philippe Roussel chose the name as an abbreviation for “PROgrammation en LOGique” to refer to the software tool designed to implement a man-machine communication system in natural language. It can be said that Prolog was the offspring of a successful marriage between natural language processing and automated theorem[1]331 ALAIN COLMERAUER & PHILIPPE ROUSSEL proving.
The other parts are of a more technical nature. They are devoted to three programming languages that rapidly succeeded one another: Q-systems, conceived for machine translation; the preliminary version of Prolog, created at the same time as its application; and the definitive version of Prolog, created independently of any application.
THE BIRTH OF PROLOG
The entire team then developed a primitive natural-language communication system [Colmerauer 1971]. The interfaces between the logical formulae and French consisted of 50 Q-system rules for the input and 17 Q-system rules for the output. The reasoning part was implemented through one of Philippe’s provers. It was thus possible to have the following conversation with the computer:
User Types in “ Who is Tom?”
Computer Output : “ Tom is a Cat”
User Types in “ What does Tom eat?
Computer Output: “ Tom eats Mice.”
User Types in” Who is the Mouse?”
Computer Output: “The Mouse Name is Jerry”
The logical formulae created made use of: (i) constants representing elements, Tom, Jerry, Cat, Mouse;
(ii) constants representing sets, Cats, Mice;
The, Subset, True.
A term of the form
The ( a ) was taken to represent the set consisting only of the element
- A formula of the form Subset (x, y)
- expressed the inclusion of set x in set y and a formula of the form True (r, x, y) expressed that the sets x and y were in the relation r.
- To the clauses that encoded the sentences,
- Jean Trudel added four clauses relating the three symbols The, Subset, True: (Vx) [Subset (x,x) ] , (Vx) (Vy) (Vz) [Subset (x,y)ASubset (y, z) ~ Subset (x, z) ], (Va) (Vb) [Subset(The(a) ,The(b)) ~ Subset(The(b) ,The(a))] , (VX) (Vy) (Vr) (Vx’) (Vy’) [True(r,x,y)ASubset(x,x’)^Subset(y,y’) ~ True(r,x’,y’)].
Prolog is a declarative logic programming language.. It is an attempt to make a programming language that enables the expression of logic instead of carefully specified instructions on the computer. Prolog has got superb pattern matching mechanism as well as good memory management. It is very commonly used in artificial intelligence applications.
Sometimes there can be several answers which are true in a given circumstances. This is because the program does not terminate as soon as the first answer is found, but keeps going until the entire tree of possibilities has been checked.
Prolog is a conversational language, meaning the user and the computer have a ‘conversation’. Firstly, the user specifies the objects and the relationships that exist between these objects. Prolog can then answer the questions about this set of data.
Prolog has a very compact syntax. From the developers point of view the difficulty of programming in Prolog, is the vagueness in human thinking. Prolog makes the coding easier as the syntax is very short and precise.
A FORERUNNER OF PROLOG, THE Q-SYSTEMS
The history of the birth of Prolog thus comes to a halt at the end of 1975. We now turn to more technical aspects and, first of all, describe the Q-systems, the result of a first gamble: to develop a very high-level programming language, even if the execution times it entailed might seem bewildering [Colmerauer 1970b]. That gamble, and the experience acquired in implementing the Q-systems was determinative for the second gamble:
Prolog. 7.3.1 One-Way Unification
A Q-system consists of a set of rewriting rules dealing with sequences of complex symbols separated by the sign +. Each rule is of the form el +e2+ …. + em–~ fl +f2+ …. +fn and means: in the sequence of trees we are manipulating, any subsequence of the form el + e2 + …. +em can be replaced by the sequence fl + f2 + …. + fn.
The eis and the fis are parenthe[1]sized expressions representing trees, with a strong resemblance to present Proiog terms but using three types of variables. Depending on whether the variable starts with a letter in the set {A,B,C,D,E,F}, {I,J,K,L,M,N}, or {U,V,W,X,Y,Z} it denotes either a label, a tree, or a (possibly empty) sequence of trees separated by commas.
For example, the rule P + A*(X*,I*,Y*) ~ I* + A*(X*,Y*) (variables are followed by an asterisk) applied to the sequence P + Q(R,S,T) + P produces three possible sequences R + Q(S,T) + P, S + Q(R,T) + P, T + Q(R,S) + P.
The concept of unification was therefore already present but it was one-way only; the variables appeared in the rules but never in the sequence of trees that was being transformed. However, unification took account of the associativity of the concatenation and, as in the preceding example, could produce several results. 338
THE BIRTH OF PROLOG
To describe this multitude of groupings in an economical way
1 use an oriented graph in which each arrow is labeled by a parenthesized expression representing a tree. A Q-system is nothing more than a set of rules allowing such a graph to be transformed into another graph. This information may correspond to an analysis, to a sentence synthesis or to a formal manipulation of this type.
For example the sequence A +A + B + B + C + C is represented by the graph A A B B C C and the application of the four rules A + B + C —) S A + S + X + C —~ S X + C–~ C + X B + B –) B + X produces the graph s C ~ B~ c Cx B~I X
THE PRELIMINARY PROLOG
In other words, the logical formulation was to serve not only for the different modules of the natural language dialogue system but also for the data exchanged between them, including the data exchanged with the user.
THE BIRTH OF PROLOG The choice having settled on first order logic (in clausal form) and not on a higher order logic, it then seemed that we were faced with an insurmountable difficulty in wanting programs to be able to manipulate other programs. Of course, this problem was solved using nonlogical mechanisms.
Future of Natural Processing Languages:
Natural language processing (NLP) is a subfield of Artificial Intelligence (AI).
What is NLP?
Natural language processing, or NLP, combines computational linguistics—rule-based modeling of human language—with statistical and machine learning models to enable computers and digital devices to recognize, understand and generate text and speech.
A branch of artificial intelligence (AI), NLP lies at the heart of applications and devices that can
- translate text from one language to another
- respond to typed or spoken commands
- recognize or authenticate users based on voice
- summarize large volumes of text
- assess the intent or sentiment of text or speech
- generate text or graphics or other content on demand
A text-to-speech system (or “engine”) is composed of two parts: a front-end and a back-end. The front-end has two major tasks. First, it converts raw text containing symbols like numbers and abbreviations into the equivalent of written-out words. This process is often called text normalization, pre-processing, or tokenization. The front-end then assigns phonetic transcriptions to each word and divides and marks the text into prosodic units, like phrases, clauses, and sentences.
The back-end — often referred to as the synthesizer — then converts the symbolic linguistic representation into sound.
There are different ways to perform speech synthesis. Those are Concatenative TTS, Formant Synthesis, Parametric TTS, and Hybrid approaches. The choice depends on the task they are used for.
The text-to-speech (TTS) assistive technology uses artificial intelligence to translate information written in a human-readable form in one language into audio, voice, or speech with a human accent.
Such systems turn text into audio or speech output using AI-driven algorithms as the input. It is also referred to as “real aloud technology” because it reads the text aloud.
Text-to-Speech (TTS) app that utilizes OCR technology to convert PDFs to audio files. While not a traditional OCR to PDF converter, it offers a unique approach by transforming scanned PDFs into spoken content. Speechify uses advanced algorithms and machine learning to recognize and extract text from scanned documents or images. It then converts the extracted text into high-quality speech, allowing users to listen to their PDFs rather than reading them.
Text To Speech A text to speech (TTS) synthesizer is a computer based system that can read text aloud automatically, regardless of whether the text is introduced by a computer input stream or a scanned input submitted to an Optical character recognition (OCR) engine. A speech synthesizer can be implemented by both hardware and software.
Speech is often based on concatenation of natural speech i.e. units that are taken from natural speech put together to form a word or sentence.