csli.dialog.app.calo.ai
Class ActionItemService

java.lang.Object
  extended by csli.dialog.app.calo.ai.ActionItemService
All Implemented Interfaces:
Service, ActionItemIdentifierService

public class ActionItemService
extends Object
implements ActionItemIdentifierService


Constructor Summary
ActionItemService()
           
 
Method Summary
 void feedbackOffline(String meetingUID, String person)
          Interpret (offline) all the feedback evidence provided by a particular person about a particular meeting.
 void feedbackOnline(String person, String feedback)
          Interpret (online) a specific piece of feedback evidence provided by a particular person about the current meeting, AND re-train models accordingly.
 List<String> getActionItems(String personId, String meetingUID)
          Given a processed meeting, list the action items detected.
protected  AnnotationAlgorithm getAlgorithm()
           
 CslitopicaiOpi_1_0 getCompleteAiModel(String personId, String meetingUID)
          Given a processed meeting, get the model containing all AI hyps.
 List<String> getDescriptions(String personId, String ai)
          Given an action item already detected, list possible values for its task description property.
 List<String> getDescriptions(String personId, String ai, String meetingUID)
          Given an action item already detected and the relevant meeting, list possible values for its task description property.
 List<String> getDiscussedTasks(String personId, String meetingUID)
          Given a processed meeting, list tasks on a person's to-do list which appear relevant to an action item discussion.
 Pair<XSDDateTime,XSDDateTime> getDiscussion(String personId, String ai)
          Given an action item already detected, find the start and end time of the related discussion.
 Pair<XSDDateTime,XSDDateTime> getDiscussion(String personId, String ai, String meetingUID)
          Given an action item already detected and the relevant meeting, find the start and end time of the related discussion.
 JPanel getGui()
          Get a Swing JPanel which provides a GUI to this service.
 List<String> getOwners(String personId, String ai)
          Given an action item already detected, list possible values for its owner property.
 List<String> getOwners(String personId, String ai, String meetingUID)
          Given an action item already detected and the relevant meeting, list possible values for its owner property.
 ActionItemIdentifierParameters getParameters()
           
 List<String> getTasks(String personId)
          List all tasks on a person's to-do list.
 List<String> getTimeframes(String personId, String ai)
          Given an action item already detected, list possible values for its timeframe property.
 List<String> getTimeframes(String personId, String ai, String meetingUID)
          Given an action item already detected and the relevant meeting, list possible values for its timeframe property.
 String getTitle()
          Get the name of this service as it should appear in the GUI.
 boolean isServiceAlive()
          Is the service happy and alive?
 List<String> processOffline(String meetingUID)
          Detect and hypothesize ActionItems within a Meeting (offline).
 void processOnline(String speak)
          Notify the detector of a new Speak utterance (online).
 List<String> reportOnline()
          Report (online) ActionItems detected but as yet unreported.
 List<String> reportOnline(long startTime, long endTime)
          Report (online) ActionItems detected within a time period.
 void reset()
          Reset the identifier (requiring it to be re-trained before next use).
 void setReportOptions(boolean includeSmartNotes, boolean includeSmartNotesFeedback, boolean includeCsliHyps, boolean includeCsliFeedback)
          Set the options for reporting action items, owners etc.
 boolean start(String meetingUID)
          Start (online) detecting and hypothesizing ActionItems for a Meeting.
 List<String> stop(String meetingUID)
          Stop (online) detecting and hypothesizing ActionItems for a Meeting, and report all those detected.
 boolean trainOffline()
          (Re-)train classifier models based on all the training data (including feedback) available so far.
 boolean trainOffline(List<String> sessions)
          (Re-)train classifier models based on a given list of training data sessions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ActionItemService

public ActionItemService()
Method Detail

processOffline

public List<String> processOffline(String meetingUID)
Description copied from interface: ActionItemIdentifierService
Detect and hypothesize ActionItems within a Meeting (offline).

Specified by:
processOffline in interface ActionItemIdentifierService
Parameters:
meetingUID - the ID of the meeting to process
Returns:
the (possibly empty) List of IDs of the ActionItems found, null on error

processOnline

public void processOnline(String speak)
Description copied from interface: ActionItemIdentifierService
Notify the detector of a new Speak utterance (online).

