Overview
Divisi is a library for reasoning by analogy and association over semantic networks, including common sense.
Divisi uses a sparse higher-order SVD can help find related concepts, features, and relation types in any knowledge base that can be represented as a semantic network. By including common sense knowledge from ConceptNet, the results can include relationships not expressed in the original data but related by common sense.
It is a library written in Python, using a C library (SVDLIBC) to perform the sparse SVD operation using the Lanczos algorithm. Other mathematical computations are performed by NumPy.
Download
The latest release is r407, released on 2008-Jul-24. This release fixes some long-standing problems with normalization.
Please let us know what you're trying out Divisi for: we'll send you announcements of new releases, and we are able to offer a limited amount of help, especially to Media Lab sponsors.
Divisi is released under a GPL license. If you are interested in a release of Divisi under a different license you should feel free to contact us.
Changelog
A more detailed change log is available in the source as "Changelog".
- 2008-Jul-24: r407
- Fix two serious long-standing normalization bugs.
- Repackage svdlibc using setuptools instead of autoconf. (Requires rebuilding svdlibc; see docs.)
- Minor optimizations
- Improvements to the routines to load ConceptNet
- 2008-Apr-08: r311
- Added averaging normalization algorithm used for PerspectiveSpace
- Replaced ConceptNet2DTensor class by bare functions
- Removed unnecessary csamoa dependencies
- 2008-Apr-01: r285: Initial release.
Dependencies
- Python (versions 2.4 and 2.5 are known to work) and its development header files. (We highly recommend using the IPython shell.)
- NumPy and its development header files
- ConceptNet, if you want to integrate common sense
- a modern C compiler to build SVDLIBC
We develop primarily on Linux (Debian and Gentoo) and Mac OS X (fink), but occasionally test on Windows (native Python and cygwin). We may accidentally break support for those secondary platforms, but it should be easily fixable.
Documentation
See the Divisi documentation.
Auto-generated API documentation is also available.
Users
Divisi powers the following projects:
- AnalogySpace: using analogies to reason about common sense; see it in action at Open Mind Common Sense (it powers "Similar Concepts", "Open Mind Wants to Know", and "Explore Concepts")
- Jason Alonso's PerspectiveSpace (see demo on 2-wit)
- Catherine Havasi's work with discovering semantic relations
- ... and more work that we haven't released yet! (Talk to us about stopping by for a demo.)
Let us know if you're using Divisi in your project and want your link here.
Authors
Divisi is a project of the Commonsense Computing project of the Software Agents group at the MIT Media Lab.
It was started by Rob Speer and Catherine Havasi, fleshed out by Ken Arnold, and hacked on by Jason Alonso and Jayant Krishnamurthy. For more information please email conc...@media.mit.edu.