RGL is a framework for graph data structures and algorithms
Alf brings the relational algebra both in Shell and in Ruby. In Shell, because manipulating any relation-like data source should be as straightforward as a one-liner. In Ruby, because I've never understood why programming languages provide data structures like arrays, hashes, sets, trees and graphs but not _relations_... Let's stop the segregation ;-)
You can think of Neo4j as a high-performance graph engine with all the features of a mature and robust database. The programmer works with an object-oriented, flexible network structure rather than with strict and static tables yet enjoys all the benefits of a fully transactional, enterprise-strength database. It comes included with the Apache Lucene document database.
GRATR is a framework for graph data structures and algorithms. This library is a fork of RGL. This version utilizes Ruby blocks and duck typing to greatly simplfy the code. It also supports export to DOT format for display as graphics. GRATR currently contains a core set of algorithm patterns: * Breadth First Search * Depth First Search * A* Search * Floyd-Warshall * Best First Search * Djikstra's Algorithm * Lexicographic Search The algorithm patterns by themselves do not compute any meaningful quantities over graphs, they are merely building blocks for constructing graph algorithms. The graph algorithms in GRATR currently include: * Topological Sort * Strongly Connected Components * Transitive Closure * Rural Chinese Postman * Biconnected
Data structures (lists, stacks, trees, heaps, graphs..) in pure Ruby.
Graph data structure toolkit.
RubyVor provides efficient computation of Voronoi diagrams and Delaunay triangulation for a set of Ruby points. It is intended to function as a complemenet to GeoRuby. These structures can be used to compute a nearest-neighbor graph for a set of points. This graph can in turn be used for proximity-based clustering of the input points.
GRATR is a framework for graph data structures and algorithms. This library is a fork of RGL. This version utilizes Ruby blocks and duck typing to greatly simplfy the code. It also supports export to DOT format for display as graphics. GRATR currently contains a core set of algorithm patterns: * Breadth First Search * Depth First Search * A* Search * Floyd-Warshall * Best First Search * Djikstra's Algorithm * Lexicographic Search The algorithm patterns by themselves do not compute any meaningful quantities over graphs, they are merely building blocks for constructing graph algorithms. The graph algorithms in GRATR currently include: * Topological Sort * Strongly Connected Components * Transitive Closure * Rural Chinese Postman * Biconnected
# Gadget Some methods for getting metadata and other deep details from a PostgreSQL database. ## Installation Add this line to your application's Gemfile: gem 'gadget' And then execute: $ bundle Or install it yourself as: $ gem install gadget ## Usage `#tables(conn)` Returns a list of all tables in the schema reachable through `conn`. `#columns(conn, tablename=nil)` Returns a list of all columns in the schema reachable through `conn`. If `tablename` is given, returns the columns in only that table. `#foreign_keys(conn, tablename=nil)` Returns a list of all foreign keys in the schema reachable through `conn`. If `tablename` is given, returns the foreign keys in only that table. `#constraints(conn, tablename=nil)` Returns a list of all constraints in the schema reachable through `conn`. If `tablename` is given, returns the constraints in only that table. `#dependencies(conn)` Returns a structure representing the dependencies between tables in the schema reachable through `conn`. Table A is defined as dependent on table B if A contains a foreign key reference to B. `#tables_in_dependency_order(conn)` Returns a list of all tables in the schema reachable through `conn`, ordered such that any given table appears later in the list than all of its dependencies. `#dependency_graph(conn)` Returns `.dot` script (suitable for feeding into Graphviz) describing the table dependency graph. `#functions(conn)` Returns a list of all functions in the schema reachable through `conn`. `#sequences(conn)` Returns a list of all sequences in the schema reachable through `conn`. `#triggers(conn)` Returns a list of all triggers in the schema reachable through `conn`. `#types(conn)` Returns a list of all types in the schema reachable through `conn`. ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request
A very specific and opinionated web framework to traverse a graph data structure
Plain old Ruby for generating primitive data structures from object graphs.
MongoidNestedFields allows you to handle complex data structures inside one field in MongoDB. It also validates whole object graph on field validation
RubyVor provides efficient computation of Voronoi diagrams and Delaunay triangulation for a set of Ruby points. It is intended to function as a complemenet to GeoRuby. These structures can be used to compute a nearest-neighbor graph for a set of points. This graph can in turn be used for proximity-based clustering of the input points.
Hashematics is a configuration-based object graphing tool which can turn a flat, single dimensional dataset into a structure of deeply nested objects.
Plugin that exports Chef installations structure in a graph
Ruby implementations of a Stack, Queue, Linked List, Binary Tree, LRU Cache, Heap, Priority Queue, Graph and Weighted Graph. More to come!
Generate and produce ranges in scale data structures in the graph
This ruby on rails gem makes it easy to store polymorphic structure information --- parents, children, ancestors, descendants, ... --- in a neo4j graph database parallel to using ActiveRecord.
This gem lets you manage partitioned tree structures or graphs using PostgreSQL as data store
This library can be used to build a tree structure, and render or print it like an ASCII graph. It can be used to implement a directory tree viewer or something like that.
mvGraph is an implementation of the graph data structure in Ruby. \ It was created to solve some classic AI search problems; as such, it currently supports BFS, DFS, any user-defined heuristic search, as well as A*.
A ruby gem for graph, data structure.
A modern graph data structure library.
Structured computation graphs for ruby!
RubyVor provides efficient computation of Voronoi diagrams and Delaunay triangulation for a set of Ruby points. It is intended to function as a complemenet to GeoRuby. These structures can be used to compute a nearest-neighbor graph for a set of points. This graph can in turn be used for proximity-based clustering of the input points.
Tree and flattened array data structures for traversing an ActiveRecord model graph
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets. It provides near-constant-time operations (bounded by the inverse Ackermann function) to add new sets, to merge existing sets, and to determine whether elements are in the same set. In addition to many other uses (see the Applications section), disjoint-sets play a key role in Kruskal's algorithm for finding the minimum spanning tree of a graph. A disjoint-set forest consists of a number of elements each of which stores an id, a parent pointer, and, in efficient algorithms, a value called the "rank". The parent pointers of elements are arranged to form one or more trees, each representing a set. If an element's parent pointer points to no other element, then the element is the root of a tree and is the representative member of its set. A set may consist of only a single element. However, if the element has a parent, the element is part of whatever set is identified by following the chain of parents upwards until a representative element (one without a parent) is reached at the root of the tree. Forests can be represented compactly in memory as arrays in which parents are indicated by their array index. Disjoint-set data structures model the partitioning of a set, for example to keep track of the connected components of an undirected graph. This model can then be used to determine whether two vertices belong to the same component, or whether adding an edge between them would result in a cycle. The Union–Find algorithm is used in high-performance implementations of unification. This data structure is used by the Boost Graph Library to implement its Incremental Connected Components functionality. It is also a key component in implementing Kruskal's algorithm to find the minimum spanning tree of a graph. Note that the implementation as disjoint-set forests doesn't allow the deletion of edges, even without path compression or the rank heuristic. Sharir and Agarwal report connections between the worst-case behavior of disjoint-sets and the length of Davenport–Schinzel sequences, a combinatorial structure from computational geometry.
Awesome Data Structures such as Trees, Graphs etc