info.ephyra.nlp.semantics
Class Predicate

java.lang.Object
  extended by info.ephyra.nlp.semantics.Predicate
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Predicate>

public class Predicate
extends java.lang.Object
implements java.lang.Comparable<Predicate>, java.io.Serializable

A Predicate represents a predicate-argument structure as defined in the PropBank project.

This class implements the interfaces Comparable and Serializable.

Version:
2008-01-29
Author:
Nico Schlaefer
See Also:
Serialized Form

Field Summary
private  java.lang.String annotated
          Sentence annotated with semantic roles (optional).
private static java.util.regex.Pattern ARG_P
          Pattern to extract arguments ARG0-5 from an annotated sentence.
private  java.lang.String argADV
          ADV modifier (sentence-level adverb, e.g.
private  java.lang.String argCAU
          CAU modifier (cause).
private  java.lang.String argDIR
          DIR modifier (direction).
private  java.lang.String argDIS
          DIS modifier (discourse connective, e.g.
private  java.lang.String argEXT
          EXT modifier (extent).
private  java.lang.String argLOC
          LOC modifier (location).
private  java.lang.String argMNR
          MNR modifier (manner).
private  java.lang.String argMOD
          MOD modifier (modal verb).
private  java.lang.String argNEG
          NEG modifier (negation).
private  java.lang.String argPNC
          PNC modifier (purpose).
private  java.lang.String[] args
          Arguments with verb-specific roles.
private  Term[] argTerms
          Terms in the arguments.
private  java.lang.String argTMP
          TMP modifier (time).
private  float confidence
          Confidence score (from [0, 1]).
static java.lang.String MISSING_ARG
          Indicates a missing argument.
private  java.lang.String[] missingArgs
          Missing arguments, for predicates extracted from questions.
private static java.util.regex.Pattern MOD_P
          Pattern to extract modifier arguments from an annotated sentence.
private  java.lang.String sentence
          Original sentence (optional).
private static long serialVersionUID
          Version number used during deserialization.
private  Predicate simPredicate
          Predicate this predicate was compared to.
private  double simScore
          Similarity score of this predicate compared to another predicate (from [0, 1]).
private  java.lang.String verb
          Verb representing the predicate.
private static java.util.regex.Pattern VERB_P
          Pattern to extract the verb from an annotated sentence.
private  Term verbTerm
          Term for the verb.
 
Constructor Summary
Predicate(java.lang.String verb, java.lang.String[] args, java.lang.String[] roles)
          Creates a predicate data structure from a verb, arguments and their semantic roles.
Predicate(java.lang.String sentence, java.lang.String annotated, Term[] terms)
          Creates a predicate data structure from an annotated sentence and sets the verb and argument terms.
 
Method Summary
 boolean append(java.lang.String id, java.lang.String verbArg)
          Appends a string to the verb or an argument of the predicate.
 boolean appendAll(java.lang.String[] ids, java.lang.String[] verbArgs)
          Appends strings to the verb and/or arguments of the predicate.
 int compareTo(Predicate p)
          Compares two predicates by comparing their similarity scores.
 boolean dropArgs(java.lang.String s)
          Drops all arguments that contain the given string.
 java.lang.String get(java.lang.String id)
          Returns the verb or an argument of the predicate.
 java.lang.String getAnnotated()
           
 java.lang.String getArgADV()
           
 java.lang.String getArgCAU()
           
 java.lang.String getArgDIR()
           
 java.lang.String getArgDIS()
           
 java.lang.String getArgEXT()
           
 java.lang.String getArgLOC()
           
 java.lang.String getArgMNR()
           
 java.lang.String getArgMOD()
           
 java.lang.String getArgNEG()
           
 java.lang.String getArgPNC()
           
 java.lang.String[] getArgs()
          Returns all arguments that are not null in an array.
 java.lang.String[] getArgsMissing()
          Returns all arguments that are not null, including missing arguments, in an array.
 Term[] getArgTerms()
           
 java.lang.String getArgTMP()
           
 float getConfidence()
           
 java.lang.String[] getMissingArgs()
           
 java.lang.String getNumArg(int role)
           
 java.lang.String[] getNumArgs()
           
 java.lang.String[] getRoles()
          Returns all semantic roles that are not null in an array.
 java.lang.String[] getRolesMissing()
          Returns all semantic roles that are not null, including missing roles, in an array.
 java.lang.String getSentence()
           
 Predicate getSimPredicate()
           
 double getSimScore()
           
 java.lang.String getVerb()
           
 java.lang.String[] getVerbArgs()
          Returns the verb and all arguments that are not null in an array.
 Term getVerbTerm()
           
 boolean hasMissingArgs()
           
 boolean set(java.lang.String id, java.lang.String verbArg)
          Sets the verb or an argument of the predicate.
 boolean setAll(java.lang.String[] ids, java.lang.String[] verbArgs)
          Sets the verb and/or arguments of the predicate.
private  void setArgTerms(Term[] terms)
          Sets the terms in the arguments.
 void setConfidence(float confidence)
           
 void setSimPredicate(Predicate simPredicate)
           
 void setSimScore(double simScore)
           
private  void setVerbTerm(Term[] terms)
          Sets the term for the verb.
 double simScore(Predicate p)
          Calculates a similarity score from [0,1] for this predicate and a given predicate.
 java.lang.String toString()
          Returns a single-line string representation of the predicate.
 java.lang.String toStringMultiLine()
          Returns a multi-line string representation of the predicate.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Version number used during deserialization.

See Also:
Constant Field Values

MISSING_ARG

public static final java.lang.String MISSING_ARG
Indicates a missing argument.

See Also:
Constant Field Values

VERB_P

private static final java.util.regex.Pattern VERB_P
Pattern to extract the verb from an annotated sentence.


ARG_P

private static final java.util.regex.Pattern ARG_P
Pattern to extract arguments ARG0-5 from an annotated sentence.


MOD_P

private static final java.util.regex.Pattern MOD_P
Pattern to extract modifier arguments from an annotated sentence.


sentence

private java.lang.String sentence
Original sentence (optional).


annotated

private java.lang.String annotated
Sentence annotated with semantic roles (optional).


verb

private java.lang.String verb
Verb representing the predicate.


args

private java.lang.String[] args
Arguments with verb-specific roles. Often, ARG0 is the Agent and ARG1 the Patient or Theme.


argLOC

private java.lang.String argLOC
LOC modifier (location).


argCAU

private java.lang.String argCAU
CAU modifier (cause).


argEXT

private java.lang.String argEXT
EXT modifier (extent).


argTMP

private java.lang.String argTMP
TMP modifier (time).


argDIS

private java.lang.String argDIS
DIS modifier (discourse connective, e.g. "also", "on the other hand").


argPNC

private java.lang.String argPNC
PNC modifier (purpose).


argADV

private java.lang.String argADV
ADV modifier (sentence-level adverb, e.g. "unfortunately", and general-purpose).


argMNR

private java.lang.String argMNR
MNR modifier (manner).


argNEG

private java.lang.String argNEG
NEG modifier (negation).


argDIR

private java.lang.String argDIR
DIR modifier (direction).


argMOD

private java.lang.String argMOD
MOD modifier (modal verb).


missingArgs

private java.lang.String[] missingArgs
Missing arguments, for predicates extracted from questions.


confidence

private float confidence
Confidence score (from [0, 1]).


verbTerm

private Term verbTerm
Term for the verb.


argTerms

private Term[] argTerms
Terms in the arguments.


simScore

private double simScore
Similarity score of this predicate compared to another predicate (from [0, 1]).


simPredicate

private Predicate simPredicate
Predicate this predicate was compared to.

Constructor Detail

Predicate

public Predicate(java.lang.String verb,
                 java.lang.String[] args,
                 java.lang.String[] roles)
Creates a predicate data structure from a verb, arguments and their semantic roles.

Parameters:
verb - the verb
args - the arguments
roles - the semantic roles

Predicate

public Predicate(java.lang.String sentence,
                 java.lang.String annotated,
                 Term[] terms)
          throws java.text.ParseException
Creates a predicate data structure from an annotated sentence and sets the verb and argument terms.

Parameters:
sentence - the original sentence
annotated - the sentence annotated with semantic roles
terms - the terms in the sentence
Throws:
java.text.ParseException
Method Detail

setVerbTerm

private void setVerbTerm(Term[] terms)
Sets the term for the verb.

Parameters:
terms - the terms in the sentence the predicate was extracted from

setArgTerms

private void setArgTerms(Term[] terms)
Sets the terms in the arguments.

Parameters:
terms - the terms in the sentence the predicate was extracted from

dropArgs

public boolean dropArgs(java.lang.String s)
Drops all arguments that contain the given string.

Parameters:
s - the string
Returns:
true iff an argument was dropped

simScore

public double simScore(Predicate p)
Calculates a similarity score from [0,1] for this predicate and a given predicate.

Parameters:
p - predicate to compare with
Returns:
similarity score

compareTo

public int compareTo(Predicate p)
Compares two predicates by comparing their similarity scores.

Specified by:
compareTo in interface java.lang.Comparable<Predicate>
Parameters:
p - the predicate to be compared
Returns:
a negative integer, zero or a positive integer as this predicate is less than, equal to or greater than the specified predicate

toString

public java.lang.String toString()
Returns a single-line string representation of the predicate.

Overrides:
toString in class java.lang.Object
Returns:
single-line string representation

toStringMultiLine

public java.lang.String toStringMultiLine()
Returns a multi-line string representation of the predicate.

Returns:
multi-line string representation

get

public java.lang.String get(java.lang.String id)
Returns the verb or an argument of the predicate.

Parameters:
id - identifier of the verb or argument
Returns:
verb or argument, or null if the identifier is invalid or the argument does not exist

getArgs

public java.lang.String[] getArgs()
Returns all arguments that are not null in an array.

Returns:
array containing the arguments

getArgsMissing

public java.lang.String[] getArgsMissing()
Returns all arguments that are not null, including missing arguments, in an array.

Returns:
array containing the arguments

getRoles

public java.lang.String[] getRoles()
Returns all semantic roles that are not null in an array.

Returns:
array containing the semantic roles

getRolesMissing

public java.lang.String[] getRolesMissing()
Returns all semantic roles that are not null, including missing roles, in an array.

Returns:
array containing the semantic roles

getVerbArgs

public java.lang.String[] getVerbArgs()
Returns the verb and all arguments that are not null in an array.

Returns:
array containing the verb and the arguments

set

public boolean set(java.lang.String id,
                   java.lang.String verbArg)
Sets the verb or an argument of the predicate.

Parameters:
id - identifier of the verb or argument
verbArg - verb or argument to be set
Returns:
true iff the identifier is valid

append

public boolean append(java.lang.String id,
                      java.lang.String verbArg)
Appends a string to the verb or an argument of the predicate.

Parameters:
id - identifier of the verb or argument
verbArg - string to be appended
Returns:
true iff the identifier is valid

setAll

public boolean setAll(java.lang.String[] ids,
                      java.lang.String[] verbArgs)
Sets the verb and/or arguments of the predicate.

Parameters:
ids - identifiers of the verb and/or arguments
verbArgs - verb and/or arguments to be set
Returns:
true iff all identifiers are valid

appendAll

public boolean appendAll(java.lang.String[] ids,
                         java.lang.String[] verbArgs)
Appends strings to the verb and/or arguments of the predicate.

Parameters:
ids - identifiers of the verb and/or arguments
verbArgs - strings to be appended
Returns:
true iff all identifiers are valid

getSentence

public java.lang.String getSentence()

getAnnotated

public java.lang.String getAnnotated()

getVerb

public java.lang.String getVerb()

getNumArg

public java.lang.String getNumArg(int role)

getNumArgs

public java.lang.String[] getNumArgs()

getArgLOC

public java.lang.String getArgLOC()

getArgCAU

public java.lang.String getArgCAU()

getArgEXT

public java.lang.String getArgEXT()

getArgTMP

public java.lang.String getArgTMP()

getArgDIS

public java.lang.String getArgDIS()

getArgPNC

public java.lang.String getArgPNC()

getArgADV

public java.lang.String getArgADV()

getArgMNR

public java.lang.String getArgMNR()

getArgNEG

public java.lang.String getArgNEG()

getArgDIR

public java.lang.String getArgDIR()

getArgMOD

public java.lang.String getArgMOD()

getMissingArgs

public java.lang.String[] getMissingArgs()

hasMissingArgs

public boolean hasMissingArgs()

getConfidence

public float getConfidence()

setConfidence

public void setConfidence(float confidence)

getVerbTerm

public Term getVerbTerm()

getArgTerms

public Term[] getArgTerms()

getSimScore

public double getSimScore()

setSimScore

public void setSimScore(double simScore)

getSimPredicate

public Predicate getSimPredicate()

setSimPredicate

public void setSimPredicate(Predicate simPredicate)