Google transit is an extremely mighty and expansive public transit query web interface.
http://www.google.com/transit
In fact, I think it may even be the biggest, which means we need that thing :-)
Unfortunately there exists no public API, so the results must be scraped from the web interface.
This thread might also help: http://groups.google.com/group/googletransit/browse_thread/thread/464f973d62cdc8ee/4e28ec8b0a0f0d2b
Basically what needs to be done is:
1. Understand the query format so that we can automatically generate our own queries.
This can be done by
a) sniffing the browser HTTP POST packet(I recommend Wireshark)
b) deciphering the URL as in http://maps.google.com/maps?f=d&hl=en&geocode=&saddr=Granville+Skytrain,+Canada&daddr=ubc&mra=cc&dirflg=r&sll=49.27708,-123.18737&sspn=0.089594,0.202904&ie=UTF8&t=h&output=html
2. Understanding the structure of the response HTML document(doesn't seem to be too hard)
3. Provide implementations for all classes in the Adapter framework.
4. Hook your query method up the existing transit framework.