Graph Database in ruby? - ruby-on-rails

Are there any graph database in ruby . i have heard of neo4j in Jruby , Are there any pure implementation of graph database in ruby ?

I have been researching this myself. There are a number of interesting graph databases; however, Neo4j and OrientDB are the only ones for which I found any sort of Ruby API.
While not a true Graph Database, FlockDB uses a MySQL backend to mimic graph database constructs.
InfoGrid and HyperGraphDB looked interesting, but sadly, no Ruby API.

I really like OrientDB and you can use it through REST although it would be somewhat minimal.

Related

How would I know which one to use Gremlin and Tinkerpop

I would like to implement a graph database in our company and wanted your expert help on this. I have a data model. and want to put it into AWS Neptune, but I don't know if I want Tinkerpop or a property graph. I am a newbie. How do I go about getting this data into neptune? Can someone tell me how to start or basics of getting data loaded?
I'm not quite sure I understand the question. Apache TinkerPop is a graph computing framework that includes the Gremlin query language. It is designed for use with property graphs.
Amazon Neptune supports Apache TinkerPop/Gremlin. Loading data into Amazon Neptune can be done via the supported query languages or via the Neptune bulk load API.

What is the APIs differences in Solr and Aws CloudSearch?

I'm looking into the migration of Solr to AWS CloudSearch before start investigate myself, thought of asking a question to the community.
My current application is in ASP.NET MVC C# and using the SolrNet.dll for Solr Service.
If anybody did the migration then please share your experiences, Is there any changes in the return JSON results, or query parameters or APIs.
Appreciate your helps on this.
Amazon cloudsearch is based on solr, so conceptually they work same way, but amazon has written its own wrapper on top of solr api.
Amazon cloud search has two endpoints, one for search and other for
indexing documents.
Amazon cloudsearch has four different query parsers, if you place
queries using Lucence as query parser, query syntax and
functionality is same.
The only difference I observed functionally is cloudsearch doesn't
support hierarchy in fields data, it only provides with text and
literal datatypes and their arrays for multiple values.

Possible to visualize neo4j graph in ruby on rails application?

I'm quite novice to neo4j. I would like to find out if I can query a neo4j database from a ruby on rails application and use the result to make a graph visualization in my application. I have looked at d3.js, that problably can do it. I would just like to know if it possible to use GraphGist in a ruby on rails application and make a graph visualization as can be seen here. If I can use GraphGist where can I find more information how to use in a ruby on rails project? If I cannot use GraphGist would d3.js be a good choice of vizualizing neo4j graphs in a Ruby on Rails project?
I wrote a simple single html page Neo4j console that you can use to learn how do to it.
The master branch uses the alchemy.js library http://jexp.github.io/cy2neo
And the neod3 branch uses the visualization from the graphgist project.
If you clone it locally and check out that branch and run the file in a browser you should be able to see the visualization.

Neo4j with Ruby On Rails

I created a ruby on rails web app which I deployed on heroku, by following this guide
http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
The app is very similar to this tutorial in that a user can create an account, log in, create an object with some information which is belongs to that user. These objects I created are meant to represent nodes which I would like to be able to create relationships between.
I have been reading up on Neo4j and it seems like the best fit for ruby but then I read that it only really works with JRuby. Could anyone tell me would it work with my implementation and if so , how? or if it dosent, what should I use instead?
JRuby allows Ruby to access Neo4j directly through the Java API. It is the fastest implementation possible. However, Neo4j also provides a REST API that allows any language to access it over HTTP.
I seems like your answer may be here: Which Ruby REST API client for neo4j?
This is again using the Neography gem, but this blog maxdemarzi has got some really nice posts on integrating ruby with neo4j.
Here's a link: http://maxdemarzi.com/2012/01/04/getting-started-with-ruby-and-neo4j/
But as mentioned by others, I don't think you'd get anything that can talk directly to the Java API other than JRuby.

What database backends are readily available for Ruby on Rails?

In the introductory tutorials, it talks about MySQL, Postgre and Sqlite3. Is anything else supported out-of-the-box? Are there any plugins to support other databases?
I'm mainly interested in NoSQL - Cassandra, CouchDB, etc.
Thanks
Activerecord (Rails' default ORM) supports MySQL, Postgres, and sqlite3. If you want to use a different ORM, you have many more choices.
Some links to get you started:
DataMapper, a popular alternative ORM
Sequel, another alternative ORM
Rails wiki article on using CouchDB
Mongoid, for MongoDB
MongoMapper, an alternative for MongoDB
I don't have enough experience with Cassandra to mention anything for it. This frontier has not been fully explored.
The game is likely to change some when Rails 3 comes out soon. Expect a lot of choices in this area to sprout up.
Take a look here and here and this last one(for couch). Also - if you're using JRuby - you can use any database that has a JDBC driver - which is just about every database around there.
Ruby on Rails 3 ( still in beta ) is ORM agnostic. So You can change your ORM. Or even you can not use ORM.
So the limitation is in Ruby, not in Ruby on Rails. in futur.
The ActiveModel gem help you with several librarie for compatibility. So you can even made you backend in File or with your own database.
Here we can see on the source code the list of available DBs: https://github.com/rails/rails/tree/b002141b1ba2eef5d192ec31bec5340f7ecca5e9/activerecord/lib/active_record/connection_adapters which as shqdowbq mentions is PostgreSQL, MySQL and SQLite.
https://www.ruby-toolbox.com/categories/Active_Record_DB_Adapters contains a list of third party adapters for other databases, listed options include:
https://github.com/rails-sqlserver/activerecord-sqlserver-adapter for Microsoft SQL Server
https://github.com/rsim/oracle-enhanced for Oracle
Related question: List of supported databases?

Resources