The Use of Prolog in Artificial Intelligence
Artificial intelligence can be defined as getting things that seem to be intelligent, done by the computers with the use of advanced and sophisticated software engineering techniques for tough problems that has no easy solution and requires nonnumeric problem solving techniques or methods (Bratko). A number of languages and sub-languages are used by artificial intelligence. One of the most efficient ones is PROgrammation et Logique abbreviated as PROLOG. It is a high-level interactive and logic programming language and good at knowledge reasoning and representation, language and grammar processing, unification and pattern matching. The planning and search PROLOG supports symbolic AI. The language is closely associated with predicate expression and logical formula (Bratko). For example, p(x), city(monterey, california), pi(3.1416), longpredicatename(longargumentname, 3) are some PROLOG predicate expressions that can be put into computers to represent facts about the world. When we want the computer system to know something about an organization’s product, say printer; “product(printer).” can be interpreted as printer is a product. Only lower cases are used in PROLOG and a period at the end of facts signal the end of a line. Names can also be given to the computer, for example “product(blackjet).”, “product(colorjet).” to represent the “product” type where product is a predicate for type. In a similar way, people, abstracts things like colleges or institutions, concepts, etc. can be labeled with types: “vice_president(deejay_jam).”, “president(sid_val).”, “university(technology_graduate_school).”, “university(nyc_university).”, “day_of_week(sunday).”, etc. Today, PROLOG is one of the most famous AI languages with a number of commercial and free implementations used in areas such as expert systems, theorem proving, automated answering systems, games, sophisticated control systems, etc. The modern environments of PROLOG support networked and administered applications and creating GUIs.