Re: Ruby framework to build Web apps with RDF, Spira and Triple Stores

Hi David,

On Tue, Jun 15, 2010 at 8:35 AM, David Peterson <david.seth.p@gmail.com> wrote:
> I am going to be developing a REST based SemWeb application Web backend. The
> frontend will be driven via mobile browsers (iPad, Andriod, etc) and will
> communicate to the Ruby based backend with a triple store to store
> information.
>
> Basically, I am pretty new to Ruby, but have about 14 years experience with
> other Web technologies (javascript, php, c#, asp, java, RDF, SPARQL,
> objective-c, etc). So I know stuff, but not good Ruby stuff :) So please
> don't throw any stones for this question if it is indeed very basic. I have
> been researching into things for about a week without coming across anything
> concrete.
>
> I need a Ruby framework that has a number of things built in: sessions, user
> authentication, authenticated REST calls, role/permission based access to
> content. I had looked to use something like Drupal as a backend and write
> custom modules to access the Triple Store, but Drupal is way to heavy to
> just use it as a login and access based system (I have A LOT of experience
> with Drupal, but it just doesn't seem to fit).
>
> So, all you Ruby guru's out there, can anyone give me a pointer, a link or
> some advice?

I would heartily second the several recommendations for Sinatra, which
can't be beat in terms of how gentle a learning curve it provides:

  <http://www.sinatrarb.com/>

Sinatra doesn't necessarily out of the box provide all the facilities
you require, but it has a thriving extension ecosystem where you can
"shop" for additional functionality not unlike you would with Drupal:

  <http://rubygems.org/search?query=sinatra->

You can, naturally, also use any Rack middleware with Sinatra, so add
to the above list also the still larger list of gems at:

  <http://rubygems.org/search?query=rack->

The Rack::LinkedData gem that Nick mentions is such a
Sinatra-compatible middleware:

  <http://datagraph.rubyforge.org/rack-linkeddata/>

And for authentication in particular, check out Warden:

  <http://wiki.github.com/hassox/warden/>

For something built on top of Sinatra but with more of the goodies
prepackaged, check out Padrino which comes closer to being a
Rails-like full-stack framework:

  <http://www.padrinorb.com/>

We are finding RDF.rb + Spira + Sinatra a very potent combination for
developing Linked Data-enabled backends for our clients. Plug in
SproutCore (or perhaps Cappuccino in your case, since you mention
familiarity with Objective-C) for the frontend with just a bit of glue
to connect up its model layer with that of Spira, and up-to-par
data-driven RDF apps don't seem that daunting anymore.

In fact, with all the RDF infrastructure that's now emerging for Ruby,
combined with the high productivity of the language itself and the
availability of awesome frameworks like Rack, Sinatra, and Rails 3.0,
it's getting ever less interesting to go back to Drupal for any
application development - despite 5+ years of prior experience and
commitment to that platform. Consider yourself duly warned ;-)

-- 
Arto Bendiken | http://datagraph.org/

Received on Thursday, 17 June 2010 21:33:10 UTC