code: def __gen_annoset_file(self):
          
          paula_id = '{0}.{1}.anno'.format(self.corpus_name, self.name)
          E, tree = gen_paula_etree(paula_id)
  
          slist = E('structList', {'type': 'annoSet'})
          # NOTE: we could group all the annotations into different structs
          # but I don't see the point. We're already using namespaces, after all
          struct = E('struct', {'id': 'anno_all_annotations'})
          for i, file_id in enumerate(self.files):
              struct.append(E('rel',
                              {'id': 'rel_{0}'.format(i),
                               XLINKHREF: file_id+'.xml'}))
          slist.append(struct)
          tree.append(slist)
          self.files[paula_id] = tree
          self.file2dtd[paula_id] = PaulaDTDs.struct
          return paula_id
docs: An ``annoSet`` file describes the set of annotations contained in a
          document (i.e. it lists all annotation files that belong to a PAULA
          document). Each PAULA document must contain an annoSet file.
  
          An ``annoSet`` file can also be used to list the contents of a
          (sub)corpus, but we're not using this feature in discoursegraphs, yet.