Concurrent Logic Program-Ming, Metaprogramming, and Open

Total Page:16

File Type:pdf, Size:1020Kb

Concurrent Logic Program-Ming, Metaprogramming, and Open AI Magazine Volume 9 Number 1 (1988) (© AAAI) WORKSHOP REPORT Concurrent Logic Program- ming, Metaprogramming, and Open Systems Kenneth M. Kahn he workshop began with the and how can the agent deal with An informal workshop on concurrent T visions of concurrent logic pro- "breakdown" in the sense discussed by logic programming, metaprogramming, gramming and open systems that are Terry Winograd and Fernando Flores. and open systems was held at Xerox Palo driving research at Weizmann, ICOT, Carl Hewitt of MIT presented actors Alto Research Center (PARC) on 8-9 CMU, MIT, and Xerox PARC. A as an alternative computational September 1987 with support from the shared vision emerged from the morn- model for open-system programming. American Association for Artificial Intel- ing session with concurrent logic pro- Many were surprised at the close cor- ligence. The 50 workshop participants came from gramming fulfilling the same role that respondence between the actor model the Japanese Fifth Generation Project C and Assembler do now. Languages and concurrent logic programming. (ICOT), the Weizmann Institute of Sci- such as Flat Concurrent Prolog and This similarity has become increas- ence in Israel, Imperial College in Lon- Guarded Horn Clauses are seen as ingly apparent to researchers in both don, the Swedish Institute of Computer general-purpose, parallel machine lan- fields. Both present a scalable, compu- Science, Stanford University, the Mas- guages and interface languages tational model with fine-grained, sachusetts Institute of Technology (MIT), between hardware and software and implicit concurrency and explicit syn- Carnegie-Mellon University (CMU), Cal not, as a newcomer to this field might chronization control. Both are well Tech, Science University of Tokyo, Mel- expect, as high-level, AI, problem- suited for defining robust, securely bourne University, Calgary University, solving languages. This view is one of encapsulated servers. University of Wisconsin, Case Western Reserve, University of Oregon, Korea the major departures from main- I presented the vision of the Vulcan Advanced Institute of Science and Tech- stream logic programming and Prolog group at Xerox PARC, which takes as nology (KAIST), Quintus, Symbolics, that most of the workshop partici- its challenge the building of high-level IBM, and Xerox PARC. No proceedings pants have taken, which is reflected languages, abstractions, and tools were generated; instead, participants dis- in the way these languages have trad- upon a distributed implementation of tributed copies of drafts, slides, and ed Prolog's exhaustive search capabili- a concurrent logic-programming lan- recent papers. ty for controllable concurrency. guage. The Vulcan group sees Another major departure from con- metaprogramming as an important ventional (logic) programming is the methodology in building concurrent incorporation of an open-system logic-programming abstractions. The vision. In an open system, a growing group shares with Weizmann, ICOT, predominance of computational ser- and others the belief that enhanced vices is provided and used by indepen- metainterpreters are a conceptually dent entities. Computation is envi- clear and simple way to capture many sioned as becoming more and more programming abstractions. It is hoped distributed between entities from dif- that the use of suites of enhanced ferent organizations, with different interpreters can be an effective and goals, that cooperate without requir- practical technique when combined ing trust. Open, distributed imple- with the automatic specialization that mentations of concurrent logic-pro- partial evaluation provides. gramming languages are seen by Vijay Saraswat from CMU provided researchers from Weizmann and the personal vision that tightly inte- Xerox as a way of providing a uniform grates notions of controlled constraint notation for computation in open sys- programming, transactions, produc- tems. Dan Bobrow of Xerox presented tion systems, and synchronous com- the open-system challenge from the putation with the concurrent logic- viewpoint of a participating agent; for programming framework. The con- example, how can an agent know nection between transactions and pro- what others might do for it and what duction systems followed from his assumptions will limit interactions, proposal to permit the simultaneous SPRING 1988 115 reduction of multiple processes with a however, in their handling of inheri- of a distributed implementation of the multiheaded definite clause. In a later tance, delegation, messages to self, Logix operating system. Logix is a pro- talk by John Connery from the Uni- and synchronization of state change. gramming system for Flat Concurrent versity of Oregon, a similar idea came We had a session on metainter- Prolog written in Flat Concurrent Pro- up as a proposed extension to Prolog. preters and partial evaluation. Leon log. The distributed version supports Mark S. Miller and K. Eric Drexler Sterling of Case Western presented his remote computations and distributed presented the Vulcan group's market- ideas on the Flavors-like mixing of code management. based approach to adaptive resource enhanced metainterpreters. Akira Overall, the workshop exceeded our management in open systems. Okumura of ICOT presented rules for expectations. Many presentations Takashi Chikayama presented ICOT's unfolding Guarded Horn Clauses pro- were given of new results and work in latest developments in concurrent grams. Udi Shapiro from Weizmann progress. The level, extent, and liveli- logic programming. talked about metainterpreter-based ness of the discussions during and fol- The rest of the workshop consisted algorithmic debugging and the ways lowing the presentations obviated the of technically oriented presentations in which specialized views of the need for the several panels that had and discussions. Several discussions computation can be useful for differ- been planned. We think the workshop were on the differences between ent kinds of debugging. He also talked successfully tied together the threads Guarded Horn Clauses, Parlog, about a new semantics for Flat Con- of concurrent logic programming, Saraswat's family of CP languages, current Prolog computations. Will metaprogramming, and open systems. and Flat Concurrent Prolog. The focus Winsborough from the University of Many participants came to the work- of these discussions was on whether Wisconsin talked about abstract inter- shop with some version of one or two unification should be an atomic trans- pretation in a logic-programming of these threads and went home with action and whether data flow synchro- framework. a heightened awareness of all three. nization annotations should be inter- Some of the talks were on imple- preted statically (as a code annotation) mentation issues. Yasunori Kimura of References or dynamically (as a data annotation). ICOT presented a multiple reference Ehud Shapiro, ed., Concurrent Prolog: Differences between these two points count scheme that supported Guarded Collected Papers, MIT Press, Cambridge, lead to languages with different prop- Horn Clauses optimizations, which Mass. 1987. A collection of papers on Con- erties, for example, the ability or are essential in keeping bus traffic current Prolog and related languages, this book includes classic papers that started inability to describe mutual exclu- down on a shared-memory, snoopy the field of concurrent logic programming sion. Only Flat Concurrent Prolog cache machine. Annika Waern and as well as recent work on embedded lan- supports dynamic annotations (read- Fredrik Holmgren of the Swedish guages, implementations, tools, metapro- only variables), and it was widely Institute of Computer Science talked gramming, partial evaluation, applications, acknowledged that this capability about how to compile Guarded Horn and semantics. confuses beginning programmers. Eric Clauses programs to Prolog imple- Kazunori Ueda, Guarded Horn Clauses, Tribble from Xerox sparked much dis- mentations extended with MIT Press, Cambridge, Mass. 1987. This cussion by presenting his analysis of "freeze"—the capability to suspend book describes the language that has the uses of read-only variables and goals. Vijay Saraswat from CMU become the kernel language for the latest proposing alternative simpler mecha- talked about a similar technique. He research at ICOT. nisms. also discussed constraint program- Steve Gregory, Parallel Logic Program- Presentations about higher-level ming in a concurrent logic-program- ming in PARLOG, Addison-Wesley, Wok- languages included one by Jim Rauen ming framework. John Cleary from ingham, England 1987. This text serves as of MIT and Xerox about Lexical Flat the University of Calgary presented a general introduction to Parlog, the con- current logic-programming language from Concurrent Prolog. The talk described the distributed simulation technique Imperial College. a higher-order concurrent logic-pro- called time warps and its applicability The Ecology of gramming language that enables pro- to parallel implementations of Prolog Bernardo Huberman, ed., Computation, North Holland, Amsterdam gramming with predicate arguments and distributed implementations of 1988. This book is a good collection of and closures and provides a principled unification. Seif Haridi of the Swedish papers on open systems. means of defining and using modules. Institute of Computer Science talked Kenneth Kahn, "Partial Evaluation, Pro- This work was directly inspired by about work on parallel
Recommended publications
  • Functional and Logic Programming - Wolfgang Schreiner
    COMPUTER SCIENCE AND ENGINEERING - Functional and Logic Programming - Wolfgang Schreiner FUNCTIONAL AND LOGIC PROGRAMMING Wolfgang Schreiner Research Institute for Symbolic Computation (RISC-Linz), Johannes Kepler University, A-4040 Linz, Austria, [email protected]. Keywords: declarative programming, mathematical functions, Haskell, ML, referential transparency, term reduction, strict evaluation, lazy evaluation, higher-order functions, program skeletons, program transformation, reasoning, polymorphism, functors, generic programming, parallel execution, logic formulas, Horn clauses, automated theorem proving, Prolog, SLD-resolution, unification, AND/OR tree, constraint solving, constraint logic programming, functional logic programming, natural language processing, databases, expert systems, computer algebra. Contents 1. Introduction 2. Functional Programming 2.1 Mathematical Foundations 2.2 Programming Model 2.3 Evaluation Strategies 2.4 Higher Order Functions 2.5 Parallel Execution 2.6 Type Systems 2.7 Implementation Issues 3. Logic Programming 3.1 Logical Foundations 3.2. Programming Model 3.3 Inference Strategy 3.4 Extra-Logical Features 3.5 Parallel Execution 4. Refinement and Convergence 4.1 Constraint Logic Programming 4.2 Functional Logic Programming 5. Impacts on Computer Science Glossary BibliographyUNESCO – EOLSS Summary SAMPLE CHAPTERS Most programming languages are models of the underlying machine, which has the advantage of a rather direct translation of a program statement to a sequence of machine instructions. Some languages, however, are based on models that are derived from mathematical theories, which has the advantages of a more concise description of a program and of a more natural form of reasoning and transformation. In functional languages, this basis is the concept of a mathematical function which maps a given argument values to some result value.
    [Show full text]
  • Biography – Dr. Ehud Shapiro Function Professor of Computer Science and Biology, Weizmann Institute of Science, Israel Educati
    Biography – Dr. Ehud Shapiro Function Professor of Computer Science and Biology, Weizmann Institute of Science, Israel Education & Professional Born in Jerusalem in 1955, Ehud Shapiro was awarded a B.A./B.Sc. Background degree with distinction in Mathematics and Philosophy from Tel Aviv University in 1979, and a Ph.D. in Computer Science from Yale Univer- sity in 1982. His doctoral studies with Prof. Dana Angluin attempted to provide an algorithmic interpretation to the noted philosopher of science Karl Popper's approach to scientific discovery. Joining the Weizmann Institute’s Department of Computer Science and Applied Mathematics in 1982 as a postdoctoral fellow, Prof. Shapiro was inspired by the Japanese Fifth Generation Computer Systems project to invent a high- level programming language for parallel and distributed computer sys- tems, named Concurrent Prolog. In 1993, Prof. Shapiro took a leave of absence from the Weizmann Institute to found and serve as CEO of Ubique Ltd., an Israeli Internet software pioneer. Prof. Shapiro returned to the Weizmann Institute in August 1998, where he is now an associate professor in the Depart- ments of Computer Science and Applied Mathematics, and Biological Chemistry, and incumbent of the Harry Weinrebe Chair of Computer Science and Biology. Preparing for his return to academia, Prof. Shapiro ventured into study of molecular biology. Initially curious about the origins of life, he was sidetracked into attempting to build a computer from biological mole- cules, guided by a vision of "A Doctor in a Cell": a biomolecular com- puter that operates inside the living body, programmed with medical knowledge to diagnose diseases and produce the requisite drugs.
    [Show full text]
  • Belgium a Logic Meta-Programming Framework for Supporting The
    Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France 2003 ERSITEIT IV B N R U U S E S J I E R L V S C S I E A N R B T E IA N VIN TE CERE ECOLE DES MINES DE NANTES A Logic Meta-Programming Framework for Supporting the Refactoring Process A Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science (Thesis research conducted in the EMOOSE exchange) By: Francisca Mu˜nozBravo Promotor: Prof. Dr. Theo D’Hondt (Vrije Universiteit Brussel) Co-Promotors: Dr. Tom Tourw´eand Dr. Tom Mens (Vrije Universiteit Brussel) Abstract The objective of this thesis is to provide automated support for recognizing design flaws in object oriented code, suggesting proper refactorings and performing automatically the ones selected by the user. Software suffers from inevitable changes throughout the development and the maintenance phase, and this usually affects its internal structure negatively. This makes new changes diffi- cult to implement and the code drifts away from the original design. The introduced structural disorder can be countered by applying refactorings, a kind of code transformation that improves the internal structure without affecting the behavior of the application. There are several tools that support applying refactorings in an automated way, but little help for deciding where to apply a refactoring and which refactoring could be applied. This thesis presents an advanced refactoring tool that provides support for the earlier phases of the refactoring process, by detecting and analyzing bad code smells in a software application, proposing appropriate refactorings that solve these smells, and letting the user decide which one to apply.
    [Show full text]
  • From Fifth Generation Computing to Skill Science
    New Generation Computing (2019) 37:141–158 https://doi.org/10.1007/s00354-019-00058-y From Fifth Generation Computing to Skill Science A Biographical Essay of Koichi Furukawa Tomonobu Ozaki1 · Randy Goebel2 · Katsumi Inoue3,4,5 Received: 7 February 2019 / Accepted: 10 April 2019 / Published online: 25 April 2019 © The Author(s) 2019 Abstract Professor Koichi Furukawa, an eminent computer scientist and former Editor-in- Chief of the New Generation Computing journal, passed away on January 31, 2017. His passing was a surprise, and we were all shocked and saddened by the news. To remember the deceased, this article reviews the great career and contributions of Professor Koichi Furukawa, focusing on his research activities on the foundation and application of logic programming. Professor Furukawa had both a deep understand- ing and broad impact on logic programming, and he was always gentle but persistent in articulating its value across a broad spectrum of computer science and artifcial intelligence research. This article introduces his research along with its insightful and unique philosophical framework. Keywords Institute for New Generation Computer Technology · Logic programming · Inductive logic programming · Skill science * Tomonobu Ozaki [email protected] Randy Goebel [email protected] Katsumi Inoue [email protected] 1 College of Humanities and Sciences, Nihon University, Tokyo, Japan 2 Department of Computing Science, University of Alberta, Edmonton, Canada 3 National Institute of Informatics, Tokyo, Japan 4 Department of Informatics, SOKENDAI (The Graduate University for Advanced Studies), Tokyo, Japan 5 Department of Computer Science, School of Computing, Tokyo Institute of Technology, Tokyo, Japan Vol.:(0123456789)123 142 New Generation Computing (2019) 37:141–158 Fig.
    [Show full text]
  • Logic Programming Lecture 19 Tuesday, April 5, 2016 1 Logic Programming 2 Prolog
    Harvard School of Engineering and Applied Sciences — CS 152: Programming Languages Logic programming Lecture 19 Tuesday, April 5, 2016 1 Logic programming Logic programming has its roots in automated theorem proving. Logic programming differs from theorem proving in that logic programming uses the framework of a logic to specify and perform computation. Essentially, a logic program computes values, using mechanisms that are also useful for deduction. Logic programming typically restricts itself to well-behaved fragments of logic. We can think of logic programs as having two interpretations. In the declarative interpretation, a logic pro- gram declares what is being computed. In the procedural interpretation, a logic program program describes how a computation takes place. In the declarative interpretation, one can reason about the correctness of a program without needing to think about underlying computation mechanisms; this makes declarative programs easier to understand, and to develop. A lot of the time, once we have developed a declarative program using a logic programming language, we also have an executable specification, that is, a procedu- ral interpretation that tells us how to compute what we described. This is one of the appealing features of logic programming. (In practice, executable specifications obtained this way are often inefficient; an under- standing of the underlying computational mechanism is needed to make the execution of the declarative program efficient.) We’ll consider some of the concepts of logic programming by considering the programming language Prolog, which was developed in the early 70s, initially as a programming language for natural language processing. 2 Prolog We start by introducing some terminology and syntax.
    [Show full text]
  • Lineage Trees Reveal Cells' Histories 23 February 2012
    Lineage trees reveal cells' histories 23 February 2012 In recent years, a number of controversial claims comparing a number of genetic sequences called have been made about the female mammal's egg microsatellites - areas where mutations occur like supply - that it is renewed over her adult lifetime clockwork - they can place cells on trees to reveal (as opposed to the conventional understanding their developmental history. that she is born with all of her eggs), and that the source of these eggs is stem cells that originate in A number of papers published by Shapiro, his team the bone marrow. Now, Weizmann Institute and collaborators in recent months have scientists have disproved one of those claims and demonstrated the power and versatility of this pointed in new directions toward resolving the method. One study, for instance, lent support to the other. Their findings, based on an original method notion that the adult stem cells residing in tiny for reconstructing lineage trees for cells, were crypts in the lining of the colon do not harbor, as published online today in PLoS Genetics. thought, "immortal DNA strands." Immortal strands may be retained by dividing stem cells if they The method, developed over several years in the always relegate the newly-synthesized DNA to the lab of Prof. Ehud Shapiro of the Institute's differentiating daughter cell and keep the original Biological Chemistry, and Computer Science and stand in the one that remains a stem cell. Applied Mathematics Departments, uses mutations in specific genetic markers to determine which A second study addressed an open question about cells are most closely related and how far back developing muscle cells.
    [Show full text]
  • Chapter 11. Knowledge Representation and Reasoning the Quest for Artificial Intelligence, Nilsson, N
    Chapter 11. Knowledge Representation and Reasoning The Quest for Artificial Intelligence, Nilsson, N. J., 2009. Lecture Notes on Artificial Intelligence Summarized by Ha, Jung-Woo and Lee, Beom-Jin Biointelligence Laboratory School of Computer Science and Engineering Seoul National Univertisy http://bi.snu.ac.kr Contents 11.1 Deductions in Symbolic Logic Deductions in Symbolic Logic 11.2 The Situation Calculus The Situation Calculus 11.3 Logic Programming Logic Programming 11.4 Semantic Networks Semantic Networks 11.5 Scripts and Frames Scripts and Frames Appendix © 2016, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 2 Overview Methods for knowledge representation and reasoning from Mid-1960s and Mid-1970s Symbolic logic and its deductions Predicate calculus For proving theories Situation calculus Logic programming: PROLOG Sematic networks: HAM, MEMS, MENTAL Script and Frames © 2016, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 3 Introduction Knowledge For intelligent system The mean to draw conclusion from or act on Knowledge representation Procedural Coordinate and control the specific action (ex. hitting a tennis ball) Programs using the knowledge Specific task program Declarative Declarative sentence (I am a 25 years old) Symbolic structures General task program © 2016, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 4 Chapter 11. Knowledge Representation and Reasoning 11.1 Deductions in Symbolic Logic © 2016, SNU CSE Biointelligence Lab., http://bi.snu.ac.kr 5 Deductions in Symbolic Logic The predicate calculus From Aristotle to G. Boole and McCarthy Ex. Aristotle syllogism 1. (∀ x)[Man(x) ⊃ Mortal(x)] (The expression “(∀ x)” is a way of writing “for all x”; and the expression “⊃” is a way of writing "implies that." “Man(x)” is a way of writing “x is a man”; and “Mortal(x)” is a way of writing “x is mortal.” Thus, the entire expression is a way of writing “for all x, x is a man implies that x is mortal” or, equivalently, “all men are mortal.”) 2.
    [Show full text]
  • Towards Flexible Goal-Oriented Logic Programming
    FACULTY OF SCIENCES Towards Flexible Goal-Oriented Logic Programming ir. Benoit Desouter Dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Computer Science Supervisors: prof. dr. ir. Tom Schrijvers prof. dr. ir. Marko van Dooren Department of Applied Mathematics, Computer Science and Statistics Faculty of Sciences, Ghent University ii Acknowledgments As it feels more natural to thank people in the language that we have used on a daily basis during the journey towards completing this PhD thesis, I'll use Dutch for most of the next few pages. In de eerste plaats wil ik mijn promotoren Tom en Marko bedanken. Tom, bedankt voor het geduld als ik occasioneel iets maar half begreep, en om er altijd vertrouwen in te blijven hebben. Je hebt me heel wat kansen aangereikt, waardoor ik van heel wat onderwerpen iets heb opgestoken. Marko, hoewel je er pas halverwege bijkwam, toonde je al snel interesse voor het onderwerp en heb je er vanuit je eigen expertise heel wat aan toegevoegd. Je deur stond altijd voor me open als ik even een tussentijdse statusupdate wou geven. Bedankt voor de babbels over vanalles en nog wat, en om me grondig te betrekken bij het geven van Programmeren 1. Ik heb nog heel wat bijgeleerd over objec- tori¨entatie door jouw visie, slides en codevoorbeelden. Daarnaast ook bedankt om mijn lokale LATEX-goeroe te zijn: niettegenstaande ik LATEX al tien jaar lang gebruik, heb ik voor het precies goed krijgen van deze thesis heel wat nieuwe pakketten en trucjes moeten gebruiken, met regelmatig vreemde out- put of cryptische foutmeldingen tot gevolg die ik niet altijd alleen kon oplossen | of het zou me op zijn minst veel meer tijd gekost hebben.
    [Show full text]
  • Chapter 1 Basic Principles of Programming Languages
    Chapter 1 Basic Principles of Programming Languages Although there exist many programming languages, the differences among them are insignificant compared to the differences among natural languages. In this chapter, we discuss the common aspects shared among different programming languages. These aspects include: programming paradigms that define how computation is expressed; the main features of programming languages and their impact on the performance of programs written in the languages; a brief review of the history and development of programming languages; the lexical, syntactic, and semantic structures of programming languages, data and data types, program processing and preprocessing, and the life cycles of program development. At the end of the chapter, you should have learned: what programming paradigms are; an overview of different programming languages and the background knowledge of these languages; the structures of programming languages and how programming languages are defined at the syntactic level; data types, strong versus weak checking; the relationship between language features and their performances; the processing and preprocessing of programming languages, compilation versus interpretation, and different execution models of macros, procedures, and inline procedures; the steps used for program development: requirement, specification, design, implementation, testing, and the correctness proof of programs. The chapter is organized as follows. Section 1.1 introduces the programming paradigms, performance, features, and the development of programming languages. Section 1.2 outlines the structures and design issues of programming languages. Section 1.3 discusses the typing systems, including types of variables, type equivalence, type conversion, and type checking during the compilation. Section 1.4 presents the preprocessing and processing of programming languages, including macro processing, interpretation, and compilation.
    [Show full text]
  • An Introduction to Prolog
    Appendix A An Introduction to Prolog A.1 A Short Background Prolog was designed in the 1970s by Alain Colmerauer and a team of researchers with the idea – new at that time – that it was possible to use logic to represent knowledge and to write programs. More precisely, Prolog uses a subset of predicate logic and draws its structure from theoretical works of earlier logicians such as Herbrand (1930) and Robinson (1965) on the automation of theorem proving. Prolog was originally intended for the writing of natural language processing applications. Because of its conciseness and simplicity, it became popular well beyond this domain and now has adepts in areas such as: • Formal logic and associated forms of programming • Reasoning modeling • Database programming • Planning, and so on. This chapter is a short review of Prolog. In-depth tutorials include: in English, Bratko (2012), Clocksin and Mellish (2003), Covington et al. (1997), and Sterling and Shapiro (1994); in French, Giannesini et al. (1985); and in German, Baumann (1991). Boizumault (1988, 1993) contain a didactical implementation of Prolog in Lisp. Prolog foundations rest on first-order logic. Apt (1997), Burke and Foxley (1996), Delahaye (1986), and Lloyd (1987) examine theoretical links between this part of logic and Prolog. Colmerauer started his work at the University of Montréal, and a first version of the language was implemented at the University of Marseilles in 1972. Colmerauer and Roussel (1996) tell the story of the birth of Prolog, including their try-and-fail experimentation to select tractable algorithms from the mass of results provided by research in logic.
    [Show full text]
  • Neural Logic Framework for Digital Assistants
    MEng Individual Project Imperial College London Department of Computing Neural Logic Framework for Digital Assistants Supervisor: Prof. Alessandra Russo Author: Nuri Cingillioglu Second Marker: Dr. Krysia Broda June 16, 2017 Abstract Digital assistants are becoming ubiquitous with consumers across mobile platforms help- ing with everyday tasks. The natural language interface of most assistants are built on machine learning based intent parsing techniques. This design cannot handle higher level abstract reasoning such as defaults while logic programs can incorporate them. In this project we present Kevin, a digital personal assistant with a logical framework built on top of neural networks to provide a flexible execution environment while har- nessing the capabilities of machine learning at a lower level. Kevin demonstrates natural language based logical constructs such as unification and resolution with integrated neural network information retrieval. Acknowledgements I would like to thank: • my parents for their wholehearted support, endless love and perpetual encourage- ment. • my supervisor Prof. Alessandra Russo for giving me this opportunity by accepting the project proposal and allowing me to explore the topic as well as her PhD student Mark Law for his feedback. • my personal tutor Dr. Alistair Donaldson for his support and advice for the years. • my friends for their companionship and solace throughout my degree. Contents 1 Introduction 11 1.1 Motivation.................................... 11 1.2 Objectives.................................... 12 1.3 Challenges.................................... 12 1.4 Contributions.................................. 13 2 Related Work 14 2.1 Natural Language Interactions......................... 14 2.1.1 Turing Test............................... 14 2.1.2 Conversational Agents......................... 15 2.2 Domain-specific Assistants........................... 17 2.2.1 PANDA: Virtual assistant for in-car child entertainment.....
    [Show full text]
  • 9B. Combining Logic Programs with Object-Oriented Representation
    9b. Combining Logic Programs with Object-Oriented Representation Outline • Limitations of frames & description logics • Early hybrid KR&R systems – Krypton • Recent trends in hybrid KR&R systems – Description graphs – F-Logic Limitation of Frames & Description Logics • Polyadic predicates – Relations with arity greater than two • A is between B and C • Limited relational expressivity – DLs can model only domains where objects are connected in a tree like manner • ``an uncle of a person is a brother of that person’s father’’ • Disjunction – Many concepts have disjunctively defined definitions • A person is legally employable if they are of employable age, and they are either a legal immigrant or US citizen • Negation and relative complements – Many facts are inherently negative • Under no circumstances is it illegal to drive on the shoulder of a road • Concepts defined using conditionals – An animal is dangerous to humans if it attacks them when near by • Equivalence to two other concepts – A dinner wine is proper if it is red whenever the main dish is red meat or is tomato based or else if it is white wine A more complete list is available in ``Two theses of knowledge representation: language restrictions, taxonomic classification, and the utility of representation services’’ by Doyle and Patil, AIJ, 1991 Krypton • Knowledge representation has two components – Terminological component (Tbox) – Assertional component (ABox) • Functional specification of a Knowledge Base – Instead of focusing on ``What structures should the system maintain
    [Show full text]