Some embodiments are associated with ways to access information via a document server. In particular, some embodiments provide user-specific dynamic context folders for content.
In some cases, a user might want to access information stored on a disk drive, a server, a database, etc. For example, a manager might want to retrieve business information about an enterprise from a database. Typically, users access many different files and different types of files during the day as they work on one or more projects, such as emails, word processing documents, spreadsheets, presentations, etc. Note that most of this content may be stored in different storage locations. For example, emails might be stored in a mail server, spreadsheets might be stored on a user's laptop, presentations might be stored in a shared folder, etc. As human beings, users generally think about information in a “context.” For example, if a user is working on a “Deal for Customer A,” then he or she might want to access all the relevant documents/content for this task in an accurate and efficient way. Users don't want to search laptops for a draft version of a deal proposal, search through emails for the last communication from Customer A, access shared folder for Customer A and look for a roadmap slide relevant to the deal, etc.
To achieve this result, a user might manually copy or move associated information into a single directory or folder. Such an approach, however, can be a time-consuming and error prone task—especially when there is a substantial amount of content stored in many different locations. Moreover, folders simply act as an encapsulation or wrapper of content that is placed into them and tend to get cluttered over time with content associated with many different contexts. In some cases, “smart folders” may be linked to queries such that the context of a folder keeps changing. For example: a smart folder for “My Video” files may automatically list all video files regardless of where they are stored. These folders are virtual but are not linked to a particular “context.” In another approach, virtual folder browsing may let groups of users manually define and save unique paths to sets of content. After using facets to manually define a dynamic view, virtual folders may let users save this “filtered view” and provide a simple to browse sets of related information regardless of its physical location. In this approach, however, now information is not automatically mapped to an appropriate virtual folder or context.
It may therefore be desirable to provide systems and methods to facilitate content access via a document server in an automated and logical manner.
According to some embodiments, systems, methods, apparatus, computer program code and means are provided to facilitate content access via a document server in an automated and logical manner. In some embodiments, a content file data store may contain a plurality of electronic content files (e.g., word processing, spreadsheet, and image files). A document server may receive, from a user via a remote user device, an indication of a particular context (e.g., a context name) to be created and create a first dynamic context folder. Information about the first dynamic context folder, including the indication of the particular context, may be stored into a dynamic context data store. The document server may then arrange for the first dynamic context folder to be active as the user's current context and detect that the user accesses a first electronic content file store (e.g., by opening or viewing the file). Responsive to the detection, the first electronic content file may be automatically associated with the first dynamic context folder, and a set of electronic content files associated with the first dynamic context folder may be displayed to the user.
Some embodiments comprise: means for receiving, at a document server from a user via a remote user device, an indication of a particular context to be created; means for creating a first dynamic context folder associated with the indication of the particular context; means for storing information about the first dynamic context folder, including the indication of the particular context, into a dynamic context data store; means for arranging for the first dynamic context folder to be active as the user's current context; means for detecting that the user accesses a first electronic content file in the content file data store; means for responsive to the detection, automatically associating the first electronic content file with the first dynamic context folder; and means for arranging to display indications of a set of electronic content files associated with the first dynamic context folder, including the first electronic content file, to the user via the remote user device.
In some embodiments, a communication device associated with a document server exchanges information with remote user devices (e.g., a user who is accessing content, such as electronic files). The information may be exchanged, for example, via public and/or proprietary communication networks.
Technical effects of some embodiments of the invention are improved and computerized ways to facilitate content access via a document server in an automated and logical manner. With these and other advantages and features that will become hereinafter apparent, a more complete understanding of the nature of the invention can be obtained by referring to the following detailed description and to the drawings appended hereto.
The following description is provided to enable any person in the art to make and use the described embodiments and sets forth the best mode contemplated for carrying out some embodiments. Various modifications, however, will remain readily apparent to those in the art.
As used herein, devices, including those associated with the document server 150 and any other device described herein, may exchange information via any communication network which may be one or more of a telephone network, a Local Area Network (“LAN”), a Metropolitan Area Network (“MAN”), a Wide Area Network (“WAN”), a proprietary network, a Public Switched Telephone Network (“PSTN”), a Wireless Application Protocol (“WAP”) network, a Bluetooth network, a wireless LAN network, and/or an Internet Protocol (“IP”) network such as the Internet, an intranet, or an extranet. Note that any devices described herein may communicate via one or more such communication networks.
According to some embodiments, an “automated” document server 150 may facilitate the use of dynamic context folders. As used herein, the term “automated” may refer to, for example, actions that can be performed with little or no human intervention.
The document server 150 may store information into and/or retrieve information from the data stores 110, 120. The data stores 110, 120 may be a locally stored relational database or reside remote from the document server 150. The term “relational” may refer to, for example, a collection of data items organized as a set of formally described tables from which data can be accessed. Moreover, a Relational Database Management System (“RDBMS”) may be used in connection with any of the database tables described herein. According to some embodiments, a graphical administrator interface may provide an ability to access and/or modify elements of the system. The administrator interface might, for example, let an operator map users to context groups, apply rules and logic to context folder settings, etc.
Although a single document server 150 is shown in
At S210, a document server may receive, from a user via a remote user device, an indication of a particular context to be created. For example, the user might provide an alphanumeric name to be used for a new context. According to some embodiments, the receipt of the indication comprises receiving from the user an indication of acceptance of one or more automatically suggested alphanumeric names generated by the document server (e.g., based on a file name, directory name, meta-data, previous names created by that user or other users, etc.). Note that indications may be received from a user in any of a number of different ways. For example, a user might provide an indication via a keyboard, touchscreen, audio command (e.g., a user might say “create context ABC” or “select context “XYZ”), etc. At S220, a first dynamic context folder associated with the indication of the particular context may be created. At S230, the system may store information about the first dynamic context folder, including the indication of the particular context, into a dynamic context data store.
At S240, the system may arrange for the first dynamic context folder to be active as the user's current context. The folder might be automatically active when it is created, or a user might select the folder to be active. At S250, the system may detect that the user accesses a first electronic content file in the content file data store. The first electronic content file might be associated with, for example, a word processing document, a spreadsheet application, a portable document format file, an image file, an email, a video, a web page, etc. The detection that the user is accessing the first electronic content file may be associated with various types of user activities. For example, the system may detect when the user creates the first electronic content file, opens the file, saves the file, searches for the file, shares the file (e.g., with another user), views the file (e.g., a preview of the file without opening it), attaches the first electronic content file to an email message, etc. Responsive to the detection, at S260 the first electronic content file may be automatically associated with the first dynamic context folder. Note that a single file might be associated with more than one context. For example, a single graphics file might be associated with both a “Restaurant Menu” context folder and a “Due in September” context folder. At S270, the system may arrange to display indications of a set of electronic content files associated with the first dynamic context folder, including the first electronic content file, to the user via the remote user device.
According to some embodiments, the system may also receive, from the user via the remote user device, a selection of a new dynamic context folder to be active as the user's current context. The system may then retrieve, from the dynamic context data store, information about the new dynamic context folder, and arrange to display indications of a set of electronic content files associated with the new dynamic context folder to the user via the remote user device.
According to some embodiments, the system may receive, from the user via the remote user device, an indication that the particular context should be deleted and remove, from the dynamic context data store, information about the particular dynamic context folder. In some embodiments, the system may receive, from the user via the remote user device, an indication that the first electronic content file should no longer be associated with the particular context (e.g., the user might make a different context associated with that file, decide that no context should be associated with that file, etc.). In such cases, the system may remove, from the dynamic context data store, information about the first electronic content file's association with the particular dynamic context folder.
Thus, embodiments may provide context folders abs enable the automatic addition of content (including files of any type, such as spreadsheets, word processing documents, presentations, pictures, etc.) to a virtual folder that is bound to a user-defined context. All of the files that have been accessed, modified, uploaded, shared, etc. by the end-user within the current context may be automatically added to the current context folder. In this way, context may be bound to the document for the user. Moreover, all files that were accessed within that context are automatically added to the context folder which might be saved, for example, under “My Contexts.” In this way, the user may easily review all files saved to a given context by navigating to the appropriate context under “My Context.” This might be achieved, for example, by creating a custom property of files named AccessContext and populating it with a comma separated list of contexts to which the given file belongs.
When the “My Contexts” element is selected in the first area 410, a “My Contexts” display may be provided in the second area 420. For example,
Selection of the “Create” icon 530 or selectable portion 550 may let the user enter a new name for the new context. For example,
Referring again to
Referring again to
Referring again to
Some embodiments may apply dynamic context folders in connection with an email application plugin. For example,
According to some embodiments, a portion of the document server executes in a cloud-based environment and a portion of the document server executes offline at the remote user device. The document server may then automatically synchronize user inputs via the cloud-based portion of the document server and user inputs via the offline portion of the document server.
According to some embodiments, a dynamic context folder may be associated with a Content Management Interface (“CMI”) interoperability guideline protocol. Note that technical custom attributes for each file may be defined to be bound to a context. According to some embodiments, an AccessContext property of a file may consist of a Context Globally Unique Identifier (“GUID”) to identify a user's context. If a file is accessed in multiple contexts, the AccessContext property may utilize a comma separated list of all associated context GUIDs as a value. According to some embodiments, the AccessContext property may be updated whenever a file is accessed, viewed, shared, downloaded, etc. while a given context is “ON” or “active.” When a file is deleted/removed from a context, the AccessContext property may be updated to remove the reference of the Context GUID from which it was deleted. By way of example, the custom property name “AccessContext” might be associated with the following:
The embodiments described herein may be implemented using any of a number of different computer hardware implementations.
The data storage device 1830 may comprise any appropriate persistent storage device, including combinations of magnetic storage devices (e.g., magnetic tape, hard disk drives and flash memory), optical storage devices, Read Only Memory (“ROM”) devices, etc., while the memory 1860 may comprise Random Access Memory (“RAM”).
The program code 1832 may be executed by the processor 1810 to cause the apparatus 1800 to perform any one or more of the processes described herein. Embodiments are not limited to execution of these processes by a single apparatus. The data storage device 1830 may also store data and other program code for providing additional functionality and/or which are necessary for operation thereof, such as device drivers, Operating System (“OS”) files, etc. For example, the processor 1810 may access a plurality of electronic content files (e.g., word processing, spreadsheet, and image files). The processor 1820 may also receive, from a user via a remote user device, an indication of a particular context (e.g., a context name) to be created and create a first dynamic context folder. Information about the first dynamic context folder, including the indication of the particular context, may be stored by the processor into a dynamic context data store. The processor 1810 may then arrange for the first dynamic context folder to be active as the user's current context and detect that the user accesses a first electronic content file store (e.g., by opening or viewing the file). Responsive to the detection, the first electronic content file may be automatically associated with the first dynamic context folder by the processor 1810, and a set of electronic content files associated with the first dynamic context folder may be displayed to the user.
In some embodiments (such as shown in
Referring to
The folder identifier 1902 may be, for example, a unique alphanumeric code identifying a virtual folder that a user will access to help him or her access information that is automatically organized. The user identifier 1904 may identify the specific user who created the folder (and whose actions may be used to automatically update the folder). The context name 1906 was provided by the user when he or she created the dynamic context folder. The content file links 1908 point to all of the content that has been accessed by the user while the context was active. That is, the virtual folder does not contain copies of these documents but instead a link or pointer to those documents. The indication of whether the folder is currently active 1910 may be used to determine if a future access of information by the user should result in the content file links being automatically updated.
Thus, embodiments may provide several advantages, such as allowing a user to access content mapped to a particular “context.” The accessed content may be automatically managed in folders named by the user so as to be context intuitive. Also, the end-user does not need to keep manually adding files to the context sensitive folders, because the files are automatically tagged and added whenever the user is working with documents within a given context. Because context folders only list files that are relevant for a context, the end-user may visualize all content relevant to a logical context in one folder.
The foregoing diagrams represent logical architectures for describing processes according to some embodiments, and actual implementations may include more or different components arranged in other manners. Other topologies may be used in conjunction with other embodiments. Moreover, each system described herein may be implemented by any number of devices in communication via any number of other public and/or private networks. Two or more of such computing devices may be located remote from one another and may communicate with one another via any known manner of network(s) and/or a dedicated connection. Each device may comprise any number of hardware and/or software elements suitable to provide the functions described herein as well as any other functions. For example, any computing device used in an implementation of the discussed architectures may include a processor to execute program code such that the computing device operates as described herein. Moreover, the displays described are provided only as examples and other types of displays might be implemented. For example,
Embodiments have been described herein with respect to electronic stored content (e.g., opening a word processing file, a presentation, a spreadsheet, etc.). Note, however, that embodiments may also be associated with categorizing physical items in connection with a context. For example, each book in a library might be associated with a Quick Response (“QR”) code, bar code, image recognition, etc. and be added to a user's dynamic context folder (e.g., when he or she scans the code while working on a currently active research project). Similar, lab equipment, medical files, etc. may utilize embodiments described herein.
All systems and processes discussed herein may be embodied in program code stored on one or more non-transitory tangible computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid-state RAM or ROM storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
Embodiments described herein are solely for the purpose of illustration. Those in the art will recognize other embodiments may be practiced with modifications and alterations to that described above.