Integrating Prolog Into the Poplog Environment

Total Page:16

File Type:pdf, Size:1020Kb

Integrating Prolog Into the Poplog Environment INTEGRATING PROLOG INTO THE POPLOG ENVIRONMENT Chris Mellish and Steve Hardy* Cognitive Studies Programme, University of Sussex, Falmer, BRIGHTON, UK. ABSTRACT Although Prolog undoubtedly has its good "syntactic sugar" has been provided in POP-11 to points, there are some tasks (such as writing a make it easy to create closures; an expression screen editor or network interface controller) for such as: which it is not the language of choice. The most natural computational concepts [2] for these tasks are hard to reconcile with Prolog's declarative doubled 3 %) nature. Just as there is a need for even the most committed Prolog programmer to use "conventional" evaluates to a closure which when later invoked languages for some tasks, so too is there a need calls the procedure DOUBLE with argument 3. for "logic" oriented components in conventional applications programs, such as CAD systems [73 and relational databases [5]. At Sussex, the problems II BACKTRACKING AND CONTINUATION PASSING of integrating logic with procedural programming are being addressed by two projects. One of these In this section, we illustrate, using [43 involves a distributed ring of processors examples written in POP-11, how backtracking communicating by message passing. The other programs are implemented in POPLOG using a project is the POPLOG system, a mixed language AI technique called continuation passing. Although programming environment which runs on conventional examples are shown in POP-11 for clarity, in hardware. This paper describes the way in which we practice Prolog programs are compiled directly to have integrated Prolog into POPLOG. POPLOG virtual machine code. Continuation passing is a technique in which I THE POPLOG ENVIRONMENT procedures are given an additional argument, called a continuation. This continuation (which is a procedure closure) describes whatever The POPLOG system is an AI programming environment developed at Sussex University [3D. It computation remains to be performed once the supports Prolog, POP-11, a dialect of POP-2 [13, called procedure has finished its computation. In and a basic LISP. POPLOG currently runs on the conventional programming, the continuation is DEC VAX series of computers under the VMS represented implicitly by the "return address" and operating system, but other implementations are in code in the calling procedure. Suppose, for progress. example that we have a procedure, called PROG, that has just two steps: calling the subprocedure F00 and then the subprocedure BAZ, thus: In POPLOG, the link between the programming languages and the underlying machine is the POPLOG virtual machine. The compilers produce POPLOG virtual machine instructions, which are then further translated into the machine code for the host machine. At the level of host machine code, it is possible to link in programs written in languages such as FORTRAN. Procedures for "planting" instructions for the virtual machine are fully accessible to the user. Thus the Prolog compiler is just one of the many possible POPLOG programs that create new pieces of machine code. In particular, it is easy to create procedure closures. For the purposes of this paper, a closure is a structure which contains a pointer to a procedure plus a set of arguments for that procedure. The closure can then be applied as if This definition presupposes that F00 and BAZ it were a normal procedure with no arguments. Some do not themselves take continuations. If they do, then we must arrange for BAZ to be passed *Steve Hardy is now at Teknowledge Inc, 525 CONTINUATION and for F00 to be passed an University Ave, Palo Alto, CA 94301, USA. appropriate closure of BAZ, thus: 534 C. Mellish and S. Hardy define prog(continuation); define jogs(x, continuation); foo(baz(%continuationX)> unify(x,"chris",continuation); enddefine; unify(x,"jon",continuation) enddefine; Thus F00 gets as argument a closure. This closure, when applied, will cause BAZ to be UNIFY is a procedure that takes two data invoked with CONTINUATION as its argument. structures and a continuation. It attempts to unify (that is, "make equal") the two structures. Continuations have proved of great If it is unsuccessful, UNIFY immediately returns significance in studies on the semantics of to its invoker. If, however, it is successful, programming languages C63. This apparently round then it applies the continuation and when that about way of programming also has an enormous returns, UNIFY undoes any changes it made to the practical advantage - since procedures have two structures and then itself returns to its explicit continuations there is no need for them invoker. to "return" to their invoker. Conventionally, sub-procedures returning to their invokers means Before we can present a definition of UNIFY, "I have finished - continue with the computation", we must consider the representation of Prolog with explicit continuations we can assign a variables. In Prolog, variables start off different meaning to a sub-procedure returning to "uninstantiated" and can be given a value only its invoker, "Sorry - I wasn't able to do what you once (without backtracking); moreover two wanted me to do". "uninstantiated" variables when unified are said to "share", so that as soon as one of them obtains This can be illustrated if we define a new a value, the other one automatically obtains the procedure NEWPROG, whose definition is try doing same value. F00 and if that doesn't work then try doing BAZ, thus: In POPLOG, a Prolog variable is represented by a single element data structures called a REF. define newprog(continuation); REFs are created by the procedure CONSREF and foo(cont i nua t i on); their components are accessed by the procedure baz(continuation); CONT. An uninstantiated Prolog variable is enddefine; represented by a REF containing the unique word "undef". If a variable is assigned some value, If we now invoke NEWPROG (with a this value is placed into the CONT. If two continuation) then it first calls F00 (giving it variables come to "share", we make one point to the same continuation as itself). If F00 is the other. To find the "real" value of a succesful then it will invoke the continuation. If variable, especially one that is sharing, it is not then the call of F00 will return to NEWPROG necessary to "dereference" it (look for the which then tries BAZ. If BAZ too fails (by contents of the "innermost" REF). returning) then NEWPROG itself fails by returning to its invoker. Here now is a simple definition of UNIFY written in POP-11: define unify(x,y,continuation); if x == y then continuationO elseif isref(x) and cont(x) = "undef" then y -> cont(x); continuationO; "undef" -> cont(x) elseif isref(x) and cont(x) /= "undef" then uni f y (cont (x) ,y, cont i nuat i on) elseif isref(y) then unify(y,x,continuation) elseif ispair(x) and ispair(y) then unify(front(x),front(y), unify(Xback(x),back(y),continuation%)) end if enddefine; The procedure first sees if the two given data structures, X and Y, are identical. If so, it immediately applies the CONTINUATION. If the structures aren't identical then UNIFY looks to see whether X is a REF and if so whether it is uninstantiated (ie. whether its CONT is the word "undef"). If so, UNIFY sets its value to Y (by assigning to the CONT; assignment works from left to right in POP-11), does the CONTINUATION and if this returns (ie fails) unbinds the REF by setting C. Mellish and S. Hardy 535 the CONT back to "undef". The final case of UNIFY (2) The continuation passing model provides a deals with the possibility that X and Y may be semantics for communication between these two list pairs. A complete definition of UNIFY must Languages which allows for far more than have a case here for each type of datastructure simple "subroutine calling". recognised as a Prolog complex term. Note that (3) The control facilities available within POPLOG there is no ELSE part to the IF statement. The (not shown here) make it possible to implement default action is simply to return (ie indicate a system which is faithful to the theoretical failure). modeL, but which is nevertheless efficient. As a more complex example, here is a translation of the Prolog MEMBER predicate into ACKNOWLEDGEMENTS POP-11. The Prolog definition is: We would like to thank John Gibson, the main member(X,[X|Y3). implementer of the POPLOG virtual machine and the member(X,[Y|Z3) :- member(X,Z). POP-11 compiler, for providing us with a powerful programming environment, without which this work When translated into POP-11, it will be would not have been possible. We would also like necessary to make explicit the unifications which to thank Aaron Sloman and Jon Cunningham for many are implicitly done when a Prolog predicate is useful discussions. invoked. It may therefore be easier to understand the POP-11 translation if we rewrite the Prolog REFERENCES definition to make the various unifications explicit: [13 Burstall, R.M., Collins, J.S. and Popplestone, R.J., Programming in POP-2, member(X,Y) :- Y = [X|M3. Department of Artificial Intelligence, member(X,Y) :- Y = [L|M3, member(X,M). University of Edinburgh, 1977. [23 Hardy, S., "Towards More Natural Programming This translates into the following POP-11 Languages" Cognitive Studies Memo 82-06, procedure: University of Sussex, 1982. define member(x, y, continuation); [3] Hardy, S., "The POPLOG Programming vars I; consref("undef") -> I; Environment", Cognitive Studies Memo 82-05, vars m; consref("undef") -> m; University of Sussex, 1982. unify(y, conspair(x,m), continuation); [43 Hunter J.R.W., Mellish, C.S. and Owen, D., "A unify(y, conspair(l,m), Heterogeneous Interactive Distributed Computing Environment for the Implementation member(%x/m,cont i nuat i on%)) enddefine; of AI Programs", SERC grant application, School of Engineering and Applied Sciences, The first two lines of this definition create University of Sussex, 1982.
Recommended publications
  • GNU/Linux AI & Alife HOWTO
    GNU/Linux AI & Alife HOWTO GNU/Linux AI & Alife HOWTO Table of Contents GNU/Linux AI & Alife HOWTO......................................................................................................................1 by John Eikenberry..................................................................................................................................1 1. Introduction..........................................................................................................................................1 2. Symbolic Systems (GOFAI)................................................................................................................1 3. Connectionism.....................................................................................................................................1 4. Evolutionary Computing......................................................................................................................1 5. Alife & Complex Systems...................................................................................................................1 6. Agents & Robotics...............................................................................................................................1 7. Statistical & Machine Learning...........................................................................................................2 8. Missing & Dead...................................................................................................................................2 1. Introduction.........................................................................................................................................2
    [Show full text]
  • X-Machines for Agent-Based Modeling FLAME Perspectives CHAPMAN & HALL/CRC COMPUTER and INFORMATION SCIENCE SERIES
    X-Machines for Agent-Based Modeling FLAME Perspectives CHAPMAN & HALL/CRC COMPUTER and INFORMATION SCIENCE SERIES Series Editor: Sartaj Sahni PUBLISHED TITLES ADVERSARIAL REASONING: COMPUTATIONAL APPROACHES TO READING THE OPPONENT’S MIND Alexander Kott and William M. McEneaney COMPUTER-AIDED GRAPHING AND SIMULATION TOOLS FOR AUTOCAD USERS P. A. Simionescu DELAUNAY MESH GENERATION Siu-Wing Cheng, Tamal Krishna Dey, and Jonathan Richard Shewchuk DISTRIBUTED SENSOR NETWORKS, SECOND EDITION S. Sitharama Iyengar and Richard R. Brooks DISTRIBUTED SYSTEMS: AN ALGORITHMIC APPROACH, SECOND EDITION Sukumar Ghosh ENERGY-AWARE MEMORY MANAGEMENT FOR EMBEDDED MULTIMEDIA SYSTEMS: A COMPUTER-AIDED DESIGN APPROACH Florin Balasa and Dhiraj K. Pradhan ENERGY EFFICIENT HARDWARE-SOFTWARE CO-SYNTHESIS USING RECONFIGURABLE HARDWARE Jingzhao Ou and Viktor K. Prasanna FROM ACTION SYSTEMS TO DISTRIBUTED SYSTEMS: THE REFINEMENT APPROACH Luigia Petre and Emil Sekerinski FUNDAMENTALS OF NATURAL COMPUTING: BASIC CONCEPTS, ALGORITHMS, AND APPLICATIONS Leandro Nunes de Castro HANDBOOK OF ALGORITHMS FOR WIRELESS NETWORKING AND MOBILE COMPUTING Azzedine Boukerche HANDBOOK OF APPROXIMATION ALGORITHMS AND METAHEURISTICS Teofilo F. Gonzalez HANDBOOK OF BIOINSPIRED ALGORITHMS AND APPLICATIONS Stephan Olariu and Albert Y. Zomaya HANDBOOK OF COMPUTATIONAL MOLECULAR BIOLOGY Srinivas Aluru HANDBOOK OF DATA STRUCTURES AND APPLICATIONS Dinesh P. Mehta and Sartaj Sahni PUBLISHED TITLES CONTINUED HANDBOOK OF DYNAMIC SYSTEM MODELING Paul A. Fishwick HANDBOOK OF ENERGY-AWARE AND GREEN COMPUTING Ishfaq Ahmad and Sanjay Ranka HANDBOOK OF GRAPH THEORY, COMBINATORIAL OPTIMIZATION, AND ALGORITHMS Krishnaiyan “KT” Thulasiraman, Subramanian Arumugam, Andreas Brandstädt, and Takao Nishizeki HANDBOOK OF PARALLEL COMPUTING: MODELS, ALGORITHMS AND APPLICATIONS Sanguthevar Rajasekaran and John Reif HANDBOOK OF REAL-TIME AND EMBEDDED SYSTEMS Insup Lee, Joseph Y-T.
    [Show full text]
  • The Evolution of Lisp
    1 The Evolution of Lisp Guy L. Steele Jr. Richard P. Gabriel Thinking Machines Corporation Lucid, Inc. 245 First Street 707 Laurel Street Cambridge, Massachusetts 02142 Menlo Park, California 94025 Phone: (617) 234-2860 Phone: (415) 329-8400 FAX: (617) 243-4444 FAX: (415) 329-8480 E-mail: [email protected] E-mail: [email protected] Abstract Lisp is the world’s greatest programming language—or so its proponents think. The structure of Lisp makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Overall, the evolution of Lisp has been guided more by institutional rivalry, one-upsmanship, and the glee born of technical cleverness that is characteristic of the “hacker culture” than by sober assessments of technical requirements. Nevertheless this process has eventually produced both an industrial- strength programming language, messy but powerful, and a technically pure dialect, small but powerful, that is suitable for use by programming-language theoreticians. We pick up where McCarthy’s paper in the first HOPL conference left off. We trace the development chronologically from the era of the PDP-6, through the heyday of Interlisp and MacLisp, past the ascension and decline of special purpose Lisp machines, to the present era of standardization activities. We then examine the technical evolution of a few representative language features, including both some notable successes and some notable failures, that illuminate design issues that distinguish Lisp from other programming languages. We also discuss the use of Lisp as a laboratory for designing other programming languages. We conclude with some reflections on the forces that have driven the evolution of Lisp.
    [Show full text]
  • Logical Geography and Topography Aaron Sloman
    Two Notions Contrasted: ’Logical Geography’ and ’Logical Topography’ Variations on a theme by Gilbert Ryle: The logical topography of ’Logical Geography’. Aaron Sloman http://www.cs.bham.ac.uk/~axs/ This file is http://www.cs.bham.ac.uk/research/projects/cogaff/misc/logical-geography.html Also available as messy, automatically generated PDF file http://www.cs.bham.ac.uk/research/projects/cogaff/misc/logical-geography.pdf Installed: 15 Oct 2006 Updates: 24 Feb 2016 (reformatted). 13 Apr 2011: corrected "Logical topology" to "Logical topography" (Thanks to Luc Beaudoin). 3 Jan 2010: added link to work of David Jhave Johnston, and a response to one of his comments. 19 Aug 2009: fixed some typos and elaborated a few of the examples. 26 May 2009: added picture showing logical geography and topography 17 Jun 2008: added Portia spider example. 8 Jan 2008: On re-reading Appendices III and IV of my Oxford DPhil thesis "Knowing and Understanding Relations between meaning and truth, meaning and necessary truth, meaning and synthetic necessary truth", (1962), online here: http://www.cs.bham.ac.uk/research/projects/cogaff/62-80.html#1962 I found to my surprise that several of the topics discussed below had been discussed in those two Appendices, and that the distinction between logical topography and logical geography was made in Appendix IV, discussing conceptual analysis, even though I did not use these words. 22 Oct 2007 (I had previously reported, from memory, Lakatos distinguishing ’progressive’ and ’degenerative’ research programmes. I was mistaken: he used ’degenerating’ for the second category, though many authors present his ideas using ’degenerative’.
    [Show full text]
  • Reading Suggestions
    Reading Suggestions Antoni Diller 1 December 2011 Introduction One of the most useful books views are presented in [33]. For Popper's views to look at is Steve Grand's [23]. He touches look at [40] and use the index. upon many philosophical issues while explain- ing how to emulate Frankenstein. These in- Philosophy of Science There are many clude reductionism, the hierarchical organisa- introductions of the philosophy of science. tion of reality, monism and the view that phys- Amongst them are [35], [4], [13] and [36]. The ical objects are really processes. most influential philosopher of science in the twentieth century was Karl Popper. The best Introductions to Philosophy There are introduction to his ideas is his intellectual au- many good introductions to philosophy: [22], tobiography [41]. His book Objective Knowl- [53] and [1] have the advantage of being edge [40] contains his criticism of the bucket short and cheap. There are a few books theory of the mind and several papers about [44, 11, 34] that introduce philosophical ideas World 3. He wrote a book with John Ec- by analysing films which raise philosophical is- cles on the philosophy of mind [43] in which sues. One of the advantages of these books is they defend interactionism. He's also written that they allow you to say that you are doing a shorter book on the philosophy of mind [42]. valuable research for this module while watch- Popper influenced several other philoso- ing one of the films they discuss. Amongst the phers of science, including Lakatos and Feyer- films discussed in these books are: The Ma- abend.
    [Show full text]
  • Aaron Sloman
    What is information? Meaning? Semantic content? What’s information, for an organism or intelligent machine? How can a machine or organism mean? Aaron Sloman http://www.cs.bham.ac.uk/~axs NOTE: 6 Dec 2009 The paper has been rewritten as a chapter for a book on Information and Computation to be published by World Scientific Press. The original version remains below as a record of how this came to be written. There is now (Dec 2009) a definitive version of the book chapter in two formats, HTML and PDF: http://www.cs.bham.ac.uk/research/projects/cogaff/09#905 This file is available in HTML here: http://www.cs.bham.ac.uk/research/projects/cogaff/misc/whats-information.html Updated: Reformatted 12 Nov 2017 5 Sep 2009; 6 Dec 2009 Now very different from the original version posted on 20th Sept 2006. NOTE: 12 Nov 2017 In April 2013, I posted a note comparing Jane Austen’s (semantic) concept of "information", used multiple times in her novel Pride and Prejudice, written about 135 years before Claude Shannon’s famous paper, with Shannon’s (syntactic) concept. Claude Shannon, (1948), A mathematical theory of communication, Bell System Technical Journal, July and October, vol 27, pp. 379--423 and 623--656, https://archive.org/download/pdfy-nl-WZBa8gJFI8QNh/shannon1948.pdf Austen’s theory, implicit in her writings, is introduced here: http://www.cs.bham.ac.uk/research/projects/cogaff/misc/austen-info.html CONTENTS Introduction Why I don’t use the phrase ’semantic information’ Why I don’t talk about ’information’ in Shannon’s sense Why information need not be true: ’Information’ vs.
    [Show full text]
  • Aaron Sloman: a Bright Tile in Ai’S Mosaic
    AARON SLOMAN: A BRIGHT TILE IN AI’S MOSAIC Margaret A. Boden University of Sussex I: The Aims of AI When AI was still a glimmer in Alan Turing's eye, and when (soon afterwards) it was the new kid on the block at MIT and elsewhere, it wasn't regarded primarily as a source of technical gizmos for public use or commercial exploitation (Boden 2006: 10.i-ii). To the contrary, it was aimed at illuminating the powers of the human mind. That's very clear from Turing's mid-century paper in Mind (1950), which was in effect a manifesto for a future AI. Like Allen Newell and Herbert Simon too, whose ground-breaking General Problem Solver was introduced as a simulation of "human thought" (Newell and Simon 1961). Turing's strikingly prescient plans for a wide- ranging future AI were driven by his deep curiosity about psychology. Indeed, most of AI's technical problems and answers arose in trying to discover just how computers could be programmed to model human thought. Virtually all of the philosophers who read Turing's Mind paper ignored that aspect of it (Boden 2006: 16.ii.a-b). They weren't interested in the technical or psychological questions. Instead, they focussed on criticizing the so-called Turing Test--which had been included by the author not as serious philosophical argument but as jokey "propaganda" (Gandy 1996: 125). In other words, they responded not by getting intrigued, or even critically sceptical, about a potential AI, but by considering one ancient philosophical question: whether a machine could think.
    [Show full text]
  • Ofthe European Communities
    ISSN 0378-6978 Official Journal L 81 Volume 27 of the European Communities 24 March 1984 English edition Legislation Contents I Acts whose publication is obligatory II Acts whose publication is not obligatory Council 84/ 157/EEC : * Council Decision of 28 February 1984 adopting the 1984 work programme for a European programme for research and development in information technologies (ESPRIT) 2 Acts whose titles are printed in light type are those relating to day-to-day management of agricultural matters, and are generally valid for a limited period . The titles of all other Acts are printed in bold type and preceded by an asterisk . 24 . 3 . 84 Official Journal of the European Communities No L81 / 1 II (Acts whose publication is not obligatory) COUNCIL COUNCIL DECISION of 28 February 1984 adopting the 1984 work programme for a European programme for research and development in information technologies (ESPRIT) (84/ 157/EEC) THE COUNCIL OF THE EUROPEAN HAS DECIDED AS FOLLOWS : COMMUNITIES, Having regard to the Treaty establishing the Article 1 European Economic Community, J The ESPRIT work programme as set out in the Having regard to Council Decision 84/ 130/EEC of Annex is hereby adopted for 1984 . 28 February 1984 concerning a European pro­ gramme for research and development in informa­ tion technologies ( ESPRIT) ('), and in particular Article 2 Article 3 (2) thereof, This Decision shall take effect on the day of its Having regard to the draft work programme submit­ publication in the Official Journal of the European ted by the Commission , Communities . Whereas, at talks organized by the Commission ser­ vices , industry and the academic world have given Done at Brussels , 28 February 1984 .
    [Show full text]
  • The Design of Objectclass, a Seamless Object-Oriented
    ~,3 HEWLETT ~~ PACKARD The Design ofObjectClass, A Seamless Object-Oriented Extension of Pop11 Stephen F. Knight Intelligent Networked Computing Laboratory HP Laboratories Bristol HPL-93-98 November, 1993 object-oriented, The ObjectClass library adds object-oriented multi-methods, programming into Pop11. In contrast to similar Popll previous work, its main goal is to integrate the procedural and object-oriented paradigms in the most natural and fluent way. The article describes the problems encountered and the solutions adopted in the ObjectClass work with those of other hybridization efforts such as C++ and the Common Lisp Object System CLOS. InternalTo be published Accessionin the Dateproceedings Only of ExpertSystems 93, December, 1993. © Copyright Hewlett-Packard Company 1993 1 Seamless Integration 1.1 Object Oriented Programming The consensus notion of object-oriented programming is not specifically addressed in this article. It is apparent that the term "object-oriented" is both informal and open to many interpretations by different authors. A useful discussion of this topic may be found in the appendix of [Booch91]. Here, the term object-oriented is taken to mean two things. Firstly, that datatypes are hierarchical; possibly involving complex, tangled hierarchies. Secondly, that some pro­ cedures, called generic procedures, are written in separate units, called methods. The method units are distinguished by the types of formal parameters they handle. The generic procedure is a fusion of these methods to form a single entry point. The terminology adopted is that of the Common Lisp Object System (CLOS) because that system has a sufficiently rich vocabulary to discuss the other approaches. In this terminology, classes are datatypes which can be combined through inheritance; methods are individual code units; generic procedures are the entry point of a collection of identically named methods; and slots are what are commonly called instance variables or fields.
    [Show full text]
  • Ginger Documentation Release 1.0
    Ginger Documentation Release 1.0 sfkl / gjh Nov 03, 2017 Contents 1 Contents 3 2 Help Topics 27 3 Common Syntax 53 4 Design Rationales 55 5 The Ginger Toolchain 83 6 Low-Level Implementation 99 7 Release Notes 101 8 Indices and tables 115 Bibliography 117 i ii Ginger Documentation, Release 1.0 This documentation is still very much work in progress The aim of the Ginger Project is to create a modern programming language and its ecosystem of libraries, documen- tation and supporting tools. The Ginger language draws heavily on the multi-language Poplog environment. Contents 1 Ginger Documentation, Release 1.0 2 Contents CHAPTER 1 Contents 1.1 Overview of Ginger Author Stephen Leach Email [email protected] 1.1.1 Background Ginger is our next evolution of the Spice project. Ginger itself is a intended to be a rigorous but friendly programming language and supporting toolset. It includes a syntax-neutral programming language, a virtual machine implemented in C++ that is designed to support the family of Spice language efficiently, and a collection of supporting tools. Spice has many features that are challenging to support efficiently in existing virtual machines: pervasive multiple values, multiple-dispatch, multiple-inheritance, auto-loading and auto-conversion, dynamic virtual machines, implicit forcing and last but not least fully dynamic typing. The virtual machine is a re-engineering of a prototype interpreter that I wrote on holiday while I was experimenting with GCC’s support for FORTH-like threaded interpreters. But the toolset is designed so that writing alternative VM implementations is quite straightforward - and we hope to exploit that to enable embedding Ginger into lots of other systems.
    [Show full text]
  • Filename: Comp-Epistemology-Sloman.Pdf
    Computational Epistemology Aaron Sloman This paper was written in 1982 (revising an earlier version) when I was at Sussex University. It was based on an invited talk at a workshop on Artificial Intelligence and Genetic Epistemology, held in Geneva in 1980. It was published in Cahiers De La Fondation Archives Jean Piaget, No 2-3 Geneva June 1982 Proceedings of the 2nd and 3rd Advanced Courses in Genetic Epistemology, organised by the Fondation Archives Jean Piaget in 1980 and 1981. Geneva: Fondation Archives Jean Piaget, 1982. - P. 49-93. http://ael.archivespiaget.ch/dyn/portal/index.seam?page=alo&aloId=16338&fonds=&menu=&cid=28 Also made available as a Cognitive Science departmental report at Sussex Univer- sity. I was pleased to find that the Sussex PDF version had been scanned by someone at CMU and is now available at http://shelf2.library.cmu.edu/Tech/50304386.pdf with a copyright warning, which I have removed. The OCR mechanism has produced some errors in the figures. I think the figures are legible anyway, but as precaution I’ll later provide an im- proved version. Aaron Sloman Now at School of Computer Science, University of Birmingham, UK http://www.cs.bham.ac.uk/ axs UN, COMPUTATIONAL EPISTEM0L06Y Aaron Stoman 1982 Cognitive Science Research Paper Serial No: CSRP 011 The University of Sussex Cognitive Studies Programme School of Social Sciences Falmer Brighton BN1 9QN Aaron SLoman Cognitive Studies Programme School of Social Sciences University of Sussex COMPUTATIONAL EPISTEMOLOGY To appear in proceedings of the Seminar on Genetic Epistemology and Cognitive Science, Fondations Archives Jean Piaget, University of Geneva, 1980.
    [Show full text]
  • Aaron Sloman School of Computer Science University of Birmingham, UK
    VARIETIES OF ATHEISM What is analytical atheism? (Including a tutorial on using conceptual analysis to identify disguised nonsense.) Aaron Sloman http://www.cs.bham.ac.uk/~axs/ School of Computer Science University of Birmingham, UK Installed: April 2008 Updated: 20 Dec 2014; 10 Mar 2016 30 Jan 2009;3 May 2010; 25 Oct 2010; 6 Nov 2011; 20 Nov 2011; Note added 19 Apr 2014 I have discovered a freely available paper by John Shand, which overlaps in some ways with this paper, though the details are very different. John Shand, (The Open University) A Refutation of the Existence of God Think, Number 26, Volume 9, Autumn 2010 www.academia.edu/183655/A_Refutation_of_the_Existence_of_God Another is a book chapter on "Analytical Atheism" by Charles Pigden originally published as Charles Pigden, ’Analytic Philosophy’ in Bullivant and Ruse eds. 2013 The Oxford Handbook of Atheism, pp 307-319 Google now provides far more entries for "analytical atheism" than it did in 2008 when the original version of this document was written. Another one discovered: 10 Mar 2016 -- no longer exists 28 Aug 2016: https://www.facebook.com/anatheism/ This file is http://www.cs.bham.ac.uk/research/projects/cogaff/misc/varieties-of-atheism.html also available (possibly slightly out of date) as: http://www.cs.bham.ac.uk/research/projects/cogaff/misc/varieties-of-atheism.pdf CONTENTS John McCarthy on Atheism Introduction Some Background 1 My kind of atheism Theism: neither true nor false, but incoherent Atheism as a claim about incoherence WARNING: Philosophical caution needed Several kinds of Atheism Other Dimensions of difference Example kinds of theism Non-assertive theisms Learning to do conceptual analysis Some additional relevant links John McCarthy on Atheism Added: 6 Nov 2011 "Responding to Richard Dawkins’s pestering his fellow atheists to "come out", I mention that I am indeed an atheist.
    [Show full text]