Sign In to Follow Application
View All Documents & Correspondence

Flexibly Editing Heterogeneous Documents

Abstract: The present invention extends to methods, systems, and computer program products for flexibly editing heterogeneous documents. Different types of documents can be organized on a universal and dynamically adjustable workspace canvas in a manner that indicates relationships between the documents. The workspace canvas is configured to host various different editors simultaneously for editing the different types of documents. Accordingly, embodiments of the present invention facilitate editing different typed documents within the same context and in a manner that maintains relationships between documents.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
15 April 2010
Publication Number
39/2010
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
lsmds@lakshmisri.com
Parent Application

Applicants

MICROSOFT CORPORATION
ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399

Inventors

1. VOSS, FLORIAN
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
2. DANTON, STEPHEN M
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
3. WASSYNG, ANDREW C
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
4. MOLLICONE, LAURENT
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
5. FLYNN, JAMES R
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
6. POND, ARWEN E
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399

Specification

BACKGROUND

1. Background and Relevant Art

[0001] Computer systems and related technology affect many aspects of society. Indeed, the computer systems ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, accounting, etc.) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. Accordingly, the performance of many computing tasks are distributed across a number of different computer systems and/or a number of different computing components.

[0002] Many computing tasks include an application program manipulating data in response to user commands to express the user's intent within the data file. For example, a word processor can modify the contents of a word processing document in response to user commands received through a user-interface of the word processor. Other application programs can be used to manipulate spreadsheets, database entries, images, executable software code, etc.

[0003] In some environments, software applications (e.g., model editors) are even used to generate and manipulate models. For example, businesses and other entities may use model editors to create and modify models describing processes and systons. Such models are commonly referred to as flow diagrams, process flows, flowcharts, process diagrams and/or control charts. In other cases, model editors can be sued to create and modify models illustrating organizational relationships between resources in a syston. These models are often referred to as organizational charts. However, in a broader sense, model editors can be used to create and modify models to show virtually any type of relationship between different objects.

[0004] Software applications are typically designed to manipulate documents (e.g., hierarchically organized in a file system isolated) in separate windows. A Multiple Display Interface (MDI) is often used to facilitate document manipulation. An MDI uses multiple separate windows within a common host or a tab-based model.

[0005] Most MDI approaches are problematic in a number of different ways. At least one difficultly results from context switching when moving between documents. For example, each window in an MDI typically has an independent frame (or disjoint container). Thus, at least to some extent, documents and their contents are isolated from
one another. As a result, the operating system (or other management components functioning as a shell) has to manage cascading windows and keep command spaces in sync. For example, a user may desire to work with multiple different types of data. Using a repository browser the user may be required to continual switch contexts (windows) between the different types of data.

[0006] Disjoint containers can also result in a feature gap, wherein the operating system or other shell provides some document related features and the document provides other document related features. For example, using conventional searching mechanisms results are shown in an isolated task pane in the shell.

[0007] Further, interactions between documents, especially of different document types, are generally not primary operations. For example, editing of a nested or embedded document typically requires external activation of an editor compatible with the nested or embedded. Due at least in part to the use of separate editors, it can also be difficult to determine relationships between documents. Another general approach is Object linking and Embedding ("OLE"), which opens the same application, but with a disconnected experience.

[0008] Additionally, documents are typically managed within the fixed screen real estate using the operating system or they are managed directly within an application only (e.g., through whatever limited window management features the application includes). Neither mechanism persists user organization for more efficient retrieval upon subsequent use of a document. For example, most operating systems maintain open applications in a single flat list in a common location.

[0009] In many environments, applications also suffer from limited spatial optimization. For example, all documents are typically displayed in rectangular windows regardless of the shape of the content, plus the command space may also be repeated for each window (e.g., tiled SDI). Many applications also suffer from limited scaling. That is, the applications do not scale well to support increasing screen size & DPI, as well as multi-monitor support (e.g., many applications duplicate command spaces). BRIEF

SUMMARY

