Abstract:
A method of annotating an electronic document includes generating a first annotation in a first electronic document using an annotation service, where the first annotation makes a first correction to a portion of text based on the context of the portion of text within the first electronic document. The method further includes storing the first annotation in the metadata of the first electronic document, detecting electronic copying of the portion of text to a copy buffer, and correcting the portion of text in the copy buffer according to the first annotation.

Description:
FIELD OF THE DISCLOSURE 
       [0001]    The present disclosure relates generally to document processing and in particular to correcting quotations copied from an electronic document. 
       BACKGROUND 
       [0002]    One of the most commonly used functions in electronic document processing is copy and paste, where a user copies text from one document and pastes the copied text into another document. Sometimes, the copied text is used as a quotation in the document where it has been pasted. However, semantic or syntax problems may arise when copying text from one document to another verbatim. For example, the copied text may contain pronouns or acronyms that are defined in the original document but not in the document in which it is being copied. When it is pasted in the new document, the copied text may be missing the necessary context to be easily understandable. Another example is when a portion of a sentence is copied and pasted. The ordering and tense of words may have to be changed for the pasted text to be syntactically correct. Copy and paste functions generally cannot change the text that is copied before it is pasted so the user must manually edit the text after pasting it to correct syntax errors and make the text more understandable. 
       SUMMARY 
       [0003]    An aspect described herein discloses a method of correcting quotations copied from an electronic document. The method includes receiving a selection of a portion of text that is electronically copied from a first electronic document and generating a first annotation from the portion of text using an annotation service, where the first annotation makes a correction to the portion of text based on the context of the portion of text within the first electronic document. The method further includes presenting the first annotation to a first user for approval. 
         [0004]    Another aspect described herein discloses a method of annotating an electronic document. The method includes generating a first annotation in a first electronic document using an annotation service, where the first annotation makes a first correction to a portion of text based on the context of the portion of text within the first electronic document. The method further includes storing the first annotation in the metadata of the first electronic document, detecting an electronic copying of the portion of text to a copy buffer, and correcting the portion of text in the copy buffer according to the first annotation. 
         [0005]    Another aspect described herein discloses an apparatus for accessing electronic documents. The apparatus includes a server computer storing a plurality of electronic documents and a plurality of client computers that can view the plurality of electronic documents stored on the host server and can copy text from the plurality of electronic documents. The apparatus further includes an annotation service, where the annotation service generates a first annotation correcting a portion of text in a first electronic document, where the first annotation is based on the context of the portion of text within the first electronic document, and makes the first annotation available to a first client computer in the plurality of client computers when the first client computer copies the portion of text. 
         [0006]    Another aspect described herein discloses a non-transitory computer readable medium storing computer executable instructions, which, when executed by a processor, cause the processor to carry out a method for annotating an electronic document. The non-transitory computer readable medium includes instructions to generate a first annotation in a first electronic document, where the first annotation makes a first correction to a portion of text based on the context of the portion of text within the first electronic document. The non-transitory computer readable medium also includes instructions to store the first annotation in the metadata of the first electronic document, instructions to detect an electronic copying of the portion of text to a copy buffer, and instructions to correct the portion of text in the copy buffer according to the first annotation. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]    The systems and methods may be better understood from the following illustrative description with reference to the following drawings in which: 
           [0008]      FIG. 1  shows a client-server system in accordance with an implementation as described herein; 
           [0009]      FIG. 2  shows a method of copying and pasting text in accordance with an implementation as described herein; 
           [0010]      FIG. 3  shows a method of correcting syntax when copying and pasting text in accordance with an implementation as described herein; and 
           [0011]      FIG. 4  shows the components of a server and a client in accordance with an implementation as described herein. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]    To provide an overall understanding of the systems and methods described herein, certain illustrative implementations will now be described, including systems and methods for correcting quotations copied from an electronic document. However, it will be understood by one of ordinary skill in the art that the systems and methods described herein may be adapted and modified as is appropriate for the application being addressed and that the systems and methods described herein may be employed in other suitable applications, and that such other additions and modifications will not depart from the scope thereof. 
         [0013]    In order to describe systems and methods for correcting quotations copied from an electronic document, a general client-server system is first described.  FIG. 1  shows a client-server system  100  that includes a server  101  and client computers  103 A through  103 N. Client-server system  100  may include multiple servers connected to client computers  103 A through  103 N. Server  101  can provide different services to client computers  103 A through  103 N. For example, server  101  may be a web-hosting server that provides web page content to display in a web browser running on the client computers  103 A through  103 N. In another example, server  101  provides online document processing and storage services. The client computers  103 A through  103 N can access and edit word processing documents, spreadsheets, presentations, and other documents stored on server  101 . Server  101  may allow client computers  103 A through  103 N to access or edit certain documents stored on server  101 . In another example, server  101  may provide client computers  103 A through  103 N access to content stored in a database. In these examples, client computers  103 A through  103 N have the ability to copy text stored on server  101  and paste the text onto a document stored on the client computer. For example, a user on client computer  103 A may communicate with server  101  to access a word processing document stored on server  101 . The user can then copy text within the document and paste the text into another document that is stored on client computer  103 A. 
         [0014]    General methods of copying and pasting text are now described.  FIG. 2  shows a method  200  of copying and pasting text from one electronic document to another electronic document. Document  201  is an electronic document such as a word processing document, web page, spreadsheet, presentation, or other similar document. Document  201  may be stored on a server and accessed by one or more client computers, similar to client-server system  100  illustrated in  FIG. 1 . Document  201  contains a portion of text: “Ban Ki-moon is the Eighth Secretary-General of the United Nations. His predecessor at the UN was Kofi Annan.” The second sentence in the text contains a pronoun (“His”, referring to Ban Ki-moon) and an acronym (“UN”, referring to the United Nations). The first sentence of the text defines the pronoun and the acronym. 
         [0015]    A user on a client computer can copy text from document  201 . For example, the second sentence from the portion of text can be copied. When the copy function is invoked, the text is stored on a buffer, or a clipboard, on the client computer. The clipboard is commonly a part of the operating system of the client computer and can store text and other data copied from any application running on the client computer. In  FIG. 2 , clipboard  203  on the client computer contains the second sentence of the portion of text from document  201  after it has been copied. The user can then paste what has been copied into another document  205  on the client computer. 
         [0016]    The sentence “His predecessor at the UN was Kofi Annan” now is part of document  205 . However, because the first sentence of the portion of text in document  201  was never copied and pasted, the context of the copied text may be unclear. For example, a person reading document  205  may not know the noun that the pronoun “His” refers to or may not know the meaning of the acronym “UN.” To clarify the pasted text, the user must manually edit the copied text or the text surrounding the copied text to provide the necessary context. 
         [0017]    Systems and methods are disclosed herein for correcting quotations copied from an electronic document before they are pasted into another document.  FIG. 3  shows a method  300  for correcting portion of copied text and pasting the corrected text into another document. Method  300  includes copying a portion of text from an electronic document, collecting annotations associated with the portion of text provided by the electronic document, correcting the copied text based on the annotations, and pasting the corrected text into another electronic document when the paste function is invoked. Method  300  can be performed on a client-server system such as that illustrated in  FIG. 1 , or may be performed solely on one computing device. 
         [0018]    Method  300  starts when a portion of text is copied from electronic document  301 . Document  301  can be a word processing document, web page, spreadsheet, presentation, or other similar document. Document  301  may be stored on a server and accessed by one or more client computers. Document  301  contains a portion of text: “Ban Ki-moon is the Eighth Secretary-General of the United Nations. His predecessor at the UN was Kofi Annan.” The second sentence in the text contains a pronoun (“His”, referring to Ban Ki-moon) and an acronym (“UN”, referring to United Nations). The first sentence of the text defines the pronoun and the acronym. 
         [0019]    Document  301  also contains annotations associated with various portions of text located within the document. An annotation service, located at either the server computer or client computer, can generate the annotations. The annotation service may be a program implemented in non-transitory computer readable media located on the server computer or client computer. The annotations can be generated when document  301  is created or edited. The annotations may also be generated at the time a user copies portions of text from document  301 . The annotations may be stored as metadata in document  301  or may be stored within the annotation service. The annotations provide corrections to portions of text when that portion of text is copied. The annotation can depend on the context of the copied text in relation to the document as a whole. Corrections may include replacing pronouns with nouns, expanding acronyms, rearranging word order and word tense, and other semantic or syntax based corrections. For example, a user on a client computer copies the second sentence of the portion of text: “His predecessor at the UN was Kofi Annan.” When the copy function is invoked, the copied text is stored in a buffer or clipboard on the client computer. In  FIG. 3 , clipboard  303  on the client computer contains the second sentence of the portion of text from document  301  after it has been copied. 
         [0020]    Along with the portion of text, document  301  provides annotations for the copied portions of text. For example, the annotations can provide that when the text “His predecessor at the UN was Kofi Annan” is copied, “His” should be changed to “Ban Ki-moon&#39;s” and “UN” should be changed to “United Nations.” By changing the pronoun into a noun and expanding the acronym, the annotations provide additional context to make the copied portion of text more understandable. The changes made by the annotations to the copied portion of text can be made in the clipboard. Note that if both sentences in document  301  were copied, the second sentence would not need to be annotated because the first sentence contains all the necessary information. The annotation service can analyze the context of the copied text in relation to the entire document to determine if any annotations are necessary. 
         [0021]    Clipboard  305  shows the copied portion of text with the changes made by the annotations in underline. The square brackets surrounding “Ban Ki-moon&#39;s” and “United Nations” indicate that an edit was made to the quoted text. In cases where text may be added or changed, square brackets surrounding the altered or added text can be used to indicate the edit. In cases where text may be removed, the notation [ . . . ] can be used to indicate that text has been removed. The corrected text can then be pasted into electronic document  307  by the user at the client computer. 
         [0022]    In some implementations, a user can be shown the corrected portion of text and can reject or make additional edits to the portion of text. For example, a user can be shown a dialogue window with the clipboard contents and suggested changes, as shown in clipboard  305 . The user can then make additional edits, reject all the suggested corrections, or accept the corrections without additional edits. For example, the dialogue window may present editable text that the user can directly edit. The dialogue window may also include buttons for accepting or rejecting the corrections made by the annotations. If the user makes additional edits, the edits can be incorporated into the annotations for that portion of text. Thus if the portion of text is copied again by the same user or by another user, the updated annotations are used to correct that text. In some implementations, document  301  can store multiple annotations for each portion of text. When any user copies a portion of text, that user can select a preferred annotation from a set of annotations. 
         [0023]    The annotations for text in an electronic document can be determined and stored in various ways. In a client-server system, the server stores the electronic document (e.g. web page or online word processing document) and can determine and store the annotations for the electronic document before a client views the document. When a user views the electronic document and selects a portion of text from the document for copying, the server can provide the user with one or more annotations for that portion of text. In some implementations, the creation of annotations may also be performed at the client computer. When a client computer views an electronic document, for example a web page, the web browser on the client computer can determine the annotations for the electronic document. For example, the web browser may include an add-on or extension that generates annotations. Annotations may also be determined and stored in other ways, such as through a stand-alone program or applet on either a server or client computer, or other methods. 
         [0024]      FIG. 4  shows an example of a client-server system  400  where the server stores electronic documents and determines annotations which are accessible by a client. Client-server system  400  includes a server computer  401  and a client computer  421 . Server computer  401  may provide services to multiple client computers, but for the purposes of  FIG. 4  only one client computer is illustrated. Server computer  401  includes a central processing unit (CPU)  403 , random access memory (RAM)  405 , read only memory (ROM)  407 , ports  409 , document database  411  and bus  415 . Server computer  401  may have additional components that are not illustrated in  FIG. 4 . Bus  415  allows the components of server computer  401  to communicate with each other. Ports  409  allow the server computer  401  to communicate with other devices, such as client computer  421 . Document database  411  stores electronic documents that are accessible by client computer  421 . For example, document database  411  can contain web page information that is displayed within a web browser on client computer  421 . Document database  411  can also store online electronic documents that client computer  421  can access and edit, like word processing documents, spreadsheets, or presentations. Document database  411  contains an annotation service  413  that generates annotations for the electronic documents stored in document database  411  Annotation service  413  can also store the annotations, or the annotations can be stored in the metadata of the documents in document database  411 . The annotations can be determined when the electronic document is saved into document database  411  and can be provided to client computer  421  when the client computer accesses the electronic document or copies a portion of text from the document. Document database  411  and annotation service  413  can be implemented as computer readable code in computer readable media. 
         [0025]    Client computer  421  includes CPU  423 , RAM  425 , ROM  427 , ports  429 , browser software  431 , document processing software  433 , and bus  435 . Client computer  421  may have additional components not illustrated in  FIG. 4 . Bus  435  allows the components of client computer  421  to communicate with each other. Ports  429  allow the client computer  421  to communicate with other devices, such as server computer  401 . Browser software  431  is used to display web pages, for example from web hosting services provided by server computer  401 . Examples of commercially available browser software include but are not in limited to GOOGLE CHROME®, offered by Google Inc. of Mountain View, Calif.; INTERNET EXPLORER®, offered by Microsoft Corporation of Redmond, WA; and FIREFOX®, offered by Mozilla Corporation of Mountain View, Calif. Document processing software  433  is software used to display and edit electronic documents, such as word processing documents, spreadsheets, or presentations. Browser software  431  and document processing software  433  can be implemented as computer readable code in computer readable media. 
         [0026]    Client computer  421  can view the electronic documents stored on server computer  401 . This can be done, for example, through browser software  431  or document processing software  433  on client computer  421 . Server computer  401  can provide electronic documents stored in document database  411  to client computer  421  in the form of a web page or other format. Server computer  401  can also provide annotations stored in annotation service  413  or the metadata of the electronic documents to client computer  421 . If a user on client computer  421  copies a portion of text from an electronic document stored in server computer  401 , the user can be provided with one or more annotations for the portion of text. The user can choose to accept or reject the annotation, or make edits to the annotation, before the portion of text is pasted into another document, such as a document opened with document processing software  433 . If the user edits the annotation, the edited annotation can be stored in annotation service  413  or in the metadata of the document from which the text was copied Annotation service  413  can store multiple annotations for the same portion of text and make those annotations available to a group of client computers. In some implementations, browser software  431  or document processing software  433  can include annotation service  413  and thus the client computer  421  determines and stores annotations of electronic documents. 
         [0027]    Various aspects of the software described herein, including document database  411 , annotation service  413 , browser software  431  and document processing software  433 , can be implemented as computer executable instructions stored on non-transitory computer readable media. When executed, the computer executable instructions cause a computing device to implement the software described herein. Documents in document database  411  and annotations in annotation service  413  can also be stored on non-transitory computer-readable media. Examples of suitable non-transitory computer-readable media include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. 
         [0028]    It will be apparent to one of ordinary skill in the art that aspects of the systems and methods described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects consistent with the principles of the systems and method described herein is not limiting. Thus, the operation and behavior of the aspects of the systems and methods were described without reference to the specific software code—it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein. 
         [0029]    Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous.