code: def main():
      
      
      print('AIKIF example: Processing Finance data\n')
      data = read_bank_statements('your_statement.csv')
      print(data)
      maps = load_column_maps()
      rules = load_rules()
      
      for m in maps:
          print('AIKIF mapping  : ' + m[0] + ' => ' + m[1])
  
      for rule in rules:
          #print(rule)
          if rule[0] == 'agg':
              print('summing        : ' + rule[1] + ' into ' +  rule[2] )
          elif rule[0] == 'derive':
              print('New column     : ' + rule[1] + ' = ' + rule[2] + ' WHERE ' + rule[1] + ' ELSE ' + rule[3] )
      
      print('Done\n')
docs: This is the main body of the process that does the work.
  
      Summary:
      - load the raw data
      - read in rules list
      - create log events for AIKIF according to rules [map]
      - create new facts / reports based on rules [report]
      
      OUTPUT = 
                  AIKIF mapping  : Date_of_transaction => event
                  AIKIF mapping  : Amount => fact
                  AIKIF mapping  : Details => location
                  New column     : trans_type = DB WHERE amount > 0 ELSE CR
                  summing        : details contains "CALTEX" into Travel Expense
                  Done