svdm/SME-clj
{ "createdAt": "2011-02-23T16:46:44Z", "defaultBranch": "master", "description": "Implementation of the Structure-Mapping Engine (Falkenhainer et al., 1989) in Clojure.", "fullName": "svdm/SME-clj", "homepage": "", "language": "Clojure", "name": "SME-clj", "pushedAt": "2011-02-23T16:47:23Z", "stargazersCount": 11, "topics": [], "updatedAt": "2025-02-20T08:25:55Z", "url": "https://github.com/svdm/SME-clj"}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
Section titled “Dependencies”Only Clojure 1.2.0 and Clojure-contrib 1.2.0 are required. If Leiningen is
available, use lein deps.
Like any other Clojure library. See sme-clj.example.simple-heat-water for basic analogical matching.
References
Section titled “References”-
Falkenhainer, B., Forbus, K. & Gentner, D. (1989). The structure-mapping engine: algorithm and examples. Artificial Intelligence, 41, 1-62.
-
van der Meer, S.A. (2010). Making meaningful movements. Unpublished master’s thesis, Radboud University Nijmegen, The Netherlands. (Available on request, see author section)
Author
Section titled “Author”Stefan van der Meer - stefanvandermeer@gmail.com
See LICENSE file.