[0010] The present invention extends to methods, systems, and computer program products for flexibly editing heterogeneous documents. A common workspace is configured for editing documents of a plurality of different data types. The common workspace is configured to simultaneously host a plurality of different editors. Each editor is configured for use with at least one of the plurality of different data types. A workspace canvas is presented within the common workspace. The workspace canvas visually represents a plurality documents and relationships between the plurality of documents.

[0011] A first alteration command to alter a first document within the workspace canvas is received. The first document has a first data type. A first editor add-in configured for use with documents having the first data type is identified. A first editor is hosted within the workspace canvas. The first editor is utilized to apply the intent of the first alteration command to the first document. The first editor includes the functionality of the first editor add-in.

[0012] A second alteration command to alter a second document within the workspace canvas is received. The second document has a second different data type. The second document has a visually represented relationship to the first document within the workspace canvas. A second editor add-in configured for use with documents having the second different data type is identified. A second editor is hosted simultaneously along with the first editor within the workspace canvas. The second editor is utilized to q>ply the intent of the second alteration command to the second document The second editor includes the functionality of the second editor add-in

[0013] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0014] Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter. BRIEF

DESCRIPTION OF THE DRAWINGS

[0015] In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

[00161 Figures 1 depicts an example computer architecture that facilitates flexibly
editing heterogeneous documents.

[0017J Figure 2 illustrates a flow chart of an example method for flexibly editing
heterogeneous documents.

[0018] Figure 3 depicts an expanded view of an example workspace for flexibly editing heterogeneous documents.

[0019] Figure 4 depicts an example of a workspaces domain model.

[0020] Figure S depicts an example of a view state domain model.

DETAILED DESCRIFHON

[0021] The present invention extends to methods, systems, and computer program
products for flexibly editing heterogeneous documents. A common workspace is configured for editing documents of a plurality of different data types. The common workspace is configured to simultaneously host a plurality of different editors. Each editor is configured for use with at least one of the plurality of different data types. A workspace canvas is presented within the common workspace. The workspace canvas visually represents a plurality documents and relationships between the plurality of documents.

[0022] A first alteration command to alter a first document within the workspace canvas is received. The first document has a first data type. A first editor add-in configured for use with documents having the first data type is identified. A first editor is hosted within the workspace canvas. The first editor is utilized to apply the intent of the first alteration command to the first document. The first editor includes the functionality of the first editor add-in.

[0023] A second alteration command to alter a second document within the workspace
canvas is received. The second document has a second different data type. The second
document has a visually represented relationship to the first document within the workspace canvas. A second editor add-in configured for use with documents having the second different data type is identified. A second editor is hosted simultaneously along with the first editor within the workspace canvas. The second editor is utilized to apply the intent of the second alteration command to the second document. The second editor includes the functionality of the second editor add-in.

[0024] Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer- including computer hardware as discussed in greato- detail below. Embodimoits within the scope of the {Mvsent invoiticni also include physical and other computer-readable media for carrying or storing computor-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are physical storage media. Computer-readable media that cany computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of tiiie invention can comprise at least two distinctly different kinds of computer-readable media: physical storage media and transmission media.

[00251 Physical storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnc storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.

[0026] A "network" is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer property views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose conniter. Combinations of the above should also be included with the scope of computer-readable media.

[0027] Further, it should be understood, that upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to physical storage media. For example, computer-executable instructions or data structures received ova- a network or data link can be buffovd in RAM within a network intoface card, and then eventually tiransfrared to computer system RAM and/or to less volatile physical storage media at a computer system. Thus, it should be understood that physical storage media can be included in computer system ccnnponents that also (or even primarily) utilize transmission media.

[0028] Computer-executable instructions comprise, for example, instructions and data which cause a gea&ni purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. Althougjh the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.

[0029] Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainfi'ame computers, mobile telephones, PDAs, pagers, routers, switches, touch based devices, such as, for example, iPhone Microsoft* Surface, wall projections, volumetric displays, and large screen wall displays, and the like. The invention may also be jnacticed in distributed system environments where local and remote computo: systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) througlh a network, botii poform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices

[0030] Figure 1 illustrates an example computer ardiitecture 100 that fedlitates flexibly editing heterogoieous documents. Depicted in computer architecture 100 are firame manager 101, docummt manager 102, and add-in manager 103. Frame manager 101, document manager 102, and add-in manager 103 can be connected to one another over a system bus or network, sudi as, for example, a Local Area Networic ("LAN"), a Wide Area Network ("WAN"), or even the Intemet. Accordingly, componmts of firame manager 101, document manager 102, and add-in manager 103, as well as any other connected components, can opeate message related data and exchange message related data (e.g., Intemet Protocol ("IP'*) datagrams and other higo* layw protocols that utilize IP datagrams, such as. Transmission Control Protocol ('TCP"), Hypertect Transfer Protocol ("HTTP"), Simple Mail Transfer Protocol ("SMTP"), etc.) over the network.

[0031] Generally, frame manager 101 is configured to fedlitate fledble editing of heterogeneous documents. Frame manger 101 can configure workspace canvases for editing documents of a plurality of different data types. Frame manager 101 can request documents that represent workspaces fiwm document manager 102. To facilitate multi-document workspace canvases a workspace can simultaneously host a plurality of different editors. Each different editor can be configured for use with one of the plurality of different datatypes.

[0032] A woricspace canvas can be visually presented as a user-interface at a computer system. Thus, a workspace canvas can receive user input for loading, saving, altering, accessing, deleting, etc., documents present within the woikiqmce canvas. In response to user input, a woikspace can request further documents fix)m the document manago- and match them to editors by making requests to add-in manager 103. Thus, received uso'-input can be forwarded to document manager 102. Based on the usa-input, a workspace can fben perform various operations to realize the intent indicated in the us«-input (e.g., load a document, edit a document, create a relationship between documents, etc.)

[0033] A workspace can send document requests to document manager 102. A document request (e.g., request 182) can be one or more queries, filoiames, URLs, etc., each representing a portion of the documents content. In response to a document request, document manago* 102 can identify one or more requested portions of content form storage 104. Document manager 102 can return any identify portions of content (e.g., content 391) to the requesting workspace.

[0034] Upon receiving document content, a workspace can host an qipropriate editor(s) for the documoit For example, workspace 107 can determine the data type of a retuned document and submit the data type to add-in manager 103. Add-in mana 103 can refer in mapping 121 (at storage 106) to match the data type to a corresponding editor. Add-in manager 103 can ihea access the corresponding editor and return &e corresponding editor to fi:ame manager 101.

[0035] In some embodiments, woikspace 107 includes goieric editor functionality having interfaces for receiving and interoperating with editor add-ins. In these (as well as other) embodiments, a returned editor add-in can be configured to interoperate with the generic editor fimctionality of workspace 107. For example, a returned editor add-in can be
a dynamic link library ("DLL") configured to interoperate with generic editor functionality to implement editing operations for a specified data type. Workspace 107 can load the DLL to gain access to editing operations for specified data type. Workspace 107 can that host editors within a workspace for editing documents of the specified data type.

[00361 Briefly referring to Figure 3, Figure 3 depicts an expanded view of workspace 107 for flexibly editing heterogeneous documents.

[0037] The expanded view of workspace 107 visually depicts an arrangement of various different workspace, including woriq)ads 108A, 108B, 302, 312, and 361, containing different documents. The woriqiads also serve as a grouping mechanism to group together contained documents. Figure 2 illustrates a flow chart of an example method 200 for flexibly editing heterogeneous documents. Method 200 will be described with respect to the components and data dqncted in computer architecture 100 and the documents ducted in the expanded view of woikspace 107. In portions of the desmption, components and data in computer architecture 100 and in the expanded view of workspace 107 are used interchangeably.

[0038] Method 200 includes an act configuring a common workspace for editing documents of a plurality of different data types, the common workspace configured to simultaneously host a pliuality of different editors, eadi editor configured for use with at least one of the plurality of different data types (act 201). For «ample, firame manager 101 can configure workspace 107 for editing documents of a plurality of different data types. Frame manager 101 can send document request 133 to document manager 102 to request a workspace document. In response, document manager 102 can return workspace document 109 to fi-ame manager 101. Frame manager 101 can used workspace document 109 to configure workspace 107.

[0039] Workspace 107 can be configured to host various editors (e.g., 131AE, etc.) based on editor add-in types 131. Each hosted editor can be configured for use with one of the plurality of different data types (rqnresenting in portions of content 181). For example, different hosted editors can be configured for use with different types of data (e.g., data type 111, data type 112, etc.) stored in documents 109.

[0040] Method 200 includes an act of presenting a workspace canvas visually represeiting a plurality documents and relationships betwen flie plurality of documents (act 202). A workspace canvas can be a type of document that is stored in documoits 109. Thus, workspace 107 can access a workspace canvas document fix)m documents 109 and

present a corresponding workspace canvas within workspace 107. For example, workspace 107 can present workpad 108A based on workspace canvas document 109. A vfoAspace canvas can include links indicating relationships betweoi otbo: documents in documents 109. Workspace 107 can follow the links to access other documents within documents 109.

[0041J Thus, woiicspace 107 can access content for document 301 (e.g., content391, i.e., some of the content fix)m portions of content 181) can presmt document 301 in woikpad 108A. As dq>icted, docummt 301 visually jq>resents a plurality of portions of content (some of which can be other documents) and relationships between the portions of content, including content 391 and 392.

[0042] Method 200 includes an act of receiving a first alteration command to alter a first document within &e workspace canvas, the first document having a first data type (act 203). For example, workspace 107 can receive user-input 141. User-input 141 can be a command to edit document 301. For example, a user can select content 391 (or some othor portion of cont«it) fix)m document 301. Alternately, a usa can ento* a commaml to modify a portion of content.

[0043] Method 200 includes an act of identifying a first editor add-in configured for use with documoits having the first data type (act 204). For example, in response to user-input 141, workspace 107 can send document request 182 (for content 391, which can be data or another document), such as, for example, a file name, a query, a URL, etc., to document manager 102. Based on document request 182, document manager 102 can retrieve document content 391 fix>m storage 104 and content 391 to workspace 107.
[0044] Workspace can receive content 391 and access data type 111. Woiicspace 107 can submit data type 111 to add-in manager 103. Add-in manager 103 can refer to mappiag 121. Generally, mapping 121 maps data types (e.g., data types 111 and 112) to corresponding editor add-ins (e.g., editor add-ins 131A and 131B) respectively. Accordingly, add-in manage: 103 can refer to mapping 121 to determine that editor add-in 131A is the appropriate editor for content 391. Add-in manager 131 can then return editor add-in 131A (e.g., a DLL) to fime manger 101.

0045] Method 200 includes an act of hosting a first editor within the common workspace canvas (act 205). For example, in response to receiving editor add-in 131 A, workspace 107 can host editor 131AE for editing content 391. Editor 131AE can include and be based on the fimctionality included in editor add-in 131 A. Method 200 includes an
act of utilizing the first editor to apply the intent of the first altotion command to the first documoit (act 206). For exmnple, woricspace 107 can utilize editor 131AE to q)ply an editing operation to content 391.

