GitXplorerGitXplorer
a

titanium-loom

public
8 stars
1 forks
0 issues

Commits

List of commits on branch master.
Unverified
77bb251d9f5d721f3c64b3353b36a4ddc1966300

Updated README after the release

committed 11 years ago
Unverified
cb6c0a4becbc8d504dfea69eaf9e34dd753460d3

Upped the version in project.clj after the release of 0.1.4

committed 11 years ago
Unverified
308c1a8ebc2edb99f0e1b164d554608e1e2777e2

clojars doesn't accept the jar since version 0.1.3 was already deployed (but not promoted), upping the version

committed 11 years ago
Unverified
c8212c8e8ce2aea038650834b91c0b3efbb4a413

added alias for leiningen, prepared for release

committed 11 years ago
Unverified
122d11bf381c6bb4b9d782096636bed310491769

upped loom and clojure versions

committed 11 years ago
Unverified
e4a7cf450eca07c2b75d265a7659da5a14fa95b8

reverting back to previous version of loom until the issue is fixed

committed 11 years ago

README

The README file for this repository.

Titanium-Loom Build Status

Titanium-Loom defines an interface between Titanium, a Clojure graph library by Clojurewerkz, and Loom, a Clojure graph algorithms and visualization library.

Usage

Leiningen/Clojars [group-id/name version]

[aysylu/titanium-loom "0.1.4"]

Namespaces

loom.titanium - integration API

Creation and Interaction

For information on how to create a Titanium graph, see tutorial.

Create a Loom Graph from Titanium Representation

(def default-graph (titanium->loom titanium-graph))
(def custom-graph (titanium->loom titanium-graph
                                  :node-fn (clojurewerkz.titanium.vertices/find-by-kv :age 22)
                                  :edge-fn (->> (clojurewerkz.titanium.edges/get-all-edges)
                                                (filter #(not= % 1)))
                                  :weight-fn (constantly 22))

The custom-graph is created with custom node, edge, and weight functions. This allows the user to convert to Loom representation a subset of the graph stored in the database, if the graph is too big and would not fit into memory, or if only parts of the data are of interest for the analysis.

The default-graph is created using node, edge, and weight functions with default behavior. The node and edge functions return all of the vertices and edges (respectively) in the Titanium graph. The default weight function returns 1 for any given edge.

Visualize

If you have GraphViz installed, and its binaries are in the path, you can view graphs with loom.io/view:

(view default-graph) ;opens image in default image viewer

Inspect and Run Algorithms

See Loom's documentation on how to inspect the Loom graph and run graph algorithms on it.

Dependencies

  • Clojure
  • Loom
  • Titanium
  • Optional for visualization: GrapViz.

TODO

  • Add support for infinite graphs
  • Use more efficient data structures
  • Maybe add validations

Contributors

License

Copyright (C) 2013 Aysylu Greenberg.

Distributed under the Eclipse Public License, the same as Clojure.