Perl Client

Perl client to the Bibliographic Query Service

The Perl client is part of the bioperl package and can be donwloaded from http://bioperl.org. The client uses SOAP to access Bibliographic Query Service running as a WebService (see the BQS WebService specification if you wish to know more details).

The Perl modules are self-documented - below is a list of all modules and links to their documentation. But here is a high-level overview:

Modules are roughly divided into three groups (see also a figure).

  1. Modules for querying repositories and retrieving citations from there. The central one here is module Bio::Biblio.

    This module implements methods for accessing bibliographic databases. The methods themselves are specified in the interface module Bio::DB::BiblioI (look there for their description and documentation).

    However, the central Bio::Biblio module is actually a wrapper around the real implementation. The WebService access, based on SOAP protocol, is implemented by module Bio::DB::Biblio::soap.

    Note that there may be other access methods available. For example, Heikki Lehvaslaiho implemented an HTTP based access to the MEDLINE in his module Bio::DB::Biblio::biofetch.pm. This implements only retrieval methods of the interface Bio::DB::BiblioI.

  2. Modules for parsing and converting retrieved citations. These modules are independent on the access modules above - one can use them separately, for example to parse citations stored in the local files. The central module here is Bio::Biblio::IO.

    Again, this module is a wrapper around the real modules doing the parsing and conversions:

    Bio::Biblio::DB::medlinexml
    It parses citations in the MEDLINE XML format into a big hash table. The idea of having such intermediate simple data format is that in the future there may be other MEDLINE parsers (for example from a flat file) which will create again this hash table and the object creation (see above) will remain the same for both parsing modules.

    Bio::Biblio::DB::medline2ref
    It takes the big hash table created by the module above, and converts it into the real Perl bibliographic objects (the objects are described in the third group of modules below).

    Bio::Biblio::DB::pubmedxml
    It parses citations in the PUBMED XML format into a big hash table. It plays the same role as the medlinexml above with slightly extended DTD (the PUBMED format is a true super-set of MEDLINE format).

    Bio::Biblio::DB::pubmed2ref
    Again it plays the same role as the medline2ref above: it takes the big hash table and converts it into the Pubmed Perl objects.

  3. Storage modules representing individual types of cited resources and their providers. They are created by the conversion modules described above - but they can be also used separately if you have a need to represent a bibliographic citations.

    Here is the hierarchy of the storage modules representing cited resources:

Most of the modules can be tested and used by a command-line script biblio.pl (in bioperl distribution in the subdirectory examples). It can also serve as a tutorial how to use the modules. Here is its help page.

By default, this script accesses the full MEDLINE repository at EBI.

Documentation for all modules

Bio::Biblio
Bio::DB::BiblioI
Bio::DB::Biblio::soap

Bio::Biblio::IO
Bio::Biblio::IO::medlinexml
Bio::Biblio::IO::medline2ref
Bio::Biblio::IO::pubmedxml
Bio::Biblio::IO::pubmed2ref

Bio::Biblio::Article
Bio::Biblio::BiblioBase
Bio::Biblio::Book
Bio::Biblio::BookArticle
Bio::Biblio::Journal
Bio::Biblio::JournalArticle
Bio::Biblio::MedlineArticle
Bio::Biblio::MedlineBook
Bio::Biblio::MedlineBookArticle
Bio::Biblio::MedlineJournal
Bio::Biblio::MedlineJournalArticle
Bio::Biblio::Organisation
Bio::Biblio::Patent
Bio::Biblio::Person
Bio::Biblio::Proceeding
Bio::Biblio::Provider
Bio::Biblio::PubmedArticle
Bio::Biblio::PubmedBookArticle
Bio::Biblio::PubmedJournalArticle
Bio::Biblio::Ref
Bio::Biblio::Service
Bio::Biblio::TechReport
Bio::Biblio::Thesis
Bio::Biblio::WebResource

Martin Senger
Last modified: Sat Jul 23 15:54:58 2005