Compatibility of bibtex and biblatex bibliography files?
To parse BibTeX format files, Biber uses a C library called "btparse" which is, for all intents and purposes, 99.9% compatible with BibTeX. So, You should rarely have problem using Biber as a drop-in replacement for BibTeX. As mentioned by others, the issue is rather the slightly different data model which biblatex
has compared with the data model in BibTeX.
So, your question really relates to the difference in data models between plain BibTeX and BibLaTeX, regardless of whether you are using Biber as the biblatex
backend. Be aware that in the future, around BibLaTeX 2.x, BibTeX will no longer be supported as a biblatex
backend as it has too many limitations. Of course BibTeX format data files will always be supported.
The more important question is, as you mention, what the advantages of Biber might be even if you are not using any of the biblatex
data model specifics. Here are some advantages of Biber in this respect (you can get an idea by searching for the string "Biber only" in the biblatex
manual), omitting the features which require data source changes:
- Support of data sources other than
.bib
(currently RIS, Zotero RDF/XML, Endnote XML) - Support for remote data sources (
.bib
files available via ftp or http) - Support of other output formats (in 0.9.8 it will support GraphViz .dot output for data visualisation and conversion to the planned biblateXML format)
- Full Unicode 6.0 support (including file names and citation keys)
- A sorting mechanism which I think is probably as good or better than any commercial product - full Unicode, multi-field, per-field case and direction, CLDR aware and completely user configurable. BibTeX doesn't come close in this regard.
- Automatic name and name list disambiguation. I think this is quite an impressive feature.
See section 4.11.4 of the
biblatex
manual for a very good explanation of this with examples. - Completely customisable crossref inheritance rules. BibTeX has a very basic static rule only.
- Automatic encoding and decoding, including UTF-8 <-> LaTeX macros
- Very flexible configuration file "sourcemap" option which can be used to change the
.bib
data as it is read by Biber, without changing the actual data source itself. You
can use this to do all sorts of things like drop certain fields, add fields, conditionally drop/add fields, change fields using full Perl 5.14 regular expressions (see Biber manual section 3.1.2).
This last feature is particularly interesting for you as you can potentially map your pure BibTeX .bib
files into the biblatex
model on the fly as Biber reads them but without altering the files. It's also very useful for dropping fields like abstract
which often cause trouble due to LaTeX reserved characters.
There are also some other features implemented in Biber which are available in BibLaTeX 2.x:
- Customisable labels
- Multiple bibliographies in the same refsection with their own sorting/filtering
- "Related" entries - a general solution to the issue of all these "reprinted as", "translated as" etc. requirements.
I forgot to mention that Biber automatically applies the BibLaTeX field and entrytype mappings (address -> location etc.) mentioned in the documentation. It does this by implementing some driver-level source mappings (see \DeclareSourcemap
and its variants in the biblatex documentation).
As a principle: the more you make use of biblatex
/Biber's strengths, the harder it gets to go back to a traditional BibTeX workflow.
If you come with your BibTeX database and want to use it with biblatex
/Biber there are only few areas you have to tweak: chapter 2.3 of the biblatex
manual lists the following points:
- The entry type @inbook. See §§ 2.1.1 and 2.3.1 for details.
- The fields institution, organization, and publisher as well as the aliases address and school. See §§ 2.2.2, 2.2.5, 2.3.4 for details.
- The handling of certain types of titles. See § 2.3.5 for details.
- The field series. See §§ 2.2.2 and 2.3.7 for details.
- The fields year and month. See §§ 2.2.2, 2.3.8, 2.3.9 for details.
- The field edition. See § 2.2.2 for details.
- The field key. See § 2.3.2 for details.
Not all of the changes will probably concern you and not all really result in incompatibilities.
The more you delve into biblatex
and the more you make use of its unique types, fields and features, the more difficult it gets to go back, of course. The whole question of conversion between between the two actually becomes moot, since it's not really a question of different formats but of biblatex
simply offering many things BibTeX has no equivalent for.
Just one example which was important for me: Traditional BibTeX doesn't have a bookauthor
field which is a kind of deal breaker in certain areas of humanities. The fact that biblatex
has this field was one of the main reasons I originally switched to biblatex
. Now since BibTeX doesn't know about this field there's no sensible way to have a useful conversion between the two. The same is true for many other fields. So going to biblatex
is a kind of a one way street after you crossed a certain point.
As you are asking about Biber vs. BibTeX (that is, binary drivers for processing the .bcf
respectively .aux
file generated by LaTeX with respect to citations) I assume you are using biblatex
as bibliography package, as Biber does not support any other bibliography package (old-style BibTeX, natbib
).
With respect to the bibliography databases: AFAIK Biber is mostly compatible to BibTeX. It is, however, more picky wrt having well-formed entries, so chances are high that something "does not work" out of the box. If you do not want to fix all this immediately, using biblatex
together with bibtex8 -W
is generally a good workaround. You do not have to switch immediately to Biber just for using biblatex
.
A more serious problem is that old-style BibTeX and biblatex
are not to a hundred percent compatible wrt the database entries. Actually, biblatex
cleans up with many idiosyncrasies of the old-style BibTeX database format:
For instance, in old-style BibTeX there are two fields to indicate an address: address
for the address of the publisher, which is used in all entry types, but @inproceedings
. For @inproceedings
entries one has to give the location
of the venue instead; the address
of the publisher must not be given (BibTeX warns about this and ignores it).
With biblatex
, both are synonyms for "where it has been published", which is makes more sense, as you never use both within the same entry – theoretically. However, many @inproceedings
entries one finds on the web (ACM, IEEE, ...) contain both, even though this is technically not correct. When you have imported these entries to your personal .bib
files and use them with biblatex
, the address
(of the publisher) sometimes overwrites the location
of the venue, resulting in wrong information.