BibTeX files that were created with the BibDesk program on the Mac store links to local files as smart references, which has a lot of benefits:
To be precise, it’s a base64 encoded (keyed) archived dictionary containing a relative path and a file alias (an alias stores a full path and a file ID). It is designed to support a large range of storage procedures, as it can find a file by relative path, absolute path, and file ID (in that order). This means that you can - move/rename the .bib file (as it stores full paths) - move/rename a linked file (as it stores file IDs) - move the .bib file and linked files together (as it stores relative paths) - copy the .bib file and linked files togther, even between different machines (as it stores relative paths) (bibdesk user mailing list)
This works perfectly as long as you stay on a Mac. However, if you have to share the BibTeX file with someone who cannot run BibDesk, it may be useful to add some human-readable information as well. For this, I’ve written a small script that is an adaption of the code found at http://n2.nabble.com/Loss-of-local-file-links-td2209604.html It adds a Local-File field to the BibTeX file with the relative path of the referenced file.