Abstract:
The logic programming language, PROLOG (short for PROgramming in LOGic) was introduced in the early 70’s out of the joint efforts of AI researchers at the universities of Marseilles in France and Edinburgh in Scotland. The Marseilles group, led by Alain Colmerauer, were particularly interested in a symbolic processing notation for natural language representation and processing while the Edinburgh team led by Robert Kowalski had been researching a deterministic form of predicate logic that could lend itself to automation on the modern computer. The result was a programming language that ushered in the declarative paradigm of programming; often contrasted with imperative approaches supported by procedural and object-oriented languages. In declarative programming one focuses on capturing and representing domain knowledge in terms of valid facts and generalized rules for deducing new facts from existing facts. Given a declarative knowledge base on some domain of discourse, the Prolog engine represents a general algorithm (or general problem-solver, if you like) that can figure out on its own which inferences or deductions can be made from that knowledge base using the laws and mechanisms of logic, some dating back thousands of years to philosophers like Aristotle and Socrates.
Logic has been defined as a tool for correct reasoning and is seen by computer scientists, linguists etc as perhaps the best tool for representing and reasoning with human knowledge, especially the type of knowledge expressible in natural language. It is Prolog’s logical foundations that give it its unique character as a largely declarative programming language and facilitates implementation in it of knowledge-based systems such as Expert Systems and deductive databases. However, Prolog programs also lend themselves to a procedural interpretation. Programmer coming to Prolog without some grounding in its logical foundations will likely miss its potential and are unlikely to employ the language effectively to build smart knowledge-based systems. This seminar will introduce Prolog from its Horn-clause logical foundations and as a powerful knowledge representation system suitable for solving various types of AI problems including expert systems, natural language processing, deductive databases, computer games and constraint satisfaction problems. The resurgence of the field of AI and the explosive growth in data and content on the web adds even more relevance to AI tools such as Prolog in supporting some of the growing research opportunities in AI.