[0046] Method 200 includes an act of receiving a second alteration command to alter a second document within the workspace canvas, the second document having a second differait data type, the second document having a visually represented relationship to the first document within the workspace canvas (act 207). For example, woikpad 108A can receive further user input including commands to editc content 392. For example, a user can select a link to content 392 fix)m document 301. Alternately, a user can enter a command to modify content 392. As depicted in the expanded view of woiicspace 107, documoit 301 visually represents a relationship between content 391 and 392. That is, content 391 is linked to content 392 through a series of links between otho* content and/or documents.

[0047] Method 200 includes an act of identifying a second editor configured for use with documents having the second different data type (act 208). Fm* example, in response to the fur&er user-input, workspace 107 can send a further document request for content 392, sudi as, for example, a file name, a query, a URL, etc., to documoit manager 102. Based on the further document request, document manager 102 can content 392 form portions of contoit 181 fix)m storage 104 and return content 392 to workspace 107.

[0048] Workspace 107 can receive content 392 and access data type 112. Woikspace 107 can submit data type 112 to add-in manager 103. Add-in manager 103 can refer to mapping 121 to determine that editor add-in 13IB is the q>propriate editor for content 392. Add-in manago: 131 can then return editor add-in 13IB (e.g., a DLL) to workspace 107.

