net.sourceforge.nite.datainspection.timespan
Class DiscretizedTimelineInspection

java.lang.Object
  extended by net.sourceforge.nite.datainspection.timespan.DiscretizedTimelineInspection

public class DiscretizedTimelineInspection
extends java.lang.Object

Timeline Discretization

PROGRAM FOR THIS ANALYSIS NOT YET COMMITTED TO CVS

Some annotations do not lend themselves well for the event-like interpretation underlying the Segment alignment inspection.
[[EXAMPLE?]]
For such annotations we developed an analysis based on the amount of overlap for different labels. In the (hypothetical) example fragment below, we encounter from left to right the following agreements and disagreements: disagr(red, green), disagr(blue, green), agr(blue,blue), disagr(blue,green), disagr(blue,red), agr(red,red). Note the difference with the segment alingment based inspection. In the segment alignment inspection the first blue segment of the two annotators would be seen as "perfect agreement for identification and label, with some disagreement about timing". In the timeline discretization analysis the short overlap between green and blue at the beginning is counted as a label disagreement.


an hypothetical annotation fragment
This analysis is based on a discretization of the timeline. The image below shows this discretization for a certain size 'th'. The small timeline segments are considered the Items in the reliability analysis; the Values are derived from the largest annotation element in this segment. For example, the first few labels for the small segments for the upper annotation are "red, red, blue, blue, blue, blue, ..." etc. The (dis)agreements between the annotators start then with "disagr(red, green), disagr(red, green), disagr(blue, green), agr(blue,blue), agr(blue,blue), agr(blue,blue), disagr(blue,green), ..." etc. Note that longer stretches of a certain (dis)agreement count more in the final outcome than the shorter stretches. Furthermore, setting 'th' too high means that small annotation elements will not be counted anymore.

the annotation fragment discretized
The documentation of the class DiscretizedTimelineInspection explains in detail how such inspection along these lines is supported by the packages, including an explanation how the calculation of kappa and alpha metrices is supported, and the automatic creation of confusion tables. It also explains how varying 'th' has an impact on the outcome of the reliability measures.


Field Summary
 java.lang.String agentName
          the name of the agent for which you want to analyse the annotations.
 java.lang.String codingName
          the name of the Coding in which the boundaries are to be found
 java.lang.String corpusName
          corpus
 java.lang.String observationName
          observation
 java.lang.String segmentElementName
          the name of the Elements in the Layer in that Coding in which the boundaries are to be found
 java.lang.String segmentsLayer
          the name of the Layer in that Coding in which the boundaries are to be found
 
Constructor Summary
DiscretizedTimelineInspection(java.lang.String c, java.lang.String o, java.lang.String codingName, java.lang.String segmentsLayer, java.lang.String segmentElementName, java.lang.String agentName, NOMElementToTextDelegate segmentToText, Predicate isIgnoreP, NOMElementToValueDelegate segmentToValue, DistanceMetric labelDistanceMetric, double thMin, double thMax, int thSteps)
           
 
Method Summary
 void collectClassifications(double thMin, double thMax, int thSteps)
          Collect for all threshold values the derived classifications for all annotators, using the TimelineDiscretizationClassificationFactory.
 void collectMatrices()
          Collect for all Classification pairs the confusion and coincidence matrices used for calculation of reliability and inspection of confusions.
 void collectSegments()
          Collect the segments for all annotators.
 void discretizeTimeline()
           
 void drawLegend()
           
 void generateThresholdValues(double thMin, double thMax, int thSteps)
           
 Clock getClock()
           
 ClockFace getClockFace()
          Returns the clockface of this class.
 NOMWriteCorpus getCorpus()
           
 java.lang.String getCorpusName()
           
 NiteMetaData getMetaData()
           
 java.lang.String getObservationName()
           
 void initReportPanel()
           
 void renderSegments()
           
 java.util.List search(java.lang.String query)
           
 void showConfusionTables()
          Show the confusion tables in internal frames on the desktop
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

corpusName

public java.lang.String corpusName
corpus


observationName

public java.lang.String observationName
observation


codingName

public java.lang.String codingName
the name of the Coding in which the boundaries are to be found


segmentsLayer

public java.lang.String segmentsLayer
the name of the Layer in that Coding in which the boundaries are to be found


segmentElementName

public java.lang.String segmentElementName
the name of the Elements in the Layer in that Coding in which the boundaries are to be found


agentName

public java.lang.String agentName
the name of the agent for which you want to analyse the annotations. If you want to analyse an interaction coding, this parameter should be null

Constructor Detail

DiscretizedTimelineInspection

public DiscretizedTimelineInspection(java.lang.String c,
                                     java.lang.String o,
                                     java.lang.String codingName,
                                     java.lang.String segmentsLayer,
                                     java.lang.String segmentElementName,
                                     java.lang.String agentName,
                                     NOMElementToTextDelegate segmentToText,
                                     Predicate isIgnoreP,
                                     NOMElementToValueDelegate segmentToValue,
                                     DistanceMetric labelDistanceMetric,
                                     double thMin,
                                     double thMax,
                                     int thSteps)
Method Detail

collectSegments

public void collectSegments()
Collect the segments for all annotators. Also initializes allAnnotatorPairs,allUsedAnnotators,actualNoOfAnn.


collectClassifications

public void collectClassifications(double thMin,
                                   double thMax,
                                   int thSteps)
Collect for all threshold values the derived classifications for all annotators, using the TimelineDiscretizationClassificationFactory.


collectMatrices

public void collectMatrices()
Collect for all Classification pairs the confusion and coincidence matrices used for calculation of reliability and inspection of confusions.


initReportPanel

public void initReportPanel()

renderSegments

public void renderSegments()

drawLegend

public void drawLegend()

showConfusionTables

public void showConfusionTables()
Show the confusion tables in internal frames on the desktop


getCorpusName

public java.lang.String getCorpusName()

getObservationName

public java.lang.String getObservationName()

getCorpus

public NOMWriteCorpus getCorpus()

getMetaData

public NiteMetaData getMetaData()

getClock

public Clock getClock()

getClockFace

public ClockFace getClockFace()
Returns the clockface of this class. A clockface is the 'play control panel' for the video and audio, and in this tool for the virtual meeting animation as well. Before you initialize this, you must have at least a mainframe, a desktop and an initialized corpus.


generateThresholdValues

public void generateThresholdValues(double thMin,
                                    double thMax,
                                    int thSteps)

discretizeTimeline

public void discretizeTimeline()

search

public java.util.List search(java.lang.String query)