Julie, formerly known as Redlandbot

Home
PyDoc Documentation
SVN Repository
IRC Channel
DOAP
FOAF
RDQL Information
Redland

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.

Motivation

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.

Source

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.

Misc

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.

Usage

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
Add a URL to the bot's data store.
ex. ^add http://crschmidt.net/foaf.rdf
^query
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>
^addcommand
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/>
^forgetcommand
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
^ns
Retrieves a namespace URI given a shortname.
^ns foaf
^listns
Show the stored namespaces.
^listns
^addns
Adds a namespace to the stored short names.
^addns foaf is http://xmlns.com/foaf/0.1/
RDF Resource Description Framework Powered