リレーショナル データベースは Clojure に非常に適していることがわかりました。セット関数 (プロジェクト/結合/ユニオンなど) がデータベース スキーマに非常にうまくマップされ、Clojure がデータベースでの使用にほぼ完全に適合するからです。
しかし、Clojure が Neo4j のようなグラフ データベースにどのように適合するのか疑問に思っていました。
Neo4J には clojure'ey バインディングがこことこことここにあります
clojarsからこれらのそれぞれの leiningen と maven 構成を取得できます
allegrographは、clojure で広くサポートされている別の同様のグラフ データ ストアです。したがって、答えがイエスである可能性があるという証拠がいくつかあります。
グラフ ストアは不変ツリーに適しているため、セットよりも Clojure に適している可能性がありますが、これはすべてかなり主観的なものです。私ができる最も客観的な答えは、グラフストア/トリプルストアの既存の使用を指摘することです。
Mark Watson の本 (無料の PDF 版: http://www.markwatson.com/opencontent/book_java.pdf ) は、彼が昨年自費出版したあまり知られていない Clojure の本で、主に allegrograph という便利なグラフ技術を扱っています。
私自身、グラフ db ライブラリの経験はあまりありませんが、上記の本では、neo4j はグラフをトラバースするように最適化されているのに対し、アレグログラフはサブグラフ マッチングに最適化されていると述べています。そのため、選択は特定のアプリケーションに依存する可能性があります。
アレゴグラフを使用する場合、その本の著者は、彼の本のコピーを購入すると、実稼働用のラッパーの AGPL ライセンスを放棄します。もちろん、ライセンスの条件の下で自由に使用できます https://github.com/マーク・ワトソン/java_practical_semantic_web
clojure-neo4j ラッパー ライブラリは存在しますが、最後のコミット日https://github.com/JulianMorrison/neo4j-clojureを考慮して、コードが腐敗しているのか、使用できる状態になっているのかは不明です。ただし、最近更新された mattrepl によるフォークはそれほど前のものではありません: https://github.com/mattrepl/clojure-neo4j.git