Cumputational logic logic programming and beyond p 1

686 1.1K 0
Cumputational logic logic programming and beyond p 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Antonis C Kakas Fariba Sadri (Eds.) Computational Logic: Logic Programming and Beyond Essays in Honour of Robert A Kowalski Part I 13 Series Editors Jaime G Carbonell,Carnegie Mellon University, Pittsburgh, PA, USA J¨org Siekmann, University of Saarland, Saarbr¨ucken, Germany Volume Editors Antonis C Kakas University of Cyprus, Department of Computer Science 75 Kallipoleos St., 1678 Nicosia, Cyprus E-mail:antonis@ucy.ac.cy Fariba Sadri Imperial College of Science, Technology and Medicine Department of Computing, 180 Queen’s Gate London SW7 2BZ, United Kingdom E-mail: fs@doc.ic.ac.uk Cataloging-in-Publication Data applied for Die Deutsche Bibliothek - CIP-Einheitsaufnahme Computational logic: logig programming and beyond : essays in honour of Robert A Kowalski / Antonis C Kakas ; Fariba Sadri (ed.) - Berlin ; Heidelberg ; New York ; Barcelona ; Hong Kong ; London ; Milan ; Paris ; Tokyo : Springer Pt - (2002) (Lecture notes in computer science ; Vol 2407 : Lecture notes in artificial intelligence) ISBN 3-540-43959-5 CR Subject Classification (1998): I.2.3, D.1.6, I.2, F.4, I.1 ISSN 0302-9743 ISBN 3-540-43959-5 Springer-Verlag Berlin Heidelberg New York This work is subject to copyright All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer-Verlag Violations are liable for prosecution under the German Copyright Law Springer-Verlag Berlin Heidelberg New York a member of BertelsmannSpringer Science+Business Media GmbH http://www.springer.de © Springer-Verlag Berlin Heidelberg 2002 Printed in Germany Typesetting: Camera-ready by author, data conversion by Boller Mediendesign Printed on acid-free paper SPIN 10873675 06/3142 543210 Foreword Alan Robinson This set of essays pays tribute to Bob Kowalski on his 60th birthday, an anniversary which gives his friends and colleagues an excuse to celebrate his career as an original thinker, a charismatic communicator, and a forceful intellectual leader The logic programming community hereby and herein conveys its respect and thanks to him for his pivotal role in creating and fostering the conceptual paradigm which is its raison d'être The diversity of interests covered here reflects the variety of Bob's concerns Read on It is an intellectual feast Before you begin, permit me to send him a brief personal, but public, message: Bob, how right you were, and how wrong I was I should explain When Bob arrived in Edinburgh in 1967 resolution was as yet fairly new, having taken several years to become at all widely known Research groups to investigate various aspects of resolution sprang up at several institutions, the one organized by Bernard Meltzer at Edinburgh University being among the first For the half-dozen years that Bob was a leading member of Bernard's group, I was a frequent visitor to it, and I saw a lot of him We had many discussions about logic, computation, and language By 1970, the group had zeroed in on three ideas which were soon to help make logic programming possible: the specialized inference rule of linear resolution using a selection function, together with the plan of restricting it to Horn clauses ("LUSH resolution"); the adoption of an operational semantics for Horn clauses; and a marvellously fast implementation technique for linear resolution, based on structure-sharing of syntactic expressions Bob believed that this work now made it possible to use the predicate calculus as a programming language I was sceptical My focus was still on the original motivation for resolution, to build better theorem provers I worried that Bob had been sidetracked by an enticing illusion In particular because of my intellectual investment in the classical semantics of predicate logic I was quite put off by the proposed operational semantics for Horn clauses This seemed to me nothing but an adoption of MIT's notorious "Planner" ideology of computational inference I did try, briefly, to persuade Bob to see things my way, but there was no stopping him Thank goodness I could not change his mind, for I soon had to change mine In 1971, Bob and Alain Colmerauer first got together They pooled their thinking The rest is history The idea of using predicate logic as a programming language then really boomed, propelled by the rush of creative energy generated by the ensuing Marseilles-Edinburgh synergy The merger of Bob's and Alain's independent insights launched a new era Bob's dream came true, confirmed by the spectacular practical success of Alain's Prolog My own doubts were swept away In the thirty years since then, logic programming has developed into a jewel of computer science, known all over the world Happy 60th birthday, Bob, from all of us Preface Bob Kowalski together with Alain Colmerauer opened up the new field of Logic Programming back in the early 1970s Since then the field has expanded in various directions and has contributed to the development of many other areas in Computer Science Logic Programming has helped to place logic firmly as an integral part of the foundations of Computing and Artificial Intelligence In particular, over the last two decades a new discipline has emerged under the name of Computational Logic which aims to promote logic as a unifying basis for problem solving This broad role of logic was at the heart of Bob Kowalski’s work from the very beginning as expounded in his seminal book “Logic for Problem Solving.” He has been instrumental both in shaping this broader scientific field and in setting up the Computational Logic community This volume commemorates the 60th birthday of Bob Kowalski as one of the founders of and contributors to Computational Logic It aspires to provide a landmark of the main developments in the field and to chart out its possible future directions The authors were encouraged to provide a critical view of the main developments of the field together with an outlook on the important emerging problems and the possible contribution of Computational Logic to the future development of its related areas The articles in this volume span the whole field of Computational Logic seen from the point of view of Logic Programming They range from papers addressing problems concerning the development of programming languages in logic and the application of Computational Logic to real-life problems, to philosophical studies of the field at the other end of the spectrum Articles cover the contribution of CL to Databases and Artificial Intelligence with particular interest in Automated Reasoning, Reasoning about Actions and Change, Natural Language, and Learning It has been a great pleasure to help to put this volume together We were delighted (but not surprised) to find that everyone we asked to contribute responded positively and with great enthusiasm, expressing their desire to honour Bob Kowalski This enthusiasm remained throughout the long process of reviewing (in some cases a third reviewing process was necessary) that the invited papers had to go through in order for the decision to be made, whether they could be accepted for the volume We thank all the authors very much for their patience and we hope that we have done justice to their efforts We also thank all the reviewers, many of whom were authors themselves, who exhibited the same kind of zeal towards the making of this book A special thanks goes out to Bob himself for his tolerance with our continuous stream of questions and for his own contribution to the book – his personal statement on the future of Logic Programming Bob has had a major impact on our lives, as he has had on many others I, Fariba, first met Bob when I visited Imperial College for an interview as a PhD applicant I had not even applied for logic programming, but, somehow, I ended up being interviewed by Bob In that very first meeting his enormous enthusiasm and energy for his subject was fully evident, and soon afterwards I found myself registered to a PhD in logic VIII Preface programming under his supervision Since then, throughout all the years, Bob has been a constant source of inspiration, guidance, friendship, and humour For me, Antonis, Bob did not supervise my PhD as this was not in Computer Science I met Bob well after my PhD and I became a student again I was extremely fortunate to have Bob as a new teacher at this stage I already had some background in research and thus I was better equipped to learn from his wonderful and quite unique way of thought and scientific endeavour I was also very fortunate to find in Bob a new good friend Finally, on a more personal note the first editor wishes to thank Kim for her patient understanding and support with all the rest of life’s necessities thus allowing him the selfish pleasure of concentrating on research and other academic matters such as putting this book together Antonis Kakas and Fariba Sadri Table of Contents, Part I A Portrait of a Scientist as a Computational Logician Maurice Bruynooghe, Lu´ıs Moniz Pereira, J¨ org H Siekmann, Maarten van Emden Bob Kowalski: A Portrait Marek Sergot Directions for Logic Programming 26 Robert A Kowalski I Logic Programming Languages Agents as Multi-threaded Logical Objects 33 Keith Clark, Peter J Robinson Logic Programming Languages for the Internet 66 Andrew Davison Higher-Order Computational Logic 105 John W Lloyd A Pure Meta-interpreter for Flat GHC, a Concurrent Constraint Language 138 Kazunori Ueda II Program Derivation and Properties Transformation Systems and Nondeclarative Properties 162 Annalisa Bossi, Nicoletta Cocco, Sandro Etalle Acceptability with General Orderings 187 Danny De Schreye, Alexander Serebrenik Specification, Implementation, and Verification of Domain Specific Languages: A Logic Programming-Based Approach 211 Gopal Gupta, Enrico Pontelli Negation as Failure through Abduction: Reasoning about Termination 240 Paolo Mancarella, Dino Pedreschi, Salvatore Ruggieri Program Derivation = Rules + Strategies 273 Alberto Pettorossi, Maurizio Proietti X Table of Contents, Part I III Software Development Achievements and Prospects of Program Synthesis 310 Pierre Flener Logic for Component-Based Software Development 347 Kung-Kiu Lau, Mario Ornaghi Patterns for Prolog Programming 374 Leon Sterling IV Extensions of Logic Programming Abduction in Logic Programming 402 Mark Denecker, Antonis Kakas Learning in Clausal Logic: A Perspective on Inductive Logic Programming 437 Peter Flach, Nada Lavraˇc Disjunctive Logic Programming: A Survey and Assessment 472 Jack Minker, Dietmar Seipel Constraint Logic Programming 512 Mark Wallace V Applications in Logic Planning Attacks to Security Protocols: Case Studies in Logic Programming 533 Luigia Carlucci Aiello, Fabio Massacci Multiagent Compromises, Joint Fixpoints, and Stable Models 561 Francesco Buccafurri, Georg Gottlob Error-Tolerant Agents 586 Thomas Eiter, Viviana Mascardi, V.S Subrahmanian Logic-Based Hybrid Agents 626 Christoph G Jung, Klaus Fischer Heterogeneous Scheduling and Rotation 655 Thomas Sj¨ oland, Per Kreuger, Martin Aronsson Author Index 677 Table of Contents, Part II VI Logic in Databases and Information Integration MuTACLP: A Language for Temporal Reasoning with Multiple Theories Paolo Baldan, Paolo Mancarella, Alessandra Raffaet` a, Franco Turini Description Logics for Information Integration 41 Diego Calvanese, Giuseppe De Giacomo, Maurizio Lenzerini Search and Optimization Problems in Datalog 61 Sergio Greco, Domenico Sacc` a The Declarative Side of Magic 83 Paolo Mascellani, Dino Pedreschi Key Constraints and Monotonic Aggregates in Deductive Databases 109 Carlo Zaniolo VII Automated Reasoning A Decidable CLDS for Some Propositional Resource Logics 135 Krysia Broda A Critique of Proof Planning 160 Alan Bundy A Model Generation Based Theorem Prover MGTP for First-Order Logic 178 Ryuzo Hasegawa, Hiroshi Fujita, Miyuki Koshimura, Yasuyuki Shirai A ‘Theory’ Mechanism for a Proof-Verifier Based on First-Order Set Theory 214 Eugenio G Omodeo, Jacob T Schwartz An Open Research Problem: Strong Completeness of R Kowalski’s Connection Graph Proof Procedure 231 J¨ org Siekmann, Graham Wrightson VIII Non-deductive Reasoning Meta-reasoning: A Survey 253 Stefania Costantini Argumentation-Based Proof Procedures for Credulous and Sceptical Non-monotonic Reasoning 289 Phan Minh Dung, Paolo Mancarella, Francesca Toni XII Table of Contents, Part II Automated Abduction 311 Katsumi Inoue The Role of Logic in Computational Models of Legal Argument: A Critical Survey 342 Henry Prakken, Giovanni Sartor IX Logic for Action and Change Logic Programming Updating - A Guided Approach 382 Jos´e J´ ulio Alferes, Lu´ıs Moniz Pereira Representing Knowledge in A-Prolog 413 Michael Gelfond Some Alternative Formulations of the Event Calculus 452 Rob Miller, Murray Shanahan X Logic, Language, and Learning Issues in Learning Language in Logic 491 James Cussens On Implicit Meanings 506 Veronica Dahl Data Mining as Constraint Logic Programming 526 Luc De Raedt DCGs: Parsing as Deduction? 548 Chris Mellish Statistical Abduction with Tabulation 567 Taisuke Sato, Yoshitaka Kameya XI Computational Logic and Philosophy Logicism and the Development of Computer Science 588 Donald Gillies Simply the Best: A Case for Abduction 605 Stathis Psillos Author Index 627 A Portrait of a Scientist as a Computational Logician Maurice Bruynooghe1, Lu´ıs Moniz Pereira2, J¨ org H Siekmann3 , and Maarten van Emden Department of Computer Science, K.U.Leuven, Belgium Departamento de Informatica, Universidade Nova de Lisboa, Portugal Saarland University, German Research Center for Artificial Intelligence (DFKI), Saarbruecken, Germany Department of Computer Science, University of Victoria, Victoria, British Columbia, Canada Throughout his prolific scientific career, Robert (Bob) Kowalski was motivated by his desire to reshape logic from an abstract mathematical discipline into a working tool for problem solving This led him towards a wide exploration of logic in computer science, artificial intelligence, cognitive science, and law His scientific achievements in these pursuits have become landmarks To this we should add the enthusiasm and leadership with which he has enrolled into this venture an entire community extending over two generations of researchers Below we detail by topic some of his accomplishments Automated Theorem Proving Bob’s early work was part of the enormous enthusiasm generated by Robinson’s discovery of the resolution principle Bob started off with important technical contributions, with Hayes on semantic trees and with Kuehner on SL resolution The pinnacle of this line of research is Bob’s Connection Graph proof procedure Already before the Connection Graph proof procedure, Bob was concerned with the redundancy of unrestricted resolution He collaborated with workers in operations research applying search techniques to guide resolution theoremprovers Logic for Problem Solving A formative episode in Bob’s development was the backlash against resolution theorem-proving Green had shown how goals of plans could be elegantly formuA.C Kakas, F Sadri (Eds.): Computat Logic (Kowalski Festschrift), LNAI 2407, pp 1–4, 2002 c Springer-Verlag Berlin Heidelberg 2002 Heterogeneous Scheduling and Rotation 663 to estimate the total costs at the strategic and central level and concrete and detailed local cost measures for each sub-problem The aim is to limit the local choices so that they at least meet the elementary demands on the central level Another approach is to simplify the problem by for instance combining simple resources to more complex ones in order to reduce the total set of tasks in a given problem In order for such abstraction techniques to be meaningful, an abstracted problem should of course be simpler to solve than the problem you would have had if you had combined the original problem descriptions to begin with Descriptions of constraint spaces with different levels of detail should be formally related Such a formalisation must also allow a computationally robust implementation The abstraction of constraint expressions from different spaces must guarantee that important information is not lost, or could be regained with relative ease One practical way to handle the complexity is to abstract from the concrete track net This is done in the project by using the concept of headway to lift the number of nodes in the net to just contain stations and crossings that actually contain 000-10 000 exchanges, sensors and signals For each given path it was considered appropriate to schedule 10-100 points 7.1 Task Hierarchies When dividing a resource problem into smaller parts the need arises to merge sub-plans generated locally with incomplete knowledge about the resource conflicts that occur when they are to be co-ordinated The approach of the project [37] is one that builds on a concept of task that is organised in a hierarchy Each primitive task and job is represented as a task structure with an unambiguous sub-structure A problem structure is represented partly by such a task structure, partly by a (partial) order relation on the individual tasks and their parts and finally partly by a formal representation of the resources used by the tasks Abstractions and concretisations are defined as mappings on problem structures 7.2 Abstraction of Time in the Scheduling Problem Time points in the constraints are represented as finite domain variables in the scheduler used in the project [39] This means that the scheduling problem is discrete Since different parts of the network might have different loads there is a possibility of generating a large number of redundant solutions with this approach The traversal time parameter for an arc in the abstract network should cover the longest possible time between the two nodes in the concrete network This might prohibit the finding of a schedule if the abstraction is applied on parts of the network where there is much traffic Two possible abstractions are investigated in [32]: 664 Thomas Sj¨ oland, Per Kreuger, and Martin Aronsson – Use fewer time points in the intervals described by the finite domain variables – Use a simpler network such that only those nodes where significant operations such as overturns, meetings and reallocation of engines or personnel are allowed, are taken into account A later phase can generate times for stops at intermediate nodes A conclusion from these experiments is that the time required for scheduling is up to four times shorter for the best type of abstraction than for the concrete scheduling Furthermore, the abstract scheduling requires less memory than the concrete scheduling 7.3 Planning Strategies Mechanisms for abstraction and concretisation can in principle be combined in complex patterns, called strategies Such strategies can be used both to enable planning of bigger problems that are possible to handle as a unit and to reduce the required time for the planning by dividing the problem into smaller pieces A strategy can be used for instance to co-ordinate the results of several track resource planning sessions This is interesting for instance if remote trains travel through a geographical area where also local traffic occurs, and can also be used to merge solutions when planning tracks in geographically closely related areas Strategies need not to be limited to abstractions and concretisations, and can furthermore be used to control the co-ordination between the different subproblems Planning Language In order to make it practical to use strategies it is required that a strategy can easily be defined This becomes possible with the aid of a planning language Such a language offers possibilities to use mechanisms for abstraction and concretisation It also supports constructions to express conditional behaviour, so that if one part of a strategy is failing, a new attempt is made to solve this part of the problem in another way Finally a strategy that is entered as an expression in the language needs to be stored and again be read into the system It is worth noting that a planning language is useful not just for solution of the problem at hand in the transport sector, but that it can simplify the solution of many types of larger planning problems 8.1 Techniques Constraint Programming Constraint programming (CP) [31, 61] is based on the idea of an abstract space of statements (restrictions or conditions), a constraint space Heterogeneous Scheduling and Rotation 665 Some of these statements can be understood as fully determined Take for instance the claim that a given train will depart from Avesta 15.05 Thursday April 15th in the year 2001 Other statements are less exact for instance that a steel manufacturer needs to transport between 320 and 380 kilotons of steel from Hofors and Hellefors to Malm¨ o next year Both these statements can be represented as conditions in a constraint programming system These are named constraints or restrictions on the value space for the variables contained by the statement It is certainly non-trivial to determine in a space of such statements how for instance these two statements are related given some mathematical model of a planning problem but under certain circumstances is is possible to make calculations with such abstract objects and to determine for instance logical consistency, that is to decide whether the statements are possibly both true or not It is also possible to compute one or several witnesses, that is assignments of values to all variables in a space This is called to enumerate the search space for a given problem and in general it contains the utilisation of a search procedure Such witnesses can in the production planning domain for instance be concrete production plans If many such plans are generated they can be compared with respect to different measures of cost To find the best plan is modelled as an optimisation problem in the constraint system Much of the search when enumerating the search space for a given problem can often be eliminated with a technique named constraint propagation This means briefly that each statement that is not completely determined is considered as a temporarily interrupted computation which can be made to interact with other similar concurrent computations Computations are interrupted when the information that is needed to determine a value is missing but they continue once the information is later available A constraint programming system can be seen as a set of parallel processes which communicate, interact and are synchronised via shared variables in a dataflow graph Whether it is possible to compute solutions for a given problem or not is to a large extent depending on the expressive power of the language being used to express statements about the problem To formulate a mathematical model of some real process in such a language is in general a very hard problem In spite of this there have been good results by using constraint techniques to model and solve known hard planning problems for instance many classical scheduling and resource allocation problems Consider the example with a departure time If it is known one might like to represent it as a number Assume now that it is not known, but that there is nevertheless some information available about it, for instance that it must be between 11 and 12 some given day and that it must follow after the arrival time for some other trip 666 Thomas Sj¨ oland, Per Kreuger, and Martin Aronsson This is a very strong restriction of the value for the departure time Yet it contains an ambiguity which separates it in a fundamental way from the totally determined one A number of constraint statements can for instance express the relation between this departure time and other departure times (or arrivals) and can be said to represent a specification of a production plan The more determined it is, the closer it is to a finished plan with totally determined times In principle it is possible to construct a production plan by successively adding more and more information to a space containing conditions (a constraint space) Finite Domains The constraint programming systems that have been most actively developed the last ten years are those that handle finite domains In such a system each variable can take on values from a finite set of discrete values This type of variable is natural to use to model discrete entities such as the number of engines or personnel that have been allocated to a given task They are, however, unnecessarily restrictive when the modelling concerns values that can be assumed to vary over continuous domains (with an infinite number of possible values), for instance time Global Constraints A global constraint is a way to express properties of many variables in one statement The first type of constraint that was studied in constraint programming was constraints that relate two variables, for instance

Ngày đăng: 07/04/2017, 16:32

Mục lục

  • front-matter

    • Computational Logic: Logic Programming and beyond

    • Foreword

    • Preface

    • Table of Contents, Part I

    • Table of Contents, Part II

    • fulltext

      • Automated Theorem Proving

      • Logic for Problem Solving

      • Logic Programming

      • Logic across the Children's Curriculum

      • Logic and Data Bases

      • Logic Programming and the Law

      • The Event Calculus

      • Common-Sense Reasoning

      • Logic Modeling of Agents

      • Conclusion

      • fulltext2

        • Introduction

        • Some Biographical Details

        • Research Themes

        • Some Personal Traits

        • Conclusion

Tài liệu cùng người dùng

Tài liệu liên quan