001 package edu.upenn.cis.propbank_shen;
002
003 import org.w3c.dom.Node;
004 import org.w3c.dom.NamedNodeMap;
005 import org.w3c.dom.Attr;
006
007
008 /**
009 This class represents a propbank pointer to verbnet roles.
010
011 For a full API for verbnet, please see the
012 <a href="http://www.cis.upenn.edu/verbnet"> VerbNet website</a>.
013
014 @author Scott Cotton
015 */
016 public class VNRole {
017
018 /** the theta role, such as Agent, Theme, Patient, etc */
019 protected String vntheta;
020 /** the verbnet class */
021 protected String vnclass;
022 /** the node from the frameset xml document */
023 protected Node node;
024
025 /** construct a VNRole object from a vnrole node in the
026 propbank lexical guidelines */
027 public VNRole(Node n) {
028 node = n;
029 vntheta = null;
030 vnclass = null;
031 NamedNodeMap attrs = n.getAttributes();
032 int len = attrs.getLength();
033 String anm = null;
034 for(int i=0; i<len; i++) {
035 Attr attr = (Attr) attrs.item(i);
036 anm = attr.getNodeName();
037 if (anm.equals("vncls")) {
038 vnclass = attr.getNodeValue();
039 } else if (anm.equals("vntheta")) {
040 vntheta = attr.getNodeValue();
041 }
042 }
043 }
044
045 /** return the VerbNet theta role associated with this VNRole object */
046 public String getVNTheta()
047 {
048 return vntheta;
049 }
050
051 /** return the VerbNet class identifier associated with this VNRole object */
052 public String getVNClass()
053 {
054 return vnclass;
055 }
056 }
057