Abstract:
Disclosed is a method, apparatus and computer program for a first client to facilitate collaborative editing of a document with a second client. The document contains data of a first data type and is accessible by a first application for processing the first data type. The first application is used to identify a portion of the document for review, The identified portion is extracted and provided to an application for processing data of a second type at the first client. This application is a messaging application. A second client is identified for performing the review and the identified portion is sent via the messaging application to the identified second client. Comments are received back from the identified second client and these comments conform to the messaging application&#39;s protocol. The comments are then interpreted back at the first client and the document is updated if appropriate.

Description:
PRIORITY CLAIM  
       [0001]     The present application claims priority to Great Britain Patent Application No. 0523703.7, filed Nov. 22, 2005, the entire disclosure of which is hereby incorporated by reference.  
       FIELD OF THE INVENTION  
       [0002]     The invention relates to collaborative editing of a document.  
       BACKGROUND OF THE INVENTION  
       [0003]     In today&#39;s society, there is frequently a need for users to collaborate in the production of their work. In the past, such collaboration was done using mechanisms such as meetings, the telephone and email. More recently instant messaging applications have proved to be another useful means by which collaboration can take place.  
         [0004]     Such mechanisms however still require coordination of various users&#39; suggestions and integration of accepted suggestions into an original design, document, presentation etc.  
         [0005]     One option is to share the document with multiple users (e.g. via email or a shared repository such as that made available via Lotus Notes) and to use a facility such as “track changes” in Microsoft Word. Such collaborative working however involves each user loading the entire contents of the document on their machine and editing it in a suitable editor that has to be installed on the user&#39;s computer. For example Word documents are edited using Microsoft Word.  
         [0006]     In addition to the examples given above, a number of companies facilitate the whole process with specially designed collaborative editing software.  
         [0007]     For example, the MoonEdit program permits multiple editors to work on a document simultaneously, with each editor being assigned a different colour.  
         [0008]     Microsoft(R) also provides Server Extensions for its Office suite which provide collaborative functionality. Users can publish their documents via the web and use inline discussions to discuss ideas within the context of a document itself. This is discussed by the Xhost company as part of their Microsoft Office FAQs.  
         [0009]     Conferral also provide collaborative editing software. According to their press release, a document owner invites participants to join in the review process. Such software can be integrated on the inviter side within Microsoft Office. Having accepted the invitation, an invitee is provided with a secure connection back to the inviter&#39;s PC. Conferral advertise this software as needing no special editing software at the invitee end—all that is required is a web browser and Java™ functionality. (Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.)  
         [0010]     Such screen sharing software however tends to be relatively heavy weight. The user needs to remain connected to the inviter&#39;s PC and to receive frequent screen updates reflecting the entire document as users make concurrent edits. Such processing is network intensive. There is also a security risk incurred by sharing one&#39;s screen with another user—such software provides the other user with machine access.  
       SUMMARY OF THE INVENTION  
       [0011]     According to a first aspect, there is provided a method for a first client to facilitate collaborative editing of a document with a second client, the document containing data of a first data type and being accessible by a first application for processing said first data type, the method comprising: using the first application to identify a portion of the document for review; extracting the identified portion; providing the identified portion to an application for processing data of a second type at the first client, the application being a messaging application; identifying a second client for performing the review; sending the identified portion via the messaging application to the identified second client; receiving comments back from the identified second client, the comments conforming to the messaging application&#39;s protocol; interpreting the comments; and updating the document if appropriate.  
         [0012]     Preferably the comments received back from the identified second client comprise text suggested as a replacement for the identified portion. Such suggested text may be enclosed by delimiters which can be used to distinguish suggested text from actual comments.  
         [0013]     In a preferred embodiment, it is then determined whether to accept the suggested text as a replacement for the identified portion. This may take the form of receiving an indication from a user of the first client.  
         [0014]     Once the text has been accepted, the second client is preferably informed of this fact.  
         [0015]     If the text is not accepted, further collaboration with the identified second client is permitted.  
         [0016]     In accordance with a preferred embodiment, an indication may be received from a user of the first client that a previous version of the text has been accepted. This previous version may be the original text forming the identified version or a subsequent version.  
         [0017]     Once a previous version has been accepted, the second client is preferably informed of this.  
         [0018]     When the suggested text from the second client is accepted, the comments are preferably parsed to identify this text. This text is then preferably extracted and used to replace the identified portion with the suggested text.  
         [0019]     Where further collaboration takes place with the second client, comments originating from both the first and second clients are preferably interpreted to identify text to replace the identified portion.  
         [0020]     This preferably involves parsing the comments to identify the most recent version of text suggested as a result of the collaboration to replace the identified portion or to identify a first client user selected version of text suggested by one of the clients to replace the identified portion. Such text can then be extracted and used to replace the identified portion.  
         [0021]     In one embodiment, it may be the second client&#39;s decision as to what text should be used to replace the identified portion.  
         [0022]     In a preferred embodiment, the messaging application is an instant messaging application.  
         [0023]     According to a second aspect, there is provided an apparatus for a first client to facilitate collaborative editing of a document with a second client, the document containing data of a first data type and being accessible by a first application for processing said first data type, the apparatus comprising: means for using the first application to identify a portion of the document for review; means for extracting the identified portion; means for providing the identified portion to an application for processing data of a second type at the first client, the application being a messaging application; means for identifying a second client for performing the review; means for sending the identified portion via the messaging application to the identified second client; means for receiving comments back from the identified second client, the comments conforming to the messaging application&#39;s protocol; means for interpreting the comments; and means for updating the document if appropriate.  
         [0024]     According to a third aspect, there is provided a computer program comprising program code means adapted to perform the method of the first aspect when said program is run on a computer. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0025]     A preferred embodiment of the invention will now be described, by way of example only, and with reference to the following drawings:  
         [0026]      FIGS. 1   a  to  1   e  illustrate possible screen shots of a system including a preferred embodiment of the present invention;  
         [0027]      FIG. 2  shows a component diagram in accordance with a preferred embodiment of the present invention; and  
         [0028]      FIGS. 3   a  to  3   c  illustrate the processing of the present invention in accordance with a preferred embodiment. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0029]     Disclosed is a mechanism for collaborative editing of documents. Such a mechanism is discussed with reference to FIGS.  1  to  3 . These figures should all be read in conjunction with one another.  
         [0030]     For ease of explanation only, the invention will be described in terms of a word processing document being collaboratively edited by two parties, Alice and Bob. It should however be appreciated that the invention is not limited to a word processing system, but is equally applicable to other kinds of documents such as spreadsheets, presentations etc.  
         [0031]     As shown in  FIG. 1   a , Alice&#39;s computer runs a word processor  10 . This could, for example, be Microsoft(R) Word. The dotted lines in the figure represent the text of a document that Alice is currently working on.  
         [0032]     In the process of writing the document, Alice desires to consult Bob on a portion of text designated for ease of understanding as “provisional text”  20 . Alice selects the relevant text using text selector component  100  (step  300 ) and right clicks on the text to bring up a menu  30  (step  310 ). The menu is displayed using menu display component  110 . It will be appreciated that steps  300  and  310  are already possibly in word processing applications today. These functions will not therefore be described in any more detail.  
         [0033]     In the case of the preferred embodiment, the menu  30  displayed has an additional option of “Confer”  31 . This option is selected to initiate the collaboration process at step  320  using confer selector component  120 .  
         [0034]     Upon selection of the confer option, instant messaging component  140  is launched on Alice&#39;s computer (step  330 ).  FIG. 1   b  illustrates an exemplary screen shot. Windowing component  220  is responsible for this. It will be appreciated that the instant messaging component dialogue box looks very similar to that provided by traditional instant messaging software. The differences will now however be discussed.  
         [0035]     A conversation window  60  of the type common in such software is provided. The main difference here is that this window also includes the provisional text  20  selected at step  300 . Text Extractor and Formatter component  130  extracts the selected provisional text  20  using an operation similar to the known “cut” word processing operation. The text is placed on a clipboard (not shown) and is then formatted by component  130  to include enclosing delimiters &lt;&lt;provisional text &gt;&gt; (step  340 ). Component  130  then retrieves the text from the clipboard and provides it to the instant messaging component&#39;s conversation displayer component  230  (step  350 ). Component  230  “pastes” the reformatted provisional text into conversation window  60 .  
         [0036]     The instant messaging component also has a dialogue box  40  with a Name input field  50  The name field provides access to a drop down list of possible conferees. Such a list is preferably drawn from Alice&#39;s standard instant messaging buddy list  210 . As with traditional instant messaging, if Bob is not online, his name is preferably “greyed out” (not selectable). Of course, instead of a drop down list, a standard instant messaging selection interface could be employed.  
         [0037]     Name selector component  200  permits Alice to select a buddy to confer with. In this example, Alice selects Bob from her buddy list.  
         [0038]     Conversation accepting component  250  then receives comments to associate with the provisional text  20  at step  380 . Such comments are typed into window  70  as per a normal instant message. In the example of  FIG. 1   b , the provisional text is a title and the comments typed into window  70  by Alice might ask Bob for his opinion of the title. Alice then presses the send button  75  to transmit both the provisional text and the associated comments to Bob (step  390 ). Transmission of this information is achieved by sender component  240 .  
         [0039]     In the meantime, Alice&#39;s conversation window is updated (step  400 ) by conversation displayer component  230  such that Alice&#39;s conversation window includes the provisional text and associated comments sent to Bob (see for example  FIG. 1   d ).  
         [0040]     Bob&#39;s computer preferably hosts a similar instant messaging component.  FIG. 1   c  illustrates a screen shot of what is displayed on Bob&#39;s computer. Standard instant messaging componentry receives the provisional text and associated comments from Alice and displays these in conversation window  60 .  
         [0041]     Bob is now able to review the provisional text and associated comments to determine whether any changes are required. Bob may type any such changes into input window  70 .  
         [0042]     Input received by window  70  may include comments (e.g. “This is my preferred title”) and also new text. In the preferred embodiment, Bob places any new text inside delimiters &lt;&lt;new text &gt;&gt; in order to differentiate his comments from suggested text.  
         [0043]     The information is then sent to Alice when Bob hits the send button  75 .  
         [0044]     The information is received on Alice&#39;s computer by conversation displayer component  230  and the conversation window  60  is updated at step  410 . Alice&#39;s updated conversation window  60  is illustrated in  FIG. 1   d.    
         [0045]     Alice then has the choice of whether or not to accept Bob&#39;s suggestions (step  420 ). If Alice wants to discuss the provisional text in more detail, then they both collaborate further. This is depicted via single step  430 . It will be appreciated that such collaboration involves a typical instant messaging conversation, but with any suggestion for new text properly delimited as described earlier.  
         [0046]     At some point Alice will decide to accept the text collaboratively arrived at step  420 . At this point, she indicates as much to Bob via step  440  using conversation accepting component  250  and sender component  240  (“Yes I like that”). The information and the resulting update on Bob&#39;s screen are shown in  FIG. 1   e.    
         [0047]     Alice then accepts the final form of the provisional text by clicking accept button  80  (step  450 ). Her action causes conversation accepting component  260  to generate an automatic message for transmission by sender component  240  to Bob (step  460 ). On Bob&#39;s screen a message is displayed indicating that Alice has accepted the most recent version of the text (see  FIG. 1   e ). The message appears on Bob&#39;s screen as if it is from Alice but Alice&#39;s machine automatically generates the message as shown in the figure.  
         [0048]     Note that in another embodiment, Alice does not specifically type text into input window  70  which indicates her acceptance. Instead only the auto-generated message is sent to Bob when Alice activates the Accept button.  
         [0049]     In one embodiment, when Alice clicks on the Accept button the instant messaging window remains open for further discussion if required. Alice may also select different text in the master document, choose Confer again, and if she selects Bob again then that existing instant messaging window with Bob is simply be re-used. The conversation would carry on from where they left off but with the new text under discussion.  
         [0050]     Further note that during collaboration Alice may decide to overrule Bob&#39;s suggestions. In this instance, Alice informs Bob via a standard instant message. She then selects (via selector component  285 ) the version of the text that she likes from the conversation window and clicks the accept button.  
         [0051]     Thus once the accept button has been selected, text parser component  270  parses the conversation displayed in conversation window  60  in order to determine how to modify the word processing document (step  470 ).  
         [0052]      FIG. 3   d  illustrates, in accordance with a preferred embodiment, the processing involved in parsing the conversation, At step  500  it is determined whether the conversation only contains one piece of delimited text. If this is the case, then this text is the relevant text (step  550 ). If the answer is no, then a determination is made (step  520 ) as to whether Alice has selected any text herself (see above). If she has, then this text is identified as the relevant text (step  560 ). Otherwise, the most recent version of delimited text is selected by the parser component (step  540 ). (This will be the last occurrence of text surrounded by the special delimiters.)  
         [0053]     The text parser component then extracts the selected text for incorporation into the word processing document. In some circumstances, the selected text may equate to the original text—in which case the parser does not make a replacement. In one embodiment, there may be a “disagree” button that could be selected in order, for example, either to leave the original text as it is, or to take a previous suggestion.  
         [0054]     The extracted text is retrieved by text provider component  280  and is provided to word processor  10  (step  480 ). Text Replacer component  150  removes the special delimiters, deletes the selected text and replaces the deletion with the final version of the text (step  490 ).  
         [0055]     The discussion thus far assumes a standard instant messaging client at the recipient (Bob&#39;s machine). It would however be possible to have a separate display area for storing the provisional text on Bob&#39;s machine and also on Alice&#39;s machine. Alternatively, special formatting tags could be used to distinguish the provisional text from the general conversation. These would be used by the parser component Alice&#39;s machine. The provisional text should still be displayed to the collaborators in a unique fashion—e.g. using bold or italics. In both cases the collaborators would not need to enter the special delimiters. In addition, Bob could be given the authorisation to indicate to Alice what text should be used in place of the provisional text—this would require modification to Bob&#39;s instant messaging software.  
         [0056]     The invention has been described in terms of two people collaborating. It should be appreciated however that the invention is also applicable to collaboration with a number of people at the same time on a particular piece of text. For example, when Alice selects the “Confer” option she can choose more than one name to open up an instant messaging conference with (e.g., by selecting names in a drop down buddy list). She can still choose Accept at the end to decide which text to accept.  
         [0057]     Whilst the invention has been described in terms of a word processing application, it should be appreciated that the invention is not limited to such. It is equally applicable to other applications and their associated documents; for example presentations, spreadsheets etc.  
         [0058]     Further, the invention is not simply limited to the use of an instant messaging application. Other messaging applications such as email or SMS could be used.