Until relatively recently, however, writing and citing have been done from within standalone applications like Microsoft Word and Endnote. In order to work on your book or article, you've had to have the applications installed on the computer that you're using. If you want to work on another machine, you need the programs installed on that machine, too. Depending on the software licenses involved, you might need to buy new copies of application software for every machine you want to work on. And, of course, you have to make sure that your files are synchronized across all of your machines, or, at the very least, that you are editing the latest version of each.
Researchers at the Center for History and New Media at George Mason University are working to change this paradigm by creating a tool they call Firefox Scholar. Built on top of the popular browser Firefox, the Scholar extensions "will allow researchers to recognize and capture metadata from online objects; collect documents, images, and citations from the web; and allow those materials to be sorted, annotated, and searched--all directly within their web browser window." That's pretty sweet. Best of all, it will be possible for scholar-hackers to extend the system themselves, and build new functionality into it. As Dan Cohen noted a few days ago in his blog, the beta version will be coming soon, and CHNM is still looking for people to test it.
Now that I have a working server set up, I've decided to take a page from Firefox Scholar and try building some data mining and visualization tools into the browser as extensions. My hope is that some of these may eventually find their way into Scholar, but in the meantime I'll learn some new techniques and, hopefully, create some tools I can use in my own research.
Putting work into the browser makes things easier for the user at the cost of increasing complexity for the programmer(s). Here's an overview of some of the components we will need to work with:
- Firefox, an extensible browser, uses Javascript and XUL
- Making things look good on the client side will require CSS and AJAX
- Making things work on the server side will require a database (MySQL), a scripting language (PHP), a search engine toolkit (Plucene) and maybe some other goodies (like Cake)
- We'll also need custom-made or off-the-shelf mining and visualization components