CXP-Powered I-MINDS

Capabilities 3.0

 

 

HOME

CURRENT STATUS

CXP+I-MINDS CAPABILITIES

TEAM

HISTORY

PUBLICATIONS

SOFTWARE DISTRIBUTION

CONTACT

 

BuddyGroup 3.0

 

This BuddyGroup capability was completed in February 2006 and revised in May 2006, and revised again in December 2006.  It has advanced message management, statistics display, and student group support.  All messages are tracked and themed using a message tree, allowing I-MINDS to track in fine resolution every group discussion.  It also computes statistics on the fly, allowing a student to monitor how his or her buddies (peers) have been doing in the group. 

 

This capability is the “bread-and-butter” of I-MINDS: it collects and analyzes data automatically for our student agents.  This also provides wonderful opportunities as a testbed for educational research studies.

 

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.  Buddy Group

 

1.1.  Introduction

 

In version 2, buddy group was its own capability modified from the chat capability included with ConferenceXP.  In I-MINDS version 3, buddy group is a capability mode of merged capability.  It retains the same form as the original capability with text boxes for displaying received messages and entering new messages.  This mode also retains the Send button from the original.  Improvements to chat include an additional text box where message you are responding two is displayed.  This text box includes a popup menu with two items: ‘History’ and ‘Clear’, whose functionality is described in the next section. This capability also contains an ‘Options’ menu with three items: ‘Display Statistics’, ‘Database Search’ and ‘Manage Buddy’, the first two of which are described in the next section.  The ‘Manage Buddy’ option is described, along with its form, in section 2.4.  In figure 2.1 we show an example of the Buddy Group capability form.

 

Figure 1.1. The Buddy Group capability form

   

1.2.  Flow of Control

   

Unlike the question answering mode in merged capability, there is only one version of buddy group.  This mode is designed to be used by both teachers and students simultaneously.  The buddy group mode connects to the I-MINDS database through merged capability agent class, described above.  Participants can send messages to each other by using the buddy group mode.  These messages are composed into a Message object using the methods in merged capability agent, described above.  The tags used from table 1.1 are Buddy_Message and Buddy_Response.  These Message objects are then multicast using the SendObject method to the rest of the classroom.  It is important to mention that only participants running buddy group mode in merged capability who are in the sender’s classroom will receive the message and only participants in your buddy group will display it.  This process is described in more detail in section 2.4, below.

 

In the buddy group mode, it is possible to select a previously received message by just clicking on it in the message text box.  The selected message is added to the response text box.  While the response text box contains a message, any new messages sent by the user will be 'in response' to this message. To clear the message just right-click the response text box to bring up the menu and select 'Clear'.  To view the Message Tree for the previously received message just select 'History' from popup menu.  See figure 2.2 for an example.  This will cause the MessageTree form to become visible, displaying the tree view for the message tree (figure 2.3).

   

Figure 1.2.  The popup menu for the Respond To field

 

Figure 1.3:  Message Tree for [16:58] Teacher: some question.

 

The BuddyGroup capability also tracks a wide range of statistics based on student message traffic.  These statistics can be viewed by students for anyone in their buddy group by selecting the ‘Display Statistics’ item in the ‘Options’ menu.  This will cause the Statistics form to appear.  For more information on the statistics tracked consult the documentation in the Statistics form class. 

 

The ‘Database Search’ item in the options menu brings up a form where participants can search for specific messages.  There are many filter options that the user can specify including: message substrings, sender identifier, message type, and even the dates received.  The database search form acts as an interface for users who wish to query the I-MIND database for messages sent in previous sessions.  This is helpful for users when they miss a session or are trying to find new buddies.  In the current version, there is no provision for proprietary information in the I-MINDS system; all logged messages are available to any participant.

   

1.3.  New Concepts

   

It is worth pointing out that messages for this capability mode and those for the question answering mode are both stored in the same table in the I-MINDS database.  In fact, from a design point of view we consider questions and messages to be the same thing.  Said another way, each question is a message in the I-MINDS database.  Questions asked to the teacher by students (in question answering) have their recipient flag set to 'TEACHER'.  All messages sent by buddy group have their recipient flag set to 'BUDDIES'.  In version 3, we have added two new recipient flags and modified the existing ones.  These new recipient flags are summarized in table 2.1.

   

Table 2.1:  Changes to Recipient Flags

BUDDY-MESSAGE

-->

Message starting new topic

BUDDY-RESPONSE

-->

Response to existing message

TEACHER-QUESTION

-->

Question to teacher

TEACHER-RESPONSE

-->

Response to question

 

For buddy group we introduce the concept of Message Trees.  Message Trees provide the ability for one message to initiate an expanding flow of dialog.  According to our concept, a Message Tree starts with a single message--a question asked by one of the students.  This message forms the root of the Message Tree.  Questions are displayed in bold by the buddy group form.  When another student responds to this question it this linkage is stored on the I-MINDS database. New messages can respond to either the original message or any previous response. 

 

