The SVN Model of Scientific Writing

It has been far too long since I actually coded something, and I miss it.  I actually enjoy creating software.  It’s part puzzle-solving, part artistic expression.  I have, however, been advancing my Ph.D. research.  So, in an attempt to justify my lack of software, I thought of a way to think of my research in terms of software development.

All it is is a simple epiphany.  Advancing research is like software development.  Instead of committing code, you write a research paper.  And thus, the SVN Model of Scientific Writing was born (in my head).  For the uninformed, SVN (short for Apache Subversion) is a software version control system, a tool that facilitates the storage of software (in truth, any text file) for purposes of archival, retrieval, and distributed development.  I admit that, without understanding SVN, this post becomes tedious to go through.  Especially, since I want to (generally) keep my posts brief.

The SVN Model of Scientific Writing is simple:  each of the SVN commands has an interpretation in research.  Like the real SVN, there is an appropriate use of the rSVN commands (commands for the research-SVN system).  The rSVN commands are syntactically equivalent to SVN commands, and we will discuss some of the most basic commands in the sections that follow.

rsvn checkout

This command is used to pull a research trunk relevant to your research onto your local research.  Usually, this means finding a foundational paper or series of papers relevant to your field.  If you are into AI (as IA ((get it?)) ), you are in luck because there exists a website that contains a Reading List for the Qualifying Examination in Artificial Intelligence at Stanford (It’s from ’96, but the list is still very useful).

You should only need to do this once.  But research is full of fun moments like existential life crises, and discovering really cool applications completely outside of your field, so you may need to execute rsvn checkout several times.

Also, you may need to do this both for the general field and for your depth area.

rsvn update

When you are done checking out the foundational paper / series of papers, you will probably execute rsvn update, in an attempt to find work which has progressed from that starting point.  This is where the wonderful tool Google Scholar comes in.  Type in the foundational paper’s name in Google Scholar, and click on the “Cited by…” link to begin your rsvn update.

Image

rsvn add

When you have progressed in your research, you execute this command by submitting a paper for publication.  You normally won’t add incomplete works in the svn, and the same goes for rsvn.  Execute this command when you have completed a measurable quanta of research work.

rsvn commit

Like most development environments, to earn the right to commit the file, you must demonstrate that the work is as bug free as possible and that it accomplishes a specific measurable task.  This is where peer-review comes in.  If the peer-review process comes back with a favorable result, then you will execute rsvn commit by submitting the camera-ready copy of your paper.

 

Those are some of the basic commands you will execute.  The number of svn commands is (currently) much greater than the number of rsvn commands.  I am, however, interested in seeing more mappings for some of the other svn commands, and I may come back to revise this list as those mappings become clear.