docs: def add_predicate(self, pred_obj):
          """
          Adds a predicate object to the layer
          @type pred_obj: L{Cpredicate}
          @param pred_obj: the predicate object
          """
          pred_id = pred_obj.get_id()
          if not pred_id in self.idx:
              pred_node = pred_obj.get_node()
              self.node.append(pred_node)
              self.idx[pred_id] = pred_node
          else:
              #FIXME we want new id rather than ignoring the element
              print('Error: trying to add new element, but id has already been given')