Exemplo n.º 1
0
  public void write(Sentence s) {
    try {
      for (Predicate p : s.getPredicates()) {
        if (p.getSense().equals("Action") || p.getSense().equals("OPERATION")) {
          out.write(
              id(p)
                  + "\t"
                  + "Action"
                  + " "
                  + p.getBegin()
                  + " "
                  + p.getEnd()
                  + "\t"
                  + p.getForm()
                  + "\n");

          for (Word w : p.getArgMap().keySet()) {
            String label = p.getArgMap().get(w);
            if (label.equals("Theme")) label = "Object";

            if (!word2id.containsKey(w))
              out.write(
                  id(w)
                      + "\t"
                      + label
                      + " "
                      + w.getBegin()
                      + " "
                      + w.getEnd()
                      + "\t"
                      + w.getForm()
                      + "\n");

            out.write(
                "R"
                    + (rnum++)
                    + "\t"
                    + (label.equals("Actor")
                        ? ("IsActorOf Arg1:" + id(w) + " Arg2:" + id(p))
                        : (label.equals("Property")
                            ? ("HasProperty Arg1:" + id(p) + " Arg2:" + id(w))
                            : ("ActsOn Arg1:" + id(p) + " Arg2:" + id(w))))
                    + "\n");
          }
        }

        if (p.getSense().equals("Object")
            || p.getSense().equals("CONCEPT")
            || p.getSense().equals("Property")) {
          if (!word2id.containsKey(p))
            out.write(
                id(p)
                    + "\t"
                    + p.getSense()
                    + " "
                    + p.getBegin()
                    + " "
                    + p.getEnd()
                    + "\t"
                    + p.getForm()
                    + "\n");

          for (Word w : p.getArgMap().keySet()) {
            String label = p.getArgMap().get(w);
            if (label.equals("Theme")) label = "Object";

            if (!word2id.containsKey(w))
              out.write(
                  id(w)
                      + "\t"
                      + label
                      + " "
                      + w.getBegin()
                      + " "
                      + w.getEnd()
                      + "\t"
                      + w.getForm()
                      + "\n");

            out.write(
                "R" + (rnum++) + "\t" + "HasProperty Arg1:" + id(p) + " Arg2:" + id(w) + "\n");
          }
        }
      }
      // out.write(s.toString()+"\n\n");
    } catch (Exception e) {
      e.printStackTrace();
      System.out.println("Failed to write sentance.");
      System.exit(1);
    }
  }