/// <summary>Just for testing.</summary>
 public static void Main(string[] args)
 {
     try
     {
         ITreeReader tr = new PennTreeReader(new StringReader("(S (NP (NNP Sam)) (VP (VBD died) (NP (NN today))))"), new LabeledScoredTreeFactory());
         Tree        t  = tr.ReadTree();
         System.Console.Out.WriteLine(t);
         TreeGraphNode tgn = new TreeGraphNode(t, (TreeGraphNode)null);
         System.Console.Out.WriteLine(tgn.ToPrettyString(0));
         EnglishGrammaticalStructure gs = new EnglishGrammaticalStructure(tgn);
         System.Console.Out.WriteLine(tgn.ToPrettyString(0));
         tgn.PercolateHeads(new SemanticHeadFinder());
         System.Console.Out.WriteLine(tgn.ToPrettyString(0));
     }
     catch (Exception e)
     {
         log.Error("Horrible error: " + e);
         log.Error(e);
     }
 }