Keith Clark (computer scientist)

Keith Leonard Clark (born 29 March 1943) is an Emeritus Professor in the Department of Computing at Imperial College London, England.

Education
Clark studied Mathematics at Durham University (Hatfield College), graduating in 1964 with a first-class degree. Clark then continued his studies at Cambridge University, taking a second undergraduate degree in Philosophy in 1966. He earned a Ph.D. in 1980 from the University of London with thesis titled Predicate logic as a computational formalism.

Career
Clark undertook Voluntary Service Overseas from 1967 to 1968 as a teacher of Mathematics at a school in Sierra Leone. He lectured in Computer Science at the Mathematics Department of Queen Mary College from 1969 to 1975. In 1975 he moved to Imperial College London, where he became a Senior Lecturer in the Department of Computer Science and joined Robert Kowalski in setting up the logic programming group. From 1987 to 2009 he was Professor of Computational Logic at Imperial College.

Clark's key contributions have been in the field of logic programming. His current research interests include multi-agent systems, cognitive robotics and multi-threading.

Business Interests
In 1980, with colleague Frank McCabe, he founded an Imperial College spin-off company, Logic Programming Associates, to develop and market Prolog systems for microcomputers (micro-Prolog) and to provide consultancy on expert systems and other logic programming applications. The company's star product was MacProlog. It had a user interface exploiting all the graphic user interface primitives of the Mac's OS, and primitives allowing bespoke Prolog-based applications to be built with application specific interfaces. Clark has also acted as a consultant to IBM, Hewlett-Packard and Fujitsu among other companies.

Selected publications

 * K. L. Clark, D. Cowell, Programs, Machines and Computation, McGraw-Hill, London, 1976.
 * K. L. Clark, S-A. Tarnlund, A first order theory of data and programs, Proc. IFIP Congress, Toronto, 939–944 pp, 1977.
 * K. L. Clark, Negation as failure, Logic and Data Bases (eds. Gallaire & Minker) Plenum Press, New York, 293–322 pp, 1978. (Also in Readings in Nonmonotonic Reasoning, (ed. M. Ginsberg), Morgan Kaufmann, 311–325, 1987.)
 * K. L. Clark, S. Gregory, A relational language for parallel programming, Proc. ACM Conference on Functional Languages and Computer Architecture, ACM, New York, 171–178 pp, 1981. (Also in Concurrent Prolog, (ed. E Shapiro), MIT Press, 9–26 pp, 1987.)
 * K. L. Clark, S-A. Tarnlund (eds), Logic Programming, Academic Press, London, 1982.
 * K. L. Clark, F. G. McCabe, micro-PROLOG: Programming in Logic, Prentice-Hall International, 1984.
 * K. L. Clark, I. Foster,  A Declarative Environment for Concurrent Logic Programming, Proceedings of Colloquium on Functional and Logic Programming and Specification, LNCS 250,  Springer-Verlag, 212 - 242 pp, 1987
 * K. L. Clark, Logic Programming Schemes and their Implementations, Computational Logic (ed Lassez and Plotkin), MIT Press, 1991.
 * F.G. McCabe, K. L. Clark, April — Agent process interaction language, in Intelligent Agents, (ed N. Jennings, M. Wooldridge), LNAI, Vol. 890, Springer-Verlag, 1995.
 * N. Skarmeas, K. L. Clark, Content based routing as the basis for intra-agent communication, Proceedings of International WS on Agent Theories, Architectures and Languages 98, Intelligent Agents V, (ed. J. P. Muler et al.), Springer-Verlag, LNAI 1555, 1999 (best paper award).
 * K. L. Clark, Logic Programming Languages, Encyclopedia of Computer Science, (eds. A. Ralston, E. Reilly, D. Hemmendinger), pp 1024–1031, Nature Publishing Group, 2000.
 * K. L. Clark and F. McCabe, Go! — A Multi-paradigm Programming Language for Implementing Multi-threaded Agents, Annals of Mathematics and Artificial Intelligence, 41(2–4):171–206, August 2004.
 * T. Hong and K. L. Clark, Towards a Universal Web Wrapper, Proceedings of the 17th International FLAIRS Conference, AAAI Press, 2004.
 * K. L. Clark and F. McCabe, Ontology schema for an agent belief store, International Journal of Human-Computer Studies, 65(7), July 2007, Pages 640–658.
 * K. L. Clark, P. Robinson, S. Zappacosta Amboldi, Multi-threaded communicating agents in Qu-Prolog, Computational Logic in Multi-agent systems  (ed. F Toni and P. Torroni), LNAI Vol. 3900, pp 186–205, 2006.
 * S. Coffey and K. L. Clark, A Hybrid, Teleo-Reactive Architecture for Robot Control, Proceedings of the Second International Workshop on Multi-Agent Robotic Systems (MARS-06), 2006.
 * D. Gaertner, K. L. Clark, M. Sergot, Ballroom etiquette: a case study for norm-governed multi-agent systems, Proceedings of AAMAS06 Workshop on Coordination, Organization, Institutions and Norms in agent systems, LNCS 4386, Springer, 2006.
 * J. Knottenbelt, K. L. Clark, Contract Related Agents, Computational Logic in Multi-agent systems (ed F Toni and P. Torroni), LNAI Vol. 3900, pp 226–242, 2006.
 * J. Ma, A. Russo, K. Broda, K. L. Clark, DARE: A System for Distributed Abductive Reasoning, Autonomous Agents and Multi-agent Systems Journal, 16(3), Springer, June, 2008.
 * P. J. Robinson, K. L. Clark, Pedro: A Publish/Subscribe Server Using Prolog Technology, Software: Practice and Experience, 40(4) pp 313–329, Wiley, 2010.
 * K. L. Clark, P. J. Robinson, Robotic agent programming in TeleoR, Proceedings of International Conference on Robotics and Automation, IEEE, May 2015.
 * K. Clark, B. Hengst, M. Pagnucco, D. Rajaratnam, P. Robinson, C. Sammut, M. Thielscher, A Framework for Integrating Symbolic and Sub-Symbolic Representations, Proceedings of International Joint Conferences on Artificial Intelligence 2016, New York, AAAI Press, July 2016.