Tutorial Information on Scone

Note: This post has been superseded by a newer version. Plans for Posting Scone Tutorials As I wrote in the “About This Blog” description for Knowledge Nuggets, I started this blog with two goals in mind:  First, I wanted to present a series of short “nuggets” of tutorial information about the Scone knowledge-base system and […]


New Online Journal: Advances in Cognitive Systems

Those who have followed my comments in this blog will know that I’ve been advocating that AI researchers – at least a few of us – should renew our focus on flexible, integrated, human-like AI.  This was the original focus of the AI field, and is still a very exciting open problem, but research with […]


Some Thoughts on the “Man vs. Computer” Match on Jeopardy

A friend, Carl Kurlander, runs a Pittsburgh-oriented blog on the Pittsburgh Post-Gazette web site.  He asked if I would write up a few quick thoughts on the recent “Man vs. Computer” match on Jeopardy, so I did that.  The article was written for an intelligent but non-techy audience, and is a bit more superficial than the usual […]


Scientific Creativity: How to Get More

In an earlier article, I sketched a mini-theory of human scientific creativity – a theory that, I believe, is in principle implementable in an AI system.  I also mentioned that, if this theory is (more or less) correct, it may suggest some techniques that we humans can employ to increase our own scientific creativity.  In […]


A Bit More on Scientific Creativity

As a follow-up to my previous post:  I ran into this interesting New York Times article today.  I  think it’s pretty compatible with the view I presented in my article.  The author, Benedict Carey, talks about “flashes of inspiration” in terms of exploring loose or “out of the box” connections among ideas, rather than the […]


An AI View of Scientific Creativity

  Can an AI system be creative?  A lot of people believe that the answer is no – obviously no.  After all, we are talking about a computer program.  It only does what its instructions tell it to do, and some human programmer wrote those instructions.  Furthermore, computer programs are deterministic: give a program the same input […]


Tutorial Information on Scone (Updated)

Scott Fahlman,   September 13, 2015
Categories:  Scone;     Comments (4)    

Plans for a Tutorial Book on Scone

In an earlier post, From December 2012, I described my plan to put out tutorial information on Scone in a series of short installments, posts on this blog, and then at some point to gather these into a tutorial book on Scone. That has obviously not happened, and this blog has been dormant since then. There are two reasons for this:

  1. We received funding for a very intensive, large-scale, five-year research project from IARPA on the detection and understanding of metaphors. Scone was to play a central role in our efforts. That project crashed and burned after 18 months for reasons I will not go into here. But while it was running, that project was all-consuming for me.
  2. The more fundamental reason is that the idea of documenting Scone in a series of short stand-alone essays quickly proved to be a bad idea when I actually tried to execute it. Scone is a large, complex system that differs in many ways from other approaches to knowledge representation. I found that it was very hard to explain any part of the system in isolation from all the rest – the individual small parts just didn’t make much sense out of context. So each small essay had to go over a lot of the same introductory material before getting into its own subject matter.

So the revised plan is that I just have to find the time to focus on the creation of the tutorial book. It took a while to wrap up a lot of other obligations so that I could do this, but I plan to devote most of my effort for the next year (or as long as it takes) to this book-writing effort.

Concurrently, I will be working on a number of fixes, extensions, and improvements to the Scone engine code itself. I now have an embarrassingly long “to do” list of such tasks. There are many things that will be easier to fix than to document as-is.

The Scone engine code (in Common Lisp) and a set of “core” knowledge bases have been available on GitHub since August 2014, under the industry-friendly Apache2 license. See http://www.github.com/sfahlman/scone. However, we quickly learned that it was difficult for outside users – those without access to individual help from me or members of the Scone research group – to make effective use of Scone.

Each GitHub release includes its own edition of the Scone User’s Guide (SUG). This is the programmer-level documentation for that release, describing all the functions, arguments, control variables, and so on. However, this was never intended to be a tutorial document. If you want to create an is-a link from {Clyde} to {elephant}, the SUG will tell you the proper Lisp function to use, but it does not try to describe all the implications of creating that link.

So I now believe that the tutorial book is an essential pre-requisite to the widespread use of Scone. Without going into a lot of detail (which may change), my plan is to put the tutorial book out as a low-priced E-book, with a more expensive hardcopy edition for libraries or for those who prefer learning from a physical book. I have some ideas for new ways to use the E-book medium to overcome the problem of describing a large system in which every part depends on every other. We’ll see how that works out as the project develops.

Existing Scone Documents

If you want to understand or use Scone before the tutorial book is done, the best way to get into this is to read some existing papers, as well as the earlier posts on this blog. The most important papers are these:

  • Scott E. Fahlman: “Marker-Passing Inference in the Scone Knowledge-Base System”, First International Conference on Knowledge Science, Engineering and Management (KSEM’06), Guilin, China, August 2006. Proceedings published by and copyright by Springer-Verlag (Lecture Notes in AI).
    PDF format
  • Scott E. Fahlman: “Using Scone’s multiple-context mechanism to emulate human-like reasoning”,Proceedings of the AAAI Fall Symposium on Advances in Cognitive Systems, 2011.  PDF format
  • Scott E. Fahlman: “Eris: Episodic Representation and Reasoning in Scone”, Scone Project Tech Report 2014-1, 2014.  PDF format


For those interested in where the ideas came from, you might also want to look at my old Ph.D. thesis from 1977, which was published in book form but still is also available online, in scanned form, from MIT’s archives. Of course, there has been a good deal of progress in the 35 years since that was written, but it is remarkable to see how many of these ideas live on, in recognizable form, in present-day Scone.

Learning Common Lisp

The Scone engine is written in Common Lisp. The KB files are in Lisp syntax, and most of them contain some (usually small) Lisp programs as well as function-calls to build new knowledge structures.  It is not necessary to know how to program in Lisp just to develop KB files, but it can be very handy to know enough Common Lisp to be able to check the source code for various functions, to see what they are really doing. And if you get more deeply into Scone, you will probably want to extend the programs or write other Lisp code that interfaces directly to Scone.

For learning Lisp, I suggest that you do NOT try to learn the language from Steele’s “Common Lisp the Language” manual. It’s a useful reference, but was never intended to be a good tutorial.

When I can’t remember the details of some built-in Common Lisp function, I go to this website: http://www.lispworks.com/documentation/HyperSpec/Front/index.htm

The following two books are very good for learning: