# Redland RDF Application Framework - Frequently Asked Questions (FAQs)

1. What is the license?

   Redland is Free Software, or Open Source if you prefer.

2. Why is the code released under two licenses - LGPL and Apache 2?

   I originally considered solely a GPL version of the library but this was too restrictive, hence the LGPL version. LGPL also allows the user, at their choice, to license the software under the GPL (See LGPL Term 3) in which case this software can also be used with all the other GPLed code -- see next answer.

   As an alternative, the entire library can be used under the terms of the Apache License, Version 2.0 which allows you use the library in most situations.

3. Can I link this library with code under license XXX?

   Firstly, I am not a lawyer, so seek your own legal advice if you care about it seriously. However, here is an overview of how you can use this software:

   - If you choose the LGPL/GPL licenses, the GNU project list of licenses page says that you can link the following licensed software with the code:
     GPLed, LGPLed, Guile, GNU Ada, X11, Expat, Standard ML of NJ, Cryptix, modified BSD, zlib,iMatrix, W3C, Berkeley/Sleepycat Database, OpenLDAP, Python 1.6a2 earlier, Python 2.0.1,2.1.1 and later, Perl (as GPL), Clarified Artistic, Artistic 2.0, Zope 2.0, Intel OSL, Netscape JavaScript, eCOS 2.0, Eiffel V2
     and not these types:
     Affero, Arphic, original BSD, Original BSD, AFL 1.1, OSL 1.0, Apache 1.0, Apache 1.1, Zope V1, xinetd, Python 1.6b1+ and 2.0 and 2.1, OpenLDAP V2.3, Vim 5.7, IBM PL 1.0, Phorum V1.2, LaTeX (LPPL), MPL, NOSL 1.0, Interbase 1.0, Sun PL, Nokia OSL, Netscape PL, Jabber OSL 1.0, Sun ISSL 1.0, QPL 1.0, Freetype License, PHP License, Zend License
     check the link above for updates, since the above is not a definitive list.
   - If you choose Apache 2.0, you should be able to link with most anything. There is presently a debate on whether the (L)GPL2 is compatible with Apache 2.0 (FSF says no, ASF says yes) so when linking with LGPL or GPLed code it makes sense to pick either of the LGPL or GPL licenses.
4. Why is Redland written in C?

   Writing in C allows reuse in lots of ways and the library should be easy to call from languages since most of them allow importing of C libraries or calling of C functions.

   C is also more "portable" (subject to the usual C problems) and should be compilable on many different systems. I have access to and have built it on (at various times):

   Redhat 7-9, Redhat Fedora Core 1-4, Gentoo, Debian 3.0/unstable GNU/Linux (x86); Solaris 2.5, 7, 8, 9 (Sparc); OSX 10.2, 10.3, 10.4 (PPC); Debian GNU/Linux (DEC Alpha); FreeBSD 4.7-4.9 (x86); HP-UX 10, OpenBSD, NetBSD and more more. The release announcements for the packages typically list the systems that it has been tested on..

   it configured, built and tested out of the box on all of these (C interface; the other language APIs depend on the particular support of each OS).

   See also the W3C Library note on C++ in C which covers some of these issues, although I wrote the library before finding this.

5. Why is it called Redland?

   Well, librdf was too boring `:)`! When I originally created it, I worked for the University of Bristol and lived in the Redland area of Bristol which has an 'R' and a 'D' in the name. Plus I couldn't find a decent word with the letters 'RDF' in it. Years later I realised there's an area of Bristol called Redcliffe, but that opportunity has passed.

6. Redmond?

   No. It is named after Redland which is a region of Bristol, UK. Not related to an area near Seattle, Washington State, USA.

7. Where is the LANG higher-level language interface?

   Redland provides 7 language interfaces (at 2004-01-30) via SWIG. If SWIG does another language you want and supports it, you should be able to build one yourself relatively easily, following the existing scheme.

8. Does it support an RDF query language?

   Yes. As of Redland 0.9.18, Redland ships with Rasqal supporting RDQL. Redland Bindings 0.9.18.1 provides APIS for querying and query results in several langauges.

9. Does it run on MS Windows?

   Yes, from reports others have had success compiling the Redland libraries for win32. As of Redland 1.0.0 there are packaged pre-built DLLs for redland available from the download site, including some language bindings.

   With respect to portability and "unix"-isms in the code, they are flagged in comments and only related to file name handling and maybe in creating temporary files. Raptor's URI module handles win32 file URI combinations which have been working for win32 users.

   The Redland libraries all build under the Cygwin environment relatively easily using the standard configure and make system.

10. Does it run on Apple OSX?

    Yes. The most recent version of this operating system has most of the basic requirements for using Redland and Raptor - an XML parser (in 10.3 onwards). You may need to install the Apple Developer Tools/XCode to get all the standard GNU toolchain, make, autotools and other things needed to build from CVS. Another alternative is to install the Fink environment which also provides the developent tools. Particular things needed include Berkeley/Sleepcat DB, libxml2 and would benefit from libcurl.

11. Redland and Raptor - what are they?

    Redland is the RDF library written in C and including several high-level language APIs providing RDF manipulation and storage. Redland requires Raptor and cannot be used without it since it uses URI and WWW retrieval parts even if no parsing is being performed. The Redland sources currently include Raptor, although this may change.

    Raptor is the RDF parser library written in C dealing with reading RDF/XML and N-Triples syntaxes (more eventually) into RDF triples. It is an entirely standalone and separate library from Redland, developed and released on a different schedule.

12. Rasqal?

    The RDF Syntax and Query Library for Redland, pronounced "rascal" - thanks to Phil McCarthy for the name. You can also blame Talk Like a Pirate Day and Pirates of the Caribbean -- The Curse of The Black Pearl. Arrrr!

13. Why was the license changed from LGPL/MPL to LGPL/Apache?

    I outlined my reasons in my message to redland-dev 2004-08-27:

    > In my opinion, the MPL isn't very widely used - it is mostly used by the Mozilla project for the browser and it's components. It is based in US law and rather long(*). This means there is a cost in evaluating it, so people tend to use Redland's LGPL/GPL terms since they are one of the most used licenses.

    > The Apache 2.0 license[1] has had widespread and detailed consideration including issues with international law. It is a modern license, clear to read and easy to apply. All the Apache Software Foundation (ASF) projects either use it or will be switching to it, and there are lots of similarly licensed BSD-style work that are compatible. It provides good terms for commercial users, requiring just acknowledgement notices. I've not written the notices I'd use for Redland yet.

    > I think anyone who was using the Redland libraries under the MPL will be fine with the Apache 2.0 license. Of the commercial users I am aware of, they are using the libraries under the LGPL so this shouldn't affect them, or even be beneficial.

    > So why not Apache 2.0 alone? There is still a dispute if it is compatible with the GPL, and until the FSF and the ASF both agree that they are compatible, I will be including explicit GPL compatibility by using the LGPL 2.1.

    > ... Dave

    > (*) Yes so is the GPL/LGPL, but they are very common and familiar.

Copyright (C) 2000-2009 Dave Beckett
Copyright (C) 2000-2004, University of Bristol