x is a Bimap object. show(x):
      Display minimal information about Bimap object x.
    summary(x):
      Display a little bit more information about Bimap object x.
    
  - 2 sets of objects: the left objects and the right objects.
    All the objects have a name and this name is unique in
    each set (i.e. in the left set and in the right set).
    The names of the left (resp. right) objects are called the
    left (resp. right) keys or the Lkeys (resp. the Rkeys).
  
     
  - Any number of links (edges) between the left and right
    objects. Note that the links can be tagged. In our model,
    for a given bimap, either none or all the links are tagged.
   In other words, a bimap is a bipartite graph. Here are some examples:
  
  1. bimap B1: 4 left objects (Lkeys): "a", "b", "c", "d"
     3 objects on the right (Rkeys): "A", "B", "C" Links (edges):
      "a" <--> "A"
      "a" <--> "B"
      "b" <--> "A"
      "d" <--> "C" Note that:
       - There can be any number of links starting from or ending
         at a given object.
       - The links in this example are untagged.
  
  
  2. bimap B2: 4 left objects (Lkeys): "a", "b", "c", "d"
     3 objects on the right (Rkeys): "A", "B", "C" Tagged links (edges):
       "a" <-"x"-> "A"
       "a" <-"y"-> "B"
       "b" <-"x"-> "A"
       "d" <-"x"-> "C"
       "d" <-"y"-> "C" Note that there are 2 links between objects "d" and "C":
     1 with tag "x" and 1 with tag "y".
  
    left  right
       a      A 
       a      B
       b      A
       d      C
  
  If in addition the right objects have 1 multivalued attribute,
  for example, a numeric vector:
  
    A <-- c(1.2, 0.9)
    B <-- character(0)
    C <-- -1:1
  
  then the flat representation of B1 becomes:
  
    left  right  Rattrib1
       a      A       1.2
       a      A       0.9
       a      B        NA
       b      A       1.2
       b      A       0.9
       d      C        -1
       d      C         0
       d      C         1
  
  Note that now the number of rows is greater than the number
  of links!
    flatten(x) converts AnnDbBimap object x into FlatBimap
    object y with no loss of information
  
  Note that a FlatBimap object can't be converted into an AnnDbBimap
  object (well, in theory maybe it could be, but for now the data bases
  we use to store the data of the AnnDbBimap objects are treated as
  read-only). This conversion from AnnDbBimap to FlatBimap is performed
  by the "flatten" generic function (with methods for AnnDbBimap objects
  only).
    for any AnnDbBimap object x, f(x) is expected to be
    indentical to f(flatten(x))
  
  Of course, this implies that the f method for AnnDbBimap objects
  return the same type of object than the f method for FlatBimap objects.
  In this sense, the "revmap" and "subset" Bimap methods are particular
  because they are expected to return an object of the same class as
  their argument x, so f(x) can't be identical to f(flatten(x)). For
  these methods, Property0 says:
  
    for any AnnDbBimap object x, flatten(f(x)) is expected to
    be identical to f(flatten(x))
   Note to the AnnotationDbi maintainers/developpers: the checkProperty0
  function (AnnDbPkg-checker.R file) checks that Property0 is satisfied on all
  the AnnDbBimap objects defined in a given package (FIXME: checkProperty0 is
  currently broken).  library(hgu95av2.db)
  ls(2)
  hgu95av2GO # calls the "show" method
  summary(hgu95av2GO)
  hgu95av2GO2PROBE # calls the "show" method
  summary(hgu95av2GO2PROBE)
Run the code above in your browser using DataLab