TeXtalk: an interview with PLK

Welcome to the TeXtalk! We have a very special guest for today: our friend Philip Kime, also known as PLK, our

biber/biblatex

expert. He’s the project leader of the

biblatex

task force, together with Audrey and Joseph Wright, and a great Perl programmer. Get ready for this awesome interview!

Paulo Cereda
Dear friends, welcome to the TeXtalk! Our interviewee today is Philip Kime (PLK).
PLK
I think I should say a little bit perhaps about how I got involved as there are two important people to mention who aren’t here. I just want to say that that

biber

and

biblatex

owe a great deal to two people who aren’t here – François Charette for the original

biber

code and Philipp Lehman for the incredible work he did on

biblatex

. We all wish PL well, wherever he may be.

Paulo
Could you tell us a bit about yourself?
PLK
My background is in academia originally – Philosophy, then AI, then CogSci PhD and then out of academia and now an species of psycho-analyst living in Switzerland.
Alan Munn
So are you no longer an active LaTeX user, or do you still use it professionally?
PLK
Oh I am very active again now – I write everything with it again now.

I use LaTeX for a long time during masters/PhD years, then forgot it for years and then came back in 2007 and found

biblatex

. I needed an APA (American Psychological Association) style but there wasn’t one…

So, I started to write one and found that some of the things it needed (auto-disambiguation of names lists mainly) couldn’t be done because of the bibtex backend. Then in 2009 I found

biber

which was in Perl, a language I know quite well and like a lot and so I offered to help.

There was an explosion of development on

biber

in 2009/2010 and when François had to bow out due to a busy life, I pretty much re-wrote all of it over 2010/2011.

Lehman and I were working quite closely during that time and it’s been very difficult with him gone as my TeX skills are miniscule compared to his. Thankfully we have Joseph W and Audrey B helping out with

biblatex

too.

Joseph Wright
Sounds like a lot of work! Would you say

biber

is ‘feature-complete’ yet, or are there significant things you still want to add?

(From your point of view: users always want more features)

PLK
There are two larger issues to look at with

biber

I think – one is multi-script support so that you can switch between scripts in the same entry for translated, romanised etc. versions of titles etc.

The other is related – a more flexible data format –

.bib

is hard to extend, even though we have user-definable data models in

biblatex

2.0/

biber

1.0.

François was working on that a couple of years ago with his

biblatexml

XML data format and that looks promising but I haven’t done too much with it yet. It does support multi-script already but you have to decide on the script to use per-entry and you can’t mix and match within an entry using

biblatex

macros yet. That means major

.bbl

redesign.

Joseph
That’s quite challenging: I assume the plan is XML-based, but that approach is never going to be as accessible as

.bib

for the large number of users for whom it already works.

PLK
Right – which is why we also need a

.bib<->XML

converter for it to be interesting to anyone. That’s not so hard for

biber

to do itself as it converts any data source into an internal model which is source neutral.

It needs some thought. I’ve tried a couple of prototypes but there are tricky issues with, as usual, names.

Anyway, I’d like the large amount of new features in 2.0/1.0 to settle in a bit first – there are a lot…

Joseph
Sounds like a good plan.
PLK
I really like the customisable labels feature – the auto-disambiguation schemes for these were a real swine to program though. I don’t know any other bibliography system with as sophisticated auto-disambiguation features as

biblatex

+

biber

Paulo
could you tell us about some cool features of 2.0/1.0?

:)
PLK
So, customisable labels – Instead of the static labels in alphabetic styles for, say “Smith 1958” looking like “Smi98” or whatever, you can define a template so say what the labels look like.

Say you have “Smith and Jones, 1934”

->

[SJ34] but also “Simons and Jacob, 1934”

->

[SJ34],

biber

can auto-disambiguate these, just like with name lists.

There are several ways to disambiguate, for different tastes.

You can tell it to expand the name parts to the point of no ambiguity, to restrict how long the labels get, to make them unique pointers into the references or not etc. It’s quite sophisticated.

Paulo
It sounds really powerful.

:)
PLK
The

biblatex

manual has some nice examples of this.

Joseph
Are the new features things you need, or is this mainly driven by users?
PLK
Mainly users.

The name list uniqueness features (uniquelist option) was exactly what I needed for the APA style – it took several years from needing it to having in my APA

biblatex

style – that was very satisfying.

The datamodel stuff in 2.0 is quite nice – it gets away from all those

usersa

,

lista

