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 email@example.com 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 firstname.lastname@example.org 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:email@example.com
A testing schema is available at http://crschmidt.net/foaf/tipjar/.