[0049] Metiiod 200 includes an act of hosting the second editcnr simultaneously along with the fir editor within the workspace canvas (act 209). For example, in response to receiving editor add-in 131B, firame manager 101 can host editw 131BE for editing contmt 392. Editor 131BE can include and be based on the functionality inchided in editor add-in 131B. As depicted in computer architecture 100, editors 131AE and 131BE can be hosted simultaneously within workspace 107 (and within worlq)ad 108A). Method 200 includes an act of utilizing the second editor to apply the intent of the second alteration command to the second document (act 210). For example, workspace 107 and utilize editor 131BE to }ply an editing opaaAon to content 392.

[0050] In some embodimoits, documoits are nested within one another. For sample, a first document of a first data type can be nested (onbedded OT refoces) within a second document of a second different data type. Thus, within an editor for editing the second document, the first document can be selected to trigger m editor for editing die first document. This facilitates drilling into and editing contmt (and other documents) in place or editing documents aside fiwm one another (within the same woricspace). This also facilitates exploration of documents in a manner that retains context between the documents.

[0051] In some embodiments, as new items are added to and/or deleted fixnn a workspace, such as, for example, content and documents (e.g., 306 and 307), woilq)ads (302 (which also ser/es as a grouping mechanism),108B, 304), editors, etc., the size of workspace can be dynamically expanded and reduced as space requirements change. Workpads can expand infinitely to accommodate virtually any size of document and/or numbers of documents. When >propriate, scroll bars can be used to move within a workpad. A user can also manipulate other controls to pan wi&in a workpad. Thus, auso: is given the feeling of a limitless (or infinite) workspace).

