Once again, I find myself picking up a new technology and playing with it. The idea of a foaf:tipjar is interesting, for a number of reasons. One, it allows you to define who should retrieve payment for something. Currently, people don't really tend to get a whole lot of donations. However, if we make tools for determining how to give people money more simple, this might change. If there's a simple way - from the header of a page, for example - to extract information on who you should pay if you like the site, why, and how, suddenly people might be a bit more willing to donate.
I'm a geek. I like geek toys. To a certain extent, there are geek toys that would help me be more effective in creating a more accurate set of metadata on the web. For example, with a GPS reciever, I would be able to mark down locations of posts, photos, or other semantic events, and then use this information again later. However, if you just give me money to a foaf:tipjar account, you could be giving me money that I plan to give to terrorists in Brazil or something similar - you have no way of knowing how I plan on spending the money.
Of course, you can solve this by storing the information in a webpage, and just having your foaf:tipjar go straight to a wepage describing this information. Why require the extra step though? Wouldn't it be better to store this information semantically - so that tools can understand it, rather than requiring the human intervention?
So, while sitting around today, I decided to create a schema for that exact purpose - better defining what a foaf:tipjar is, and how it should be used. The newly created schema has a couple of properties that make using these tipjars in an application easier:
The "type" describes the type of tipjar. For example, an Amazon wishlist might be of type wishlist, while a Paypal email address might be dealt with by providiing a link directly to the paypal page allowing donations. This is a clue to the program interpreting this information as to what type of information is being dealt with.
With this more complete definition of the foaf:tipjar format, we can easily create a tool which can have information on it. Whether it be XSLT - transform this information to a new format, stating "Donate via to for " or simply a quick button to click in your browser - "Donate to this person!" as a bookmarklet. It could even be used in pages like Amazon to describe how to pay for a specific item in RDF: simply add tipjar information to the header, and then let people add a bookmarklet to their browser bars which determines how to pay and where to pay to.
Some example uses of foaf:tipjar using the new schema definition:
A link to a webpage, to be used, for example, in pages I've created FOAF tools on.
foaf:tipjar
tipjar:type webpage
tipjar:payTo
foaf:Person
foaf:name Christopher Schmidt
foaf:mbox crschmid@uiuc.edu
tipjar:info Payment for new toys to expand quality of FOAF information, such as a GPS
reciever for more accurate geo:data for posts.
rdf:resource http://crschmidt.net/tipjar
An Amazon wishlist - popular in the online publishing world, for letting other people who want to buy them gifts do so.
foaf:tipjar
tipjar:type wishlist
tipjar:payTo
foaf:Person
foaf:name Christopher Schmidt
foaf:mbox crschmid@uiuc.edu
tipjar:info Amazon Wishlist for when you just think I should get a nice gift for some reason.
rdf:resource http://www.amazon.com/wishlisturl.html
A tipjar pointing to the Make A Wish foundation.
foaf:tipjar
tipjar:type webpage
tipjar:payTo
foaf:Group
foaf:name Make-a-Wish Foundation
foaf:homepage http://www.wish.org
tipjar:info Donations go to Make-a-Wish foundation, provides gifts and services to
disabled children with a high expectation of dying.
rdf:resource http://www.wish.org/home/giving-shopping/giving.htm
Paypal email address.
foaf:tipjar
tipjar:type paypal-email
tipjar:payTo
foaf:Group
foaf:name Plogs.net
foaf:homepage http://www.plogs.net/
tipjar:info Payments for accounts go through this email address
rdf:resource mailto:plogs@paypal.com
A testing schema is available at http://crschmidt.net/foaf/tipjar/.