The Suave Project

Common Lisp tools for AI and the Semantic Web

Introduction

The Suave project is a hodge-podge of libraries. Most are related to web development, but others are stand-alone libraries for other purposes. The project has a tendency to become inactive so below you will find a list of sub-projects and an estimate of the last modification date of the source code:

  1. Parenscript Object System (PSOS) (last modified 07-2009) is CLOS for Parenscript, a Javascript substitute. PSOS enables class- and generic function-based object-oriented programming in web browsers.
  2. RJSON (last modified 07-2009) - an extension to JSON that allows cross-referencing and other useful serialization features.
  3. Sails (last modified 07-2009) - a way to describe visual components, similar to Dojo's widget system.
  4. paren-files (last modified 06-2009): Allows compilation of an ASDF system of Parenscript files.
  5. paren-util (last modified 06-2009): A collection of macros and functions that extend Parenscript in rudimentary ways.
  6. paren-events (last modified 06-2009): An event-propogation library for Parenscript. Based on PSOS.
  7. XML-MOP (last modified 2008): a library that integrates XML into CLOS for reading and writing some kinds of XML documents. Needs some more work and should ideally be based on CXML instead of S-XML, since CXML is stricter and has a 'pull'-based parser.
  8. Amazon-ECS (last modified 2009): A library for accessing Amazon.com's e-commerce service.
  9. JS-Parser (last modified 06-2009): A Javascript parser in lisp. Intended as a library to be used for all parsing needs.
  10. CL-SVM (last modified 02-2009) is a pure lisp implementation of Support Vector Machines. The library will train a classifier given a sequence of training pairs and a kernel, which defaults to the dot product.

...and more! However, quality and some degree of completeness is emphasized for projects that claim to be complete and robust. The Parenscript Object System is currently the most developed, though all components are usable.

Download

Each subproject has its own git repository

git clone http://common-lisp.net/project/suave/git/amazon-ecs/.git

git clone http://common-lisp.net/project/suave/git/cl-sails/.git

git clone http://common-lisp.net/project/suave/git/cl-svm/.git

git clone http://common-lisp.net/project/suave/git/cl-tidy/.git

git clone http://common-lisp.net/project/suave/git/js-parser/.git

git clone http://common-lisp.net/project/suave/git/paren-events/.git

git clone http://common-lisp.net/project/suave/git/paren-files/.git

git clone http://common-lisp.net/project/suave/git/paren-psos/.git

git clone http://common-lisp.net/project/suave/git/paren-test/.git

git clone http://common-lisp.net/project/suave/git/paren-util/.git

git clone http://common-lisp.net/project/suave/git/rjson/.git

git clone http://common-lisp.net/project/suave/git/webfunk/.git

git clone http://common-lisp.net/project/suave/git/xml-mop/.git

OLD Downloads:

Much of the project was maintained in a darcs repository. To obtain the older sources, type:

darcs get http://common-lisp.net/project/suave/darcs/ suave

You can currently get CL-SVM from its own git repository:

git clone http://common-lisp.net/project/suave/git/cl-svm/.git

Examples

Parenscript Object System

Different classes of people

    (defclass person ())
    (defclass politician (person))

    (defgeneric discuss-environment (individual))
    (defmethod discuss-environment ((individual person))
        (alert "I don't know anything about the environment"))
    (defmethod discuss-enviornment ((individual politician))
        (alert "The environment is an important issue."))

    (discuss-environment (make-instance 'politician))

The above will alert "The environment is an important issue." by calling DISCUSS-ENVIRONMENT with an instance of POLITICIAN.

RJSON

Mailing Lists

If you would like to keep up with the suave project, subscribe to one of suave-accounce or suave-devel. Each list is very low volume, especially the announce list.

Related projects

A great RDF reader is available here: CL-RDFXML

Thanks

Thanks to Common-lisp.net for hosting the project.

Valid XHTML 1.0 Strict