NAME

Bib::CrossRef - Uses crossref to robustly parse bibliometric references.

SYNOPSIS

use strict;
use Bib::CrossRef;

# Create a new object my $ref = Bib::CrossRef->new();

# Supply some details, Bib::CrossRef will do its best to use this to derive full citation details e.g. the DOI of a document ...

$ref->parse_text('10.1109/jstsp.2013.2251604');

# Show the full citation details, in human readable form

print $ref->print();

article: 2013, Alessandro Checco, Douglas J. Leith, 'Learning-Based Constraint Satisfaction With Sensing Restrictions'. IEEE Journal of Selected Topics in Signal Processing, 7(5),pp811-820, DOI: http://dx.doi.org/10.1109/jstsp.2013.2251604

# Show the full citation details, in html format

$ref->sethtml;
print $ref->printheader;
print $ref->print;
print $ref->printfooter;

EXAMPLES

A valid DOI will always be resolved to a full citation e.g.

$ref->sparse_text('10.1109/jstsp.2013.2251604');
print $ref->print();

article: 2013, Alessandro Checco, Douglas J. Leith, 'Learning-Based Constraint Satisfaction With Sensing Restrictions'. IEEE Journal of Selected Topics in Signal Processing, 7(5),pp811-820, DOI: http://dx.doi.org/10.1109/jstsp.2013.2251604

An attempt will be made to resolve almost any text containing citation info e.g. article title only

$ref->parse_text('Learning-Based Constraint Satisfaction With Sensing Restrictions');

e.g. author and journal

$ref->parse_text('Alessandro Checco, Douglas J. Leith, IEEE Journal of Selected Topics in Signal Processing, 7(5)');

Please bear in mind that crossref provides a great service for free -- don't abuse it by making excessive queries. If making many queries, be sure to rate limit them to a sensible level or you will likely get blocked.

METHODS

new

my $ref = Bib::CrossRef->new();

Creates a new Bib::CrossRef object

parse_text

$ref->parse_text($string)

Provides a text string that Bib::CrossRef will try to resolve into a full citation with the help of crossref.org

doi

my $info = $ref->doi

Returns a string containg the DOI (digital object identifier) field from a full citation. If present, this should be unique to the document.

score

my $info = $ref->score

Returns a matching score from crossref.org. If less than 1, the text provided to set_details() was likely insufficient to allow the correct full citation to be obtained.

genre

my $info = $ref->genre

Returns the type of publication e.g. jounal paper, conference paper etc

date

my $info = $ref->date

Returns the year of publication

atitle

my $info = $ref->atitle

Returns the article title

jtitle

my $info = $ref->jtitle

Returns the name of the journal (in long form)

authcount

my $info = $ref->authcount

Returns the number of authors

auth

my $info = $ref->auth($num)

Get the name of author number $num (first author is $ref->auth(1))

volume

my $info = $ref->volume

Returns the volume number in which paper appeared

issue

my $info = $ref->issue

Returns the issue number in which paper appeared

spage

my $info = $ref->spage

Returns the start page

epage

my $info = $ref->epage

Returns the end page

query

my $info = $ref->query

Returns the free form string from which full citation is derived

print

print $ref->printheader;

Prints full citation in human readable form.

sethtml

$ref->sethtml

Set output format to be html

clearhtml

$ref->clearhtml

Set output format to be plain text

printheader

print $ref->printheader;

When html formatting is enabled, prints some html header tags

printfooter

print $ref->printfooter;

When html formatting is enabled, prints some html footer tags

EXPORTS

You can export the following functions if you do not want to use the object orientated interface:

sethtml clearhtml set_details print printheader printfooter doi score date atitle jtitle volume issue genre spage epage authcount auth query

The tag all is available to easily export everything:

use Bib::CrossRef qw(:all);

VERSION

Ver 0.02

AUTHOR

Doug Leith

BUGS

Please report any bugs or feature requests to bug-rrd-db at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Bib-CrossRef. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT

Copyright 2015 D.J.Leith.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.