# Patent

## Title
Techniques for managing persistent document collections

## Abstract

Various technologies and techniques are disclosed for creating and managing persistent document collections. A data store is used for storing one or more persistent document collections. A content management application is used for managing documents for users, for creating one or more persistent document collections of a sub-set of the documents upon user request, and for storing the one or more persistent document collections in the data store. Users can create one or more persistent document collections from a sub-set of the documents. Users can also modify the one or more persistent document collections. A requested portion of one or more persistent document collections can be output upon request from an external application so that the external application can download one or more of the documents that are represented by the persistent document collection for further modification by the user.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of, claims the benefit of and priority to, previously filed U.S. patent application Ser. No. 14/602,822 entitled “Techniques for Managing Persistent Document Collections” filed on Jan. 22, 2015, the subject matter of which is hereby incorporated by reference in its entirety.


BACKGROUND
Many document management applications such as MICROSOFT® Office SharePoint Server enable users to organize documents in a series of lists or libraries. Such document management applications can typically be accessed through a web browser or a rich client interface, and make it easy for organizations to share documents with various team members. When adding a new document through the document management application, the user typically selects which list or library to add the document to. Other users can then find that document by accessing that library specifically, or by performing one or more query searches across libraries to locate one or more documents of interest.
If the user wants to work with the same set of documents over a period of time, he or she typically has two options. The first option is that the user can perform the search multiple times to keep re-locating the documents. The second option is that the user can keep track of which varying libraries actually contain the documents that he or she is interested in working with. And then each time the user is ready to work with those documents, he/she must navigate to those respective libraries one by one to access the respective document of interest.
SUMMARY
Various technologies and techniques are disclosed for creating and managing persistent document collections. In one implementation, a system for creating and managing persistent document collections is described. The system includes a data store is used for storing one or more persistent document collections. The system also includes a content management application that is used for managing documents for users, for creating one or more persistent document collections of a sub-set of the documents upon user request, and for storing the one or more persistent document collections in the data store.
In another implementation, a method is disclosed for enabling users to create and manage one or more persistent document collections. Documents that are managed by a content management application are displayed for user review. An add selection is received from a user which specifies at least one of the documents to add to a persistent document collection. The user can optionally specify additional attributes about the persistent document collection, such as storage space to allocate, etc. The persistent document collection is then created and stored in a data store.
In yet another implementation, techniques are described for a content management application that also allows external applications to access and manage documents contained in one or more persistent document collections. Users can create one or more persistent document collections from a sub-set of the documents. Users can also modify the one or more persistent document collections. A requested portion of one or more persistent document collections can be output upon request from an external application so that the external application can download one or more of the documents that are represented by the persistent document collection for further modification by the user.
This Summary was 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.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagrammatic view of one implementation of a system for creating and managing persistent document collections.
FIG. 2 is a diagrammatic view of another implementation of a system for creating and managing persistent document collections and enabling external application(s) to access the collections.
FIG. 3 is a process flow diagram for one implementation illustrating the stages involved in adding documents to a persistent document collection.
FIG. 4 is a process flow diagram for one implementation illustrating the stages involved in interacting with an existing persistent document collection.
FIG. 5 is a process flow diagram for one implementation illustrating the stages involved in synchronizing files on a particular computer or location with the corresponding documents in one or more persistent document collections.
FIG. 6 is a process flow diagram for one implementation illustrating the stages involved in downloading one or more documents in a persistent document collection to a particular computer or location.
FIG. 7 is a process flow diagram for one implementation that illustrates the stages involved in allowing external application(s) to access the content management application to work with the persistent document collection(s).
FIG. 8 is a simulated screen for one implementation that illustrates adding selected documents to a persistent document collection.
FIG. 9 is a simulated screen for one implementation that illustrates selecting a persistent document collection to add the selected documents to.
FIG. 10 is a simulated screen for one implementation that illustrates creating a new persistent document collection.
FIG. 11 is a simulated screen for one implementation that illustrates managing existing persistent document collections.
FIG. 12 is a simulated screen for one implementation that illustrates browsing the details of a selected persistent document collection.
FIG. 13 is a diagrammatic view of a computer system of one implementation.