This leads to a tree-like data structure and is why refer to them as message trees.  The above linkage is maintained in Message_Tree table in the I-MINDS database.  Because each message has a unique Message_ID it is possible to construct a Message Tree at any time.  The MessageTree class included in this project file does just that.  By using a recursive algorithm on the I-MINDS database the stored messages can be extracted and added to a tree view data object to facilitate display.

 

1.4.  Buddy Manager

   

In the pervious version of I-MINDS, we provided a dropdown menu of online participants for the user to select his or her buddies from.  This had the disadvantages that both the user and her respective buddy had to be online at the same time, for the buddy relationship to be established.  In the new version of I-MINDS we have added an entirely new interface for adding buddies, called the buddy manager.   Figure 2.4 shows a screenshot of the buddy manager form.  The buddy manager becomes visible whenever the user selected ‘Manage Buddy Form’ from the options menu in the buddy group mode.  The buddy manager form shows all the participants who are currently stored in the I-MINDS database and indicates whether they are on or offline.  There are two checkboxes for each participant, one for adding the participant as a buddy and the other for adding her as a buddy, temporarily.  Temp buddies are counted as buddies for purposes of receiving messages, but the relationship is asymmetric rather than symmetric.

 

Figure 2.4:  Buddy Manager Form

 

Maintaining the symmetric relationship between buddies requires a fairly complicated handshaking procedure between the two participants and the I-MINDS database.  When you remove a buddy a message is created use the Remove_Buddy tag and that message is sent to your old buddy.  The database immediately removes your old buddy from your buddy group.  When your old buddy receives the Remove_Buddy message, her agent will automatically remove you from her buddy group as well and inform her of this fact.  Adding a new buddy is somewhat more complicated because we must wait until your new buddy accepts the invitation to become buddies.  When you check the Buddy box for a participant, your agent sends an Add_Request message to your potential buddy.  When the message is received, her agent will popup a confirmation box asking her if she would like to add you as a buddy.  Based on her decision, her agent sends one of the following three response messages:  Add_Buddy, Response_Not_Added, Response_Cannot_Add.  The first indicates that she has added you as a buddy; your agent will then add her to your buddy group.  The second indicates that she has declined your offer of being a buddy and the third indicates that she cannot become your buddy because her buddy group is full. 

 

In version 3, it is possible to both add and remove buddies who are offline as well as online.  This is done by maintaining an offline mailbox of messages in the I-MINDS database.  If you try and add a participant as a buddy who is offline, your agent will leave her a message in the offline mailbox.  The next time she logs on her agent will check its mailbox and present her with the same confirmation box.  Depending on your status, her agent will either send a message directly or leave your agent a message with her decision.

   

5.  Database

 

The I-MINDS database is currently running MySQL version 5.  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 5.1 below.  The mysqldump textfile of the database can be found in the same folder as the source code. 

 

Unlike in previous versions, in version 3 we have completely done away with the ComponentTestLibarary.dll which contained DataAdapters.  The merged capability class now has its own database connection object, which is set to look at the DSN described in the section 6 below.  The merged capability agent class now contains almost all of the database queries necessary to run both merged capability and the buddy group and question answering modes.  Certain peripheral classes such as the MessageTree still maintain their own data tables, but use the database connections stored in merged capability.

 

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

 

As you can see from figure 5.1, the database for I-MINDS version 3 has become fairly complicated.  It has grown considerably from the one used in previous versions.  New tables were added to support the concept of classrooms.  As a matter of fact, the classrooms table is now the heart of the database replacing the sessions table from version 2.  We have retained the message table but added several new variables to support future work on agents.  Several new tables have been added to support the forthcoming structured group mode and the new buddy manager form in the buddy group mode.  There are several satellite tables used for recording statistics on PGM experiments.  The use of these tables will be addressed in future technical reports.

 

6.  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.5.  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 6.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 6.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 6.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 the capabilities.

 

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

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

 

To run the 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 DSN with the above information (see figure 6.1).  If you are running your own MySQL server the Server, User and Password entries may change from figure 6.1.

 

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

 

The merged capability should be pasted into the CXPClient folder in the manner of all capabilities.  The Stemmer folder containing combiner.exe and the licenseI-MINDS rtf file should each be pasted into the CXPClient folder.  There is also an images folder used by the virtual classroom which should be pasted into the same location.  Remember that there are two separate versions of the merged capability (one for teacher, another for student).

 

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 other than the statistics class 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 horrible concurrency issues with this implementation (see figure 5.1).  Because of the way capabilities work, it was very difficult to synchronize all the DataAdapters.  This led to all sorts of bizarre errors relating to database concurrency.  The decision was made to remove all the DataAdapters and replace them with SQL queries throughout the BuddyGroup codebase.  This eliminated the concurrency errors because all the students were dealing directly with the database (see figure 5.2).

 

