From Foaf to WITW

This evening I hacked arround some Jave/Jena/ARQ/XMPP based stuff. My main goal was to have a bot accessable via XMPP Chat or Groupchat that is capable of answering simple questions. Right now it can show me depictions of a Person bild von <i>somenick</i> and figure out where someone is wo ist <i>nick</i>. The wo-ist-service depends on Norman Walsh WITW Service. The link between a nick and the depiction of a person is obviously foaf:nick, using Sparql retrieving this information from the Jena Model was not that hard. The link between a nick and WITW is a foaf:onlineAccount with a foaf:accountServiceHomepage of Retrieving all such foaf:onlineAccount for a given foaf:nick reveals if the person has an account for the WITW and what his userid is at WITW. Having this data I simply http.get the XML from …/witw/is/…

Accessing WITW via HTTP, onlineAccount and depiction information from the Jena Model has been seperated into so called Data Access Objects (DAO) which return Value Objects (VO) containing the actual data.

XMPP communication starts retrieving information and sends back the content of Value Objects to (at the moment) a Multi User Chat (MUC) at

That’s it… source code for this can be found… happy for any feedback! Thanks to ldodds and AndyS for the support. The jabber id of the bot is [][8]

UPDATE 2005-10-07: I you want to enable your FOAF File to contain the required information for the WITW service add something like <pre> <foaf:holdsAccount> <foaf:OnlineAccount> <rdf:type rdf:resource="" /> <foaf:accountServiceHomepage rdf:resource=""/> <foaf:accountName>goern</foaf:accountName> </foaf:OnlineAccount> </foaf:holdsAccount> </pre> <p> to your foaf:Person .