gate.annotation
Class AnnotationDiff

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--gate.creole.AbstractVisualResource
                                |
                                +--gate.annotation.AnnotationDiff
All Implemented Interfaces:
Accessible, FeatureBearer, ImageObserver, MenuContainer, NameBearer, Resource, Serializable, VisualResource

public class AnnotationDiff
extends AbstractVisualResource

This class compare two annotation sets on annotation type given by the AnnotationSchema object. It also deals with graphic representation of the result.

See Also:
Serialized Form

Inner Class Summary
 class AnnotationDiff.AnnotationDiffCellRenderer
          This class defines a Cell renderer for the AnnotationDiff table
protected  class AnnotationDiff.AnnotationDiffTableModel
          A custom table model used to render a table containing the two annotation sets.
(package private)  class AnnotationDiff.AnnotationSetComparator
           
protected  class AnnotationDiff.DiffSetElement
          This class is used for internal purposes.
 
Inner classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent, JComponent.ActionStandin, JComponent.IntVector, JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.AWTTreeLock
 
Field Summary
private  AnnotationSchema annotationSchema
          The annotation schema object used to get the annotation name
private  String annotationTypeForFalsePositive
          This string represents the type of annotations used to play the roll of total number of words needed to calculate the False Positive.
private  Color BLACK
          Used in some setForeground() methods
private  Color BLUE
          Blue used for PARTIALLY_CORRECT_TYPE
private  Color[] colors
          The array holding the colours according to the annotation types
static int CORRECT_TYPE
          A correct type when all annotation are corect represented by Green color
private static boolean DEBUG
          Debug flag
static int DEFAULT_TYPE
          A default type when all annotation are the same represented by White color
private  Set diffSet
          Used to represent the result of diff.
private  XJTable diffTable
          The components that will stay into diffPanel
private  double falsePositiveAverage
          The False positive average (see NLP Information Extraction)
private  double falsePositiveLenient
          The False positive lenient (see NLP Information Extraction)
private  double falsePositiveStrict
          The False positive strict (see NLP Information Extraction)
private  double fMeasureAverage
          The F-measure average (see NLP Information Extraction)
private  double fMeasureLenient
          The F-measure lenient (see NLP Information Extraction)
private  double fMeasureStrict
          The F-measure strict (see NLP Information Extraction)
protected static NumberFormat formatter
          A number formater for displaying precision and recall
private  Color GREEN
          Green used for CORRECT_TYPE
private  String keyAnnotationSetName
          The name of the annotation set.
private  List keyAnnotList
          This list is created from keyAnnotationSet at init() time
private  Document keyDocument
          This document contains the key annotation set which is taken as reference in comparison
private  Set keyFeatureNamesSet
          A set of feature names bellonging to annotations from keyAnnotList used in isCompatible() and isPartiallyCompatible() methods
private  Set keyPartiallySet
          This field is used in doDiff() and detectKeyType() methods and holds all partially correct keys
static int MAX_TYPES
          Field designated to represent the max nr of annot types and coolors for each type
static int MISSING_TYPE
          A missing type when annotations in key were not present in response Represented by Yellow color
private  int NULL_TYPE
          Used in DiffSetElement to represent an empty raw in the table
static int PARTIALLY_CORRECT_TYPE
          A partially correct type when all annotation are corect represented by Blue color
private  double precisionAverage
          The precision average value (see NLP Information Extraction)
private  double precisionLenient
          The precision lenient value (see NLP Information Extraction)
private  double precisionStrict
          The precision strict value (see NLP Information Extraction)
private  double recallAverage
          The Recall average value (see NLP Information Extraction)
private  double recallLenient
          The Recall lenient value (see NLP Information Extraction)
private  double recallStrict
          The Recall strict value (see NLP Information Extraction)
private  Color RED
          Red used for SPURIOUS_TYPE
private  String responseAnnotationSetName
          The name of the annotation set.
private  String responseAnnotationSetNameFalsePoz
          The name of the annotation set considered in calculating FalsePozitive.
private  List responseAnnotList
          This list is created from responseAnnotationSet at init() time
private  Document responseDocument
          This document contains the response annotation set which is being compared against the key annotation set.
private  Set responsePartiallySet
          This field is used in doDiff() and detectResponseType() methods
private  JScrollPane scrollPane
          A scroll for the AnnotDiff's table
static int SPURIOUS_TYPE
          A spurious type when annotations in response were not present in key.
private  boolean textMode
          This field indicates wheter or not the annot diff should run int the text mode
private  int[] typeCounter
          Used to store the no.
static double weight
          The weight used in F-measure (see NLP Information Extraction)
private  Color WHITE
          White used for DEFAULT_TYPE
private  Color YELLOW
          Yellow used for MISSING_TYPE
 
Fields inherited from class gate.creole.AbstractVisualResource
features
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AnnotationDiff()
          Constructs a AnnotationDif
 
Method Summary
private  void addToDiffset(AnnotationDiff.DiffSetElement aDiffSetElement)
          This method add an DiffsetElement to the DiffSet and also counts the number of compatible, partialCompatible, Incorect and Missing annotations.
protected  void arangeAllComponents()
          This method creates the graphic components and aranges them on this JPanel
private  int detectKeyType(Annotation anAnnot)
          Decide what type is the keyAnnotation (DEFAULT_TYPE, MISSING or NULL_TYPE) This method must be applied only on annotation from key set.
private  int detectResponseType(Annotation anAnnot)
          Decide what type is the responseAnnotation (PARTIALLY_CORRECT_TYPE, SPURIOUS or NULL_TYPE) This method must be applied only on annotation from response set.
protected  void doDiff(List aKeyAnnotList, List aResponseAnnotList)
          This method is the brain of the AnnotationSet diff and creates a set with diffSetElement objects.
 AnnotationSchema getAnnotationSchema()
           
 Set getAnnotationsOfType(int annotType)
          Returns a set with all annotations of a specific type
 String getAnnotationTypeForFalsePositive()
          Gets the annotation type needed to calculate the falsePossitive measure
 double getFalsePositiveAverage()
           
 double getFalsePositiveLenient()
           
 double getFalsePositiveStrict()
           
 double getFMeasureAverage()
           
 double getFMeasureLenient()
           
 double getFMeasureStrict()
           
 String getKeyAnnotationSetName()
          Gets the keyAnnotationSetName.
 Document getKeyDocument()
           
 Set getKeyFeatureNamesSet()
          Gets the keyFeatureNamesSet in AnnotDiff.
 Object getParameterValue(String paramaterName)
          Gets the value of a parameter of this resource.
 double getPrecisionAverage()
           
 double getPrecisionLenient()
           
 double getPrecisionStrict()
           
 double getRecallAverage()
           
 double getRecallLenient()
           
 double getRecallStrict()
           
 String getResponseAnnotationSetName()
          gets the responseAnnotationSetName.
 String getResponseAnnotationSetNameFalsePoz()
          gets the responseAnnotationSetNameFalsePoz.
 Resource init()
          This method does the diff, Precision,Recall,FalsePositive calculation and so on.
 boolean isTextMode()
          Gets the annot diff textmode.True means that the text mode is activated.
protected  void printStructure(Set aDiffSet)
          Used internally for debugging
 void setAnnotationSchema(AnnotationSchema anAnnotationSchema)
           
 void setAnnotationTypeForFalsePositive(String anAnnotType)
          Sets the annotation type needed to calculate the falsePossitive measure
 void setKeyAnnotationSetName(String aKeyAnnotationSetName)
          Sets the keyAnnotationSetName in AnnotDiff
 void setKeyDocument(Document aKeyDocument)
          Sets the keyDocument in AnnotDiff
 void setKeyFeatureNamesSet(Set aKeyFeatureNamesSet)
          Sets the keyFeatureNamesSet in AnnotDiff.
 void setParameterValue(String paramaterName, Object parameterValue)
          Sets the value for a specified parameter.
 void setParameterValues(FeatureMap parameters)
          Sets the values for more parameters in one step.
 void setResponseAnnotationSetName(String aResponseAnnotationSetName)
          Sets the responseAnnotationSetName in AnnotDiff
 void setResponseAnnotationSetNameFalsePoz(String aResponseAnnotationSetNameFalsePoz)
          Sets the responseAnnotationSetNameFalsePoz in AnnotDiff
 void setResponseDocument(Document aResponseDocument)
           
 void setTextMode(Boolean aTextMode)
          Sets the annot diff to work in the text mode.This would not initiate the GUI part of annot diff but it would calculate precision etc
 