Specified by:
processOnline in interface ActionItemIdentifierService
Parameters:
speak - the ID of the utterance being passed

reportOnline

public List<String> reportOnline()
Description copied from interface: ActionItemIdentifierService
Report (online) ActionItems detected but as yet unreported.

Specified by:
reportOnline in interface ActionItemIdentifierService
Returns:
the (possibly empty) List of IDs of the ActionItems found, null on error

reportOnline

public List<String> reportOnline(long startTime,
                                 long endTime)
Description copied from interface: ActionItemIdentifierService
Report (online) ActionItems detected within a time period.

Specified by:
reportOnline in interface ActionItemIdentifierService
Parameters:
startTime - the beginning of the window in milliseconds since the epoch
endTime - the end of the window in milliseconds since the epoch
Returns:
the (possibly empty) List of IDs of the ActionItems found, null on error

reset

public void reset()
Description copied from interface: ActionItemIdentifierService
Reset the identifier (requiring it to be re-trained before next use).

Specified by:
reset in interface ActionItemIdentifierService

start

public boolean start(String meetingUID)
Description copied from interface: ActionItemIdentifierService
Start (online) detecting and hypothesizing ActionItems for a Meeting.

Specified by:
start in interface ActionItemIdentifierService
Parameters:
meetingUID - the ID of the meeting to process
Returns:
false on error, true otherwise

stop

public List<String> stop(String meetingUID)
Description copied from interface: ActionItemIdentifierService
Stop (online) detecting and hypothesizing ActionItems for a Meeting, and report all those detected.

Specified by:
stop in interface ActionItemIdentifierService
Parameters:
meetingUID - the ID of the meeting being processed
Returns:
the (possibly empty) List of IDs of the ActionItems found

trainOffline

public boolean trainOffline()
Description copied from interface: ActionItemIdentifierService
(Re-)train classifier models based on all the training data (including feedback) available so far.

Specified by:
trainOffline in interface ActionItemIdentifierService
Returns:
false on error, true otherwise

trainOffline

public boolean trainOffline(List<String> sessions)
Description copied from interface: ActionItemIdentifierService
(Re-)train classifier models based on a given list of training data sessions.

Specified by:
trainOffline in interface ActionItemIdentifierService
Parameters:
sessions - the filenames of the training sessions
Returns:
false on error, true otherwise

getActionItems

public List<String> getActionItems(String personId,
                                   String meetingUID)
Description copied from interface: ActionItemIdentifierService
Given a processed meeting, list the action items detected.

Specified by:
getActionItems in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
meetingUID - the ID of the meeting
Returns:
the (possibly empty) List of IDs of the ActionItems found

getDescriptions

public List<String> getDescriptions(String personId,
                                    String ai)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected, list possible values for its task description property.

Specified by:
getDescriptions in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
Returns:
the (possibly empty) List of task descriptions, ordered most confident first; null if the action item is not found in the KB

getDescriptions

public List<String> getDescriptions(String personId,
                                    String ai,
                                    String meetingUID)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected and the relevant meeting, list possible values for its task description property.

Specified by:
getDescriptions in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
meetingUID - the ID of the meeting
Returns:
the (possibly empty) List of task descriptions, ordered most confident first; null if the action item is not found in the KB

getDiscussion

public Pair<XSDDateTime,XSDDateTime> getDiscussion(String personId,
                                                   String ai)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected, find the start and end time of the related discussion.

Specified by:
getDiscussion in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
Returns:
a Pair of start and end time for the related discussion

getDiscussion

public Pair<XSDDateTime,XSDDateTime> getDiscussion(String personId,
                                                   String ai,
                                                   String meetingUID)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected and the relevant meeting, find the start and end time of the related discussion.

Specified by:
getDiscussion in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
meetingUID - the ID of the meeting
Returns:
a Pair of start and end time for the related discussion

getOwners

public List<String> getOwners(String personId,
                              String ai)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected, list possible values for its owner property.

Specified by:
getOwners in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
Returns:
the (possibly empty) List of owner names, ordered most confident first; null if the action item is not found in the KB

getOwners

public List<String> getOwners(String personId,
                              String ai,
                              String meetingUID)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected and the relevant meeting, list possible values for its owner property.

