CXP-Powered I-MINDS

Capabilities 2.0

 

 

HOME

CURRENT STATUS

CXP+I-MINDS CAPABILITIES

TEAM

HISTORY

PUBLICATIONS

SOFTWARE DISTRIBUTION

CONTACT

 

QuestionAnswering 2.0

 

This QuestionAnswering capability was completed in December 2005 and revised in May 2006.  This capability has two views: an instructor application and a student application.  The person in charge of the Q&A session (e.g., an instructor) can pick and choose questions to answer.  The application helps manage the questions.  The users asking questions (e.g., a student) can review their questions and answers. They can also ask questions.

 

This capability also has agent intelligence.  The instructor application scores each question based on keywords and also “machine learns” from the instructor about what keywords are important behind-the-scenes, without interfering with the instructor’s actions.  This allows the capability to learn to score each question more accurately over time.

 

As this is one of our intelligent capabilities (which are usually significantly complex than our other capabilities), here we provide a detailed discussion of the features and requirements, including installation guideline.

 

1.  Capability

 

1.1.           Introduction

 

The Question and Answering capability is based on the basic chat capability that comes with Conference XP.  It uses the communication protocols common to all capabilities to multicast messages to all participants in the Venue.  These messages are strings containing pertinent information such as the identifier who sent the message bound between xml-style tags which we have defined.  This simplifies the process of parsing the messages when they are received.

 

The Question and Answering capability is designed to run in either the I-MINDS or the CXP Client.  There are actually two separate versions of the capabilities which look the same to CXP—the teacher and student versions.  These versions differ in many ways, the most significant being their capability forms and the teacher version connecting to a server-side database.  The database is discussed in more detail below although it is worth pointing out that some tables are updated by the I-MINDS Client.  This means that some tables which should be updated are not when Q&A is run using the CXP client.  These have minimal impact on the Q&A client and are summarized in table 1.1.  Screenshots for the Student and the Teacher version of Q&A can be found in figure 1.1 and 1.2 respectively

 

1.2.           Student Flow of Control

 

Students using Question Answering can ask the teacher a question by entering the question into the box at the bottom of the Student form (see figure 1.2) and pressing the Send button.  The question is then encapsulated into using the question answering tags described below.  The resulting string is then multicast using the SendObject method to the rest of the classroom.  In affect, the student version broadcasts the question to all the other instances of the Question Answering capability (both teacher and student) running on other machines.  The teacher version will be listening for such questions.

 

The student version also listens for responses sent by the teacher version.  Whenever a response is received the identifier is checked against the identifier for the local participant.  If a match is found then the response is being sent to this student version.  The actual response content is displayed along with the original question in the ‘Recent Answer’ and ‘Recent Question’ boxes.  They are also added to the ‘Prior Messages’ table.  Figure 1.3 shows how the student version looks after it has received a response.  Students can resend questions to the teacher by right-clicking on the question or answer and pressing ‘Resend’ on the popup menu.

 

1.3.  Teacher Flow of Control

 

Teachers using the Question Answering capability will see the Teacher form shown in figure 1.1.  The Teacher form displays all the questions that have been previously asked by Students.  Questions that have already been answered or discarded will appear in the appropriate tables.  Questions that are still waiting for a response will appear in the ‘Received Questions’ table, sorted by score.  When the teacher right-clicks on a message in the ‘Received Questions’ table he or she has the option of either answering or discarding the question.  If the teacher chooses to answer the question the sender’s identifier will appear in the send to label.  The teacher can then write a response to this question and press send.  The answer is then encapsulated into using the question answering tags described below.  The resulting string is then multicast using the SendObject method to the rest of the classroom.  When the teacher answers or discards the question the question answering agent will modify the weights of the keywords it contains.  See the Question Answering Agent section.

 

As mentioned above, the teacher version listens for questions asked by students.  When such a question is received the question answering agent first determines what score the question should receive.  This is done by first parsing and tokenizing each word in the question.  For more information please consult the Question Answering Agent section below.  The question immediately appears in the ‘Received Questions’ table and is available to the teacher.  As this table is sorted by score, good questions will appear higher on the table while bad questions might not even appear on the table unless the teacher scrolls down.

 

1.4.  Question Answering Group Tags

 

The student question uses the following format:

<to>toTeacher variable</to>

<question>question string</question>

<from>sender identifier</from>

   

The teacher response uses the following format:

<to> student identifier</to>

<question>question string</question>

<response>response string</response>

<from>sender identifier</from>

       

In Question Answering, the toTeacher variable is used instead of a specific identifier.  It is the responsibility of the teacher version of the capability to filter the messages received.  For the teacher version the toTeacher variable indicates that the string contains a question asked by a student.  The student versions will ignore messages containing the toTeacher variable and messages containing an identifier that does not match their local identifier.

 

1.5. Intelligent Agent

 

The teacher version of the question answering capability contains an intelligent agent whose purpose is to aid the teacher in deciding which questions to answer.  It does this by assigning a score to each question as it is received from the student.  This score is determined by the length of the question and the weights of the keywords it contains.  When a question is first received it is tokenized and stemmed by a natural language processing program.  The stems are checked against the keywords stored in the database.  If a match is found the weight of the keyword is added to a running total.  This total is then normalized along with the length of the question to determine the score.

 