Methods inherited from class gate.creole.AbstractVisualResource
cleanup, getFeatures, setFeatures, setHandle, setTarget
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 
Methods inherited from interface gate.util.NameBearer
getName, setName
 

Field Detail

DEBUG

private static final boolean DEBUG
Debug flag

keyDocument

private Document keyDocument
This document contains the key annotation set which is taken as reference in comparison

keyAnnotationSetName

private String keyAnnotationSetName
The name of the annotation set. If is null then the default annotation set will be considered.

responseDocument

private Document responseDocument
This document contains the response annotation set which is being compared against the key annotation set.

responseAnnotationSetName

private String responseAnnotationSetName
The name of the annotation set. If is null then the default annotation set will be considered.

responseAnnotationSetNameFalsePoz

private String responseAnnotationSetNameFalsePoz
The name of the annotation set considered in calculating FalsePozitive. If is null then the default annotation set will be considered.

annotationSchema

private AnnotationSchema annotationSchema
The annotation schema object used to get the annotation name

keyFeatureNamesSet

private Set keyFeatureNamesSet
A set of feature names bellonging to annotations from keyAnnotList used in isCompatible() and isPartiallyCompatible() methods

precisionStrict

private double precisionStrict
The precision strict value (see NLP Information Extraction)

precisionLenient

private double precisionLenient
The precision lenient value (see NLP Information Extraction)

precisionAverage

private double precisionAverage
The precision average value (see NLP Information Extraction)

recallStrict

private double recallStrict
The Recall strict value (see NLP Information Extraction)

recallLenient

private double recallLenient
The Recall lenient value (see NLP Information Extraction)

recallAverage

private double recallAverage
The Recall average value (see NLP Information Extraction)

falsePositiveStrict

private double falsePositiveStrict
The False positive strict (see NLP Information Extraction)

falsePositiveLenient

private double falsePositiveLenient
The False positive lenient (see NLP Information Extraction)

falsePositiveAverage

private double falsePositiveAverage
The False positive average (see NLP Information Extraction)

fMeasureStrict

private double fMeasureStrict
The F-measure strict (see NLP Information Extraction)

fMeasureLenient

private double fMeasureLenient
The F-measure lenient (see NLP Information Extraction)

fMeasureAverage

private double fMeasureAverage
The F-measure average (see NLP Information Extraction)

weight

public static double weight
The weight used in F-measure (see NLP Information Extraction)

annotationTypeForFalsePositive

private String annotationTypeForFalsePositive
This string represents the type of annotations used to play the roll of total number of words needed to calculate the False Positive.

formatter

protected static NumberFormat formatter
A number formater for displaying precision and recall

diffTable

private XJTable diffTable
The components that will stay into diffPanel

diffSet

private Set diffSet
Used to represent the result of diff. See DiffSetElement class.

keyPartiallySet

private Set keyPartiallySet
This field is used in doDiff() and detectKeyType() methods and holds all partially correct keys

responsePartiallySet

private Set responsePartiallySet
This field is used in doDiff() and detectResponseType() methods

keyAnnotList

private List keyAnnotList
This list is created from keyAnnotationSet at init() time

responseAnnotList

private List responseAnnotList
This list is created from responseAnnotationSet at init() time

textMode

private boolean textMode
This field indicates wheter or not the annot diff should run int the text mode

MAX_TYPES

public static final int MAX_TYPES
Field designated to represent the max nr of annot types and coolors for each type

DEFAULT_TYPE

public static final int DEFAULT_TYPE
A default type when all annotation are the same represented by White color

CORRECT_TYPE

public static final int CORRECT_TYPE
A correct type when all annotation are corect represented by Green color

PARTIALLY_CORRECT_TYPE

public static final int PARTIALLY_CORRECT_TYPE
A partially correct type when all annotation are corect represented by Blue color

SPURIOUS_TYPE

public static final int SPURIOUS_TYPE
A spurious type when annotations in response were not present in key. Represented by Red color

MISSING_TYPE

public static final int MISSING_TYPE
A missing type when annotations in key were not present in response Represented by Yellow color

RED

private final Color RED
Red used for SPURIOUS_TYPE

GREEN

private final Color GREEN
Green used for CORRECT_TYPE

WHITE

private final Color WHITE
White used for DEFAULT_TYPE

BLUE

private final Color BLUE
Blue used for PARTIALLY_CORRECT_TYPE

