35

I would like to find a better way of naming publications which I store on my local computer as PDFs. So far I have been doing something like this:

Albano R., Sole A., Adamowski J., Mancusi L. (2014) - A GIS-based model to estimate flood consequences and the degree of accessibility and operability of strategic emergency response structures in urban areas.pdf

This presents a couple of disadvantages:

  • Titles can be extremely long. This causes problems in certain operating systems or software such as OneDrive. You can only have so many characters in a filename...
  • Not all publications can follow this format. The above is OK for journal papers and theses, but not so much for books or other kinds of publications.

I would like to have a consistent way to manage such a database. I thought of keeping the publication metadata such as authors, date of publication, type of publication and type in a separate text or excel file and naming the PDF files by ID, like 1.pdf, 2.pdf, etc. This could work, but it would require referring to and managing a spreadsheet which would contain all the meta data.

Is there a simple method or perhaps lightweight software that I can use which can help me with this sort of task?

EDIT

I didn't really like the way @Jonas Stein's script is set up, though I do owe him the inspiration and indication to use JabRef. Here's my alternative script:

import bibtexparser
import os
from shutil import copyfile

filename = 'db.bib'
out_folder = 'out'

with open(filename) as bibtex_file:
    db = bibtexparser.load(bibtex_file)

for entry in db.entries:
    print(entry['file'])
    id = entry['ID']
    file = entry['file'].split(':')[1]

    copyfile(file, os.path.join(out_folder, id)+'.pdf')


print('done')

It's much more compact and does the job.

  • 16
    Some people suggested to use a dedicate software for that matter. Absolutely recommendable. Another possibility is Zotero. It can automatically import all your PDFs allowing nice organization of your library, full text searching, producing bibliography, etc. Works with LaTeX, Word, ... – yarchik Nov 8 at 17:10
  • 3
    Do you write in LaTeX? If so, a bibtex file will already take care of storing all the metadata. Then I suggest filenames corresponding to bibtex citation keys, and I follow the convention "turing1936computable", "shannon1948mathematical", etc. (Last name of first author only.) – usul Nov 9 at 5:57
  • 2
    For me it is usually important to know if the paper is single-author, two-author, or multi-author. Therefore I go for the jabref recommended author1999 / authorA.authorB1999 / authorA.etal1999 format. Nothing more. The rest of the details can easily be found via your bibliography manager (I use jabref on bibtex files). – Tasos Papastylianou Nov 9 at 12:24
  • If using WIndows, why not use tagging (and Details, etc.) available already within the file folder structure? See e.g., "How to Tag Files to Tidy up Your Windows 10 Files" laptopmag.com/articles/tagging-files-windows-10. This way the info is right there in the good old file explorer and not having resort to open a new SW. – Just_to_Answer Nov 9 at 13:56
  • What @TasosPapastylianou says. The cool thing about JabRef is that is automatically generates keys if you hit CRTL-G, disambiguating as needed ("Foo2019" vs. "Foo2019a"). If you then simply name the files with the keys, JabRef autolinks to them, and you can open the PDF (or other filetype) with a single click from the JabRef entry. Very good. – S. Kolassa - Reinstate Monica Nov 10 at 12:22
10

I manage publications with JabRef in a bibtex database. It is possible to add a link to the filename with JabRef in the bibtex database.

A python script pybibtexcleaner transcribes the special characters in the title and moves all sorted files to one folder with file names in the format

bibkey-title.pdf

The script will generate from a bib entry

@Article{Stein2017a,
  author    = {J. Stein and M. Baum and S. Holbein and T. Finger and T. Cronert and C. Tölzer and T. Fröhlich and S. Biesenkamp and K. Schmalzl and P. Steffens and C.H. Lee and M. Braden},
  title     = {Control of Chiral Magnetism Through Electric Fields in Multiferroic Compounds above the Long-Range Multiferroic Transition},
  journal   = {Physical Review Letters},
  year      = {2017},
  volume    = {119},
  number    = {17},
  doi       = {10.1103/physrevlett.119.177201},
  file      = {:../included/119.177201.pdf},
  publisher = {American Physical Society ({APS})}
}

the new filename

Stein2017a-Control_of_Chiral_Magnetism_Through_Electric_Fields_in_Multiferroic_Compounds_above_the_Long-Range_Multiferroic_Transition.pdf`

and copy the file to ../articles/ and also adjust the path in the .bib file.

It is very useful if the filenames start with the bibkey. You should always use all digits of the year.

The script can also transcribe chemical formulas in a readable way, if they are introduced with \ce as in \ce{H2O}.

You can keep track of your work with git and you can restore old versions or synchronize the literature database on your different systems.

ps: I use the old stable 3.8.2 version of JabRef, because the new versions 4.x were less stable when I tried them. The user has better control on the rename process with the short python script and can easily adjust it to the needs, but recent JabRef versions are shipped with similar functionality.

  • 2
    Jabref is great. Once you have your library you can search and manage it. I have added an extra field for my own notes on the papers that i've read. – Ivana Nov 9 at 20:46
  • Yes, @Ivana. You can also use a group for printed or read papers. – Jonas Stein Nov 9 at 20:55
  • 1
    I like your suggestion. I downloaded JabRef and tried downloading your script from github. I made a 1 document JabRef database, modified the pybibtexcleaner.ini file according to my own setup and tried python pybibtexcleaner.py. However re threw an error: `re.error: bad escape \m at position 1. The problematic line is line 29. What do you think might be the problem? Thanks. – user32882 Nov 12 at 13:51
  • @user32882 oh yes there was a bug. Please pull the latest version and try again – Jonas Stein Nov 12 at 19:48
  • It seems to work now but I don't really get the purpose of this script. You are parsing through the .bib file, extracting the titles and then rewriting the file in another folder as bibkey-title.pdf. What is the point of that? Also why append the title? Some titles can be super long.... – user32882 Nov 13 at 9:38
