Stanford & Carnegie Inst. of Washington & Virginia Commonwealth Univ., USA
Knowledge-Based Biological Computing (a.k.a. Symbolic Biocomputing)
BioBike system is a biology-specific programming language embedded in an integrated biological knowledge-base, all accessible through the web. In the best case, biologists themselves would be able to log into the system and write their own programs to ask novel biological questions without the help of (or with very little help from) software engineers.
First published in 2002, BioBike is Common Lisp from top to bottom. The team chose Lisp because it is the most natural language in which to write complex symbolic reasoning programs. Common Lisp features such as macros are critical when extending the syntax to create the BioBike language. Read more about why Lisp is used at http://nostoc.stanford.edu/Docs/whylisp.html.
The BioBike Lisp listener (front) and frame browser displaying a Gene Ontology concept (occluded)
The screenshot shows two of the two most important pages from the BioBike web-based interface. The front page illustrates the Lisp listener, with frame hyperlinks and the ability to embed computed graphics. Evaluation history scrolls upward, so that the latest expression evaluated and its result are displayed nearest the bottom of the history. The occluded page illustrates the frame browser displaying a Gene Ontology concept, and including its place in the GO hierarchy (bottom of the page). Notice that nearly everything is clickable, usually opening another frame browser. In this way the knowledge base can be conveniently explored. The left hand column of the frame table displays the slot names; Each is a frame that can be examined. The slot values are in the right hand column partially occluded), and can also be examined if they contain frames, structures, or CLOS objects.
BioBike developers chose LispWorks because
"LispWorks has a very nice IDE. Its Emacs-like editor is much closer to standard Emacs than is Allegro's Emacs mode. At the time we chose it, LispWorks and its IDE were available on all platforms of interest. By developing using LispWorks and running on other Common Lisps as well we keep our system portable."