Julie, formerly known as Redlandbot

PyDoc Documentation
SVN Repository
IRC Channel
RDQL Information

Julie is an IRC bot based around the Redland RDF framework. She doesn't do much herself other than sit on IRC and wait for people to tell her things or ask her things.


One of the primary things that motivated me to create a bot like Julie was the fact that I saw wh4 in action. WH4 was Libby's bot which performed many of the same functions as the current Redlandbot/Julie does. For more information on wh4, check out libby's wh4 page. However, wh4 was bulky: it's just an interface to a webserver application. julie was designed to be a lot smaller: installing Redland is hopefully something that can be accomplished more simply than installing a full webserver and Java suite. The goal was to use Julie to replace FOAFbot: with a limited crawler and a decent IRC interface, the bot could be decent at storing people's information in a way that is completely queryable. This would work for small or large groups, allowing the bot to run as a localized address book, or a large-scale database.


Julie is a Python IRC bot. She is loosely based on DanC's ircAsync code, given to me by sbp when I casted about for a decent IRC interface. She uses the Python Redland interface to do almost all the work. Code is available from source dir.


Julie's name came from a short discussion in #swhack, viewable in log form in swhack's logs. Inventive I am not, so julie-the-bot (as opposed to Julie-the-child) was born.


For a 2 minute demonstration of how julie is typically used, see swig logs.

The bot has many different features. The primary ones you'll want to use are:

Add a URL to the bot's data store.
ex. ^add http://crschmidt.net/foaf.rdf
Run the following text as an RDQL query against the bot's data store.
ex. ^query select ?name where (?p foaf:nick "crschmidt") (?p foaf:name ?name) using foaf for <http://xmlns.com/foaf/0.1>
Add a command to julie's stored command set. These commands are simply stored RDQL queries which allow you to specify a variable.
ex. ^addcommand name is select ?name where (?p foaf:nick "%s") (?p foaf:name ?name) using foaf for <http://xmlns.com/foaf/0.1/>
Causes the bot to forget a stored command based on its name. Do not use this under most circumstances. There is no undo.
ex. ^forgetcommand name
^runcommand or ^
Runs a stored command.
^name crschmidt
Retrieves a namespace URI given a shortname.
^ns foaf
Show the stored namespaces.
Adds a namespace to the stored short names.
^addns foaf is http://xmlns.com/foaf/0.1/
RDF Resource Description Framework Powered