1  from STTools import * 
 2   
 4      node = arg[1] 
 5      if node.trigger == None:  
 6          return [chain] 
 7      else: 
 8          if chain == None: 
 9              chain = arg[0][0] + ":" + node.type 
10          else: 
11              chain += "-" + arg[0][0] + ":" + node.type 
12      chains = [] 
13      for arg in node.arguments: 
14          chains.extend(getNestingChains(arg, chain)) 
15      return chains 
 16   
18      chainCounts = {} 
19      for doc in documents: 
20          argumentEvents = set() 
21           
22          for event in doc.events: 
23              for arg in event.arguments: 
24                  if arg[1].trigger != None:  
25                      argumentEvents.add(arg[1]) 
26           
27          for event in doc.events: 
28              if event not in argumentEvents: 
29                  chains = getNestingChains(("Root", event)) 
30                  for chain in chains: 
31                      if not chainCounts.has_key(chain): 
32                          chainCounts[chain] = 0 
33                      chainCounts[chain] += 1 
34      print "Counts:" 
35      for k in sorted(chainCounts.keys()): 
36          print " ", k, chainCounts[k] 
 37   
38  if __name__=="__main__": 
39      from optparse import OptionParser 
40       
41      try: 
42          import psyco 
43          psyco.full() 
44          print >> sys.stderr, "Found Psyco, using" 
45      except ImportError: 
46          print >> sys.stderr, "Psyco not installed" 
47       
48       
49       
50      optparser = OptionParser(description="ST format statistics") 
51      optparser.add_option("-i", "--input", default=None, dest="input", help="", metavar="FILE") 
52      (options, args) = optparser.parse_args() 
53       
54       
55       
56      print "Loading documents" 
57      documents = loadSet(options.input) 
58      print "Analyzing" 
59      analyzeNesting(documents) 
60      print "Statistics" 
61      getStatistics(documents) 
62