YELLOW

private final Color YELLOW
Yellow used for MISSING_TYPE

NULL_TYPE

private final int NULL_TYPE
Used in DiffSetElement to represent an empty raw in the table

BLACK

private final Color BLACK
Used in some setForeground() methods

colors

private Color[] colors
The array holding the colours according to the annotation types

scrollPane

private JScrollPane scrollPane
A scroll for the AnnotDiff's table

typeCounter

private int[] typeCounter
Used to store the no. of annotations from response,identified as belonging to one of the previous types.
Constructor Detail

AnnotationDiff

public AnnotationDiff()
Constructs a AnnotationDif
Method Detail

setAnnotationTypeForFalsePositive

public void setAnnotationTypeForFalsePositive(String anAnnotType)
Sets the annotation type needed to calculate the falsePossitive measure
Parameters:
anAnnotType - is the annotation type needed to calculate a special mesure called falsePossitive. Usualy the value is "token", but it can be any other string with the same semantic.

getAnnotationTypeForFalsePositive

public String getAnnotationTypeForFalsePositive()
Gets the annotation type needed to calculate the falsePossitive measure
Returns:
annotation type needed to calculate a special mesure called falsePossitive.

setKeyDocument

public void setKeyDocument(Document aKeyDocument)
Sets the keyDocument in AnnotDiff
Parameters:
aKeyDocument - The GATE document used as a key in annotation diff.

getKeyDocument

public Document getKeyDocument()
Returns:
the keyDocument used in AnnotDiff process

setKeyAnnotationSetName

public void setKeyAnnotationSetName(String aKeyAnnotationSetName)
Sets the keyAnnotationSetName in AnnotDiff
Parameters:
aKeyAnnotationSetName - The name of the annotation set from the keyDocument.If aKeyAnnotationSetName is null then the default annotation set will be used.

getKeyAnnotationSetName

public String getKeyAnnotationSetName()
Gets the keyAnnotationSetName.
Returns:
The name of the keyAnnotationSet used in AnnotationDiff. If returns null then the the default annotation set will be used.

setKeyFeatureNamesSet

public void setKeyFeatureNamesSet(Set aKeyFeatureNamesSet)
Sets the keyFeatureNamesSet in AnnotDiff.
Parameters:
aKeyFeatureNamesSet - a set containing the feature names from key that will be used in isPartiallyCompatible()

getKeyFeatureNamesSet

public Set getKeyFeatureNamesSet()
Gets the keyFeatureNamesSet in AnnotDiff.
Returns:
A set containing the feature names from key that will be used in isPartiallyCompatible()

setResponseAnnotationSetName

public void setResponseAnnotationSetName(String aResponseAnnotationSetName)
Sets the responseAnnotationSetName in AnnotDiff
Parameters:
aResponseAnnotationSetName - The name of the annotation set from the responseDocument.If aResponseAnnotationSetName is null then the default annotation set will be used.

getResponseAnnotationSetName

public String getResponseAnnotationSetName()
gets the responseAnnotationSetName.
Returns:
The name of the responseAnnotationSet used in AnnotationDiff. If returns null then the the default annotation set will be used.

setResponseAnnotationSetNameFalsePoz

public void setResponseAnnotationSetNameFalsePoz(String aResponseAnnotationSetNameFalsePoz)
Sets the responseAnnotationSetNameFalsePoz in AnnotDiff
Parameters:
aResponseAnnotationSetNameFalsePoz - The name of the annotation set from the responseDocument.If aResponseAnnotationSetName is null then the default annotation set will be used.

getResponseAnnotationSetNameFalsePoz

public String getResponseAnnotationSetNameFalsePoz()
gets the responseAnnotationSetNameFalsePoz.
Returns:
The name of the responseAnnotationSetFalsePoz used in AnnotationDiff. If returns null then the the default annotation set will be used.

setTextMode

public void setTextMode(Boolean aTextMode)
Sets the annot diff to work in the text mode.This would not initiate the GUI part of annot diff but it would calculate precision etc

isTextMode

public boolean isTextMode()
Gets the annot diff textmode.True means that the text mode is activated.

getAnnotationsOfType

public Set getAnnotationsOfType(int annotType)
Returns a set with all annotations of a specific type

getParameterValue

public Object getParameterValue(String paramaterName)
                         throws ResourceInstantiationException