[0052] Workpads facilitate opening a related documt in-context of another documoit Woikpads can be used to present different documents relative to one anotiior and in different locations in a workspace. In some embodiments, floating workpads are used to open a related document without directly consuming workspace area. That is, the woikpad "floats" above the workspace. For example, floating workpad 361 floats above workspace 107 (over a portion of document 301). Documents in floating workpads can be disabled until the floating document is dismissed, or until the document is added to the woricspace. Thus, floating workpads provide a transient and focused experience without unnecessarily disnq>ting the woricspace layout

[0053] Documents can also be included in multiple places within a woricspace. Fen-example, document 311 is included both in highlighted visual bookmark 304 and woriq>ad 108B.

[0054] Workpads can be configured in a variety of formats including any number of documents. Workpads can also be nested within one another. For example, as depicted, workpad 312 (including document 316) is nested within workpad 302 (including document 314). Woricpads 302 and 108B are also nested within workpad 108A. .

[0055] Within a woiicspace, canvas space can be prioritized for documents that are currently being accessed. For example, document 301 can be increased in size in response to the selection of contoit 391 or 392. On the other hand, o&er items in workspace 107 can be reduced in size in response to the selection of content 391 or 392. Prioritization of documents permits a user to more easily focus on currently relevant documents, yet maintains other documents in context in the periphery.

[0056] Woricspace 107 also includes visual bookmarks 371 arranged in a row format. Visual bookmarics 371 provide previews of bookmarics/favorites for documents. Highlighted visual bookmaric 304 can be higghted (e.g., increased in size) in response to mousing over the visual bookmark fix)m within visual bookmarics 371.

[0057] Accordingly, embodiments of the presoit invention facilitate editing different typed documents within the same context and in a manner that maintains relationships between documents. Furthor, in some onbodiments, fiame manager 101 manages a plurality of tabbed woricspaces through a user-inter&ce. Reforing to Figure 3, tab 391 has been selected to cause frame manager 101 to present yfotkspace 107. However, selection of tab 392 can cause frame manager 101 to present another different woricspace. Usas can add and delete tabbed workspaces as desired using the user-intor&ce.

[0058] Figure 4 depicts an example of a worics7)aces domain model 400. Workspaces utilized in embodiments of the presoit invention can be defined in accordance with woricspaces domain model 500. Figure 5 depicts an example of a view state domain model 500. View state for items depicted within a workspace can be defined in accordance with view state domain model 500.