DETAILED DESCRIPTION
The technologies and techniques herein may be described in the general context as an application that manages persistent document collections, but the technologies and techniques also serve other purposes in addition to these. In one implementation, one or more of the techniques described herein can be implemented as features within a content management application such as MICROSOFT® Office SharePoint Server, or from any other type of program or service that manages documents for multiple users. In another implementation, one or more of the techniques described herein are implemented as features with other applications that interact with content management applications.
In one implementation, techniques are described for enabling users to create persistent document collections. The term “persistent document collection” as used herein is meant to include a group of one or more documents that are identified by a name or other identifier, and that get stored so that one or more users can access the underlying documents through the assigned grouping at later points in time. In another implementation, one or more of these persistent document collections can be accessed by one or more external applications to allow the user to work with them further from those external applications, or to allow those externals applications to perform other operations independently of the user. The term “external application” as used herein is meant to include an application that is separate from the document management application that created the persistent document collection(s).
FIG. 1 is a diagrammatic view of one implementation of a system 100 for creating and managing persistent document collections. A content management application 102 is responsible for managing various documents that are created by multiple users. Content management application 102 enables users to organize the documents into various lists and/or libraries. The user communicates with the content management application 102 through a user interface 106, such as through a web browser. In such as browser-based scenario, the content management application 102 is located on one or more web servers. The user can use the user interface 106 to browse through documents in the content management application 102, and to then create one or more persistent document collections. A given user can create a particular persistent document collection to group together documents that he/she would like to work with on a more regular basis without having to locate them in their respective underlying libraries or other locations where they would normally be found in the content management application 102.
Once created, the persistent document collection(s) are then stored in one or more data stores, such as data store 104. Depending on the implementation used, the content management application 102 handles interactions with the data store 104 and/or user interface 106 handles interactions with the data store 104. For example, when content management application 102 is a web application that resides on a web server, and with user interface 106 being displayed to the user in a web browser, then content management application 102 may handle interactions with the data store 104 directly. In other implementations, user interface 106 may contain logic for interacting directly with the data store 104, such as when user interface and content management application 102 are contained as part of the same executable file on a client computer. In either scenario, by storing the document collection(s) that get created by the user, the same and/or other users are able to access this grouping of documents more easily on later interactions with the content management application 102.
FIG. 2 is a diagrammatic view of another implementation of a system 120 for creating and managing persistent document collections and enabling external application(s) to access the collections. Since system 120 contains similar components as FIG. 1, the same reference numbers are used to indicate the same components. For example, system 120 also includes a content management application 102, data store 104, and user interface 106. System 120 also includes one or more external applications 122 that are “collection aware”. These external applications 122 know that the content management application 102 manages persistent document collections, and it knows how to interact with the content management application 102 and the data store 104 to retrieve the persistent document collections and the underlying documents that they represent. In other words, with system 120, content management application 102 allows one or more external applications 122 to access and manage the documents represented in the persistent document collection(s). For example, the external application 122 may download the document to allow the user to work with those particular documents from within the external application 122 (and independently from the content management application 102). Systems 100 and 120 will now be described in further detail in the figures that follow.
Turning now to FIGS. 3-7, the stages for implementing one or more implementations of system 100 and/or system 120 are described in further detail. In some implementations, the processes and simulated screens of FIG. 2-12 are at least partially implemented in the operating logic of computing device 500 (of FIG. 13).
FIG. 3 is a process flow diagram 200 that illustrates one implementation of the stages involved in adding documents to a persistent document collection. Documents that are managed by a content management application are displayed (stage 202). An add selection is received which specifies one or more documents to add to a persistent document collection (stage 204). In other words, a selection is received from a user or programmatically to add one or more selected documents to a persistent document collection. The user can optionally create a new collection if the one that he/she wants to add the selected documents to does not already exist (stage 206). The user can optionally specify additional attributes for the persistent document collection (stage 208). One non-limiting example of an additional attribute includes a synchronization frequency 436 which specifies how frequently the collection should be synchronized with the documents downloaded to another location, such as the user's computer. Another non-limiting example includes a disk space attribute 438 to specify how much disk space should be allocated for storing the documents of the persistent document collection.
Yet another non-limiting example of an attribute that can be specified for a persistent document collection includes which one or more external applications should be allowed to access this persistent document collection. These are just a few non-limiting examples of the types of attributes that can be assigned to one or more persistent document collections. In other implementations, fewer and/or additional attributes could be used.
The persistent document collection is then stored in a data store (stage 210) so that the user who created it or other users with appropriate security permissions can access it later. The steps can be repeated to allow more documents to be added at a later time to this persistent document collection or a different persistent document collection (stage 212).
FIG. 4 is a process flow diagram 220 that illustrates one implementation of the stages involved in interacting with an existing persistent document collection. Security permissions can be used to determine who is able to perform some or all of the steps described in FIG. 4. For example, a user who created a given persistent document collection may be provided with permission to view and modify that persistent document collection in the future. Permission may be granted to other users to view and/or modify a given collection, such as other members of the team that are responsible for the work related to the documents contained in a certain persistent document collection. Numerous other variations are also possible for controlling who is able to access a given persistent document collection.
A list of documents that are part of a persistent document collection are displayed (stage 222), such as on a computer screen of a user. The user is able to specify a remove selection to remove selected document(s) from the persistent document collection, and the content management application processes the user selection when it is received to remove the document from the specified persistent document collection (stage 224). Alternatively or additionally, the user is also able to select one or more of the documents to view, and the content management application displays the contents of the selected document(s) in a user interface of the user when such a selection is received from the user (stage 226).
FIG. 5 is a process flow diagram 240 that illustrates one implementation of the stages involved in synchronizing files on a particular computer or location with the corresponding documents in one or more persistent document collections. Upon user request, details of a selected persistent document collection are displayed (stage 242). The user can initiate a synchronization of one or more documents represented by the persistent document collection (stage 244), or the synchronization can be initiated programmatically, such as on a scheduled basis. The files residing on the computer or location specified by the user are then synchronized with the corresponding document(s) represented in the persistent document collection (stage 246).
FIG. 6 is a process flow diagram 250 that illustrates one implementation of the stages involved in downloading one or more documents in a persistent document collection to a particular computer or location. Upon user request, details of a selected persistent document collection retrieved through the content management application and then displayed in a user interface to a user (stage 252). The user can initiate a download operation of one or more documents that are represented by a persistent document collection (stage 254), or the download operation can be initiated programmatically. The one or more documents are then downloaded to the location specified (stage 256). A synchronization operation can optionally be performed at a later time to update the content management application with the revised version(s) of the document(s) (stage 258). An exemplary synchronization process was previously described in detail in FIG. 5.
FIG. 7 is a process flow diagram 300 that illustrates one implementation of the stages involved in allowing external application(s) to access the content management application to work with the persistent document collection(s). A content management application is used to manage one or more documents for one or more users (stage 302). Users are able to create persistent document collections of a sub-set of the documents in the content management application (stage 304). One or more users are able to modify the persistent document collections (stage 306). In one implementation, security permissions that were described in the discussion of FIG. 4 are used to determine who can access a particular persistent document collection. The request portion of the persistent document collection(s) is output to an external application upon receiving a request from the external application for the collection(s) (stage 308). The external application can then use the information in one of various ways, such as to allow the user to modify the documents in that external application (instead of through the content management application itself).
Turning now to FIGS. 8-12, simulated screens are shown to illustrate a user interface for some implementations of system 100 and/or system 120. These screens can be displayed to users on output device(s) 511 (of FIG. 13). Furthermore, these screens can receive input from users from input device(s) 512 (of FIG. 13).
FIG. 8 is a simulated screen 400 for one implementation that illustrates adding selected documents to a persistent document collection. In the example shown on the screen, the user of a content management application is browsing the documents in a particular library of the application. The user then selects two of the documents (402 and 404, respectively), and selects the add option 406 to add the selected documents to a persistent document collection. At that point, the user is then prompted to specify what persistent document collection to add the documents to, such as through a screen similar to FIG. 9, which is discussed next.
FIG. 9 is a simulated screen 410 for one implementation that illustrates selecting a persistent document collection to add the selected documents to. In the example shown, the user is able to select an existing persistent document collection 412 to add the selected documents to, or to select the create new collection option 414. If the user selects the create new collection option 414, then a screen similar to the one shown in FIG. 10 is displayed, which will be discussed momentarily in more detail. If the user selects an existing persistent document collection 412, then the selected documents are simply added to that collection. The user's selection is processed when the user selections a finalize option 416, such as an OK button. The user can cancel the operation so that the selected documents are not added to a persistent document collection by selecting a cancel option 418.
FIG. 10 is a simulated screen 430 for one implementation that illustrates creating a new persistent document collection. In the instance that the user selected an option to create a new persistent document collection that does not already exist (such as by selecting the create new collection option 414 on FIG. 9), then a screen such as FIG. 10 is shown. In this example, various details about the new collection can be provided, such as a collection name 432, collection description, and/or other attributes for the collection. A few non-limiting examples of other attributes include a synchronization frequency 436, the amount of disk storage space 438 to be allowed for this collection, and/or the external applications 440 that this persistent document collection can share its documents with. Numerous other types of attributes and/or information about a particular persistent document collection could be utilized in other implementations. These are just shown here for the sake of illustration.
Turning now to FIG. 11, a simulated screen 450 is shown for one implementation that illustrates managing existing persistent document collections. In this example, the user has selected an option to view one or more persistent document collections that he is allowed to view and/or edit. Upon selecting a particular persistent document collection in the list 458, such as Jane's Documents, the user is then able to select one or more options to perform on that collection. For example, the user can select the view/edit option 452 to view and/or edit the contents of that collection. In such a scenario, a screen similar to one shown in FIG. 12 could be displayed to allow the user to view and/or edit the selected persistent document collection, which will be discussed momentarily. The user can select the delete option 456 to delete the selected persistent document collection. If the user wants to create a new persistent document collection altogether, then he/she can select the add new option 454.
FIG. 12 is a simulated screen 470 for one implementation that illustrates browsing the details of a selected persistent document collection. In this example, the collection called Jane's Documents is the one that the user selected to view in more detail. Upon double-clicking or otherwise selecting a view option, the user can view the actual contents of a particular document. For example, if the user double-clicks on document 472, then the actual contents of the project specification document will be displayed on the screen in a viewer or other program that can read that file format. If the user double-clicks on the project budget spreadsheet 474, then the actual contents of the project budget spreadsheet 474 will be displayed on the screen in a viewer or program that can read that file format. Alternatively or additionally, operations can be performed to multiple documents in the persistent document collection at the same time, such as to synchronize the selected ones to a local machine, etc.
As shown in FIG. 13, an exemplary computer system to use for implementing one or more parts of the system includes a computing device, such as computing device 500. In its most basic configuration, computing device 500 typically includes at least one processing unit 502 and memory 504. Depending on the exact configuration and type of computing device, memory 504 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. This most basic configuration is illustrated in FIG. 13 by dashed line 506.
Additionally, device 500 may also have additional features/functionality. For example, device 500 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in FIG. 13 by removable storage 508 and non-removable storage 510. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory 504, removable storage 508 and non-removable storage 510 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by device 500. Any such computer storage media may be part of device 500.
Computing device 500 includes one or more communication connections 514 that allow computing device 500 to communicate with other computers/applications 515. Device 500 may also have input device(s) 512 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 511 such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here.
Although 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 specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. All equivalents, changes, and modifications that come within the spirit of the implementations as described herein and/or by the following claims are desired to be protected.
For example, a person of ordinary skill in the computer software art will recognize that the examples discussed herein could be organized differently on one or more computers to include fewer or additional options or features than as portrayed in the examples.