custom fields and types which make a

.bib

file look really arbitrary.

This is something I needed for APA style too but I think it’s generally very useful.

With the

biber

“sourcemapping” feature, which lets you alter the bib data source on the fly without touching the actual files, this is quite powerful.

This mapping stuff had a

biblatex

interface added in 2.0.

Paulo
Sounds exciting!
PLK
Audrey did some great work putting the

biblatex

interface in for

biber

‘s “related entries” feature.

Instead of people requesting endless new fields for “translated as” or “reprint of” etc. There is a now a fully localised interface for adding any “relation” to another entry you like.

Marco Daniel
It is very rarely that psycho-analysts are programmers. How do you become one?
PLK
A side-effect of the masters in AI and Cosgsci things. I only learnt Prolog and Lisp originally, naturally and when I realised how really silly it was to try to write useful utilities in Prolog, I forced myself to learn Perl…

I did have a working cassette inlay printing program, via LaTeX in Prolog which I used for years as a student…

biber

being in Perl was a real stumbling block for wider acceptance originally until I worked out how to distribute it as a binary.

Without this, it’s really hard/impossible to get something into TeX Live in a maintainable manner.

Paulo
how do you get involved in the

biblatex/biber

project?

PLK
With

biber

originally, as I found a bug in a very early version in 2009 and reported it to François Charette.

After a while, it was clear that

biblatex/biber

needed a common release schedule as the features were closely related. So we spoke to Lehman and developed the XML

.bcf

format to replace the

.aux

of bibtex and after that,

biblatex

+

biber

were essentially one project.

Marco
You are one of the top users of

biblatex

. You are the maintainer of

biber

+

biblatex

. I think very often you are reading such tagged answers. Could you learn something at tex stackexchange? Or did you get any inspiration for your work? Or on the other site how often do you close your eyes

;-)

?

PLK
I have to say the programming is quite a nice compensation for psychoanalytic work. It’s concrete, has a defined end.

Actually, I learn a great deal from the site – it is very frequent that I see an interesting question, follow it up and find some marvellous package/trick I will use.

It is quite remarkable really, I’ve been around the web since it existed (I remember the first picture causing a real stir).

So to find “yet another forum site” which really has such a superb signal/noise ratio is quite amazing.

I am constantly amazed with TikZ and

 PStricks

, for example.

To do what they can do without a huge, ugly beast of a drawing package is quite amazing.

It’s a bit like Perl for me – Perl has CPAN, TeX has CTAN. It’s so rare you need to write anything significant yourself, it’s very useful.

Alan
Although I’m sure this will change over time, one current drawback to

biblatex/biber

at the moment is the fact that most journals that accept LaTeX files won’t accept

biblatex

. See e.g. Biblatex: submitting to a journal. One thing that would help this would be a way to have the bibliography incorporated after the fact into the LaTeX file. Is this something that might be possible?

PLK
Right, this is a good question. It’s hard at the moment as the

.bbl

is basically a TeX database instead of formatting macros. The formatting stuff comes much later on in the style and so you don’t have anything resembling a core TeX/LaTeX file you can send.

One possibility would be to have

biblatex

dump another

.bbl

-like thing just before finishing.

Something after all the style stuff has been resolved. But it’s more likely that journals will need to start using

biblatex

eventually for some things – it has to be attractive once the initial hurdle is over …

Paulo
Joseph, Audrey and especially you are doing a wonderful job. How can someone volunteer to help? (/me is included)
PLK
Just mail us – I do get worried about

biber

more than

biblatex

– there are a lot of good TeX people but in the long term, I really need someone who knows Perl to get familiar with the code as it’s really to dangerous to have a large user base and only one maintainer…

biber

is a bit of a beast – there are some really complex things that it does and it takes a while to get familiar with what

biber

does and what

biblatex

does and why.

Though the XML

.bcf

file has been really useful here –

biber

only reads the

.bcf

and

biblatex

only reads the

.bbl

so their communication is very well defined.

One amusing feature which is actually quite useful if you every try it is the Graphviz output – if you have complex inheritance/XDATA/related entries/sets etc. you can opt to output GraphViz DOT format and then convert this to PDF, SVG or whatever so you can visualise the data relationships.

This was done as a proof of concept of

biber

‘s modular input/output format design.