[0059] Embodiments of the invention can also be used to close the gxp between shell features and documents features. For example, a document can be a set of shell like searches or quories. This provides a seamless experioice that allows a user to access what they want, wherein they want it. For example, with workspaces lists of content can be generated in response to a query. Floating worlq>ads can be used to present a list of content. A user can then pin the woricpad to a woricspace (similar to any other contoit) for further usage. Similarly, whoi woricing with different types of contoit, woricpads can be docked in proximity of one another to provide a more customized experience.

[0060] The present invention may be embodied in oiha specific finrns without departing from its sinrit or essential characteristics. The desoibed embodimoits are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

I/We Claim:

1. At a computer system, a method for editing documents having different data types, the method comprising:

an act of configuring a common workspace canvas (107) for editing documents of a plurality of different data types (111,112) the common workspace canvas (107) configured to simultaneously host a plurality of different editors (131AE, 131BE), each editor configured for use with at least one of the plurality of different data types; an act of presenting a workspace canvas visually representing a plurality documents (391*, 392) and relationships (301) between the plurality of documents; an act of receiving a first alteration command (141) to alter a first document (391) within the workspace canvas (107), the first document (391) having a first data type (11I); an act of identifying a first editor add-in (131 A) configured for use with documents having the first data type (111); an act of hosting a first editor (131AE) within the workspace canvas (107), die first editor (131AE) including the functionality of the first editor add-in (131 A); an act of utilizing the first editor (131AE) to apply the intent of the first alteration command (141) to the first document (391); an act of receiving a second alteration command to alter a second document (392) within the workspace canvas (107), the second document (392) having a second different data type (112), the second document (392) having a visually represented relationship (301) to the first document (391) within the workspace canvas (107); an act of identifying a second editor add-in (131B) configured for use with documents having the second different data type (112); an act of hosting a second editor (131BE) simultaneously along with the first editor (131AE) within the workspace canvas (107), the second editor including the functionality of the second editor add-in (131B) ; and an act of utilizing the second editor (131BE) to apply the intent of the second alteration command to the second document (392).

2. The method as recited in claim 1, further comprising:
an act of presenting one or more other documents simultaneously along with the documents on the workspace canvas.

3. The method as recited m claim 2, further comprising:
an act of dynamically adjusting the area of the workspace canvas to accommodate the one or more other documents; and

an act of providing controls to scroll and pan in any direction of the workspace canvas to access documents present within the workspace canvas.

4. The method as recited in claim 2, wherein die act of presenting one or more other documents simultaneously along with the document on the workspace canvas comprises an act of presenting at least one document in a floating workpad on top of the workspace canvas.

5. The method as recited in claim 2, wherein the act of presenting one or more other documents simultaneously along with the document on the workspace canvas comprises an act of presenting at least one other workpad that also includes the first document.
6. The method as recited in claim 1, wherein the an act of receiving a first alteration command to alter a first document within the workspace canvas comprises an act of receiving user-input selecting a first document that is embedded within the second document.

7. The method as recited in claim 1, wherein die act of identifying a first editor add-in configured for use with documents having the first data type comprises an act of identifying an add-in configured to editing operations documents of the first data type.

8. The method as recited in claim 1, further- comprising:
an act of visually altering the presentation of the first document in response to receiving the first alteration command to indicate that the first document has increased priority.

9. The method as recited in claim 1, further comprising prior to configuring the
workspace canvas for editing documents:

an act of presenting a user-interface including a plurality of tabs, each tab corresponding to a different workspace; and

an act of receiving a user-input selecting the tab corresponding to the workspace canvas.

10. The method as recited ion claim 1, wherein the act of identifying a first editor add-in configured for use with documents having the first data type comprises:

an act of an add-in manager referring to a mapping to identify an editor add-in configured for use with the first data type; and

an act of accessing the identified editor add-in fix>m storage.

11. The method as recited in claim 1, wherein the first document is represented by a set of queries for portions of conent

12. A computer program product for use at a computer system, the computer program product for implementing a method for editing documents having different data types, the computer program product comprising one or more physical storage media having stored thereon computer-executable instructions that, when executed a processor, cause die computer system to perform the method, including the following.