The intelligent agent also adjusts the keyword weights up or down.  This is done when the teacher decides to answer or discard a question.  When the teacher answers a question the question is once against tokenized and stemmed.  The weights for keywords found in the question are increased.  Stems that are not found in the keywords table are added as keywords with a low weight.  When the teacher discarded a question the weights for the keywords found in that question are decreased. 

 

The natural language processing program we are using is called “combiner.exe”.  It maintains a taboo list of certain common words.  All keywords are automatically normalized by the intelligent agent to fit a certain range.  This prevents the weight associated with a common keyword from getting so large that it dominates the rest.

 

 

Table 1.1:  Several minor ramifications of using Q&A with the I-MINDS client.

 

Figure 1.1:  Screenshot of teacher version of Q&A

 

Figure 1.2:  Screenshot of student version of Q&A

 

Figure 1.3:  Student version receiving a response.

 

 

2.  Teacher Options

 

To further assist the teacher we have developed the Virtual Classroom and Statistics Charts modules.  These modules can be started from the Options menu. 

 

2.1.  Virtual Classroom

 

The Virtual Classroom form is very useful for teachers.  It displays information about each student, message, and topic from a classroom.  Students are represented by small pie charts, with each chart split into five pieces.  Each piece corresponds to a different statistics category.  The pieces are colored blue if the student is at or above the thresholds for those statistics (as set by the teacher) and colored red if the student falls below the set thresholds.  These thresholds are stored in the database so the teachers can just “set it and forget it”, rather than worry about their levels.  The statistics are computed for the last number of sessions specified at the bottom left corner of the screen.

 

The messages and topics for the classroom are displayed in list views on the right hand side of the screen.  All information tracked about each message/topic by I-Minds is displayed in these panes.  Also, just like in Database Search, a message can be right clicked on, bringing up a “Message Tree” option.  Choosing this option causes a tree describing the thread containing that message/topic to be drawn for the user to work with.

 

Finally, this form can also be used to find out specific information about individual students and buddy groups in the classroom.  A student’s pie chart can be right clicked to display all the messages by just that one student, or to find out information about their buddy groups.  If the “Buddies” option is chosen, just that student’s buddies are displayed along with their messages and topics.  Additionally, there are check boxes for each student which can be checked to get overlapping buddy groups.  For example, say a teacher wanted to find out information about all the buddies that both student A and student B share.  Their check boxes can be selected and then the teacher can click on the Buddies button at the bottom of the form to display information about the overlapping buddies.

 

2.3.  Statistics Charts

 

The Statistics Charts form is used to display statistics information about students in graphical form.  A teacher can choose to display all the statistics of any individual student or the ratings of each student for an individual statistic, both in bar chart form.  Once again, statistics that fall at or above the thresholds set by teachers are shown in a blue color and those that fall below thresholds are shown as a red color.  The thresholds are the same ones recorded in the database by the Virtual Classroom form, and any change to the thresholds is propagated in both forms.  There is also the option of displaying a legend for the statistics by clicking on the Legend button.  Once again, the stats are computed for the number of sessions specified in the bottom left corner of the screen, which is also tied to the corresponding option in Virtual Classroom.

 

 

Figure 2.1: A Virtual Classroom Form displaying info about two students

 

Figure 2.2: A Statistics Charts Form displaying a student’s stats in graphical form

 

 

3.  Database

 

The I-MINDS database is currently running MySQL version 4.1.  In the future we intend to switch over from MySQL to SQL Server or something similar.  The basic structure should easily transfer over to any relational database.  The database was designed using a combination of DBDesigner4, an open source designer from fabForce, and phpMyAdmin-2.6.3.  For an illustration of the I-MINDS database consult figure 3.1 below.  The mysqldump textfile of the database can be found in the same folder as the source code. 

 

On the C# side, the database hook is contained in the ComponentTestLibrary.dll.  This dll, whose source is provided, consists of a ComponentModel class called DatabaseWrapper and another class called DatabaseMethods, along with the dataset schema DataSet1.xsd.  The DatabaseWrapper class consists of numerous DataAdapters designed with the form editors.  The dataset schema was generated from these DataAdapters using the wizard. 

 

Figure 3.1:  The DBDesigner model for the I-MINDS database

 

Wherever possible we have tried to conform to the C# database connection model, filling the dataset from multiple DataAdapters.  The tables in the dataset can then be hooked to DataGrids or DataViews for display.  We use OdbcCommand builders to generate both the update and insert queries with two exceptions.  We the Keyword_Ranking and Message DataAdapters we experienced numerous DatabaseConcurrency exceptions which claimed that 0 rows were updated.  Despite much experimentation we were unable to lock down this exception.  Our solution was to write our own Update and Insert queries and run them on each row in the DataTables based on row states.  This seemed to eliminate the problem.

 

4.  Installation

 

