CSLI Test Architecture
This document contains information about CSLI's programming and software architecture that is relevant to answering CSLIs PQs in the Y3 test. It is intended as documentation for CATS scripters and test team members. For information pertaining to individual PQs, see the
CaloY3TestQuestions page - or, for new Y4 questions, the
CaloY4TestQuestions page.
Java API vs. OAA Solvables
All CSLI software component interfaces are published as Java "services" which run on the meeting server. To enable answering of PQs from CATS scripts, we have provided OAA solvables which act as wrappers to the Java APIs. Therefore, clients should view the Javadocs to find out more detailed information about the interface. The solvables below simply replicate the necessary methods in the Java interface, perhaps with some minor modifications to the way the arguments are accepted and returned.
Important Notes about Arguments and their Format
The 'input' arguments (i.e. those instantiated in the solvable, rather than the uninstantiated argument expected to be unified with the result), must always be specified as strings:
- For arguments which name meetings, the system currently requires only the first part of the meeting name (before the _2006_etc timestamp part), with all space, period and underscore characters replaced by dashes
- For arguments which name users, the system currently requires all space characters to be replaced by underscores
- For arguments which specify times, the system currently requires the use of the iCal / XSD dateTime format
Special Solvables
The following are solvables which address meta-issues with the OAA interface.
-
csliLockOaa(LockOn)
- sets whether the OAA interface will answer queries or not, used during importing to prevent concurrency problems
Action Item Solvables
This section describes the OAA solvables which provide access to the information provided by the
ActionItemIdentifierService.
Learning Parameterization
The following solvable configures the behaviour of the action item service, determining which specific types of information and feedback will be to contributed to the answer (to allow comparison of learned and not-learned information). See
setReportOptions in the Java interface for more details.
-
csliSetActionItemOptions(SmartNotes, SmartNotesFeedback, CsliHyps, CsliFeedback)
- configures the service for LCALO/BCALO use
Solvable List
The following is a complete list of the solvables that are used to answer action item PQs, as referred to in the
individual PQ documentation. All arguments should be provided as strings (surrounded in single-quotes) - see above for required formats.
-
csliGetActionItems(Person, Meeting, ActionItemsResult)
- unifies ActionItemsResult with a list of AI identifiers as strings
-
csliGetActionItemDescriptions(Person, ActionItem, Meeting, DescriptionsResult)
- unifies DescriptionsResult with a list of the AI's descriptions as strings
-
csliGetActionItemDescriptions(Person, ActionItem, DescriptionsResult)
- unifies DescriptionsResult with a list of the AI's descriptions as strings
-
csliGetActionItemDiscussion(Person, ActionItem, Meeting, DiscussionResult)
- unifies DiscussionResult with a list containing the start and end time of discussion of the AI
-
csliGetActionItemDiscussion(Person, ActionItem, DiscussionResult)
- unifies DiscussionResult with a list containing the start and end time of discussion of the AI
-
csliGetActionItemOwners(Person, ActionItem, Meeting, OwnersResult)
- unifies OwnersResult with a list of the AI's owners' names as strings
-
csliGetActionItemOwners(Person, ActionItem, OwnersResult)
- unifies OwnersResult with a list of the AI's owners' names as strings
-
csliGetActionItemTimeframes(Person, ActionItem, Meeting, TimeframesResult)
- unifies TimeframesResult with a list of the AI's timeframe descriptions as strings
-
csliGetActionItemTimeframes(Person, ActionItem, TimeframesResult)
- unifies TimeframesResult with a list of the AI's timeframe descriptions as strings
- NEW FOR Y4:
csliGetDiscussedTasks(Person, Meeting, TasksResult)
- unifies TasksResult with a list of those of Person's TOWEL tasks which were discussed in Meeting
Topic Solvables
This section describes the OAA solvables which provide access to the information provided by the
TopicSegmenterService
Learning Parameterization
No learning parameterization has been defined for topic PQs, so there is no relevant info here.
Solvable List
The following is a complete list of the solvables that are available to answer topic-based PQs, as referred to in the
individual PQ documentation. All arguments should be provided as strings (surrounded in single-quotes) - see above for required formats.
In addition - topic arguments and return values are string identifiers which are created using the topic creation interface supplied as part of the meeting browser (see
meeting browser documentation).
-
csliExtractTopic(Meeting, StartTime, EndTime, TopicResult)
- unifies TopicResult with the topic that was discussed around the specified time interval (specified as the topic's string identifier)
- Note: The string 'null' may be unified with TopicResult if the queried time interval contains no utterances
-
csliExtractTopic(Meeting, Time, TopicResult)
- unifies TopicResult with the topic that was discussed around the specified time (specified as the topic's string identifier)
- Note: The string 'null' may be unified with TopicResult if the queried time interval contains no utterances
-
csliExtractTopicBoundaries(Meeting, Time, BoundariesResult)
- unifies BoundariesResult with a list containing the start and end time for the topic which was discussed at the specified time
-
csliGetTopicBreaks(Meeting, BreaksResult)
- unifies BreaksResult with a list of times which locate the breaks between topics for the specified meeting
-
csliGetTopics(Meeting, TopicsResult)
- unifies TopicsResult with a list of topics discussed in Meeting
-
csliLocateTopic(Meeting, Topic, LocateResult)
- unifies LocateResult with a list containing the start and end time for the region of the meeting where a topic was discussed
-
csliSearchTopic(Topic, SearchResult)
- unifies SearchResult with a list of quadruples (lists of length 4) for each topic that is found in the corpus: [meetName, startTime, endTime, probability], where each value is a string except the probability which is a double
-
csliWasDiscussed(Meeting, Topic, WasDiscussedResult)
- unifies WasDiscussedResult with a string 'true' or 'false' as to whether the topic was discussed in the meeting
-
csliGetRelevantTopic(TopicOrString, TopicResult)
- unifies TopicResult with the topic which is most relevant to TopicOrString, which can be either the name of a topic or a plain text query
- Note: The string 'null' may be unified with TopicResult if no sufficiently relevant topic can be found
-
csliGetRelevantTopic(TopicOrString, Meeting, TopicResult)
- unifies TopicResult with the topic discussed in Meeting which is most relevant to TopicOrString, which can be either the name of a topic or a plain text query
- Note: The string 'null' may be unified with TopicResult if no sufficiently relevant topic can be found
- NEW FOR Y4:
csliIsRelevant(TopicOrString, Topic, IsRelevantResult)
- unifies IsRelevantResult with a string 'true' or 'false' depending on whether Topic is sufficiently relevant to TopicOrString, which can be either the name of a topic or a plain text query
- NEW FOR Y4:
csliIsRelevant(WordList, FrequencyList, Topic, IsRelevantResult)
- unifies IsRelevantResult with a string 'true' or 'false' depending on whether Topic is sufficiently relevant to the word distribution represented by WordList (a list of word strings) and FrequencyList (a list of possibly weighted word frequencies)