configure a common workspace canvas for editing documents of a plurality of different data types, the common workspace canvas configured to simultaneously host a plurality of different editors, each editor configured for use with at least one of die plurality of different data types;

present a workspace canvas visually representing a plurality documents and relationships between the plurality of documents;

receive a first alteration command to alto* a first document within the workspace canvas, the first document having a first data type;

identify a first editor add-in configured for use with documents having the first data type;

host a first editor within the workspace canvas, die first editor including the functionality of the first editor add-m;

utilize the first editor to apply the intent of the first alteration command to the first document;

receive a second alteration command to alter a second document within the workspace canvas, the second document having a second different data type, the second document having a visually represented relationship to the first document within the workspace canvas;

identify a second editor add-in configured for use with documents having the second different data type;

host a second editor simultaneously along with the first editor within the workspace canvas, the second editor including the functionality of the second editor add-in; and

utilize the second editor to apply the intent of the second alteration command to the second document.

13. The computer program product as recited in claim 12, further comprising:

computer-executable instructions that, when executed, cause the computer system to present one or more other documents simultaneously along with the document on the workspace canvas.

14. The computer program product as recited in claim 13, further comprising:
computer-executable instructions that, when executed, cause the compute system to dynamically adjust the area of the workspace canvas to accommodate the one or more other documents.

15. The computer program product as recited in claim 14, further comprising computer- executable instructions that, when executed, cause the computer system to:

dynamically adjust the area of the workspace canvas to accommodate the one or more other documents; and

providing controls to scroll and pan in any direction of the workspace canvas to access documents present within the workspace canvas.

16. The computer program product as recited in claim 13, wherein computer-executable instructions that, when executed, cause the computer system to present one or more other documents along with the document on the -workspace canvas comprise computer-executable instructions that, when executed, cause the computer system to represent a document in a floating workpad on top of the workspace canvas.

17. The computer program product as recited in claim 11, wherein computer-executable instructions that, when executed, cause the computer system to identify a first editor- add-in configured for use with documents having the first data type comprise computer-executable instructions that, when executed, cause the computer system to identifying an add-in configured to editing operations documents of the first data type.

18. The computer program product as recited in claim 11, further comprising computer- executable instructions that, when executed, cause the computer system to:

present a user-interface including a plurality of tabs, each tab corresponding to a different workspace, including a tab corresponding to die common workspace canvas; and

receive a user-input selecting the tab corresponding to the common workspace canvas.

19. The computer program product as recited in claim 11, further comprising computer- executable instructions that, when executed, cause the computer system to:

referring to a mapping to identify an editor add-in configured for use with the first data type; and

accessing the identified editor add-in from storage.

20. A computer system, including:

one or more processors;

system memory; and

one or more physical storage media having stored thereon computer-executable instructions representing a frame manager, the frame manager configured to:

configure a common workspace canvas for editing documents of a plurality of different data types, the common workspace canvas configured to simultaneously host a plurality of different editors, each editor configured for use with at least one of the plurality of different data types;

present a workspace canvas visually representing a plurality documents and relationships between the plurality of documents;

receive a first alteration command to alter a first document within the workspace canvas, the first document having a first data type;

identify a first editor add-in configured for use with documents having the first data type;

host a first editor within the workspace canvas, the first editor including the functionality of the first editor add-in;

utilize the first editor to apply the intent of the first alteration command to the first document;

receive a second alteration command to alter a second document within the workspace canvas, the second document having a second different data type, the second document having a visually represented relationship to the first document within the workspace canvas;

identify a second editor add-in configured for use with documents having the second different data type;

host a second editor simultaneously along with the first editor within the workspace canvas, the second editor including the functionality of the second editor add-in; and

utilize the second editor to apply the intent of the second alteration command to the second document.

Documents

Application Documents

