THE SIGMA COGNITIVE ARCHITECTURE
Sigma is a cognitive architecture (AGI) that is grounded in a graphical architecture. This guide will walk you through setting up and running Sigma. You can then proceed to the in-depth tutorial. It requires some familiarity with Lisp and Quicklisp, but there are links to additional information to help guide you if you’re new to Lisp.
Developed at the University of Southern California
Current release: Sigma38
Overview
- If you’re new to lisp, there is a lisp tutorial here
- A full Sigma tutorial is available here
- Sigma reference sheet can be found here
- For help contact: sigma@ict.usc.edu
Where to get Sigma
You can download Sigma using the following command–it requires you to have git installed on your machine.
$ git clone https://github.com/skenny24/sigma.git
This will copy a directory sigma onto your local machine, under sigma/src
you will see the Sigma source files.
Sigma is written in Common Lisp and uses a REPL (Read-Eval-Print Loop) which is a programming interface that has continuous interaction with the language–the commands you see throughout this document and in the tutorial illustrate this interaction. This version of Sigma requires LispWorks for use of its GUI, but can be run in other implementations for use of the core functionality (it has been tested with CLISP). If you’re looking for an open source common lisp implementation options are available here and here.
Install Quicklisp
Sigma is loaded using the Quicklisp library manager. If you don’t have quicklisp installed please follow the directions on the Quicklisp site for installation, you will then need to load the quicklisp.lisp
file and run the following command to install:
CL-USER> (quicklisp-quickstart:install)
This will create a directory called quicklisp
in your home directory. To ensure quicklisp is loaded each time you start your lisp system you should run the following command:
CL-USER> (ql:add-to-init-file)
This will append code to your initialization file which checks and loads Quicklisp each time you start LispWorks (or whatever Lisp system you’re using). In LispWorks, commands will be added to your .lispworks
initialization file
Load Sigma
Using LispWorks (or one of the open source options) you can fire up a REPL and add the sigma source directory to the ASDF source registry system (using your own path) like so:
CL-USER> (pushnew #p"/home/USER/sigma/src/" asdf:*central-registry*)
Sigma requires the cl-store library for serializing and deserializing Common Lisp objects, load the library:
CL-USER> (ql:quickload :cl-store)
Once cl-store is loaded, you can then load the sigma package:
CL-USER> (ql:quickload :sigma)
You can usein-package
to make sigma the current package and call functions without the sigma:
qualifier:
CL-USER> (in-package :sigma)
Permanently Add Sigma to your Initialization file
The commands above can be added to your initialization file so that you need not run them every time you start your Lisp system. For example in Lispworks you can add these lines to the end of your .lispworks file:
(pushnew #p"/home/USER/sigma/src/" asdf:*central-registry*)
(ql:quickload :cl-store)
(ql:quickload :sigma)
Then every time you start up lispworks Sigma will be loaded and you can simply run (in-package :sigma)
Additional commands can also be added to set your default package to sigma every time you launch LispWorks. A sample LispWorks initalization file can be found here
IMPORTANT NOTE: to compile new files within the sigma package the package directive should be added at the beginning of the source file before compiling
(in-package :sigma)
Once you’ve completed the setup instructions above you’re ready to run through the full Sigma tutorial
Older Releases are Available here
Download the archive, releases < Sigma38 require the following steps
- Under SigmaXX/src you will see the
sigma.lisp
- LispWorks is required for use of graphical features, but Sigma can be run in other implementations for use of the core functionality (tested with CLISP)
- load/compile the file sigma.lisp. This will also compile the additional files that sigma requires & if Lispworks’ CAPI library is detected the graphical features will be loaded as well.
- The variable sigma-home by default assumes that you have downloaded sigma into your $HOME directory. If you have downloaded Sigma to another location you will need to adjust that variable (line 52 of sigma.lisp)
- other GUI-based git tools available: SourceTree
*This material is based on research supported by the Army, the Office of Naval Research, and the Air Force Office of Scientific Research.