RELATED APPLICATIONThis application is a continuation of U.S. patent application Ser. No. 13/776,599, filed Feb. 25, 2013, which claims priority to U.S. Provisional Patent Application Ser. No. 61/647,453, filed May 15, 2012, all of which are incorporated by reference herein in their entirety.
BACKGROUNDThe disclosed embodiments relate generally to electronic document editors. More particularly, the disclosed embodiments relate to methods and systems for electronic document editors that are configured to insert citations to information items.
Academic papers (or scholarly papers) play an important role in sharing ideas and reporting new findings. An academic paper (e.g., journal articles) typically includes dozens, if not hundreds, of citations. Thus, finding relevant references and inserting citations in a proper format require significant amount of time.
Recently, the use of electronic document editors has increased significantly. Electronic document editors (e.g., a word processor) typically allow editing, viewing, and printing of electronic documents. However, traditional electronic document editors are not effective in managing citations. Thus, there is a need for a new method and system for managing citations in an electronic document editor.
SUMMARYA number of embodiments (e.g., of server systems, client systems or devices, and methods of operating such systems or devices) are presented below. These embodiments provide methods, systems, and graphical user interfaces (GUIs) for inserting a selected citation to a displayed document.
As described in more detail below, some embodiments involve a computer-implemented method performed at a server system having one or more processors and memory storing one or more programs executed by the one or more processors. The method includes receiving from a respective client system a subset of a document displayed at the respective client system. The method also includes identifying one or more words in the received subset of the document, and sending to the respective client system one or more information items corresponding to the one or more words. The method furthermore includes receiving a selection of an information item in the one or more information items. The selection is made by a user associated with the respective client system. The method includes modifying the document by inserting a citation to the selected information item.
In accordance with some embodiments, a computer implemented method is performed at a server system having one or more processors and memory storing one or more programs executed by the one or more processors. The method includes receiving from a respective client system a subset of a document displayed at the respective client system. The method also includes identifying one or more words in the received subset of the document, and sending to the respective client system one or more information items corresponding to the one or more words. The method furthermore includes sending to the respective client system instructions for receiving a selection of an information item in the one or more information items. The selection is made by a user associated with the respective client system. The instructions also include instructions for modifying the displayed document by inserting a citation to the selected information item.
In accordance with some embodiments, a computer implemented method is performed at a client system having one or more processors and memory storing one or more programs executed by the one or more processors. The method includes identifying one or more words in a first document displayed at the client system, and initiating a search to identify one or more documents. Each identified document includes a respective focus region corresponding to at least some of the one or more words. The method also includes displaying document information corresponding to a subset of the identified documents, and detecting a selection of a second document in the subset of the identified documents. The method furthermore includes modifying the first document by inserting the respective focus region of the second document.
In accordance with some embodiments, a computer implemented method is performed at a server system having one or more processors and memory storing one or more programs executed by the one or more processors. The method includes synchronizing content of a first document displayed at a respective client system with a copy of the first document stored at the server system. The method also includes sending to the respective client system a set of instructions for identifying one or more words in the first document displayed at the respective client system, and initiating a search to identify one or more documents. Each identified document includes a respective focus region corresponding to at least some of the one or more words. The set of instructions also includes instructions for displaying document information corresponding to a subset of the identified documents, detecting a user selection of a second document in the subset of the identified documents, and modifying the first document by inserting the respective focus region of the second document. The method furthermore includes synchronizing content of the first document, as modified by the client system by execution of the instructions for modifying the first document, with the copy of the first document stored at the server system.
In accordance with some embodiments, a computer implemented method is performed at a server system having one or more processors and memory storing one or more programs executed by the one or more processors. The method includes sending to a respective client system a copy of the first document stored at the server system and a set of instructions for identifying one or more words in the first document displayed at the respective client system, and initiating a search to identify one or more documents. Each identified document includes a respective focus region corresponding to at least some of the one or more words. The set of instructions also includes instructions for displaying document information corresponding to a subset of the identified documents, and detecting a user selection of a second document in the subset of the identified documents. The method also includes modifying the first document by inserting the respective focus region of the second document. The method furthermore includes sending to the respective client system at least a subset of the modified first document.
In accordance with some embodiments, a system includes one or more processors and memory storing one or more programs for execution by the one or more processors. The one or more programs include instructions for performing any of the aforementioned methods.
In accordance with some embodiments, a non-transitory computer readable storage medium stores one or more programs for execution by one or more processors in a computer system. The one or more programs include instructions for performing any of the aforementioned methods.
BRIEF DESCRIPTION OF THE DRAWINGSFor a better understanding of aforementioned embodiments, reference should be made to the Description of Embodiments below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
FIG. 1 is a block diagram illustrating an example of a distributed computer system, in accordance with some embodiments.
FIG. 2 is a block diagram illustrating a document system, in accordance with some embodiments.
FIG. 3 is a block diagram illustrating a client, in accordance with some embodiments.
FIGS. 4A-4E illustrate examples of user interfaces, in accordance with some embodiments.
FIGS. 5A-5E are flowcharts representing a method performed at a server system for inserting a citation to a document, in accordance with some embodiments.
FIG. 6 is a flowchart representing a method performed at a client system for modifying a displayed document, in accordance with some embodiments.
FIG. 7 is a flowchart representing a method performed at a server system for synchronizing content of a modified document, in accordance with some embodiments.
FIG. 8 is a flowchart representing a method performed at a server system for modifying a document, in accordance with some embodiments.
FIG. 9 is a flowchart illustrating processes performed by a client and a document system for inserting a citation to a document, in accordance with some embodiments.
FIG. 10 is a flowchart illustrating processes performed by a client and a document system for inserting a respective focus region of a document, in accordance with some embodiments.
Like reference numerals refer to corresponding parts throughout the drawings.
DESCRIPTION OF EMBODIMENTSMethods and systems for inserting a citation to a selected information item are described. Reference will be made to certain embodiments, which are illustrated in the accompanying drawings. While the described in conjunction with the embodiments, the claims are intended to cover alternatives, modifications and equivalents of the described embodiments.
Moreover, in the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. However, it will be apparent to one of ordinary skill in the art that various embodiments may be practiced without these particular details. In other instances, methods, procedures, components, and networks that are well-known to those of ordinary skill in the art are not described in detail to avoid obscuring other aspects of the described embodiments.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact. The first contact and the second contact are both contacts, but they are not the same contact.
The terminology used in the description of the embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the claims. As used in the description of embodiments and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting” that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined [that a stated condition precedent is true]” or “if [a stated condition precedent is true]” or “when [a stated condition precedent is true]” may be construed to mean “upon determining,” “in response to determining,” “in accordance with a determination,” “upon detecting,” or “in response to detecting” that the stated condition precedent is true, depending on the context.
As used herein, the term “URL” refers to a uniform resource locator, which is used interchangeably with a uniform resource identifier (URI).
FIG. 1 is a block diagram illustrating an example of distributedcomputer system100, according to certain embodiments. InFIG. 1,system100 includes one ormore client computers102,communications network106,document system108, and (optional) one or moresearch engine systems104. Various embodiments ofdocument system108 implement the methods described in this document.
Client computers102 can be any of a number of computing devices (e.g., Internet kiosk, personal digital assistant, cell phone, gaming device, desktop computer, laptop computer, tablet computer, handheld computer, or combinations thereof) used to enable the activities described below. Client computer(s)102 is also referred to herein as client(s), client device(s) or client system(s).Client102 typically includes a graphical user interface (GUI)111.Client102 is described in greater detail below with reference toFIG. 3.Client102 is connected to documentsystem108 viacommunications network106. As described in more detail below,GUI111 ofclient102 is used to display one or more documents and information items.Document system108 provides document services (e.g., document authoring, editing, sharing, mailing, and/or viewing services) to a community of users (e.g., the employees of a company, the members of an organization or group, friends, family members, etc.) who accessdocument system108 fromclients102.
Document system108 includes one or more servers, such asserver112, connected tocommunications network106. Optionally, the one or more servers are connected tocommunications network106 via front end server122. In some embodiments,front end server112 conveys (and optionally parses) inbound requests to the appropriate server ofdocument system108, and formats responses and/or other information being sent to clients in response to requests. Front end server122, if present, may be a web server providing web based access todocument system108. Front end server122, if present, may also route communications to and from other destinations, such as a remote document server or a remotesearch engine system104.
In some embodiments,document system108 includesuser information database116, anddocument database120. In some embodiments,document system108 also includes or has access to one or more other databases, such as a login database (not shown), which maintains login information. In some embodiments,server112 includesdocument editor application114,login processing module124, andapplications128.Server112 communicates with databases internal to documentsystem108, such asuser information database116 anddocument database120 using a local area network, by internal communication busses, or by any other appropriate mechanism or combination of mechanism.
Server112 is also referred to herein as a server system.Server112 communicates withclients102 via front end server122 (if present) and communications network(s)106. In some embodiments,communications network106 is the Internet. In other embodiments,communications network106 can be any local area network (LAN), wide area network (WAN), metropolitan area network, or a combination of such networks. In some embodiments,server112 is a web server that manages document editing requests using appropriate communication protocols. Alternatively, ifserver112 is used within an intranet,server112 may be called an intranet server.
Applications128 include application programs used for managing an online document system. In some embodiments,applications128 also include a user information processing module (not shown), where the user information processing module assists in accessing and updatinguser information database116.User information database116 stores information associated with the users ofdocument system108, for example user preferences, and/or display styles. In some implementations,user information database116 also includes login information (e.g., user names, passwords, other authentication information, etc.).Document database120 stores information concerning various types of documents as well as data (e.g., document contents and/or document files).
Document editor application114 provides document editing services. In some embodiments,document editor application114 retrieves document information fromdocument database120, and sends at least a subset of the document information to arespective client102.Document editor application114 typically receives document editing requests fromrespective client102, and modifies the document information in accordance with the document editing requests. Alternatively,document editor application114 provides a set of instructions such thatrespective client102 modifies the document information.Document editor application114 also sends information items that can be used in editing the document information. In some embodiments,document editor application114 assists in accessing and updatingdocument database120, and in some embodiments,user information database116. In other embodiments,login processing module124 assists in accessing and updatinguser information database116 whenuser information database116 includes login information.
In some embodiments,document database120 stores supplemental information (e.g., metadata) concerning various documents in the document database. A non-exhaustive set of examples of such information includes document identifier (document ID), author, access control list, document size, timestamps (e.g., timestamps for one or more of creation date, revision history, last updated time, last accessed time, etc.), and document type (e.g., word processor document, spreadsheet, presentation file, etc.). In some embodiments,document database120 also stores document data (e.g., contents) or information about a location of document data (e.g., a pointer to a remote server or a document file stored at the remote server). Optionally,document database120 stores bibliographic information or other citation information for documents that have been published, documents that are publicly accessible, and/or documents that are accessible and citable by one or more predefined groups of users.
In some embodiments,user information database116 includes user information records having information relevant to the display of document information. For example, the user information record for a respective user may include, in addition to identifying information for the user, document folders, and default display settings (e.g., display of a particular document, content of a particular folder, a list of documents associated with a particular document processing application (such as a word processor application, a spreadsheet application, or a presentation application), or a list of documents that the user has accessed, or created, or that are otherwise associated with the user.
In essence,server112 is configured to manage certain aspects ofdocument system108, including document editing requests from arespective client102.
Optionally,document system108 is implemented as part of a document sharing system that provides document services (e.g., document authoring, editing, sharing, mailing, and/or viewing services) to a community of users (e.g., employees of a company, students of a school, members of an organization or group, etc.).
In some embodiments, fewer and/or additional modules, functions or databases are included indocument system108 andserver112. The modules shown indocument system108 andserver112 represent functions performed in certain embodiments.
In some embodiments,client102 and/ordocument system108 is connected to one or moresearch engine systems104 viacommunications network106. A respectivesearch engine system104 receives key words, and provides a list of search results that match the key words. Search results typically include web search results. The search results can also include news search results, book search results, and academic publication search results.
FIG. 2 is a block diagram illustratingdocument system108 in accordance with some embodiments.Document system108 typically includes one or more processing units (CPUs)202, one or more network orother communications interfaces204,memory206, and one ormore communication buses208 for interconnecting these components. In some embodiments,communication buses208 include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. In some embodiments,document system108 includes a user interface (not shown) (e.g., a user interface having a display device, a keyboard, and a mouse or other pointing device), but more typically documentsystem108 is controlled from and accessed by various client systems.
Memory206 ofdocument system108 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.Memory206 may optionally include one or more storage devices remotely located from CPU(s)202.Memory206, or alternately the non-volatile memory device(s) withinmemory206, comprises a computer readable storage medium. The computer readable storage medium ofmemory206 is a non-transitory computer readable medium for storing information. In some embodiments,memory206 or the computer readable storage medium ofmemory206 stores the following programs, modules and data structures, or a subset thereof:
- operating system210 that includes procedures for handling various basic system services and for performing hardware dependent tasks;
- network communication module (or instructions)212 that is used for connectingdocument system108 to other computers (e.g., clients102) via one ormore communications interfaces204 and one or more communications networks106 (FIG. 1), such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
- document editor engine214 that receives document editing requests from and provides responses toclients102; and
- presentation module224 that formats results fromdocument editor engine214 for display at respective clients; for example,presentation module224 may generate a web page or XML document that includes document information; in someembodiments presentation module224 is executed by front end server122, which comprises one of the servers implementingdocument system108;optionally presentation module224 is a module ofdocument editor engine214.
In some embodiments,document editor engine214 includes the following programs, modules and data structures, or a subset or superset thereof:
- one ormore server modules230, corresponding toserver112 inFIG. 1, for managing certain aspects of thedocument system108 includinglogin processing module124, andapplications128, includingdocument editor application114 for performing the primary functions of an online document system;applications128 may optionally includeother applications226;
- user information database116 that stores records for users; and
- document database120 that stores documents222 (e.g., document contents and/or document files), and possibly other document data as well (e.g., author, access control list, time stamps, document size, document type, etc.).
In some embodiments,document editor application114 includes a client interface program (or module)217 for receiving document information requests fromclients102 and generating responses to the requests, andcitation module218 for identifying information items and providing the information items toclient102.Document editor application114 may optionally includesearch engine interface220 for obtaining information items from one or more search engines104 (FIG. 1).
Each of the above identified modules and applications corresponds to a set of instructions for performing one or more functions described above. These modules (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various embodiments. In some embodiments,memory206 may store a subset of the modules and data structures identified above. Furthermore,memory206 may store additional modules and data structures not described above.
Notwithstanding the discrete blocks inFIGS. 1 and 2, these figures are intended to be a functional description of some embodiments rather than a structural description of functional elements in the embodiments. One of ordinary skill in the art will recognize that an actual implementation might have the functional elements grouped or split among various components. In practice, and as recognized by those of ordinary skill in the art, items shown separately could be combined and some items could be separated. For example, in some embodiments, one or more databases described herein, such asuser information database116, are part of or stored withinserver112. In other embodiments, one or more databases described herein, such asuser information database116, are implemented using one or more servers whose primary function is to store and process user information. In some embodiments,document database120 includesuser database116, or vice versa. In some embodiments,document database120 is implemented on one or more remote servers.
The number of servers used to implementdocument system108 and how features are allocated among them will vary from one implementation to another, and may depend in part on the amount of data stored bydocument system108, and may also depend on the amount of data traffic that documentsystem108 must handle during peak usage periods as well as during average usage periods. Moreover, one or more of the blocks (e.g.,server112,document database120, etc.) inFIG. 1 may be implemented on one or more servers designed to provide the described functionality. Although the description herein refers to certain features implemented inclient102 and certain features implemented inserver112, the embodiments are not limited to such distinctions. For example, features described herein as being part ofserver112 can be implemented in whole or in part inclient102, and vice versa.
FIG. 3 is a blockdiagram illustrating client102, also called a client system or a client device, in accordance with some embodiments.Client102 is configured for use by a subscriber (also herein called “the user”) ofdocument system108.Client102 includesuser interface300, which typically includesdisplay device301, and one ormore input devices303 such as a keyboard and a mouse or other pointing device. As noted above,client102 includes graphical user interface (GUI)111, which is displayed ondisplay device301.Client102 typically includes one or more processing units (CPUs)302, one or more network or other network communications interfaces304,memory306, and one ormore communication buses308 for interconnecting these components.Communication buses308 may include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.
Memory306 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.Memory306 may optionally include one or more storage devices remotely located from the CPU(s)302.Memory306, or alternately the non-volatile memory device(s) withinmemory306, comprises a non-transitory computer readable medium. In some embodiments,memory306 or the computer readable storage medium ofmemory306 stores the following programs, modules and data structures, or a subset thereof:
- operating system310 that includes procedures for handling various basic system services and for performing hardware dependent tasks;
- network communication module (or instructions)312 that is used for connectingclient102 to other computers (e.g.,document system108 and other clients102) via one or more communications network interfaces304 and one or more communication networks106 (FIG. 1), such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
- web browser application314, which processes and initiates display of a web document (e.g.,332-1 through332-3) inGUI111; and
- (optional)local document repository330, which includes a plurality of documents (e.g., document 1 (332-1), document 2 (332-2), document 3 (332-3), etc.); a respective document is typically a webpage (or XML document or the like) received fromdocument system108; in some embodiments, the local document repository also includes documents of other document types (e.g., proprietary document formats used by word processor applications, spreadsheet applications, presentation applications, etc.).
In some embodiments,web browser application314 or an extension, plug-in or toolbar of the web browser application includes embeddedinstructions316 including embeddeddocument editor318. In some embodiments, embeddeddocument editor318 is included in a web page (e.g., document332-1) received from thedocument system108. Embeddeddocument editor318 modifies documents and handles data formatting and/or management tasks, at least some of which would otherwise be handled by presentation module224 (FIG. 2).
Respective document332 stored in thelocal document repository330 includes document information for display in theGUI111. In some embodiments, respective document332 includes embedded instructions (e.g., embedded document editor318) for receiving document-related input from a computer user (e.g., a request to edit a displayed document or to display a different document) and for formatting document information for display inGUI111. Alternatively, or additionally, the instructions for receiving document-related input from the computer user and/or for formatting document information for display may be implemented inweb browser314, as mentioned above, or as a stand-alone application inmemory306.
Optionally,memory306 includes other applications or components.
FIGS. 4A-4E illustrate examples of user interfaces, in accordance with some embodiments.
FIG. 4A illustrates an example of user interface402-A displayed inGUI111 ofclient102. User interface402-A includes display of a web page that corresponds toURL404. As illustrated, user interface402-A includes:
- subject406 that includes a subject of the displayed document;
- document editor menu408;
- document view410 that includes at least a portion of a document (or a subset of document content); and
- information item view412 that typically includes a plurality of information items.
Document view410 is typically used to receive and display user inputs. For example, cursor430-A is displayed indocument view410, and when the user types characters on keyboard303 (FIG. 3), the typed characters are inserted to a location in the displayed document corresponding to a location of the cursor. In addition, the typed characters are displayed at a location that corresponds to a location of cursor430-A. As illustrated,document view410 includes text provided by a user.
Information item view412 includes a plurality of information items. The plurality of information items are typically grouped into categories. As illustrated,information item view412 includes Web Results420-1, News Search420-2, and Book Search420-3 categories. A respective category generally includes one or more information items. However, in some cases, some categories may not include any information item (when there is no matching information item in that category). Typically, category heading420 for a category that does not include any information item is not displayed. In some embodiments, respective category heading420 is a user interface object that when activated initiates displaying additional information items in a corresponding category. For example, in some embodiments, when a user activates Web Results420-1 (e.g., positioning a mouse cursor on Web Results420-1 and clicking on it),information item view412 displays additional information items in the web results category. In some embodiments, activating the “See more Web results” user interface object generates the same result. Alternatively, activating Web Results420-1 may open a new web page (in a new window or a new tab of the current window) with additional web results.
In some embodiments, a respective information item ininformation item view412 includes subject/title422, focus region424, and source426. Subject/title422 is typically a subject or title specified in a corresponding document. For example, when the information item corresponds to a web page, subject/title422 is typically a title of the corresponding web page. In some embodiments, subject/title422 is determined in accordance with the content of the document (e.g., the first sentence of the document or the most frequently used phrases, etc.).
In some embodiments, focus region424 is a region in the corresponding document that includes some key words identified from the displayed document. As illustrated, the displayed document includes the phrase “healthcare debate” in multiple locations, and a respective information item corresponds to a respective document that includes the phrase “healthcare debate.” The portion of the respective document that includes the phrase “healthcare debate” is displayed as a focus region. When the respective document includes the identified key words (or key phrase(s)) in multiple regions, one of the multiple regions is selected as a representative focus region. In some embodiments, a region that best matches the identified key words is selected (e.g., the selected region includes the key words exactly, or the identified key words appear in the selected region with the least number of words among the identified key words). For example, in the respective document, a first paragraph, a title, or a last paragraph that includes the key words is selected. Alternatively, focus region424 is a representative region of the corresponding document, often pre-selected by the author or the publisher of the corresponding document.
In some embodiments, source426 indicates where the corresponding document is located. For example, source426 may include a URL of the corresponding document (e.g., “www.nytimes.com/2009/08/03/ . . . ”), or the name of the source of the corresponding document (e.g., “CBS News (blog)”). In some embodiments, activating source426 initiates displaying a corresponding document (in a new window or a new tab of the current window).
In some embodiments, activating a respective source (e.g.,426-1) initiates inserting a citation to a corresponding information item (e.g.,422-1). In addition or instead, activating a respective focus region (e.g.,424-1) initiates inserting the citation to the corresponding information item (e.g.,422-1). Optionally, activating a title (e.g.,422-1) also initiates inserting the citation to the corresponding information item (e.g.,422-1).
In some embodiments,information item view412 is scrollable.FIG. 4B illustrates an example of user interface402-B after scrollinginformation item view412. After scrolling,information item view412 displays an additional category, Scholar Search Results420-4, and an information item with title422-4, focus region424-4, and additional information (e.g., a number of times a corresponding article has been cited, such as “Cited by 62”) about this information item.
FIG. 4C illustrates an example of user interface402-C after selection of an information item (e.g., by activating the title, focus region, or source of the information item). In response to the selection of the information item,citation440 to the selected information item is inserted into the document displayed indocument view410 at a previous location of cursor430-B (FIG. 4B). Aftercitation440 is inserted, the cursor moves to new location430-C.
FIG. 4D illustrates an example of user interface402-D in accordance with some embodiments. User interface402-D inFIG. 4D includes a web page that corresponds toURL454. The web page includes the following, or a subset or superset thereof:
- subject456 that includes a subject of the displayed document;
- document editor menu408;
- document view410 that includes at least a subset of a document; and
- document information view452 that includes information associated with a plurality of identified documents.
Document information view452 includes information associated with a plurality of identified documents. The plurality of identified documents is identified in accordance with one or more words in a document displayed indocument view410. The plurality of identified documents is typically grouped into categories. As illustrated,document information view452 includes local documents (“Local”) and online documents (“Docs”) categories. A respective category generally includes information associated with one or more documents. However, in some cases, some categories may not include document information corresponding to any document (when there is no matching document in that category). In some embodiments, a respective category is a user interface object that when activated initiates displaying information corresponding to additional documents in the respective category. For example, in some embodiments, when a user activates the “Local” text (e.g., by positioning a mouse cursor on the “Local” text and clicking on it), thedocument information view452 displays additional documents in the local documents category. In some embodiments, activating the “See more Local results” user interface object generates the same result. Alternatively, activating the “Local” text may open a new web page (in a new window or a new tab of the current window) with information corresponding to additional local documents.
In some embodiments, document information corresponding to a respective document indocument information view452 includes subject ortitle440, focus region442, and source444 corresponding to the respective document. Subject ortitle440 is typically specified by a user as a subject or title of the corresponding document. Alternatively,title440 is determined in accordance with the content of the corresponding document (e.g., the first sentence of the document, the most frequently used phrase, or a predefined number of words in the beginning of the document).
In some embodiments, focus region442 is a region in the corresponding document that includes some key words identified from the displayed document. As illustrated, the displayed document includes the terms “positive effect” and “Internet,” andrelated document view452 includes respective documents that include the terms “positive effect” and/or “Internet.” In addition, a respective portion of the respective document that includes the terms “positive effect” and/or “Internet” is displayed as a focus region (e.g.,442-1,442-2, and442-3).
In some embodiments, when the respective document includes the identified key words in multiple regions, one of the multiple regions is selected as a representative focus region. In some embodiments, a region that best matches the identified key words is selected (e.g., the selected region includes the key words exactly, or the identified key words appear in the selected region with the least number of words among the identified key words). In some embodiments, a first paragraph, a title, or a last paragraph that includes the key words is selected.
In some embodiments, source444 indicates a location of the corresponding document. In some embodiments, activating source444 initiates displaying the document (in a new window or a new tab of the current window). In some embodiments, activating source444 initiates displaying information that corresponds to documents in the source (e.g., documents in the same folder or directory with the corresponding document).
In some embodiments, activating a respective focus region (e.g.,442-1) initiates inserting the focus specification of the corresponding document (e.g.,442-1) in the document displayed indocument view410, in some embodiments. In some embodiments, activating a respective source (e.g.,444-1) initiates inserting the focus specification of the corresponding document (e.g.,442-1) in the document displayed indocument view410. Optionally, activating a subject (e.g.,440-1) also initiates inserting the focus specification (e.g.,442-1) of the corresponding document in the document displayed in thedocument view410.
FIG. 4E illustrates an example of user interface402-E after selection of a document information corresponding to a respective document (e.g., by activating the title, focus region, or source of the respective document). In response to the selection of the respective document, a focus region corresponding to the respective document is inserted into the document displayed indocument view410.
FIGS. 5A-5E are flowcharts representing a method performed at a server system for inserting a citation to a document, in accordance with some embodiments. The method is performed at a server system having one or more processors and memory storing one or more programs executed by the one or more processors (e.g.,document system108,FIG. 1).
The server system receives (502) from a respective client system a subset of a document displayed at the respective client system (e.g., a portion of a document displayed indocument view410 inFIG. 4B). In some embodiments, the subset includes an entire document. In some embodiments, the subset includes all words in the document. In some embodiments, the subset includes a predefined number of most recent words (or most recently typed or edited words) in the document. In some embodiments, the subset includes a most recent sentence (or a most recently typed or edited sentence) in the document. In some embodiments, the subset includes a predefined number of most recent sentences (or most recently typed or edited sentences) in the document. In some embodiments, the subset includes a most recent paragraph (or a most recently typed or edited paragraph) in the document. In some embodiments, the subset includes a predefined number of most recent paragraphs (or most recently typed or edited paragraphs) in the document.
In some embodiments, the server system receives from the respective client system the subset of the document that corresponds to the cursor location on the document displayed on the respective client system.
In some embodiments, the subset of the document corresponds (504) to a cursor location on the document.
In some embodiments, the document includes (506) a plurality of sections, and a first section of the plurality of sections corresponds to the cursor location. Receiving the subset of the document includes receiving one or more section titles corresponding to the first section (e.g., inFIG. 4A, the term “Background” is a section title for the paragraph starting with “Healthcare is an important topic . . . ”). In some embodiments, a respective section title is explicitly designated as a section title (e.g., based on a property (or style) of a term, phrase, or sentence).
In some embodiments, the server system receives (508) from the respective client system the cursor location on the document, and identifies the one or more words in the received subset of the document in accordance with the cursor location on the document. For example, the server system receives from the respective client system a character count that represents the cursor location on the document (e.g., the cursor is located after an N-number of characters from the beginning of the document). The server system determines the cursor location in accordance with the character count, and identifies one or more words adjacent to the cursor location. Alternatively, the server system may receive a word count, a sentence count, or a paragraph count from the respective client system.
In some embodiments, the subset of the document includes (510) a plurality of consecutive words at locations corresponding to the cursor location. In some embodiments, the consecutive words include a word positioned at a location that corresponds to the cursor location (e.g., the cursor is co-located with the included word).
In some embodiments, the subset of the document corresponding to the cursor location on the document includes (512) a first predefined number of words before the cursor position and a second predefined number of words after the cursor position. In some embodiments, the first predefined number and the second predefined number are identical. In some embodiments, the first predefined number and the second predefined number are distinct. In some embodiments, the first predefined number is zero and the second predefined number is non-zero. In some embodiments, the first predefined number is non-zero and the second predefined number is zero. In some embodiments, the first and second predefined numbers are defined by first and second rules. For example, the first predefined number is the number of words in a predefined portion of the document (e.g., a sentence, paragraph, section, document) positioned before the cursor, but not exceeding a first threshold (e.g., the first word of the document), and the second predefined number is the number of words in the same predefined portion of the document positioned after the cursor position, but not exceeding a second threshold (e.g., the last word of the document).
In some embodiments, the subset of the document is received (514) automatically, when any of a set of predefined client system conditions is satisfied. For example, the predefined client system conditions for sending a subset of the document to the server include: a change in cursor position to a new section (paragraph, etc.) of the document, entry of at least a threshold amount of new text or revised text (e.g., at least one new word, or revision of at least one word), and a change in text formatting (e.g., highlighting text, underlining text). The subset of the document is typically received without a user request to send the subset of the document from the respective client system.
The server system identifies (516,FIG. 5B) one or more words in the received subset of the document (e.g., “Healthcare Debate” inFIG. 4A). In some embodiments, the one or more words include all words in the received subset of the document. In some embodiments, the one or more words include a predefined number of most recent words in the received subset of the document. In some embodiments, the one or more words include a most recent sentence in the received subset of the document. In some embodiments, the one or more words include a predefined number of most recent sentences in the received subset of the document. In some embodiments, the one or more words include a most recent paragraph in the received subset of the document.
In some embodiments, the one or more words in the received subset of the document correspond (518) to high ranking words among words in the document ranked in accordance with inverse document frequency values. In some embodiments, the one or more words in the received subset of the document correspond to a predefined number of high ranking words among the ranked words.
In some embodiments, the one or more words in the received subset of the document correspond (520) to high ranking words among words in a most recently edited paragraph ranked in accordance with inverse document frequency values. In some embodiments, the one or more words in the received subset of the document correspond to high ranking words among words in a predefined number of most recently edited paragraphs.
In some embodiments, the server system identifies (522) a most recently edited portion of the document, and a remainder portion of the document that excludes the most recently edited portion. The one or more words in the received subset of the document correspond to a difference set of words. The difference set of words comprises words included in a first set of words other than words included in a second set of words. The first set of words includes high ranking words among words in the most recently edited paragraph ranked in accordance with inverse document frequency values, and the second set of words includes high ranking words among words in the remainder portion of the document ranked in accordance with inverse document frequency values. Accordingly, in some embodiments, the first set of words is called a paragraph set of words, and the second set of words is called a remainder set of words. In one example, the first set includes “Clinton,” and “Healthcare,” and the second set includes “Healthcare” and “Obama.” Then the difference set includes “Clinton,” and not “Healthcare.” In some embodiments, the identified one or more words in the received subset include the difference set of words.
In some embodiments, the one or more words in the received subset of the document include one or more words highlighted by a user associated with the respective client system (e.g., by changing font color or background color, underlining, italicizing, or changing to bold fonts, etc.).
The server system sends (524,FIG. 5C) to the respective client system one or more information items corresponding to the one or more words (e.g.,operation914,FIG. 9). In some embodiments, the one or more information items are web search results that are obtained using the one or more words as search key words. In some embodiments, in addition, or alternatively, the one or more information items are obtained from a news search, a book search, and/or an academic publication search.
In some embodiments, the one or more information items are selected (526) from a set of search results comprising web search results, news search results, book search results, and academic publication search results (e.g.,FIGS. 4A-4B).
In some embodiments, sending to the respective client system one or more information items corresponding to the one or more words includes (528) sending to the respective client system respective citations to the one or more information items. In some embodiments, the server system simultaneously sends the information items and the citations. In some embodiments, the citations are formatted in accordance with a predefined format. For example, the predefined format may be one of: the Chicago format, the Modern Language Association (MLA) format, and the American Psychological Association (APA) format. In some embodiments, the predefined format includes a set of attributes and values so that a citation sent by the server system is configured for conversion into any other format (e.g., the Chicago format, the MLA format, the APA format, etc.).
In some embodiments, the server system performs (530) a search to obtain a set of search results. The search is defined in accordance with the one or more words (e.g., a search is performed using the one or more words as query terms), and the one or more information items are selected from the set of search results. In some embodiments, the server system internally performs a search (e.g., without using other search engines). Alternatively or additionally, the server system performs a search by using one or more search engines (e.g.,search engine system104,FIG. 1). For example, the server system sends a query to the one or more search engines using the search engine interface (220,FIG. 2), and receives one or more search results from the one or more search engines (104,FIG. 1). In some embodiments, the one or more information items sent (524) to the respective client system include at least a subset of the search results.
In some embodiments, the set of search results comprises (532) web search results, news search results, book search results, and academic publication search results. In some embodiments, the set of search results includes any subset or superset of such search results (e.g., the search results may include, additionally or alternatively, document search results). In some embodiments, the one or more search engines include a web search engine, a news search engine, a book search engine, and an academic publication search engine. In some embodiments, the one or more search engines include a subset or superset of such search engines (e.g., the search results may include, additionally or alternatively, a document search engine.
In some embodiments, the one or more information items include respective links (e.g., a universal resource locator (URL)) to corresponding information. In some embodiments, the respective client system receiving the one or more information items retrieves the corresponding information using the respective links. In some embodiments, the server system retrieves the corresponding information using the respective links (e.g., the server system retrieves the corresponding information from another online server). In some embodiments, the one or more information items include (534) respective links to corresponding information on the server system.
In some embodiments, the server system retrieves (536) a user profile of the user associated with the respective client system, and sends to the respective client system one or more information items corresponding to the user profile and the one or more words. In some embodiments, the user profile includes filtering criteria. Typically, the filtering criteria includes a list of sources (e.g., selection of search engines or types of search engines), categories of information (e.g., web page, academic publication, etc.), timing criteria (e.g., results published after a predefined year), or any subset or superset thereof. In some embodiments, the filtering criteria, additionally or alternatively, includes banned key words (for excluding search results that include the banned key words) and/or required key words (for identifying exclusively search results that include the required key words).
The server system receives (538,FIG. 5D) a selection of an information item in the one or more information items. The selection is made by a user associated with the respective client system. For example, the user selects the information item usinguser interface300, such as keyboard/mouse303 (FIG. 3).
The server system modifies (540) the document by inserting a citation to the selected information item. For example, the user interface inFIG. 4C illustrates that the document displayed indocument view410 is modified to includecitation440 that corresponds to the information item with focus region424-4. In some embodiments, the server system sends to the respective client system at least a subset of the modified document.
In some embodiments, instead of directly modifying the document (e.g.,operation540,FIG. 5D), the server system sends to a respective client system a set of instructions for modifying the document in accordance with the selection of an information item. In such embodiments, the server system receives (502,FIG. 5A) from a respective client system a subset of a document displayed at the respective client system, identifies (516,FIG. 5B) one or more words in the received subset of the document, and sends (524,FIG. 5C) to the respective client system one or more information items corresponding to the one or more words. In addition, the server system sends (542,FIG. 5E) to the respective client system instructions for receiving a selection of an information item in the one or more information items and modifying the displayed document by inserting a citation to the selected information item. The selection is made by a user associated with the respective client system. In some embodiments, the server system sends the instructions before or without receiving the subset of the document displayed at the respective client system. In some embodiments, the server system sends a web page that includes the instructions. When the respective client system executes the instructions, the respective client system modifies the displayed document in accordance with the instructions. In some embodiments, the respective client system sends the modified document to the server system, and the server system receives and stores the modified document.
In some embodiments, the server system sends (544) to the respective client system one or more instructions for formatting the citation to the selected information item in accordance with a predefined formatting rule. In some embodiments, the respective client system formats the citation in accordance with the predefined formatting rule by executing the received instructions. Similar to the instructions described above with reference tooperation542, in some embodiments, the server system sends the instructions before or without receiving the subset of the document displayed at the respective client system. In some embodiments, the server system sends a web page that includes the instructions.
FIG. 6 is a flowchart representing a method performed at a client system for modifying a displayed document, in accordance with some embodiments. The method is performed at a client system having one or more processors and memory storing one or more programs executed by the one or more processors (e.g.,client102,FIG. 1).
The client system identifies (602) one or more words in a first document displayed at the client system. In some embodiments, the one or more words include all words in the first document. In some embodiments, the one or more words include a predefined number of most recent words in the first document. In some embodiments, the one or more words include a most recent sentence in the first document. In some embodiments, the one or more words include a predefined number of most recent sentences in the first document. In some embodiments, the one or more words include a most recent paragraph in the first document.
The client system initiates (604) a search to identify one or more documents. Each identified document includes a respective focus region corresponding to at least some of the one or more words. In some embodiments, the respective focus region is one of: a plurality of consecutive words, a sentence, a plurality of consecutive sentences, a paragraph, a plurality of consecutive paragraphs, a title, and a heading. In some embodiments, at least one of the identified one or more documents includes a sentence that contains the one or more words. In another example, at least one of the identified one or more documents includes a paragraph that contains the one or more words. In some embodiments, the respective focus region is the entire document. In some embodiments, the respective focus region includes an image or a video associated with a caption corresponding to at least some of the one or more words. In some embodiments, the respective focus region includes an image or video in the document, for which a text paragraph preceding or subsequent to the image or video corresponds to at least some of the one or more words.
In some embodiments, the initiating comprises (606) performing the search at the client system. In some embodiments, at least one of the one or more documents is stored at the client system (e.g.,332,FIG. 3). Thus, in some embodiments, the one or more identified documents include at least one document stored at the client system.
Alternatively or additionally, the initiated search is performed by a document server or other search system that has access to documents for which the user has the right to copy content. For example, in some embodiments, the client system sends a search query to one or more search engines (e.g.,search engine system104,FIG. 1). In such embodiments, in response to initiating the search, the client system typically receives one or more search results from the one or more search engines. Alternatively, the client system sends the search query to documentsystem108, anddocument system108 either performs the search internally, or performs the search using one or more search engines (e.g.,104,FIG. 1). In some embodiments, the one or more identified documents include at least one online document that is not stored at the client system (e.g., a web page stored at a remote web server).
In some embodiments, the respective focus region includes (608) one or more consecutive sentences that collectively contain at least some of the one or more words. In some embodiments, the one or more consecutive sentences collectively contain the one or more words.
In some embodiments, the respective focus region includes (610) up to a predefined number of sentences. Each sentence includes at least one of the one or more words. In some embodiments, the predefined number of sentences collectively contains the one or more words.
The client system displays (612) document information corresponding to a subset of the identified documents. For example, the document information includes a title, an author, and/or a date of last change or access (e.g., a title and a date in heading440-1,FIG. 4D). In some embodiments, the client system displays one or more images and/or screenshots of one or more videos corresponding to the subset of the identified documents (e.g., one or more images and/or one or more screenshots of one or more videos included in the subset of the identified documents).
In some embodiments, displaying document information includes (614) displaying respective focus regions corresponding to the subset of the identified documents (e.g.,442-1,FIG. 4D). In some embodiments, the respective focus regions include one or more images and/or one or more screenshots of one or more videos corresponding to the subset of the identified documents.
In some embodiments, the document information includes (616) respective locations of corresponding documents. In some embodiments, the document information includes respective locations of corresponding documents on the client system. In some cases, a respective location of a corresponding document is a file path of the corresponding document (e.g.,444-1,FIG. 4D). In some embodiments, the document information includes respective locations of corresponding documents at remote servers. In some cases, a respective location of a corresponding document is a uniform resource locator of the corresponding document.
The client system detects (618) a selection of a second document in the subset of the identified documents. For example, a user selects the second document using theuser interface300, such as the keyboard/mouse303 (FIG. 3).
In some embodiments, the client system responds (620) to the selection of the second document by removing the second document from the subset of the identified documents. For example, document information concerning the history of the Internet (e.g.,440-3,FIG. 4D) may cease to be displayed after a focus region corresponding to the second document is inserted into the displayed document. In such embodiments, information concerning one or more other identified documents is displayed in place of the removed second document.
The client system modifies (622) the first document by inserting the respective focus region of the second document. For example, inFIG. 4E, the focus region corresponding to the selected document (e.g., “the beginning of the Internet is . . . ”) is inserted in the displayed document. In some embodiments, the client system inserts a respective image or a screenshot of a video of the second document into the first document. In some embodiments, the client system inserts (e.g., embeds) a video of the second document into the first document.
In some embodiments, the identifying (602), initiating (604), displaying (612), detecting (618), and modifying (622) are performed (624) while displaying the first document at the client system. In some embodiments, the client system performs a real-time search to identify corresponding documents. In some embodiments, the client system automatically performs the identifying (602), initiating (604), and displaying (612) operations, without any explicit user request for such operations. In other words, the user does not need to click on any “search” icon or a similar user interface object to initiate the identifying (602), initiating (604), and displaying (612) operations.
FIG. 7 is a flowchart representing a method performed at a server system for synchronizing content of a modified document, in accordance with some embodiments. The method is performed at a server system having one or more processors and memory storing one or more programs executed by the one or more processors (e.g., document system108).
The server system synchronizes (702) content of a first document displayed at a respective client system (e.g.,102,FIG. 1) with a copy of the first document stored at the server system. In some embodiments, the server system receives content of the first document displayed at the respective client system (e.g.,102), synchronizes the received content with a copy of the first document stored at the server system, and sends the synchronized copy of the first document to the respective client system (e.g.,102).
The server system sends (704) to the respective client system (e.g.,102) a set of instructions for: identifying one or more words in the first document displayed at the respective client system, and initiating a search to identify one or more documents. Each identified document includes a respective focus region corresponding to at least some of the one or more words. The set of instructions includes instructions for displaying document information corresponding to a subset of the identified documents, detecting a user selection of a second document in the subset of the identified documents, and modifying the first document by inserting the respective focus region of the second document. In some embodiments, the respective client system, in executing the set of instructions, operates in a manner similar tooperations602,604,612,618, and622 as described above with respect toFIG. 6. In some embodiments, the set of instructions is embedded instructions (e.g.,314,FIG. 3).
In some embodiments, sending the set of instructions to the respective client system includes (706) sending to the respective client system a web page that includes the set of instructions.
In some embodiments, the one or more documents are stored (708) at the respective client system (e.g., documents332,FIG. 3). In some embodiments, the one or more documents include at least one online document (e.g., a document that is not stored at the respective client system).
In some embodiments, a respective user associated with the respective client system shares (710) a plurality of documents with other respective users, and initiating the search includes initiating the search to identify one or more shared documents that include respective focus regions corresponding to the one or more words. For example, inFIG. 4D, the document entitled “History of the Internet” is a document that the respective user shares with other users.
In some embodiments, the corpus of documents to be searched includes both the respective user's own documents and documents of other users shared with the respective user. Thus, when a server (e.g., document system108) performs a search to identify one or more documents, the server identifies documents owned by the respective user and shared document that the respective user has access to, and identifies the one or more documents.
The server system synchronizes (712) content of the first document, as modified by the client system by execution of the instructions for modifying the first document, with the copy of the first document stored at the server system. In some embodiments, the server system receives content of the modified document from the respective client system (e.g.,102), synchronizes the received content with a copy of the first document stored at the server system, and sends the synchronized copy of the modified document to the respective client system (e.g.,102).
FIG. 8 is a flowchart representing a method performed at a server system for modifying a displayed document, in accordance with some embodiments. The method is performed at a server system having one or more processors and memory storing one or more programs executed by the one or more processors (e.g., document system108).
The server system sends (802) to a respective client system a copy of a first document stored at the server system and a set of instructions for: identifying one or more words in the first document displayed at the respective client system, and initiating a search to identify one or more documents. Each identified document includes a respective focus region corresponding to at least some of the one or more words. The set of instructions also includes instructions for displaying document information corresponding to a subset of the identified documents, and detecting a user selection of a second document in the subset of the identified documents.
In some embodiments, the set of instructions is embedded instructions (e.g.,314,FIG. 3). In some embodiments, sending to a respective client system a copy of a first document and a set of instructions includes sending to the respective client system a web page that includes the copy of the first document and the set of instructions as embedded instructions.
In some embodiments, the set of instructions includes sending to the server system the user selection of the second document. In some embodiments, the server system receives from the respective client system the user selection of the second document. In some embodiments, the set of instructions includes instructions for sending to the server system information that corresponds to the selected second document (e.g., a document identification number or a URL corresponding to the selected second document). In some embodiments, the server system identifies the respective focus region of the second document in accordance with the information that corresponds to the selected second document. In some embodiments, the set of instructions include instructions for sending to the server system the respective focus region of the second document. In such embodiments, the server system receives from the respective client system the respective focus region of the second document.
The server system modifies (804) the first document by inserting the respective focus region of the second document. The server system sends (806) to the respective client system at least a subset of the modified first document. In some embodiments, the respective client system receives and displays the modified first document. For example, the document illustrated inFIG. 4E includes the respective focus region of the selected document.
FIG. 9 is a high-level flow diagram illustrating processes performed by a client (e.g.,102,FIG. 1) and a document system (e.g.,108,FIG. 1) for inserting a citation to a document, in accordance with some embodiments. It will be appreciated by those of ordinary skill in the art that one or more of the acts described may be performed by hardware, software, or a combination thereof, as may be embodied in one or more computing systems. In some embodiments, portions of the process performed bydocument system108 can be performed byclient102. In some embodiments, portions of the process performed byclient102 can be performed bydocument system108.
In some embodiments,document system108 sends (902) instructions toclient102, andclient102 receives (904) the instructions. In some embodiments, the instructions include instructions to perform operations described below (e.g.,operations906,908,916, and918).
Client102 displays (906) a document, and sends (908) a subset of the displayed document to documentsystem108. Typically,client102 also receives a user input from a user associated withclient102, modifies the document in accordance with the user input, and sends a subset of the modified document to documentsystem108.
In some embodiments,document system108 sends the document toclient102 beforeclient102 displays the document. In other embodiments,client102 retrieves the document locally or from a source (e.g., another document server or a remote storage server) other thandocument system108.
Thedocument system108 receives (910) the subset of the document, identifies (912) one or more words in the received subset of the document, identifies one or more information items corresponding to the one or more words, and sends (914) at least a subset of the identified information items.
Client102 receives (916) the one or more information items, displays (918) a subset of the one or more information items, and detects or receives (920) a selection of an information item by a user.
In some embodiments,client102 sends (922) the selection of the information item by the user to thedocument system108, anddocument system108 receives (924) information representing the selection of the information item by the user. In some embodiments,document system108 modifies (926) the document by inserting a citation to the selected information item. In some embodiments,document system108 sends (928) toclient102 at least a subset of the modified document, or information representing the modification to the document.
Alternatively or additionally,client102 modifies (930) the document by inserting a citation to the selected information item. In some embodiments,client102 displays the modified document. In some embodiments,client102 sends (932) todocument system108 at least a subset of the modified document, or information representing the modification to the document.
FIG. 10 is a high-level flow diagram illustrating processes performed by a client (e.g.,client102,FIG. 1) and a document system (e.g.,document system108,FIG. 1) for inserting a respective focus region of a document, in accordance with some embodiments. It will be appreciated by those of ordinary skill in the art that one or more of the acts described may be performed by hardware, software, or a combination thereof, as may be embodied in one or more computing systems. In some embodiments, portions of the process performed bydocument system108 can be performed byclient102. In some embodiments, portions of the process performed byclient102 can be performed bydocument system108.
In some embodiments,client102 anddocument system108 synchronize with each other (1002 and1004).
In some embodiments,document system108 sends (1006) instructions toclient102, andclient102 receives (1008) the instructions. In some embodiments, the instructions include instructions forclient102 to perform operations described below (e.g.,operations1010,1012,1020, and1026).
Client102 displays a document, identifies (1010) one or more words from the displayed document, and initiates (1012) a search for documents that correspond to the one or more words. In some embodiments,client1012 receives a document fromdocument system108 before displaying the document.
In some embodiments,document system108 searches (1014) documents stored at the server, and sends (1016) search results. In some embodiments,document system108 searches documents stored at remote document servers (e.g., web servers). In some embodiments,client102 searches (1018) documents stored at the client. In some embodiments, bothclient102 anddocument system108 perform the search.
Client102 displays (1020) document information corresponding to a subset of the identified documents (e.g.,FIG. 4D).Client102 detects (1022) a selection of a second document in the subset of the identified documents.
In some embodiments,client102 modifies (1024) the first document by inserting a respective focus region of the second document. In some embodiments,client102 displays the modified first document (e.g.,FIG. 4E).
In some embodiments,client102 sends (1026) todocument system108 the selection of the second document or information representing the selection of the second document.Document system108 receives (1028) the selection of the second document (or the information), modifies (1030) the first document by inserting a respective focus region of the second document, and sends (1032) the modified first document toclient102. Client receives (1034) the modified first document. In some embodiments,client102 displays the modified first document (e.g.,FIG. 4E).
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.