Specified by:
getOwners in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
meetingUID - the ID of the meeting
Returns:
the (possibly empty) List of owner names, ordered most confident first; null if the action item is not found in the KB

getTimeframes

public List<String> getTimeframes(String personId,
                                  String ai)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected, list possible values for its timeframe property.

Specified by:
getTimeframes in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
Returns:
the (possibly empty) List of timeframe descriptions, ordered most confident first; null if the action item is not found in the KB

getTimeframes

public List<String> getTimeframes(String personId,
                                  String ai,
                                  String meetingUID)
Description copied from interface: ActionItemIdentifierService
Given an action item already detected and the relevant meeting, list possible values for its timeframe property.

Specified by:
getTimeframes in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
ai - the ID of the action item
meetingUID - the ID of the meeting
Returns:
the (possibly empty) List of timeframe descriptions, ordered most confident first; null if the action item is not found in the KB

getDiscussedTasks

public List<String> getDiscussedTasks(String personId,
                                      String meetingUID)
Description copied from interface: ActionItemIdentifierService
Given a processed meeting, list tasks on a person's to-do list which appear relevant to an action item discussion.

Specified by:
getDiscussedTasks in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
meetingUID - the ID of the meeting
Returns:
the (possibly empty) List of task descriptions, ordered most confident first; null if the person/meeting is not found in the KB

getTasks

public List<String> getTasks(String personId)
Description copied from interface: ActionItemIdentifierService
List all tasks on a person's to-do list.

Specified by:
getTasks in interface ActionItemIdentifierService
Parameters:
personId - the ID of the person whose CALO we are querying
Returns:
the (possibly empty) List of task descriptions; null if the person/meeting is not found in the KB

getCompleteAiModel

public CslitopicaiOpi_1_0 getCompleteAiModel(String personId,
                                             String meetingUID)
Description copied from interface: ActionItemIdentifierService
Given a processed meeting, get the model containing all AI hyps. May include typed notes and feedback, given the current state of the reporting options

Specified by:
getCompleteAiModel in interface ActionItemIdentifierService
Parameters:
personId - the (name/alt) ID of the person whose CALO we are querying
Returns:
the OPI model, with feedback applied if specified

setReportOptions

public void setReportOptions(boolean includeSmartNotes,
                             boolean includeSmartNotesFeedback,
                             boolean includeCsliHyps,
                             boolean includeCsliFeedback)
Description copied from interface: ActionItemIdentifierService
Set the options for reporting action items, owners etc. via the getX() methods.

Specified by:
setReportOptions in interface ActionItemIdentifierService
Parameters:
includeSmartNotes - if true, include SmartNotes-generated action items
includeSmartNotesFeedback - if true, apply user feedback to SmartNotes-generated action items
includeCsliHyps - if true, include this agent's action item hypotheses
includeCsliFeedback - if true, apply user feedback to this agent's action item hypotheses

feedbackOffline

public void feedbackOffline(String meetingUID,
                            String person)
Description copied from interface: ActionItemIdentifierService
Interpret (offline) all the feedback evidence provided by a particular person about a particular meeting. This prepares training data for re-training, but does not actually re-train models.

Specified by:
feedbackOffline in interface ActionItemIdentifierService
Parameters:
meetingUID - the ID of the meeting
person - the ID of the person

feedbackOnline

public void feedbackOnline(String person,
                           String feedback)
Description copied from interface: ActionItemIdentifierService
Interpret (online) a specific piece of feedback evidence provided by a particular person about the current meeting, AND re-train models accordingly.

Specified by:
feedbackOnline in interface ActionItemIdentifierService
Parameters:
person - the ID of the person
feedback - the ID of the feedback action

getGui

public JPanel getGui()
Description copied from interface: Service
Get a Swing JPanel which provides a GUI to this service.

Specified by:
getGui in interface Service

getTitle

public String getTitle()
Description copied from interface: Service
Get the name of this service as it should appear in the GUI.

Specified by:
getTitle in interface Service

isServiceAlive

public boolean isServiceAlive()
Description copied from interface: Service
Is the service happy and alive?

Specified by:
isServiceAlive in interface Service
Returns:

getParameters

public ActionItemIdentifierParameters getParameters()
Returns:
the AIID classifier parameters

getAlgorithm

protected AnnotationAlgorithm getAlgorithm()
Returns:
the AIID classifier algorithm