This section leads you through the installation for ConferenceXP and our capabilities.  The first program to install is the mysql-connector-odbc-3.51 driver.  We have included this with our source code.  Next, if you have not already done so download the CXP Client version 3.2.  Before you install it make sure that the Microsoft Journal Viewer has been installed.  Please consult the ConferenceXP client installation guide for more information. 

 

We provide the database dump file so that users can upload the I-MINDS database to their local server.  The installation is relatively straight forward assuming you have access to MySQL server version 4.1 or higher.  Table 4.1 gives the console command.  If your machines do not have access to the internet you will need to install your own venue service on one of your machines.  The Venue Service can be downloaded from the ConferenceXP website.

 

 

mysql –uusername –ppassword < iminds.sql

Table 4.1:  console command to upload database

 

Alternatively, you could connect to the I-MINDS database running on cse.unl.edu.  The user name and password are given in Table 4.2. A word of caution though, the I-MINDS database on CSE is our test bed and is subject to design revisions which could break previous versions of Q&A or Buddy Group.

 

Site: cse.unl.edu; Database: lmille; MySQL user: lmille; MySQL password: GNEZWS

Table 4.2:  connection information for the I-MINDS database on CSE

 

To run either capability you must first create an ODBC data source in Windows XP.  This data source is what the C# code will use to connect to the database.  To do this, open Administrative Tools/Data Sources (ODBC).  Add a new System DNS with the above information (see figure 4.1).  If you are running your own MySQL server the Server, User and Password entries may change from figure 4.1.

 

Figure 4.1: Data Source for the I-MINDS database.

 

The Buddy Group or Question Answering capabilities should be pasted into the CXPClient folder in the manner of all capabilities.  You should also paste the ComponentTestLibrary.dll into the same folder.  The Stemmer folder containing combiner.exe and the licenseI-MINDS rtf file should each be pasted into the CXPClient folder.  Remember that there are two separate versions of the Q&A capability (teacher and student).  The Question Answering capability uses the xApplication4 payload type while Buddy Group uses the xApplication5 payload type.

 

5.  Change Log

 

This section covers the changes the I-MINDS team has made to the BuddyGroup capability with version 2.  These changes include additional features, bug fixes, and database structure changes.  None of these changes break the functionality described above.

 

5.1.  Data Adapters

 

One significant change we made in this version is how the database is accessed by our source code.  In v1 most of our source code in Question Answering used C# DataAdapters to access the database.  In brief, DataAdapters select all the records in a table and populate a C# DataTable with the results.  This can be very convenient because once the DataTable is populated you can manipulate the data (add, remove, update records) without querying the database.  However, we encountered some concurrency problems with the implementation.  While these were not as bad as those encountered by Buddy Group, the decision was made to remove all the DataAdapters and replace them with SQL queries.

 

5.2. Adding Keywords

 

In v1, there was no way to add additional keywords to the database without writing the queries yourself.  This was an oversight on our part, in the old I-MINDS client we had a form for adding new keywords and weights.  When we made the decision to use the CXP Client, this was a feature that somehow got left out.  In v2, this feature is back.  The teacher can at any time select the Add Keyword item from the Options menu.  This brings up a form containing a DataGrid with all the keywords and weights stored in the database.  The user can delete existing keywords by clicking on the row and pressing delete.  New keywords can be added by clicking on the star row at the bottom.  Existing keywords can be updated by selecting their entries and typing in a new weight.  To save the changes simply press the Update button.  See figure 5.1 for more information.

Figure 5.2:  Add Keyword Form

 

5.3. Virtual Classroom

 

The Virtual Classroom form is very useful for teachers.  It displays information about each student, message, and topic from a classroom.  Students are represented by small pie charts, with each chart split into five pieces.  Each piece corresponds to a different statistics category.  The pieces are colored blue if the student is at or above the thresholds for those statistics (as set by the teacher) and colored red if the student falls below the set thresholds.  These thresholds are stored in the database so the teachers can just “set it and forget it”, rather than worry about their levels.  The statistics are computed for the last number of sessions specified at the bottom left corner of the screen.  The Virtual Classroom form is accessible from the Options menu, in the teacher version.

 

5.4. Statistics Charts

 

The Statistics Charts form is used to display statistics information about students in graphical form.  A teacher can choose to display all the statistics of any individual student or the ratings of each student for an individual statistic, both in bar chart form.  Once again, statistics that fall at or above the thresholds set by teachers are shown in a blue color and those that fall below thresholds are shown as a red color.  The thresholds are the same ones recorded in the database by the Virtual Classroom form, and any change to the thresholds is propagated in both forms.  There is also the option of displaying a legend for the statistics by clicking on the Legend button.  Once again, the stats are computed for the number of sessions specified in the bottom left corner of the screen, which is also tied to the corresponding option in Virtual Classroom.  The Student Charts form is accessible from the Options menu, in the teacher version.

 

 

HOME

CURRENT STATUS

CXP+I-MINDS CAPABILITIES

TEAM

HISTORY

PUBLICATIONS

SOFTWARE DISTRIBUTION

CONTACT