Figure 5.1: Buddy Group v1 Design

 

Figure 5.2:  Buddy Group v2 Design

 

5.2. MAX(Session_ID)

 

In v1, the Session ID was determined by simply taking the MAX(Session_ID) from the database.  This worked well until we started using Question Answering at the same time.  A scenario occurred where Buddy Group was started and students joined and queried for their Session ID.  A Question Answering capability was then started incrementing the Session ID.  If additional students join the Buddy Group they will no longer receive the correct Session ID.

 

In v2, the Session ID is determined once when the capability is created.  It is then broadcast to each participant when they join the capability.  In affect, the Session ID is “buffered” for all participants.  Because of this, when the participant who started the capability leaves the Session ID is not lost.  This also solves the problem where a student accidentally starts up another Buddy Group capability.  Now Buddy Group and Question Answering can coexist peacefully without corrupting the database.

 

5.3. Students_In_Buddy_Group and Students_In_Session

 

In v1, both these tables were N:M linking tables connecting two other tables.  The limitation on N:M linking talbes is that each pair of values is a unique primary key.  The database will not allow us to have the same student in the same buddy group twice, for example.  In affect, we knew which students were in which Buddy Group or Sessions, but that is all we knew.  We wanted to be able to track which students where in a buddy group during an interval of sessions and when students joined and left a session.  This required more than just N:M linking tables.

 

Both the above tables were replaced with triply-linked tables.  Students_In_Buddy_Group now links with the Session table as well as the previous two.  Students_In_Session now has a timestamp key for when the student joins the session.  To reduce the amount of records triply-linked tables often produce we wanted to store intervals.  This was accomplished by adding a fourth column to each table which was not a primary key.  When records were added to either table this fourth column was initially null.  When the interval was completed this fourth column would be set.  For example when a student is initially added to Students_In_Buddy_Group a record similar to table 5.1 is added.  When and if the student is removed from the buddy group this record is updated and the Session_Removed value is set (table 5.2).  From this one record we deduce the student with the identifier lmille@cs.eunl.edu was a member of Buddy Group 22 from session 356 to 412.  This saves us 55 records in the database, not too shabby.

 

Student_Identifer

Group_ID

Session_Added

Session_Removed

lmille@cse.unl.edu

22

356

NULL

Table 5.1: Students_In_Buddy_Group record

 

Student_Identifer

Group_ID

Session_Added

Session_Removed

lmille@cse.unl.edu

22

356

412

Table 5.2:  Students_In_Buddy_Group record

 

5.4. Load Messages

In v1, each message was broadcast to each student immediately after it was added to the database.  This worked fine in practice, but happens if one of your buddies arrives late?  We decided it would be nice to have the option to ask the database for the messages sent to your buddies for this session.  We added the “Load Messages” menu item to the Options menu.  Pressing it queries the database for the messages sent during this session.  This list is filtered by who your buddies are.  It will not return messages for students who are not currently your buddies.  These messages are identically formatted to those received in real time.

 

 

5.5  MessageTree

 

The MessageTree class was modified so that it has the ability to generate a full message tree for any message regardless of its position in the tree.   This is done by first determining the root for message tree (the message ID which started the topic) and then generating the full subtree from this message.  This reduces the complexity of some of the queries in the Statistics class considerably.  The MessageTree class can be configured to only generate the subtree for the given message ID. 

 

5.6  Statistics

 

It was determined through testing that several of the statistics queries in v1 where not returning exactly the results we wanted.  A minor change to the way we stored messages in the database considerably reduced the complexity of some of the queries while increasing the validity of their results.  This was done by storing whether or not the message was a topic-starter or response in the Message table.  The Recipient column now contains the value “BUDDIES-TOPIC” or “BUDDIES-RESPONSE” where appropriate. 

 

The queries in v1 for Dialog Involvement only looked at the responses and their parents.  Thus they only worked only for message trees of max height 2.  In v2, we can query for all the messages that are “BUDDIES-TOPIC” and use the full message tree feature described above in MessageTree to compute the statistics for message trees of any height.  We were also able to clean up some of the statistics queries in v2 such as those for ComputeAverageResponseTime.  All queries now check the same session interval.  In v1, ComputeSessionMessages and ComputeSessionMessageToTeacher (along with their averages) did not use this session interval determined by the Calculate menu.  This has been fixed in v2.

 

5.7  Database Search

 

The Database Search form can be used by both students and teachers to look up both messages and users in the database.  Messages are searchable based on the message itself, the sender, the group they were sent to, by score, by session, and also by time and date the messages were received, answered, or discarded.  Any combination of these properties can be used at once thanks to intelligent querying.  Students are searchable by name and identifier.  The Database Search form is accessible from the Options menu.

 

HOME

CURRENT STATUS

CXP+I-MINDS CAPABILITIES

TEAM

HISTORY

PUBLICATIONS

SOFTWARE DISTRIBUTION

CONTACT