Abstract:
An interaction environment for presentation of content to a population of users includes either or both of a plurality of cohort interaction environments and one or more content-linked interaction environments.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 61/595,307, filed on Feb. 6, 2012, the content of which is incorporated herein by reference. 
         [0002]    This application is also related to copending U.S. application Ser. No. ______, titled “Caption-Based Navigation for a Video Player,” filed on Feb. 6, 2013, which claims the benefit of U.S. Provisional Application No. 61/595,383, filed on Feb. 6, 2012. The contents of these applications are incorporated herein by reference. 
     
    
     BACKGROUND  
       [0003]    This invention relates to facilitating interactions among distributed users of an online system, such as an online learning platform accessible over the Internet over the internet, or on a system on a laptop or server, or over a network. 
         [0004]    In online environments, for example, online education and learning, content is made available to users using a browser over the internet. In environments such as this it is useful to have a discussion forum where users can ask questions or discuss various pieces of material in the course (or material outside the course). The questions may be answered by other users, by teaching assistants or by the teachers of the course. Similarly others may join in the discussion. 
         [0005]    In online education, for example, a course may have many weeks of material covering many topics. Learners may also be distributed worldwide. In many cases, users may be allowed to start a course at any time. In other words, all users taking a given course might not be starting at the same time, or be in the same place. Thus, at any given time, different people around the world might be at different parts of the course. 
         [0006]    A difficulty with discussion forums in such environments is that the discussions or questions posted at any given point in time might cover a wide range of topics from any part of the course and from any part of the geography of the world. This makes it difficult to have a coherent discussion among the people since different people might be at different places in the course at any given time. In particular, it is difficult for users that are in a given part of the course to find other users that are in the same part of the course at the same time. We call this first problem the cohort problem. 
         [0007]    A second problem is that when the number of users gets large, answering all the questions is difficult. It would be useful to find an automatic way for users to be able to get their questions answered, particularly when users can join in the course at any given time, and when there might be no teaching assistants or teachers or advanced learners around to answer questions. We call this second question the question matching problem. 
         [0008]    A third problem, called the approximate question matching problem, is when a user asks a question (or has a question) to find a previously asked question that is close to the user question. We can do this match using machine learning, or by giving the user a choice of approximately close questions to select from. 
       SUMMARY  
       [0009]    In one aspect, in general, an interaction environment for presentation of content to a population of users includes either or both of a plurality of cohort interaction environments and one or more content-linked interaction environments. 
         [0010]    In some examples, the content comprises educational and/or instructional content (e.g., multimedia lectures) for presentation to a population of students. Other examples of content include artistic content (e.g., movies, music) and recordings of live events. 
         [0011]    In some examples, the content is associated with a linear presentation index or axis (e.g., time). For example, in a linear time multimedia (e.g., audio plus video and/or audio plus animation, etc.) presentation, a content location comprises a content time. In some examples, the content is divided into parts (e.g., exercises, lectures, chapters, topics) such that each part of the content has a range of content locations. 
         [0012]    In some examples, the content has non-linear structure, for instance, with optional sections, branching structure, content directed structure etc. In such other examples, the content location may represent a state representing a history of content presentation (e.g., some users may reach a section in different sequences that other users). 
       1 Cohort Interaction Environment 
       [0013]    Each cohort interaction environment is associated with a part of the population of users (referred to herein as a “cohort”), whereby users in that part of the population can interact through that environment. In some examples, users not in that cohort are excluded from that environment. The cohorts are not necessarily mutually exclusive. 
         [0014]    The part of the population associated with a cohort interaction environment is defined by user characteristics including any one or a combination of two or more of:
       a content location or section of the content being presented to the user;   a user location (e.g., geographic location, such as a country, state, province, city, or administrative unit, such as a school district, an online educational entity) of the user; and   a competence level (e.g., grade level, measure of mastery of the content) of the user; and   a language of interaction (e.g., for the content presentation and/or for interaction in the cohort interaction environment) or linguistic proficiency of the user.       
 
         [0019]    The cohort interaction environment may provide an interface in which any user in the cohort of that environment can provide a message (e.g., comment, question) to other users of the cohort. In some examples, the interface maintains a history of messages, which may take the form of a scrolling “chat window” associated with a presentation of the content. In some examples, the messages are linked, for example, one message being an answer that is linked to a question in a previous message, or messages forming message threads. 
         [0020]    In some examples, the messages of a cohort interaction environment may be associated with corresponding temporal locations (e.g., “wall clock time”), for example, according to the times those messages were provided by users, and the messages in the interface are ordered according those temporal locations. The messages may be ordered overall, or messages may be ordered within groups, for example, being presented as threaded discussions with temporal ordering within a thread. 
       2 Content Linked Interaction Environment 
       [0021]    In some examples, at least some interactions between users are linked to content locations. 
         [0022]    In some examples, the interactions include a first message provided by a first user when content at a first content location is presented to that user, thereby linking the first message to the first content location. An example of such a message is a question. 
         [0023]    In some examples, the interactions include a second message linked to the first message, which is linked to the first content location, thereby linking the second message to the first content location. An example of such a message is an answer to a question such that both the question and answer are linked the same content location. 
         [0024]    In some examples, the interaction environment provides, during presentation of content at a first content location, a representation of a first message associated with that first content location. 
         [0025]    In some examples, an icon (e.g., a “Q” representing a question, or an “A” representing an answer) associated with the first message is presented in the presentation environment. A user interaction using the icon provides users with access to the first message, for example, by the user selecting (e.g., mouse clicking on) the icon. 
         [0026]    In some examples, the content-linked interaction environment includes an interface in which messages (or representations of messages) are presented according to a content-location order. Such presentation can include presented in synchrony with the presentation of the content. Examples of such presentations include scrolling text windows, text “crawls”, or icons and/or text “cartoon bubbles” embedded in a presentation of the content. 
         [0027]    In some examples, the presentation of messages of the content-linked interaction environment are limited to a cohort of the user. Such limiting may include presenting graphical representations of messages from the user&#39;s cohort in a first mode (e.g., as icons). Messages from users of other cohorts may also be accessible in a second mode (e.g., as a pulldown or as search results). 
         [0028]    In some examples, an interface for content-linked interactions provides a way of positioning the content presentation at a content location. For example, in a scrolling text window presentation of question and answer messages, a user may select a message (or series of message) causing presentation of content containing the content locations of the message(s). 
         [0029]    Other features and advantages of the invention are apparent from the following description, and from the claims. 
     
    
     
       DESCRIPTION OF DRAWINGS 
         [0030]      FIGS. 1 and 2  are annotated depictions of a graphical user interface of an interaction environment. 
       
    
    
     DESCRIPTION  
     1 Exemplary Techniques 
       [0031]    An approach to the cohort problem enables users to automatically be joined into subgroups. In some examples, these users are at approximately the same place in the course, or in the near vicinity in the course. We do so by providing a join button as shown in  FIG. 1  which enters the user into a discussion forum (for example, a forum provided by askbot) populated by users that are in the same video segment for example. The users could also be in the same week, or in the same lecture sequence, for example. These are system settable choices. A given user stays in this forum until the user clicks on any part of the course that is outside of this subpart of the course. 
         [0032]    A solution to the question matching problem enables users to automatically see the most common questions (for example, a small number of the common questions, say 5 to 20) others have asked when they were at the same point in the course. Referring to  FIG. 2 , if their own question is similar to the one someone else has asked, then they can simply select that question. If their question is different, then they go ahead and ask that question. The system will use various techniques including machine learning to figure out if there was any other question in the system that was like the question that was asked. If so, then several answers will be displayed and the user can select the most likely one. 
         [0033]    If this was the first time this question was asked, then one of two things can be done. First the question is posted on the discussion forum so that someone else that might be signed on at that time has the opportunity to answer the question. The question location is also marked in the progression sequence that the user is going through using a question flag or a Qflag. If the question gets answered, then the Aflag can be posted near the qflag 
         [0034]    Furthermore, another aspect of the approach is that when a user is going through the material, previous questions or previous important questions asked at that point can be shown to them as a bubble (for example). A bubble or a icon can indicate that at that point in the course, e.g., a small flag at a point below a video, someone else had had a question. We call this a Qflag (or question flag). The user can then click on that flag and see what the other question was. If it is the same question they had, then can vote that question up. And if there is an answer, they can look at that too. Let us call this answer an Aflag. An different symbol indicating an answer flag can be shown near the Qflag if an answer is available. If it is a different question, then can enter their question and we treat it like the previous paragraph. 
         [0035]    As user is going through the course, they also have the opportunity to answers questions. If a user sees a Qflag as indicated in  FIG. 2 , then they can clock on the Q flag and answer that questions. 
         [0036]    Incentives for answering questions can also be provided using an economic system. For example, each time a person asks a question they have to offer to pay something (for example dollars, or education points, etc). If someone answers that question then they collect the points offered by the person asking the question. As a person goes by a question, if they have the same question, for example, they can choose to increase the economic incentive for someone to answer that question. They can do so by clicking on the question (or right clicking) and using menu choosing which of several alternatives they want: answer the question, add to the economic incentive, vote the question up, etc. Or they can ask a different question at that point. 
         [0037]    We can also combine the questions with machine learning techniques or other techniques to find best possible matches for questions. We can also use NLP natural language processing techniques to find matches. 
       2 Description 
       [0038]    One technology to make our solutions work is to have the concept of a sequence. A user follows a clearly defined time sequence. 
         [0039]    Our approach will keep track of where a user is in the course and allocate a tag corresponding to that location in the course. This tag is called a course-location id or CL id. This CL id is a useful technology for enabling a host of solutions around the problems of distributed discussions. When the user wants to ask a question and makes some indication of doing so (for example, by clicking on a help or question button), the user will also get a time id (called TL id or temporal location id) indicating that the absolute date and time when the user is at that point in the course and when the user is looking to ask a question or looking for help. Each user can also have a geographical location id or GL id. 
         [0040]    We can also maintain 3 tables. The CL table, the TL table and the G1 table. Each table has a number of rows. Each row can contain several elements. For example, one element can be a pointer to the list of users that are at that location (in time, course or geography). Each row can also contain a pointer to an appropriate object such as discussion forum that is suitable for that particular location. Each row could also contain a pointer to the list of questions (and associated answers if any) that were asked at that location. 
         [0041]    We can also maintain multiple tables indexed by the CL, GL or TL ids. (As opposed to one table with multiple entries per row). These can be question/answer tables, user cohort tables or discussion group or forum tables. 
       2.1 Mechanism for the Cohort Problem: 
       [0042]    We follow this algorithm to solve the cohort problem. The cohort problem is one where we want to find a discussion forum that is particular to the location in the course (or other location) in which the user is. We will use the discussion forum as an example without loss of generality, but in general it can be any type of grouping of objects (such as questions) that we want to associate the user with. 
         [0043]    The user can also be further selected into a forum that is more suited to the user&#39;s abilities as measured by the user&#39;s current course performance. 
         [0044]    The following are steps that can be followed in the design: 
         [0045]    If join is clicked by user
       Obtain exact location where click was performed
           (e.g., video segment, or time point, or geography using a GPS location for example)   
           Take the exact location and perform a hash function to obtain a CL id (or GL id or TL id)
           (or obtain all the ids)   
           Index into the discussion forum table using an id and obtain a pointer to the appropriate discussion forum (or set of discussion forums for this location)
           (or use a combination of one or several of the ids)   
           Possibly index (a second time around) into the set of discussion forums using a hash function of the user&#39;s current grade (for example) in the course       
 
         [0053]    We may also have a more global discussion forum that the user can click to get into. The global forum can further be divided into sub groups based on user ability, for example, as measured by the user grade. 
       2.2 Mechanism for the Question Matching Problem: 
       [0054]    As depicted in  FIG. 2 , we assume that the user is going through some sequence of material, for example in an online course. The sequence may be a video, or it may be a sequence of videos and exercises, and readings for example. The user interface can show this sequence using a slider or a sequence of icons, etc. 
         [0055]    When a user clocks on a video segment or on a sequence the user is entered into that part of the course and the id for that part of the course location (as indicated in our solution to the cohort problem) is obtained. The following sequence is followed next:
   Obtain the id for the course location in which the user is   
 
         [0057]    Index into the question table and obtain the list of questions. 
         [0058]    Display the list of questions associated with the course location using an indication such as a balloon (see  FIG. 2 ). The questions can optionally be associated with finer grained locations such as the exact time in the video that the question was asked. If a finer grained location is available for each question, then the question bubble can be displayed at the appropriate finer grained location in the sequence (see  FIG. 2 ). 
         [0059]    If the user clicks on any question, then display for the user a menu of options (e.g., answer the question, add or increase the economic incentive for that question, ask another question) so that the user can select from that menu and take an appropriate action. 
         [0060]    We can also have a more adaptive and dynamic implementation as follows. In this scheme, we do not statically display all the questions for that course location. Instead we do this:
   Obtain the id for the course location in which the user is.   
 
         [0062]    Index into the question table and obtain the list of questions and keep them handy (do not display). 
         [0063]    For each question obtain its finer grained location or exact location. 
         [0064]    As the user moves through the sequence, the exact location of the user is monitored. 
         [0065]    If the user&#39;s exact location matches that of one of the questions (or is the user approaches the vicinity of one of the tracked locations) then the question bubble is flashed on the screen near the user&#39;s location 
         [0066]    If the user clicks on any question, then display for the user a menu of options (e.g., answer the question, add or increase the economic incentive for that question, ask another question) so that the user can select from that menu and take an appropriate action. 
         [0067]    If the user ignores the bubble or question, then make the bubble disappear once the user has gone some distance beyond the location of the question bubble. 
       2.3 Approximate Matching of User Questions: 
       [0068]    Next, the matching of user questions that were previously asked to new questions can be hard. A question asked by a user can be slightly different from a previously asked question but is more or less the same question nonetheless. We can use various techniques to match user questions in combination with all the previously discussed techniques. We can do the match in many ways—match just keywords, create semantic trees, use machine learning techniques, use natural language processing techniques, etc. 
         [0069]    Alternatively, when a user asks a question, or clicks the intention to ask a question, the user can be shown all commonly asked questions at that location. The user can then select from one of the commonly asked questions. The user can then also be shown an answer should an answer exist. The user can then possibly up vote the question and or answer. 
       3 Alternative 
       [0070]    Other alternative approaches for forming cohorts can be used independently or in conjunction with the techniques described above. For example, a large population of users may be cluster or partitioned according to criteria such as level of mastery of the subject matter, level of language skills, native language, geographic location. In sum examples, the clustering be based on specific skill patterns or types of errors made by the users, or by inferred points of view based on the user&#39;s comments or answers to questions. The forming of the cohorts may attempt to form relatively homogeneous groups. Alternatively, the forming of the cohorts may attempt to represent diversity in the group, for example, with different members of the group having different skill patterns, but with the group as a whole having mastery of all the skills. In this way, the nature of discussion among the cohort members may be facilitated to provide a good educational environment for the users. 
       4 Implementations 
       [0071]    The techniques described above may be implemented in software. Such software includes instructions, which are stored on tangible machine-readable media, for causing one or more data processing systems to perform the steps and functions described above. The instructions may be compiled and executed by a physical or virtual processor, or may be interpreted. In distributed online environments, the data processing systems and associating execution of instructions may be distributed. For example, certain functions may be performed at server (or set of server), while other functions are performed at clients associated with the users. In some instances, the instructions executed at the clients maintain the graphical user interface for the user. The server may include a data storage subsystem, for example, a database, for maintaining the content for presentation and/or the interactions between users for presentation with that content. In some instances, a system for passing the content to the users is separate from a system for maintaining the interactions. 
         [0072]    It is to be understood that the foregoing description is intended to illustrate and not to limit the scope of the invention. Other embodiments are within the scope of the following claims.