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).
- 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.
- 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.
- 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::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