Version: 0.0.1
Project Information
Redleaf is an alternative Ruby interface to the Redland RDF library by Dave Beckett. It was written to serve as the backend for an RDF-based metadata component for the ThingFish digital asset management server. I explored several other existing RDF libraries and found nothing that was both complete and followed familiar Ruby idioms.
Other RDF Libraries
Some other libraries I tried:
- Redland – http://librdf.org/
- The Ruby binding for the excellent collection of RDF libraries grouped under the name ‘Redland’ came the closest to what I wanted. The SWIG-based interface ultimately still showed through, and my initial trials exposed some design decisions that I didn’t feel like I could work around. I’m of course still using the same excellent C backend, but I’m custom-fitting it to Ruby in a more intimate way, and adding what I think is a more-natural way of using RDF from Ruby for practical tasks.
- Semitar – http://semitar.projects.semwebcentral.org/
- This was a project that Rich Kilmer described to me in great detail at the 2003 RubyConf, but it has languished since then due to Rich being perpetually swamped with some other exciting new project or other. While it doesn’t appear to be useable in its current state, large parts of the high-level interface are heavily influenced by the ideas expressed in it..
- Rena — http://www.tom.sfc.keio.ac.jp/~sakai/hiki/?Rena
- A pure-Ruby RDF library, originally written by Masahiro Sakai, Rena provides some of
the same low-level functionality that is (more completely) addressed by Redland, but
it hasn’t been maintained since 2004 and is a bit sparse and depends on a
hyperset
library which seems to have disappeared. - Reddy – http://github.com/tommorris/reddy/tree
- A newish libxml-based library that seems to have started out as a fork of Rena. I didn’t find it complete enough to use for what I need it to do.
- Others
- There are a few other libraries for doing RDF stuff on Rubyforge and Github, but nothing that is as feature-complete or flexible as Redland, and nothing that presents a more-Rubyish interface. That’s not to say that they’re bad, of course, they just didn’t scratch my itch.
Project Resources
A bug tracker, a wiki with developer notes and ideas, and other such resources are available on the project’s Trac site.
You can check out the latest source via Mercurial at: http://repo.deveiate.org/Redleaf
Authors
- Michael Granger <ged@FaerieMUD.org>
License
Copyright © 2008, 2009 Michael Granger
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the authors nor contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The content of this manual, including images, video, and any example source code is
licensed under a Creative
Commons Attribution 3.0 License.