# Name Date
1 2134-CHENP-2010-AbandonedLetter.pdf 2017-09-26
1 abs 2134-chenp-2010 abstract 15-04-2010.jpg 2010-04-15
2 2134-chenp-2010 assignment 15-04-2010.pdf 2010-04-15
2 2134-CHENP-2010-FER.pdf 2017-03-23
3 FORM-6-1301-1400(KONPAL).69.pdf 2015-03-13
3 2134-chenp-2010 form-2 15-04-2010.pdf 2010-04-15
4 MS to MTL Assignment.pdf 2015-03-13
4 2134-chenp-2010 drawings 15-04-2010.pdf 2010-04-15
5 MTL-GPOA - KONPAL.pdf 2015-03-13
5 2134-chenp-2010 claims 15-04-2010.pdf 2010-04-15
6 FORM-6-1301-1400(KONPAL).69.pdf ONLINE 2015-03-05
6 2134-chenp-2010 abstract 15-04-2010.pdf 2010-04-15
7 MS to MTL Assignment.pdf ONLINE 2015-03-05
7 2134-chenp-2010 power of attorney 15-04-2010.pdf 2010-04-15
8 MTL-GPOA - KONPAL.pdf ONLINE 2015-03-05
8 2134-chenp-2010 pct search report 15-04-2010.pdf 2010-04-15
9 2134-chenp-2010 pct 15-04-2010.pdf 2010-04-15
9 2134-CHENP-2010 FORM-6 25-02-2015.pdf 2015-02-25
10 2134-chenp-2010 description(complete) 15-04-2010.pdf 2010-04-15
10 2134-CHENP-2010 CORRESPONDENCE OTHERS 13-10-2011.pdf 2011-10-13
11 2134-chenp-2010 correspondence others 15-04-2010.pdf 2010-04-15
11 2134-CHENP-2010 FORM-18 13-10-2011.pdf 2011-10-13
12 2134-chenp-2010 form-5 15-04-2010.pdf 2010-04-15
12 2134-chenp-2010 form-3 12-10-2010.pdf 2010-10-12
13 2134-chenp-2010 form-1 15-04-2010.pdf 2010-04-15
13 2134-chenp-2010 form-3 15-04-2010.pdf 2010-04-15
14 2134-chenp-2010 form-1 15-04-2010.pdf 2010-04-15
14 2134-chenp-2010 form-3 15-04-2010.pdf 2010-04-15
15 2134-chenp-2010 form-5 15-04-2010.pdf 2010-04-15
15 2134-chenp-2010 form-3 12-10-2010.pdf 2010-10-12
16 2134-chenp-2010 correspondence others 15-04-2010.pdf 2010-04-15
16 2134-CHENP-2010 FORM-18 13-10-2011.pdf 2011-10-13
17 2134-CHENP-2010 CORRESPONDENCE OTHERS 13-10-2011.pdf 2011-10-13
17 2134-chenp-2010 description(complete) 15-04-2010.pdf 2010-04-15
18 2134-chenp-2010 pct 15-04-2010.pdf 2010-04-15
18 2134-CHENP-2010 FORM-6 25-02-2015.pdf 2015-02-25
19 2134-chenp-2010 pct search report 15-04-2010.pdf 2010-04-15
19 MTL-GPOA - KONPAL.pdf ONLINE 2015-03-05
20 2134-chenp-2010 power of attorney 15-04-2010.pdf 2010-04-15
20 MS to MTL Assignment.pdf ONLINE 2015-03-05
21 2134-chenp-2010 abstract 15-04-2010.pdf 2010-04-15
21 FORM-6-1301-1400(KONPAL).69.pdf ONLINE 2015-03-05
22 2134-chenp-2010 claims 15-04-2010.pdf 2010-04-15
22 MTL-GPOA - KONPAL.pdf 2015-03-13
23 2134-chenp-2010 drawings 15-04-2010.pdf 2010-04-15
23 MS to MTL Assignment.pdf 2015-03-13
24 2134-chenp-2010 form-2 15-04-2010.pdf 2010-04-15
24 FORM-6-1301-1400(KONPAL).69.pdf 2015-03-13
25 2134-CHENP-2010-FER.pdf 2017-03-23
25 2134-chenp-2010 assignment 15-04-2010.pdf 2010-04-15
26 abs 2134-chenp-2010 abstract 15-04-2010.jpg 2010-04-15
26 2134-CHENP-2010-AbandonedLetter.pdf 2017-09-26

Search Strategy

1 search_01-03-2017.pdf