Paulo
Impressive!
PLK
For the future, I would also like to see more input formats recognised. I have been (as have many) trying to urge the Zotero people to put a citation key as a first class field in their database (I know, it sounds amazing, there isn’t one…) so that it would be easier to access Zotero data directly as a data source but so far, years later, nothing…
Paulo
I used the

biblatex/biber

combo for the first time in a document two months ago and immediately fell in love with it. What’s their secret?

:)
PLK
Well, more and more and especially in version 2.0 of

biblatex

, all of the really nice features are

biber

only…

This isn’t a political thing, it’s just not possible to do them with bibtex as the data backend.

Paulo
Indeed.

:)
PLK
Unicode, of course, is a big thing these days and Perl is really good at Unicode – it’s a central part of the language and they take great pains to keep it very up to date.

The great

Unicode::Collate

module is why

biber

can sort just about anything. In fact, it was partly at

biber

‘s urging that the maintainer of that module added CLDR support which is essential to

biber

now. I notice that the Scandanavian contingent on T.SE use this.

Try sorting Swedish properly in just about about any other bibliography system – you have to have CLDR support really.

Well, I appreciate the chance to air some of the

biber/biblatex

news and history chaps.

Paulo
It’s an honour to hear from you.

:)

I see nowadays people going towards scripts implemented in Lua, probably because of LuaTeX and the language itself. Out of curiosity, did anyone ask for a Lua port of

biber

?

:)
PLK
Yes, someone did, a while ago. I thought about it for about a second… that’s too much work for me alone. I’d need to know that Lua can do Unicode and CLDR, XML and regular expressions at least as well as Perl before I would touch that topic…

Volunteers are most welcome – I have a nice test suite I run before every release…

Paulo
Could you name one of the most wanted features for

biber/biblatex

?

PLK
Multi-script support is really the only outstanding current request, so many features were added in 2.0…
Paulo
Do you have a favorite answer of yours in this site?
PLK
I have to say that I like How do I make my document look like it was written by a Cthulhu-worshipping madman? – it reminds me of all the HPL I read as a teenager and also shows some very clever solutions.
Paulo
Can you name something you really like in LaTeX? And is there something you dislike?

:)
PLK
LaTeX – I really like LaTeX tables –

booktabs

, dislike font control still – it can be such a pain.

egreg
What do you suggest for tackling advanced

biblatex/biber

?

PLK
I would recommend reading section 4.5 of the

biblatex

manual. It’s entitled “Customization” but it basically contains all of the more interesting 2.0 features with lots of examples.

I think the examples in there really give you a sense of some of the things which are possible.

egreg
Any idea about a book on

biblatex/biber

?

PLK
I think this would be great, especially to let academic publishers know what they could do with it. I can’t see me having the time for this in the near future though.
Kannappan Sampath
When did you start using (La)TeX? Did you use any other typesetting system before you started to use (La)TeX?
PLK
I started with LaTeX in 1992 as I remember, before that, it was a miserable haze of WordPerfect, well before any windowing systems existed on PCs…
Joseph
So 2.09?
PLK
Yes, 2.09. I remember the change to 2e quite well. It was all on old SunOS 4 workstations. I remember being quite excited by the

nfss

at the time… It made fonts… possible… And graphics were almost always done in monochrome using the venerable

xfig

to

dvi

… EPS was a real challenge.

Kannappan
So, can you please tell us about your time at academia?
PLK
Academia – now there’s a question. Well, in the end, I got tired of it and left because the context for philosophy in universities is, to my mind, fundamentally flawed. A “professional philosopher” is an absurd category, both conceptually and in many unfortunate examples which I came across.

I still teach but in a context which is somewhat less protected from “applied philosophy”, that is, life.

Kannappan
Can you please elaborate a bit more on your last assertion about professional philosophers? That you teach means (to me) you would be passionate about meeting youngsters. What is your message for youngsters?
PLK
My issue with professional philosophy is rather a topic, especially since one could argue that I’m not a thousand miles from such a thing now.

Teaching was the only important thing in it for me. That is phenomenally important. There is no message for all youngsters, only each one individually and that takes time and not the context of classroom philosophy (or classroom anything, when you really get down to it).

Teaching older people is also very important – the idea that education is mainly up until mid 20s or whatever is absurd to me. There are some things one is simply unable to learn at all until mid-life.

It could suddenly be quite silly – trying to talk to a room of 18 year-olds about, say morality when they barely know anything concretely about any kind of real moral dilemma and won’t for many years but by which time they will not consider for a moment learning about such things.

