The Chinese University of Hong Kong
Department of Computer Science and Engineering


Title: QuLog: A Modern Logic Based Agent ProgrammingLanguage
Date: November 25, 2014 (Tuesday)
Time: 11:00 a.m. - 12:30 p.m.
Venue: Room 121, 1/F, Ho Sin-hang Engineering Building,
The Chinese University of Hong Kong,
Shatin, N.T.
Speaker: Prof. Keith Clark
Royal Holloway
University of London and University of Queensland



QuLog is a higher-order logic/functional/string processing language with an imperative rule language sitting on top, defining actions. QuLog's action rules are used to program multi-threaded communicating agent behaviour. Its declarative subset is used for the agent's belief store. The language is flexibly typed and allows a combination of compile time and run-time type checking.

It is a fully integrated in that function calls can appear as or inside arguments to relation calls, and relational queries can be used as guards of function rules. It has sets as a separate data type from lists with set <-> convertors. Both can be created using comprehension expressions. Sets are manipulated using union, intersection and difference operators. Lists are manipulated as in Prolog but also using nondeterministic pattern matching. Similar pattern matching is used for string processing.

It has support for type safe meta-level programming to complement its type safe higher order programming.

QuLog is the implementation and belief store language of our multi-threaded TeleoR agent architecture.

The talk will step by step introduce and also exemplify the key features of QuLog using its interpreter.



Keith Clark was associated with the Department of Computing, Imperial College, from 1975 until 2014. He is now a Visiting Professor at the University of Queensland, Royal Holloway College and Huddersfield University. He is a Visiting Researcher at Cambridge Computer Lab.

His early research was in the theory of logic programming of which the most notable output was: the "Negation as Failure" paper giving a declarative semantics to Prolog's not operator; a fixed-point semantics for Horn clause logic programming in which queries and their answer substitutions denoted sub-relations.

In 1980, with Frank McCabe, he set up Logic Programming Associates to develop Prolog systems for personal computers. The company is still operating but mostly doing consultancy work.

In 1981, with Steve Gregory, he introduced the concepts of committed choice nondeterminism and stream communication into logic programming in an un-named language that later became Parlog. The Fifth Generation GHC language was essentially a syntactic variation of Parlog.

Since 1990 his interests have moved to multi-threaded programming languages, still with a declarative emphasis, and their use for multi-agent systems and cognitive robotics applications, resulting in a series of languages developed with Frank McCabe and Peter Robinson. The latest of languages are TeleoR, a major extension of Nilsson's Teleo-Reactive robotic agent language, and QuLog, a higher order flexibly typed logic + functional language with an outer layer of action rules. The action rules are used for the implementation of multi-tasking agents reasoning using the declarative subset. TeleoR can be compiled in QuLog.

He has consulted for the Fifth Generation Project, Hewlett Packard, IBM, Fujitsu and two start-ups. Both start-ups failed!


Enquiries: Miss Evelyn Lee at tel 3943 8444

For more information, please refer to