The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MOSES::MOBY::Cache::Registries - List of known BioMoby registries

SYNOPSIS

  use MOSES::MOBY::Cache::Registries;

  # print synonyms of all available registries
  print "Available registries: ",
        join (", ", MOSES::MOBY::Cache::Registries->list);

  # print all features of a selected registry
  my $regs = new MOSES::MOBY::Cache::Registries;
  my %reg = $regs->get ('IRRI');
  foreach $key (sort keys $reg) {
     print "$key: $reg{$key}\n";
  }
  
  # add a new user defined (localhost) registry
  my $success = MOSES::MOBY::Cache::Registries->add(
               endpoint  => 'http://localhost/cgi-bin/MOBY/MOBY-Central.pl',
               namespace => 'http://localhost/MOBY/Central',
               name      => 'My Localhost registry',
               contact   => 'Edward Kawas (edward.kawas@gmail.com)',
               public    => 'yes',
               text      => 'A curated private registry hosted right here on this cpu',
               synonym   => 'my_new_reg',);
  print "Registry added!" if $success == 1;
  print "Registry not added to persistent store! Unknown error. Please check the log file." if $success == 0;
  print "Registry not added! Please check the parameters." if $success == -1;
  print "Registry not added! It may be already defined or synonym is in use."
      if $success == -2;
  

DESCRIPTION

A list of known BioMoby registries is hard coded here, and their characteristics (such as their endpoints) can be retrieved by a user-friendly synonym.

There is not that many registries, so there is (at the moment) no intention to retrieve details from a database. Hard-coded entries seem to be sufficient (if you create a new BioMoby registry, then make sure to add the registry to this list by either editing the list (persistent) or by programatically using the add() method).

SUBROUTINES

All subroutines can be called as object or class methods unless you plan on using the add() method. In that case, make sure to use class methods.

list

   my @regs = MOSES::MOBY::Cache::Registries->list;

Return a list of synonyms (abbreviations) of all available registries. At least a synonym default is always present. The synonyms can be used in the get method.

add

   my $regs = new MOSES::MOBY::Cache::Registries;
   print "Success!" if $reg->add(%details) == 1;

Add a registry to the list. This method consumes a hash with the following keys: synonym - a short name for the registry name - a human readable textual name of the reg endpoint - the endpoint to the registry namespace - the registry URI text - a human readable textual description for the reg public - is this a public registry? [yes | no] contact - contact information for the registry force - if the registry synonym is in use, overwrite it

Returns: 1 on success (add to persistent store and in memory object) 0 failure to add persistent store, for other non life threatening reasons (like incomplete config file, etc)- check log file -1 failure if there are bad parameters -2 failure if the registry already exists or synonym in use

The synonym can be used in the get method to retrieve the registry.

remove

   my $regs = new MOSES::MOBY::Cache::Registries;
   print "Success!" if $reg->remove($name) == 1;

Removes a registry from the list. This method consumes a the name of a registry to remove

Returns: 1 on success (remove from persistent store and in memory object) 0 failure to remove from persistent store, for other non life threatening reasons (like incomplete config file, etc)- check log file

get

   my %reg = MOSES::MOBY::Cache::Registries->get ('IRRI');
   my %reg = MOSES::MOBY::Cache::Registries->get;

Return a hash with details about a registry whose abbreviation was given as an argument. No argument is the same as 'default'. The known synonyms can be obtained by list method.

Returned hash can contain the following keys:

  • endpoint

    Value is an endpoint (a stringified URL) of this BioMoby registry.

  • namespace

    Value is a namespace (a URI) used by this registry.

  • name

    Value is a full-name of this registry. Often accompanied with the geographical location.

  • contact

    Value is a contact person, perhaps with en email, who is in charge of this registry.

  • public

    Indicate (by value 'yes') that this registry is publicly available.

  • text

    A human-readable description explaining reasons, sometimes policies, of this registry.

all

   my $regs = MOSES::MOBY::Cache::Registries->all;

Return a hash reference with details about all registries. It is the same as calling get for all individual entries.

AUTHORS

 Martin Senger (martin.senger [at] gmail [dot] com)
 Edward Kawas (edward.kawas [at] gmail [dot] com)