001 package edu.upenn.cis.propbank_shen; 002 003 import java.util.LinkedList; 004 import java.util.List; 005 006 import java.util.LinkedList; 007 import java.util.List; 008 009 import org.w3c.dom.Node; 010 import org.w3c.dom.NamedNodeMap; 011 import org.w3c.dom.Attr; 012 013 /** 014 This class represents an example in the lexical guidelines. 015 016 An example consists of some text together with an optional 017 name and a list of arguments for the verb described in the 018 frameset file of which this example is a part. 019 @author Scott Cotton 020 021 022 */ 023 public class Example { 024 025 protected Node node; 026 protected String name; 027 028 protected String text; 029 protected List arguments; 030 031 /** construct an Example object from a dom example Node in the frameset.dtd */ 032 public Example(Node n) 033 { 034 node = n; 035 arguments = null; 036 name = null; 037 NamedNodeMap attrs = n.getAttributes(); 038 int len = attrs.getLength(); 039 String anm = null; 040 for(int i=0; i<len; i++) { 041 Attr attr = (Attr) attrs.item(i); 042 anm = attr.getNodeName(); 043 if (anm.equals("name")) { 044 name = (String) attr.getNodeValue(); 045 } 046 } 047 // find the text node 048 text = null; 049 Node nc = node.getFirstChild(); 050 while (nc != null) { 051 if (nc.getNodeName().equals("text")) { 052 text = (String) nc.getFirstChild().getNodeValue(); 053 break; 054 } 055 nc = nc.getNextSibling(); 056 } 057 } 058 059 /** return truee iff this example has a name */ 060 public boolean hasName() 061 { 062 return name != null; 063 } 064 065 066 /** get the name of this example, or return null if there is no name */ 067 public String getName() 068 { 069 return name; 070 } 071 072 073 074 /** return the example text as a string. */ 075 public String getText() 076 { 077 return text; 078 } 079 }