## Claims

1. A method comprising:
accessing, by a computer system via a collection name, a persistent document collection comprising a group of documents across multiple libraries, the persistent document collection having a first attribute to identify an application to run on the computer system with which to share the group of documents, a second attribute to specify an amount of disk space measured in a multiple of bits or multiple of bytes allocated to the persistent document collection when the group of documents is being stored in a data store, and a third attribute to indicate a frequency for how often the persistent document collection is to be synchronized;
retrieving, by the computer system via the application identified by the first attribute, the group of documents from the persistent document collection;
modifying, by the computer system via the application identified by the first attribute, the group of documents by storing the group of documents in memory of the computer system and performing operations on the group of documents independently from an application that created the persistent document collection; and
synchronizing, by the computer system via transmitting a control directive to the application that created the persistent document collection, the modified group of documents in the computer system with the persistent document collection in the data store.

2. The computer-implemented method of claim 1 further comprising updating the document using a revised version of the document, the revised version of the document belonging to the persistent document collection.

3. The computer-implemented method of claim 1 further comprising transmitting a control directive to add a document to the persistent document collection.

4. The computer-implemented method of claim 1 further comprising transmitting a control directive to remove a document from the persistent document collection.

5. The computer-implemented method of claim 1 wherein the list of at least one document includes all documents which belong to the persistent document collection.

