Astro::Bibcode - Parse standardised astronomical journal bibcode
use Astro::Bibcode; $bib = new Astro::Bibcode( '2002MNRAS.336...14J' ); print $bib->journal(),"\n"; print $bib->volume(),"\n"; print $bib->year(),"\n";
This module parses a standardised astronomical journal bibcode (see references at end of this documentation) and allows the individual parts to be extracted.
Create a new
Astro::Bibcode object. This constructor can be called in a number of ways.
If a single argument is provided it is assumed to be a bibcode. This code will be parsed, if the parse fails the object will not be created.
$bib = new Astro::Bibcode( '1995MNRAS.276.1024J' );
THE REST OF THIS SECTION IS PROPOSED INTERFACE AND IS NOT IMPLEMENTED
If it is called without arguments an empty object will be created. Further calls to the
bibcode method or the individual components will be required to configure the object.
$bib = new Astro::Bibcode;
If a series of hash arguments are provided, the object will be configured by calling the individual accessors in turn.
$bib = new Astro::Bibcode( journalcode => 'ApJ', year => 2002, );
NOTE THAT BIBCODE CREATION IS NOT YET IMPLEMENTED
Returns the bibcode associated with this object. It will be generated from the other object attributes if undefined (which it will be after something in the object has changed).
$bib->bibcode( '1998adass...7..216J' ); $code = $bib->bibcode;
Can return undef if the bibcode did not pass verification (see
Year of publication.
$year = $bib->year;
The Journal code associated with this bib code.
For the current list of journal codes see:
journal method in order to translate this code to a full journal name.
$jcode = $bib->journalcode;
Classification flag of this bib code. Current allowed values are:
B textbook C catalog M digited version P preprint R report or conference proceedings T thesis U unpublished
and also from ADS:
book => 'book' work => 'workshop' conf => 'conference proceeding' symp => 'symposium' rept => 'report' meet => 'meeting'
Note that a null string is used to indicate a periodical.
$code = $bib->classflag;
class method for the translation.
Value of the miscellaneous field "M" used to remove ambiguity.
Either the first initial of the first author's last name, or ":" for no author. Also can be "%" to indicate that some of the other fields may be invalid.
Retrieve the full journal name.
$journal = $bib->journal;
Returns the code if the code can not be translated.
Does try to recognize ADS conference codes.
Retrieve the full name associated with the classification flag.
$class = $bib->class;
Returns undef if no name can be translated.
Returns the ADS conference code associated with this bibcode. Returns undef if this bibcode is not associated with a conference.
$confcode = $bib->confcode;
In some cases (eg 2000immm.proc...77G), a "proc" classification is used when the ADS standard seems to imply "conf" instead. This is taken into account when returning the confcode.
Return a multi-line summary string describing the bibcode status.
$text = $bib->summary;
Given a bibcode, return false if the bibcode does not seem to be valid (e.g. it is the wrong lenght, first 4 characters are not digits), returns the bibcode in scalar context.
$ok = $bib->verify_bibcode( '1999adass...8...11E' );
In list context returns a hash consisting of the constituent (untranslated) parts of the bib code.
%parts = $bib->verify_bibcode( '1998SPIE.3357..548J' );
Since ADS is prone to replacing & with & in Journal codes due to HTML transport, this routine will reverse this.
Note that in some special cases a bibcode can be specified such that it is known not to match all the rules (last character is a '%'). In such cases only the length of the bicode is checked.
Details on the bibcode standard can be obtained from
A complete description of the reference coding has been published as a chapter of the book "Information & On-Line Data in Astronomy", 1995, D. Egret and M. A. Albrecht (Eds), Kluwer Acad. Publ.
ADS seems to use non-standard bibcodes for meetings and conferences:
ADS Journal codes are here:
but are not currently used.
Currently the lookup tables for the journal translation and ADS conference proceedings are embedded in the module. There is no facility for triggering a remote update from the referenced web sites or for easily updating a configuration file as new codes are issued. This will probably change in future releases.
Tim Jenness <firstname.lastname@example.org>
Copyright (C) 2004 Tim Jenness and the Particle Physics and Astronomy Research Council.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place,Suite 330, Boston, MA 02111-1307, USA