Gets the value of a parameter of this resource.
Overrides:
getParameterValue in class AbstractVisualResource
Parameters:
paramaterName - the name of the parameter
Returns:
the current value of the parameter

setParameterValue

public void setParameterValue(String paramaterName,
                              Object parameterValue)
                       throws ResourceInstantiationException
Sets the value for a specified parameter.
Overrides:
setParameterValue in class AbstractVisualResource
Parameters:
paramaterName - the name for the parameteer
parameterValue - the value the parameter will receive

setParameterValues

public void setParameterValues(FeatureMap parameters)
                        throws ResourceInstantiationException
Sets the values for more parameters in one step.
Overrides:
setParameterValues in class AbstractVisualResource
Parameters:
parameters - a feature map that has paramete names as keys and parameter values as values.

getPrecisionStrict

public double getPrecisionStrict()
Returns:
the precisionStrict field

getPrecisionLenient

public double getPrecisionLenient()
Returns:
the precisionLenient field

getPrecisionAverage

public double getPrecisionAverage()
Returns:
the precisionAverage field

getFMeasureStrict

public double getFMeasureStrict()
Returns:
the fMeasureStrict field

getFMeasureLenient

public double getFMeasureLenient()
Returns:
the fMeasureLenient field

getFMeasureAverage

public double getFMeasureAverage()
Returns:
the fMeasureAverage field

getRecallStrict

public double getRecallStrict()
Returns:
the recallStrict field

getRecallLenient

public double getRecallLenient()
Returns:
the recallLenient field

getRecallAverage

public double getRecallAverage()
Returns:
the recallAverage field

getFalsePositiveStrict

public double getFalsePositiveStrict()
Returns:
the falsePositiveStrict field

getFalsePositiveLenient

public double getFalsePositiveLenient()
Returns:
the falsePositiveLenient field

getFalsePositiveAverage

public double getFalsePositiveAverage()
Returns:
the falsePositiveAverage field

setResponseDocument

public void setResponseDocument(Document aResponseDocument)
Parameters:
aResponseDocument - the GATE response Document containing the annotation Set being compared against the annotation from the keyDocument.

setAnnotationSchema

public void setAnnotationSchema(AnnotationSchema anAnnotationSchema)
Parameters:
anAnnotationSchema - the annotation type being compared. This type is found in annotationSchema object as field AnnotationSchema.getAnnotationName(). If is null then AnnotDiff will throw an exception when it comes to do the diff.

getAnnotationSchema

public AnnotationSchema getAnnotationSchema()
Returns:
the annotation schema object used in annotation diff process

init

public Resource init()
              throws ResourceInstantiationException
This method does the diff, Precision,Recall,FalsePositive calculation and so on.
Overrides:
init in class AbstractVisualResource

arangeAllComponents

protected void arangeAllComponents()
This method creates the graphic components and aranges them on this JPanel

printStructure

protected void printStructure(Set aDiffSet)
Used internally for debugging

doDiff

protected void doDiff(List aKeyAnnotList,
                      List aResponseAnnotList)
This method is the brain of the AnnotationSet diff and creates a set with diffSetElement objects.
Parameters:
aKeyAnnotList - a list containing the annotations from key. If this param is null then the method will simply return and will not do a thing.
aResponseAnnotList - a list containing the annotation from response. If this param is null the method will return.

detectKeyType

private int detectKeyType(Annotation anAnnot)
Decide what type is the keyAnnotation (DEFAULT_TYPE, MISSING or NULL_TYPE) This method must be applied only on annotation from key set.
Parameters:
anAnnot - is an annotation from the key set.
Returns:
three possible value(DEFAULT_TYPE, MISSING or NULL_TYPE)

detectResponseType

private int detectResponseType(Annotation anAnnot)
Decide what type is the responseAnnotation (PARTIALLY_CORRECT_TYPE, SPURIOUS or NULL_TYPE) This method must be applied only on annotation from response set.
Parameters:
anAnnot - is an annotation from the key set.
Returns:
three possible value(PARTIALLY_CORRECT_TYPE, SPURIOUS or NULL_TYPE)

addToDiffset

private void addToDiffset(AnnotationDiff.DiffSetElement aDiffSetElement)
This method add an DiffsetElement to the DiffSet and also counts the number of compatible, partialCompatible, Incorect and Missing annotations.