6. The computer-implemented method of claim 1 further comprising transmitting a control directive to synchronize a document belonging to the persistent document collection with a file residing on a computer.

7. The computer-implemented method of claim 1 further comprising scheduling a synchronization at a later time between a document belong to the persistent document collection and a file residing on a computer.

8. A computer system for persistent document collections comprising:
a processing unit;
data storage hardware memory comprising a collection aware application, executing on the processing unit, to access a persistent document collection comprising a group of documents across multiple locations, the persistent document collection having a first attribute to identify the collection aware application permitted to modify the persistent document collection, a second attribute to specify an amount of disk space measured in a multiple of bits or multiple of bytes allocated to the persistent document collection, and a third attribute including a frequency that indicates how often the persistent document collection is to be synchronized; and
the collection aware application, executing on the processing unit of a computer system, to retrieve the group of documents from the persistent document collection, perform operations on the group of documents independently from an application configured to directly interact with the persistent document collection across the multiple locations, including updating a document of the group of documents, storing the updated document in the data storage hardware memory, and synchronizing the updated document with the persistent document collection.

9. The system of claim 8, the collection aware application to update the document using a revised version of the document, the revised version of the document belonging to the persistent document collection.

10. The system of claim 8, the collection aware application to transmit a control directive to add a document to the persistent document collection.

