Stratego/XT BibTeX Tools 0.2
Stratego -- Strategies for Program Transformation
Released November 4th, 2005
warning: this release is under construction!!
Download
BibTeX Tools 0.2 requires
Stratego/XT 0.16 and
Hevea.
Source tar.gz
Source RPM
Redhat Linux RPM
SuSE Linux RPM
Fedora Core RPM
Nix Package
One-click installation using
Nix, open with
/nix/bin/nix-install-package
License
BibTeX Tools is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
News
Version 0.2 is the first official release of the Stratego/XT BibTeX
Tools package. It is based on Stratego/XT 0.16 and requires Hevea
1.07, a tool for translating latex to html.
Among the useless things one can do in life, maintaining one or more
publication lists ranks high. My tendency to waste time on my
publication list probably dates back to my days as a PhD student when
I badly needed publications to put on a list. On the other hand, as
publications are the measure of achievement in research, more
researchers may have this problem.
Anyway, maintaining a list of publications can be quite tedious, in
particular if you want to provide multiple views on the
publications. For example, a listing with most recent publications
first, one providing the most important ones first, one organized by
research topic, and finally a separate list for each project. Also
your department may require regular submission of lists. On the web
version the entries should come with links to the pdf files and/or the
webpage of the publisher, but these links should not be displayed in
the version for printing, since they are quite useless there.
Being a computer scientist, I elevated the activity of maintaining
content to maintaining a program for generating the various
lists. This is still a waste of time, of course, but the excuse is
that it will save me time in future. Another excuse is that I
developed my program as a case study for the transformation language
Stratego.
In fact, the bibtex-tools package has emerged over a long time,
starting with a syntax definition for BibTeX first written in 1999. It
turns out that BibTeX has quite an intricate syntax that is not so
easily formalized with a traditional approach based on a separate
lexical analyzer and context-free parser. With the scannerless
approach of
SDF this poses no problems at all.
Also, the use of the Stratego to perform transformations on a
structured representation of a BibTeX file is a definite improvement
over directly transforming its text representation. Moreover, these
transformations can be expressed quite concisely. For example, the
following strategy definitions define an inliner for BibTeX that
replaces occurrences of string identifiers with their body. (BibTeX
allows the definition of strings such as @string{LNCS={Lecture Notes
in Computer Science}}, which can then be quoted in entry fields using
the identifier, e.g., series = LNCS.)
bib-inline =
bottomup(try(DeclareInlineString + InlineString + FoldWords))x
DeclareInlineString =
?String(_, StringField(key, value))
; rules( InlineString : Id(key) -> value )
FoldWords :
ConcValue(Words(ws1), Words(ws2)) -> Words((ws1, ws2))
After having developed my own set of BibTeX tools using the Stratego
transformation language over the last couple of years, I decided to
make them into a proper software package that could be used by others,
complete with a manual that explains the LaTeX/BibTeX/Hevea techniques
used to get a publication list into HTML.
More Information
See the
website of BibTeX Tools for an overview of the development, and introduction, examples, and a manual for BibTeX Tools.