33

For the filename, I use a system that I plagiarised from my PhD supervisor:

aaaadd_xxxx_jjj.pdf

where:

  • aaaa: name of the first author (variable length)
  • dd: 2-digit year of publication (fixed length)
  • xxxx: first word of title, minus articles and other small words (variable length)
  • jjj: abbreviation of journal of publication (variable length, but short)

I then use the same without the .pdf as my bibtex key (with an added :).

For example:

T. Penguin et al, a Survey of Antarctic Leasure Activities, Journal of Improbable Results, 2025

would be

penguin25_survey_jir.pdf

with the bibtex key penguin25:_survey_jir.

I like this system because:

  • I'm used to it
  • Filenames remain compact and UNIX shell friendly
  • The encoded information is usually enough for me to identify the paper

It doesn't cover tagging or categorising.

This applies well to journal articles. For conference proceedings articles or books, the journal acronym is replaced by an acronym of the conference or the publisher, or perhaps the full name of the publisher; I'm not fully consistent there. But I don't usually have entire books as PDFs anyway.

  • 1
    What are the advantages and disadvantages of this format? – Federico Poloni Nov 8 at 12:56
  • 7
    Do you have a mini Y2K bug in your format, or doesn't it matter? – Aaron F Nov 9 at 11:23
  • 6
    @AaronF Until I get papers published by authors with the same name, same title, and same journal, exactly 100 years in-between, it doesn't matter. I don't have many papers that are >100 years old. – gerrit Nov 10 at 9:14
  • 1
    @DmitrySavostyanov In some fields the last author has an important meaning. That happens not to be the case in my field. Of course a lot of information is inevitably lost condensing author list and title to a form as short as I described. – gerrit Nov 10 at 9:15
  • 3
    "I like this system because I'm used to it". Well, that's gotta be an argument for any system – infinitezero Nov 10 at 15:28
16

There is lots of software out there which can help (e.g., Mendeley). I used this (and others) but found it would take more management than I would care to give.

Personally, I just had a publications folder with nested sub-folders for different topics. I would then simply name the .pdfs using the last name of the first author and the year of publication, that is: lastname_2019.

I found this had several advantages:

  1. It's easy to remember. In discussion with peers I could easily refer them to a paper by lastname in 2019. It's great to be able to do this easily and helps your reputation. The alternative is discussing with peers who just vaguely remember the contents of a paper but can't remember the title or authorship.
  2. It's easy to search for the paper using (for example) spotlight in macOS. I just typed in the last name and all their papers would come up. Also helps in memorising the authors last name. I relied on this heavily and never really searched the publications folder.
  3. If using LaTeX, I could easily remember what papers I wanted to cite and as I set the bib reference to the lastname_2019 format, I had no more information to remember.

