Colorado State

Mak's Bibliography Tips




Accurate citations are a cornerstone of scientific research. Yet, I find bibliography grunt work at the end of writing distasteful! So, I amortize (some of) the cost of the bibliography by doing the work up front as I collect the references. It is a habit that makes my life much easier in the long run.

I also hope that my habit will eventually pay off greater long-term benefits. Computers are becoming increasingly "helpful" to humans, and I know I will one day have a personal agent that profiles my references and locates interesting documents. So I take a more "Content Management" view of my references -- the references themselves are part of a much larger profile. Eventually all of my documents, viewing history, and search history will help an agent profile my interests and locate new work in a topic. For more info, ask me about "Ia and Afod."

This bib directory contains various bits of wisdom and code I've collected over the years. For what its worth:

General Tips

Develop good habits now while you're still young. Start now! Don't procrastinate! Be consistent! Enter every single (worthwhile) paper into your bibliography. You never know when you may refer a paper to someone else.

Keep it simple! Nothing breaks a good habit better than making a process cumbersome. Think about dependencies like upgrades to new versions or what would happen if you dropped the software for a different GUI. For example, there are an endless variety of customizations you can add to JabRef. In my opinion, don't bother with them. View those features as the inevitable code bloat of the lenient lieutenants who run the sourceforge project. You might consider using the keywords or notes features; it could be useful for marking class specific or unfinished refs. If you simply must know about the extended features, check out the help file.

For the sake of your (supposed) future sanity, be as complete as possible: include the PS/PDF file, abstract, weblink, your review/annotations if you've written one, and any other notes. Filling these fields has an incremental cost, but it will likely pay off once agents become more mainstream.

Take advantage of reliable databases such as ACM Portal, DBLP, ACM Sigmod Anthology, etc. They can be very useful in refining an incomplete reference. Citeseer and authors' publications lists are also a fabulous resources, but be aware these may contain incorrect/incomplete material in references.

Use Bibtex with Latex and create a single master file for all your bibliography records; see my master.bib for an example. You can always move references to a paper directory or group directory.

Start with good foundation. Find excellent examples of quality research and emulate it; sloppy citing doesn't help us advance knowledge. I started with the Dissertation bibtex files of Larry Pyeatt, Jean-Paul Watson and Mauricio G. C. Resende. Feel free to begin with my master.bib, though it probably won't match with your needs if you aren't interested in agents, planning and scheduling. There are definitely errors and omissions, and I would appreciate corrected references if you find any.

Use a GUI tool that allows you to edit the bibtex. Doing it by hand is frustrating and time consuming - shouldn't you be reading more papers than fiddling with references. JabRef is satisfactory for my needs; it links to webpages and PDF/PS documents in the GUI. One click, and the paper pops up on the screen!

Roll up your sleeves and use your favorite text editor to modify the bibtex document directly or snag references to move them. Believe it or not, there are some things a GUI is not very efficient at doing.

Using JabRef (a very limited intro)

Here's are my steps to setting up JabRef.
      - Download JabRef
      - Create a single directory for your PS/PDF files. I use the tmp directory on my work machine and an archival directory on my laptop
      - Create an alias (or shortcut) so the program loads in a snap from the command line. I use:
            - Windows: bibman /cygdrive/c/Program\ Files/JabRef/JabRef.exe
            - Linux: bibman /usr/local/java/bin/java -jar /s/chopin/d/proj/meps/biblio/mroberts/JabRef-1.7.1.jar
      - Start JabRef and set the PS and PDF directories preference option.
      - You are now ready to enter a reference
            - Find a reference you care about (on the net) or in a PDF document. (Don't download the PDF file yet...)
            - Copy to the clipboard (Cntl-C or Shift-DEL) the most concise details of the reference. Use the bibtex if you can get it. Note its publication media: conference proceedings, article, chapter in book, web page, etc.
            - Cntl-N to add a new one
            - Select the media button
            - Insert the information using cut (Ctrl-X) and paste (Ctrl-V)
            - Generate a bibtex key, a field which is usually on the first tab. There are so many variants to bibtex keys and it is a HUGE personal preference. Some things to keep in mind are: 1) Keep the reference small as it will eventually be used in a paper; 2) Avoid funky characters (like colon) that are disallowed in particular file systems; 3) be consistent so you can use auto-fill in your favorite editor; for example, if you use emacs, then you can open your master.bib file in a background window and rely on the auto-complete function (Meta-/ in my version of emacs bliss) to complete references as you write the paper. For now, I have settled on: author[1-3]ShortYear.pubName.shortTitle or for four or more authors authorEtAlShortYear.pubName.shortTitle. Look in my master.bib file for more details.
            - Copy (Ctrl-C) the bibkey to the clipboard
            - Download the file and change its name to the [bibkey].pdf or [bibkey].ps
            - Click the Auto Button under the General Tab in the PDF field. If you did everything above right, then the file should appear and a clickable icon will show up by the reference in the preview pane.