11. The system of claim 8, the collection aware application to transmit a control directive to remove a document from the persistent document collection.

12. The system of claim 8, the list of at least one document to include all documents which belong to the persistent document collection.

13. The system of claim 8, the collection aware application to transmit a control directive to synchronize a document belonging to the persistent document collection with a file residing on a computer.

14. The system of claim 8, the collection aware application to schedule a synchronization at a later time between a document belong to the persistent document collection and a file residing on a computer.

15. A computer storage memory device having computer-readable, computer-executable instructions for causing a computer to:
access, via a collection aware application to run on the computer, a persistent document collection as a plurality of documents having one identifier wherein at least some documents are stored in different locations, the persistent document collection having a first attribute to identify the collection aware application permitted to modify the persistent document collection, a second attribute to specify an amount of disk space measured in a multiple of bits or multiple of bytes allocated to the persistent document collection, and a third attribute to indicate a frequency for synchronizing the persistent document collection;
retrieve, via the collection aware application identified by the first attribute, the plurality of documents from the persistent document collection;
modify, via the collection aware application identified by the first attribute, the plurality of documents to modify the persistent document collection in accordance with the second attribute by performing operations independently from an application configured to create the persistent document collection and directly interact with the at least some documents stored in the different locations; and
synchronizing, via transmitting a control directive to the collection aware application that created the persistent document collection, the modified plurality of documents in the computer system with a persistent document collection in a data store.

16. The device of claim 15 further comprising computer-readable, computer-executable instructions for causing the computer to update the document using a revised version of the document, the revised version of the document belonging to the persistent document collection.

17. The device of claim 15 further comprising computer-readable, computer-executable instructions for causing the computer to transmit a control directive to add a document to the persistent document collection.

18. The device of claim 15 further comprising computer-readable, computer-executable instructions for causing the computer to transmit a control directive to remove a document from the persistent document collection.

19. The device of claim 15 wherein the list of at least one document includes all documents which belong to the persistent document collection.

20. The device of claim 15 further comprising computer-readable, computer-executable instructions for causing the computer to transmit a control directive to synchronize a document belonging to the persistent document collection with a file residing on a computer.