I'm wondering about the current support there is in Ruby for semantic web technologies. Is there good RDF options? It seems that the last surveys done were circa 2007 ( http://paul-classic.stadig.name/2007/10/26/the-state-of-rdf-support-in-ruby-2007/ ). Is Redland's RDF wrappers the best way to go for RDF support - all the other projects mentioned in that aging article seem to be unsupported or dropped. Is Ruby perhaps a bad choice if one which to pursue projects pertaining to the semantic web?
Hey, Iaalto, I'm the author of the survey article that you mentioned. I've been thinking about doing a new survey.
A little has changed since I did the original survey, but not much. Here are a couple of things to consider:
Bottom line: If JRuby is not a problem for you, then go with ActiveRDF, it is the most complete and mature. If memory based graph is not a problem, then the next most mature is probably Reddy.
Personally I went for RDF.rb as their web site had OK documentation, and it was easy to get started with using the blog tutorials.
ActiveRDF seems like a larger project - but their wiki is down (actually the main page links to a copy of the wiki on archive.com) - and all the example talk about SPARQL queries.
Here's a simple triple lookup example, apologies for silly syntax as this was my first Ruby script:
require 'rubygems'
require 'rdf'
require 'rdf/raptor'
scufl2 = RDF::Vocabulary.new("http://ns.taverna.org.uk/2010/scufl2/ontology/")
dc = RDF::Vocabulary.new("http://purl.org/dc/elements/1.1/")
graph = RDF::Graph.load("../resources/workflows/example.ttl")
graph.query([nil, scufl2.workflow, nil]) do |bundle,p,workflow|
graph.query([workflow, scufl2.name, nil]) do |wf,p,workflow_name|
# Should just be one
print workflow_name
end
end
Unfortunately, like many Ruby and Python dependencies, this also needed some binaries to be able to read Turtle or RDF/XML. "aptitude install raptor-utils" took care of that, though.
I just wrote up a new survey article on Ruby and RDF. Some of my conclusions are:
There are also some interesting follow-up comments from the authors of RDF.rb and Spira. Ben Lavender, in particular, has thought a lot about how to sanely map RDF onto Ruby objects.
I'm the author of Redland but I don't use Ruby myself. The ruby bindings probably still work (they passed the unit tests at the last release) but probably need some love for any newer ruby language changes.
Pure Ruby users I think have tried Active RDF which is more recent than the other things you suggest but focused on Rails.
Otherwise I suggest asking on the Semantic Web Interest Group IRC channel - #swig on irc.freenode.net
Edit: There's also Reddy http://github.com/tommorris/reddy/tree/master and other ruby rdf code on github if you look around.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With