Kannappan
Thanks for your insightful comments. I am happy that you emphasise that education is really a continuum and that it takes longer to appreciate deeper aspects of life. And also emphasizing that each youngster is a distinct entity.
Paulo
Any hints for a Perl newbie?

:)
PLK
Perl – easier to answer (which is part of the attraction, naturally). The standard O’Reilly books are great, they give you all you need to start. It’s not a hard language, the problem is mainly to find some idioms you like and just stick with them since there are so many ways to do that same thing in Perl.
Gonzalo Medina
Do you think an analogous to

makebst

will be developed for

biblatex

?

PLK
It’s more likely to be a document/book I think. The problem is that with

biblatex

– there are so many parameters, presenting any meaningful question/answer interface short of a full IDE would be meaningless.

A style design interface would be nice – perhaps the LyX people could help…

Paulo
I was thinking of some interface.

:)
PLK
yes, some sort of guided style creator perhaps – it would have to write

.bbx/.cbx/.dbx

files presumably.

Joseph
I think it would be useful to match

makebst

, i.e. to cover the needs of people moving from working BibTeX set ups.

PLK
It would be nice but it seems intractably hard to me?
Joseph
No, I think quite doable (but then I am a LaTeX kernel developer). It’s a question of time for me: I’m already busy.
PLK
Oh, for you, I don’t doubt it!
Alan
I’ve got another question. One thing I find frustrating about

biblatex

is that it’s not always clear what’s the right way to implement a particular formatting issue. Sometimes there seem to be solutions built-in, and other times you have to dig into the code. (Maybe this is just par for the LaTeX course, but I’m wondering if you have any advice for how to figure out these kinds of things.)

I’m speaking as someone who is both an end user and writing a style for my field.

PLK
You’re right, this is a problem. Currently, there is no other way than to dredge through the

biblatex

manual and see if some nice macro does what you want. Most things can be done in

\print{field,name,list}

etc. formats with

DeclareFormat

and I tend to find that this is a good place to put things but there is no consistency in this.

It’s up to style writers to provide package options which hide this from users. The default styles don’t do this much though because they need to be generic enough to be copied and hacked so there are not so many good exemplars. I would hope with more academic journals and publishers adopting

biblatex

, some rigorous styles would be made which made all of the hacky looking options stuff into package options which gave a neater interface.

Alan
Yes, that’s definitely true. And I’ve managed to get most of the things I want done. Luckily we have some real experts here (including yourself) so it’s not hard to get answers when needed, also. I’m particularly impressed with Audrey’s knowledge of

biblatex

.

PLK
Yes, Audrey is quite amazing – really in-depth answers very swiftly. Probably the most advanced user I know.

If you are a style writer though,

biblatex

does assume you will read and digest the entire manual… there has been some discussion recently here about a “Quick Start” guide for

biblatex

which might address this sort of thing…

Alan
Sure, I certainly agree on that. For end users though, the documentation is a bit daunting. (And some of the default decisions (like using ‘In:’ for articles) are really odd.
PLK
It’s one of the reasons I invest some time in providing answers with examples now that 2.0/1.0 is out – there needs to be a critical mass of answers for some of these things in the short term.
Alan
Yes, that’s a big help. Also, most of us are not used to using the backend to do things, so I’m always very interested to see your answers that work that way.
PLK
Yes, this is something that a quick guide would do – it would make a bit clearer the division of labour between

biblatex

and

biber

. The

biber

manual has a couple of diagrams showing what it actually does and when.

Don’t forget that Lehman was quite influenced by the requirements and defaults of German academics as there is a large user base there (for

biber

releases, the largest demographic of initial downloads from SF is always German Windows users…) and so things like “In:” I suspect reflect that.

Alan
Maybe so. It’s certainly never used in any English publication that I’m aware of.
matth
Just a couple of days ago I learned that Zotero defined a Citation Style Language (CSL) to describe citation styles. CSL is now also used by Mendeley. So if some time in the future a

biblatex

equivalent to makebst will be available, maybe it is possible that this makebst-equivalent can process CSL files.

PLK
This would be a good idea I think – it would be essentially a more structured input to the process than asking some questions.
Paulo
What do you recommend for a newbie eager to learn TeX, LaTeX and friends?

:)
PLK
I still think the original Lamport book is a good place to start.
Paulo
Thanks a million for this great interview!

:)

Stay tuned for the next episode of TeXtalk!

Leave a Reply

Your email address will not be published. Required fields are marked *