The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numbers may be repeated among the figures to indicate corresponding or analogous features.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.
Referring to
The memory elements may include system memory 102 in the form of read only memory (ROM) 104 and random access memory (RAM) 105. A basic input/output system (BIOS) 106 may be stored in ROM 104. System software 107 may be stored in RAM 105 including operating system software 108. Software applications 110 may also be stored in RAM 105.
The system 100 may also include a primary storage means 111 such as a magnetic hard disk drive and secondary storage means 112 such as a magnetic disc drive and an optical disc drive. The drives and their associated computer-readable media provide non-volatile storage of computer-executable instructions, data structures, program modules and other data for the system 100. Software applications may be stored on the primary and secondary storage means 111, 112 as well as the system memory 102.
The data processing system 100 may operate in a networked environment using logical connections to one or more remote computers via a network adapter 116.
Input/output devices 113 can be coupled to the system either directly or through intervening I/O controllers. A user may enter commands and information into the system 100 through input devices such as a keyboard, pointing device, or other input devices (for example, microphone, joy stick, game pad, satellite dish, scanner, or the like). Output devices may include speakers, printers, etc. A display device 114 is also connected to system bus 103 via an interface, such as video adapter 115.
Referring to
A resource user interface 206 is provided for display of the information postings 231, 232, 233 of the resource 202. The display of the information postings on the resource user interface 206 is shown in hashed lines 231′, 232′, 233′. The resource user interface 206 is accessible to the one or more users 241, 242 of the system 200. A resource user interface 206 may provide access to pages of information, or multiple documents of information. An input by a user 241 may be added to the resource 202 and published to the resource user interface 206. The resource 202 may have a user input means 204 for users to input information into the resource 202 or this may be provided as part 208 of the resource user interface 206.
In one embodiment, the resource user interface 206 automatically shows the most recently input information postings 231, 232, 233 and when new information is input into the resource 202, the older information may be pushed to another page or document. Scrolling or forwarding through pages of the resource user interface 206 can retrieve older information postings. A resource user interface 206 may be provided by a local application on a user system and may be, for example, a web browser application.
The described system includes a sub-display 210 provided in the resource user interface 206 including a reference to or some or the whole contents of a previous information posting 211 in the resource 202. The sub-display 210 may provide a link 212 to the previous information posting 211. The sub-display 210 optionally includes input means 213 for a user to respond to the sub-display 210 information.
A sub-display engine 220 is provided including a prompt mechanism 221 for prompting a different previous information posting 211 to be displayed in the sub-display 210. The prompt mechanism 221 may be triggered by a user viewing a different information posting 231, 232, 233 on the resource user interface 206, by the user refreshing the resource user interface 206, or after a predetermined time period resulting in different previous information postings 211 being displayed to a user prompting reflection.
The sub-display engine 220 also includes a selection means 222 which selects a previous information posting 211 for display in the sub-display 210. The selection means 222 uses an algorithm 223 based on heuristics of the resource 202. The selection means 222 also includes user preference input means 224 for a user to set the parameters for the algorithm 223.
The various components of the resource 202, resource user interface 210, sub-display engine 220, etc. may be located across client and servers of a distributed computing system. For example, the resource 202 may be a web page located on a server and the sub-display engine 220 may be provided as an application on a client or another server.
The sub-display 210 is referred to as a “reflection panel” as it has the aim of prompting the one or more users to reflect on a previous information posting.
There are several benefits which may arise specifically from reflecting upon past information postings:
A user may choose the link to the previous information posting referenced in the sub-display 303. If the user does choose the link 304 to the previous information posting, the display shows 305 the previous information posting.
If the user does not choose the link 306 to the previous information posting, or the user has viewed the previous information posting 305 and wishes to continue by viewing another information posting, another information posting is selected 307 for display. The method then loops 308 and the sub-display generates 302 another previous information posting.
The time of generation of a new previous information posting in the sub-display may be configured by a user. It may be configured to change after a predetermined time, when a user refreshes the display, or as prompted by a user.
The algorithm for selecting postings for the reflection panel is now described. The goal of the algorithm is to randomly draw a posting that has high chances of igniting a reflection process. A set of heuristics is proposed that assign values to all postings. Some of the values are calculated in advance, while others depend on the user context and are calculated on the fly. When the reflection panel is launched or refreshed, the assigned (and on-the-fly-calculated) values are used in order to draw a single posting to be presented. The heuristics are based on different criteria such as temporal, textual, and contextual, and they are configurable and take user preferences into account.
Below the proposed heuristics are listed and the values they assign. Different heuristics may be easily added. The heuristics are weighted, so their contribution to the overall probability of the posting depends on their relative weight.
For each posting Pi, and for each heuristic Hj, a value Vij(0≦Vij<1) is calculated that represents the value Hj assigns to Pi.
Each heuristic Hj has a weight Wj that represents its influence on the overall probability.
For each posting Pi its assigned value is calculated:
Finally, the values are normalized and the probability P(Pi) of each posting calculated:
The probabilities P(Pi) are then used in order to draw a posting to be presented in the reflection panel.
Some learning takes time, and requires the ability to view particular events in a wider context. Therefore, it may be advantageous to suppress the appearance of postings from the recent past in the reflection panel, since not enough time has passed to process the event, and develop an ability to view the event in a wider context.
This heuristic defines three “temporal zones”:
The postings are assigned a value based on the zone their publication date belongs to. The values are configurable and will be set, by default, to 0.1, 0.6, and 0.3 respectively. The rationale behind these values is that recent postings are not likely to raise reflection and the benefit of reflection for them is not expected to be high; postings from the distant past may raise reflection, but are likely to be outdated; postings from the intermediate past are the most likely to ignite fruitful reflection. The user may configure these values, according to posting and reflection habits.
The values assigned by this heuristic may be calculated in advance, but require occasional re-calculation (e.g., overnight) as the time goes by.
If a person encounters a situation now that he has already encountered in the past, recalling his behavior and feelings then could be enlightening. One might have behaved better in the past, yet not recall it. Or one could have behaved miserably in the past, and consider how to change the situation for a similar impending event. Finally, one could compare a previous periodic event to a current one, and learn about any change or progress.
The reflection panel can encourage a user to reflect on past user postings taking into consideration the user's temporal patterns of behaviour. Temporal patterns assume that certain events occur periodically, and recalling past events while similar current events occur may result in fruitful reflection. This heuristic assigns higher values to postings that were posted according to some temporal pattern.
Examples are:
Some of the values assigned by this heuristic may be calculated in advance (overnight) while others (e.g., posted on the same hour of the day) need to be calculated on the fly.
The process of re-evaluation of experience, which also involves revisiting journal entries, is a process of reflection that involves relating new information and experiences to previous experiences. However, the ability to form such relations and to view previous events in a wider context depends on new experiences which one has had. Therefore postings for which the user has had more new and related experiences have a better chance of being viewed in a new light, triggering reflection.
This heuristic assigns higher values to postings that share a high similarity with postings that were published at later times. The rationale here is that if a topic was discussed further in future postings, the user is likely to have learned something new on the topic and thus may gain from reflecting on early postings of the same topic. Similarity between postings may be calculated with regular information retrieval methods. Postings will receive higher values the more similar they are to more future postings.
The values assigned by this heuristic need to be updated when new postings are saved, but assuming that the few new postings of one day are not likely to make much of a difference, an overnight calculation is enough.
Reflecting on feelings and emotions which were or are present is a central process for reflecting on past events. Feelings experienced as negative may need to be processed and resolved. Positive feelings can be celebrated and provide motivation. The expression of feelings indicates strong personal involvement which is likely to bring future interest. Thus, pointing to past postings with emotional content has great potential both for raising interest in the user, and for personal growth in resolving feeling.
This heuristic assigns higher values to postings that contain certain textual expressions that appear in a dictionary that is prepared for this purpose. The goal of this heuristic is to identify postings with emotional content. The dictionary will contain words such as “frustrated”, “hate”, “deadline”; as well as “happy”, “celebration”, or any other emotion. The value assigned by this heuristic will be higher the more words from the dictionary appear in the posting.
The values assigned by this heuristic may be calculated upon publishing of the posting. They need to be recalculated if the configurable dictionary changes.
Postings are often categorized according to predefined categories. Some categories may be more suitable for reflection than others. Users may configure the categories they prefer to reflect upon. Other criteria that may use category information may be to give higher probability values to more focused postings (posted to a single rather than multiple categories), or analyzing reflection activities and giving higher values to categories that yielded reflection activity in the past.
Postings that appeared in the reflection panel in the past will be given lower values by this heuristic than postings that did not appear in the panel. This heuristic aims to make sure that the same postings do not appear in the panel repeatedly.
Different uses may require different configurations for the reflection panel. Participants of a three-month course using a shared resource may find postings from only a month ago useful, but a business manager maintaining resources for career development may benefit from postings which have been posted years ago. The parameters for posting selection may be configurable either by the administrator of the resource, or by individual resource users.
Multiple users of a shared resource may each have different configurations enabling the posting selection for the reflection panel to be individual to a user.
Configuration is done by creating a set of profiles. Each profile sets parameters, such as the weights for each of the heuristics, and settings which affect the calculation of each of the heuristics. Thus a person can have, for example, one profile for longer term reflection about ones progress as a team leader, with an emphasis on selection by history; and a shorter term reflection profile about advancing as a Java programmer, limited to the “Java category” (Java is a trade mark of Sun Microsystems, Inc.). Each time the reflection panel is displayed, one of the profiles from the set of profiles is chosen and used in order to select the post to be displayed.
The reflection panel is displayed in the user interface, as a block of text on the sidebar of the user interface. The reflection panel shows exerts of past postings with enough text for the user to understand the context and have the option to expand the reflection panel to see more (the full past posting). The reflection panel has an input button that will allow the user to trackback and compose a new posting based on the past one.
As discussed in the introduction, there are currently many different systems which could benefit from a reflection panel as described. Such systems include information presentation where one or more users can post a journal entry or other information which is displayed either privately to the individual user or shared by users. Examples, of such systems including information presentation include, but are not limited to the following: Web logs (“blogs”); Web forums in which multiple users contribute to a discussion; Open content web sites allowing user input; Personal electronic journals; Personal workspaces in which daily information is organized; Shared or collaborative workspaces; email messaging; and any other system in which one or more users posts user generated information.
Therefore, the described reflection panel display in a user interface with the associated selection means with heuristic algorithm and user configuration may be provided as part of blog software host systems, personal information management systems, content management systems, workspace collaboration systems, messaging systems, etc.
One embodiment of a reflection panel is provided in the context of a blog. A reflection panel resides on the blog's sidebar and occasionally displays the content of previous postings in one's own blog. Blog users may choose to totally ignore the reflection panel (and even hide it) if it distracts them, but they may find it interesting to click the suggested posting and re-read it. While re-reading, blog users may wish to reflect on the same issue again by clicking on a button on the previous posting for creating a “trackbacking” new posting, a new posting which refers to the old one.
The goal of the reflection panel is to entice reflection unobtrusively, in a way which blends with the normal interaction with the blog environment. The reflection panel attempts to display past postings which have a high potential of evoking a reflective response, thus naturally integrating reflection in the daily activities of the user.
A sidebar 404 shown on the right of the user interface 400 has boxes which could be of many types. The example blog shows one box 405 which contains introductory text explaining what the blog is about. Below it there are some navigational aids 406, and below that is a box with a calendar 407.
Referring to
The posting 411 which is displayed in the reflection panel 410 has been originally posted some time in the past, in this case one month ago. Each time the user views a new page (by clicking a link), the refection panel 410 would display a different posting.
In the reflection panel 410, the date 412 and title 413 of the posting 411 are displayed along with links 414 to the categories according to which that posting 411 was posted. If the posting 411 is too long only part of it may be displayed in the reflection panel 410.
Following the text of the posting 411 which is displayed in the reflection panel 410, there are several links 420. These links 420 also appear after every posting in the main area 401 of the blog, but when presented in the reflection panel 410 facilitate reading, commenting and reflecting on the old posting 411.
For example the links 420 may include:
Other embodiments, including web forums in which multiple users contribute to a discussion, open content web sites allowing user input, and shared collaborative workspaces may use a similar user interface to that shown in
In systems where the postings are not presented chronologically or reverse chronologically, but instead by topic or by some other ordering, the reflection panel may be prompted to be selected when a different posting is viewed and the heuristics may be based on the subject matter of the viewed posting.
In another embodiment, personal electronic journals and personal workspaces in which daily information is organized, are input to and viewed by only a single user. In such cases, the user interface provides a reflection panel solely for the purposes of prompting reflection by the single user on his own entries.
A system for providing a reflection panel to a resource may be provided as a service to a customer over a network.
The reflection panel automatically stimulates a user with a prompt to reconsider a previous information posting. There is no burden on the user with extra work and he may ignore the reflection panel or consider it at his discretion.
Guided questions which may prompt reflection require construction by an instructor, are specific to a course, and burden the user. The reflection panel does not require an instructor to add questions, and it is unobtrusive.
Search systems are interactive and require the user's awareness that he is in need of further information. The reflection panel is pro-active as it does not require the user's explicit intervention to be triggered.
Remembrance agents aim at assisting the user's current task by providing relevant content from past documents or from any other content corpus. The reflection panel aims at encouraging reflection upon past writings and may only uses the current context as one of its heuristics for selecting the content for reflection. Remembrance agents use the immediate context for selecting relevant material, whereas the reflection panel uses a broader context (e.g., if a user wrote a lot about a certain topic, she may have gained a lot of experience on it and so will be more effective in reflecting upon related past issues).
The invention can take the form of an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
The invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk read only memory (CD-ROM), compact disk read/write (CD-R/W), and DVD.
Improvements and modifications can be made to the foregoing without departing from the scope of the present invention.