Skip to content
/ SME-clj Public

Implementation of the Structure-Mapping Engine (Falkenhainer et al., 1989) in Clojure.

License

Notifications You must be signed in to change notification settings

svdm/SME-clj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SME-clj is an implementation of the Structure-Mapping Engine [1] in Clojure [3]. It was developed as part of my MSc thesis research [2]. To my knowledge it is one of the only publicly available open source implementations of SME, besides the original Common Lisp code (which is hard to find, and harder still to read).

If you intend to use this implementation and/or understand or modify its code, start by reading the SME algorithm description in [1] if you have not done so. Then, look at the docstring for sme-clj.core, as well as the heat-water analogy example.

Dependencies

Only Clojure 1.2.0 and Clojure-contrib 1.2.0 are required. If Leiningen is available, use lein deps.

Usage

Like any other Clojure library. See sme-clj.example.simple-heat-water for basic analogical matching.

References

  1. Falkenhainer, B., Forbus, K. & Gentner, D. (1989). The structure-mapping engine: algorithm and examples. Artificial Intelligence, 41, 1-62.

  2. van der Meer, S.A. (2010). Making meaningful movements. Unpublished master's thesis, Radboud University Nijmegen, The Netherlands. (Available on request, see author section)

  3. http://www.clojure.org/

Author

Stefan van der Meer - stefanvandermeer@gmail.com

See LICENSE file.

About

Implementation of the Structure-Mapping Engine (Falkenhainer et al., 1989) in Clojure.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published