Of course, if a person publishes multiple papers in a year, I would just append a letter to the add. To be honest, I think I only had to do this once or twice for my field.

  • For me it never worked, for several reasons: 1) a lot of papers could belong to different project/subfolders' 2) many cases the first author is not the 'most important', who do you name it after? 3) in my field it is quite common to have more than one paper per year – Ezze Nov 8 at 9:36
  • 1
    Then Mendeley is your friend as you can assign publications to different folders. In my field the first author is always the most important, and either if it wasn't I don't think it matters for referencing, in no way is it assigning credit. – FChm Nov 8 at 10:29
  • 1
    I think this works well in some fields like math. I did something very similar there. Presumably it doesn't work very well in other fields, where most papers have lots of authors and the average number of papers per year and researcher is much bigger than one. – quarague Nov 8 at 11:47
  • I do not necessarily mean assigning credit, but when you have an established professor with 20+ collaborators, writing 20 papers per year, then you, as an external researcher, would probably use the group leader's name in referencing, since that is what you would remember. \ – Ezze Nov 8 at 12:57
  • 3
    Mendeley is not bad, but so proprietary ( – Dmitry Savostyanov Nov 10 at 10:57
7

I use mendeley with automatic folder scanning. I download a paper with a filename like SI90234023499-II.pdf dump it into one of my watched folders, and it is automatically sorted into ~/Literature/FirstAuthor/Year/Journal/Title.pdf and added to the Mendeley database. You can customise the directory location from any combination of metadata, but for me is doesn't reallly matter because I only ever access stuff via the Mendeley App anyway, so I rarely handle the PDF files directly.

  • 4
    Note, that Mendeley is a proprietary database. Users of such cloud based systems invest their time to create a database they do not own. These systems are designed for a strong vendor lock in. I suggest to use free and open source solutions, where the community keeps control on the own data and can fix bugs. – Jonas Stein Nov 10 at 11:58
  • If such a system existed, I would use it, but I've yet to find a system that works to automatically take in my documents with no manual intervention, reliably scrap the information, automatically rename and file the PDF and automatically make it available on all my devices (2x desktop, 1x laptop, 1x android phone, 1x iOS ipad) and will integrate with MS word. – Ian Sudbery Nov 11 at 17:37
  • @IanSudbery Zotero, combined with the plugin Zotfile, will do all of that except for the mobile devices, and for that interface with Dropbox etc. And it's open source, so you know your data will never be locked in with Elsevier. Not too much of an issue if you're just using it for keeping annotation data, but a Really Big Deal if you take notes in the system. – Flyto Dec 4 at 15:38
6

For books you can use Calibre, which is a free e-book management program. Easy to use.

  • 1
    Agreed. Calibre for file management and Zotero for references. – deags Nov 8 at 20:02
2

How about plain old Excel.

  • Start by naming your PDF documents using a naming scheme like what @gerrit has suggested (or some other mechanism that results in manageable/recognizable file names).
  • Create an Excel worksheet document. Make Column A very wide. Each row will represent a single file
  • Select a cell. Choose the Insert tab and press Link
  • Paste in the full name of the document (in whatever format you want) into the "Text to Display" field
  • Navigate to your PDF file in the file browser, select the right file and click OK

You now have a searchable document that contains your publication titles and clickable links to your documents

If you want to be fancy, you could have several columns (publication date, authors (or maybe primary author and other authors), title, etc.). Put some column headings in. Now, it's not only searchable, but it's sortable and filterable (particularly if you create it as a Table (play with the Table button on the Insert tab.))

  • 1
    Every startup should consider: can your product replace Excel. – user2943160 Nov 10 at 2:48
1

I recommend you name the papers as you say 1.pdf, 2.pdf, and have corresponding metadata files 1.txt, 2.txt which you can structure however you want.

Then the crucial part is this: use grep (available for both Linux and Windows) to search through the content of all the text files in that folder. This will find you which txt files contain the searched terms.

Searching is as simple as this (this will show which text files in the current folder contain the word "Adamowski"):

grep -r "Adamowski" .

I think this is the simplest way.

0

Is there a simple method or perhaps lightweight software that I can use which can help me with this sort of task?

Although it is a bit over the top, JabRef can maintain bibliography and rename files:

Renaming of files is now part of the “Cleanup Entries” feature (brush button in the toolbar or Ctrl + Shift + F7). Then, you can rename attached files based on the BibTeX key. You can change the format (pattern) under Options → Preferences → Import, by altering the pattern under “Default PDF file link action”.

And the patterns are diverse, and it is possible to consistently abbreviate journal names, titles, and combine author names, for example:

Author-related key patterns

  • [auth]: The last name of the first author
  • [authors]: The last name of all authors
  • [authorLast]: The last name of the last author

Title-related key patterns

  • [shorttitle]: The first 3 words of the title, ignoring any function words (see below). For example, An awesome paper on JabRef becomesAwesomePaperJabref.
  • [veryshorttitle]: The first word of the title, ignoring any function words (see below). For example, An awesome paper on JabRef becomes Awesome.
  • [camel]: Capitalize and concatenate all the words of the title. For example, An awesome paper on JabRef becomes AnAwesomePaperOnJabref.
  • [title]: Capitalize all the significant words of the title, and concatenate them. For example, An awesome paper on JabRef becomes AnAwesomePaperonJabref.

Modifiers Generally, modifiers are applied in the order they are specified. In the following, we present a list of the most common modifiers alongside a short explanation:

  • :abbr: Abbreviates the text produced by the field name or special field marker. Only the first character and subsequent characters following white space will be included. For example:
    • [journal:abbr] would from the journal name “Journal of Fish Biology” produce “JoFB”.
    • [title:abbr] would from the title “An awesome paper on JabRef” produce “AAPoJ”.
    • [camel:abbr] would from the title “An awesome paper on JabRef” produce “AAPOJ”.
-1

My method is to name each PDF file as:

year, authors, title.pdf

E.g.:

2020, Abc Def Ghi, The letters of the alphabet.pdf

I work with Ubuntu and never had problems with these filenames, although they contain spaces and commas.

Putting the year first makes it easy to sort papers by year in the file explorer.

Putting the title in the filename makes it easy to immediately see in file explorer what the file is about.

  • You are lucky, if you had no problems with spaces and commas in the filenames. It is calling for trouble. How do you transcribe the names of authors with non latin characters? – Jonas Stein Dec 5 at 20:05
  • How do you limit the length of the title? Most filesystems and programs have a very limited filename length. – Jonas Stein Dec 5 at 20:06
  • @JonasStein there is no need to put the exact names (with non-latin chars) or the full title - just put a sufficient amount of the title such that you understand what's inside. – Erel Segal-Halevi Dec 6 at 4:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.