Modern data processing systems, such as general purpose computer systems, allow the users of such systems to create a variety of different types of data files. For example, a typical user of a data processing system may create text files with a word processing program such as Microsoft Word or may create an image file with an image processing program such as Adobe's PhotoShop. Numerous other types of files are capable of being created or modified, edited, and otherwise used by one or more users for a typical data processing system. The large number of the different types of files that can be created or modified can present a challenge to a typical user who is seeking to find a particular file which has been created.
Modern data processing systems often include a file management system which allows a user to place files in various directories or subdirectories (e.g. folders) and allows a user to give the file a name. Further, these file management systems often allow a user to find a file by searching for the file's name, or the date of creation, or the date of modification, or the type of file. An example of such a file management system is the Finder program which operates on Macintosh computers from Apple Computer, Inc. of Cupertino, Calif. Another example of a file management system program is the Windows Explorer program which operates on the Windows operating system from Microsoft Corporation of Redmond, Wash. Both the Finder program and the Windows Explorer program include a find command which allows a user to search for files by various criteria including a file name or a date of creation or a date of modification or the type of file. However, this search capability searches through information which is the same for each file, regardless of the type of file. Thus, for example, the searchable data for a Microsoft Word file is the same as the searchable data for an Adobe PhotoShop file, and this data typically includes the file name, the type of file, the date of creation, the date of last modification, the size of the file and certain other parameters which may be maintained for the file by the file management system.
Certain presently existing application programs allow a user to maintain data about a particular file. This data about a particular file may be considered metadata because it is data about other data. This metadata for a particular file may include information about the author of a file, a summary of the document, and various other types of information. A program such as Microsoft Word may automatically create some of this data when a user creates a file and the user may add additional data or edit the data by selecting the “property sheet” from a menu selection in Microsoft Word. The property sheets in Microsoft Word allow a user to create metadata for a particular file or document. However, in existing systems, a user is not able to search for metadata across a variety of different applications using one search request from the user. Furthermore, existing systems can perform one search for data files, but this search does not also include searching through metadata for those files.
Methods for managing data in a data processing system and systems for managing data are described herein.
A method of managing data in one exemplary embodiment includes receiving a user input to search in a mode based upon at least one field attribute designating a person and receiving a search input data to search in the mode and performing a search using the search input data and presenting the results of the search. In certain embodiments, the presenting optionally emphasizes files and items relating to people and deemphasizes files and items which only mention people within content; in this particular implementation, the mode may be considered a people-centric mode. In certain embodiments, the method may filter out files and items which do not include any people identifiers in certain fields, and this filtering may occur either in the search process or in the manner in which the results are presented to a user. For example, the results may be filtered such that address book entries and recent emails and recent instant messages and documents or images authored by the person named or specified in the search query (e.g. the search input data) would be emphasized and therefore ranked higher in a search results list than text documents which merely refer to, in the content of the document, the person specified by the search query. In this case, files and items which do not include any people identifiers in certain selected fields are filtered by ranking as less relevant in the presentation of the search results relative to files and items which do include matching people identifiers in certain selected fields which may be, in certain embodiments, predetermined fields. In certain embodiments, these selected fields may include, for example, a name in an address book, a “To” field in an email format, a “From” field in an email format, an author field, and an artist or composer field. In certain embodiments, the searching may be performed by searching through a metadata database having metadata of different types for different types of files and also searching through content of files indexed in a full text content inverted index.
According to another aspect of the inventions, an exemplary method of managing data includes receiving a command to enter a mode for receiving a search input in a predetermined syntax and performing a search using a search input in the predetermined syntax and presenting a result of the search, wherein in this method, before entering the mode, search inputs are not parsed according to the predetermined syntax or, while in the mode, a search input for a single search is capable of being formed with and without use of the predetermined syntax. An exemplary method may further include converting or parsing the search input through an attribute data structure according to the predetermined syntax. In certain embodiments, the method may be employed to search, through a single search, both a metadata database having metadata of different types for different types of files, and a content database, such as an index of full text content stored in an inverted index of the content.
According to another aspect of the inventions, an exemplary method of managing data includes receiving an input to open a display region configured to display search results and presenting, in response to the input, the display region which presents a result of a default search before receiving a search input from a user. In one implementation of this method, the display region is a window which is prepopulated with the default search before receiving any search inputs (e.g. a search query) from the user. The method may further include receiving a search input from the user which is used to perform a search, the results of which are displayed in the display region. The effect of the prepopulation and then the display of the search results based upon a user input search query is that it may appear to the user that the original results showing in the prepopulated default search are filtered or pruned using the search query from the user. In one implementation of this method, the default search may be based upon files most recently used by the user (e.g. the N most recently used files by the currently logged in user may be ranked according to time and displayed in the prepopulated list created by the default search, where N is limited to a predetermined number, less than 50, for example). In certain implementations of this method, the default search may be user selectable and the search input may be used to search through metadata having different types of metadata for different types of files and also through content of files indexed in a full text content inverted index.
In another aspect of the inventions, an exemplary method of managing data includes performing a first search using a first search input, presenting a first search result of the first search, the first result including at least one user selectable search term associated with a particular file presented in the first result, and receiving a user input of a selection of the at least one user selectable search term and performing a second search in response to the search input, and presenting a second result of the second search. According to an implementation of this method, terms within documents or otherwise associated with documents, such as metadata of documents, are displayed along with an identifier (e.g. file name, etc.) of the documents in a search result window. This method allows a user to see terms within a content of a document (or otherwise associated with a document) and to use those terms to create a further search. This further search may be a new search using only the user selectable term which was selected by the user, or may be a combined Boolean search using the original first search input and the selected search term which is associated with a particular file presented in the first result. In a typical implementation, the first result may include a list of identifiers for a plurality of files found by the first search, and there are, for each of those plurality of files, a plurality of user selectable search terms associated with each file which is presented along with an identifier (e.g. file name) for the file in the first result. The first and the second search may be performed through at least one of a metadata database having different types of metadata for different types of files, and content of files indexed in a full text content inverted index.
According to another aspect of the inventions, an exemplary method of managing data includes receiving a search input and performing a search in response to the search input, and presenting a result of the search, the result including a first representation of a first file found by the search, wherein the first representation is capable of at least one of being resizable or zoomable or pageable within the display region containing the result. In one implementation of this method, the first representation is resized or zoomed or paged through within the display region, which may be a window, in response to a user input without launching an application program which created the first file. The window or display region may be created by a system-wide search utility which searches through at least one of a metadata database having different types of metadata for different types of files and content of files indexed in a full text content inverted index.
Other aspects of the present inventions include various data processing systems which perform these methods and machine readable media which perform various methods described herein.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
The subject invention will be described with reference to numerous details set forth below, and the accompanying drawings will illustrate the invention. The following description and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of the present invention. However, in certain instances, well known or conventional details are not described in order to not unnecessarily obscure the present invention in detail.
The present description includes material protected by copyrights, such as illustrations of graphical user interface images. The owners of the copyrights, including the assignee of the present invention, hereby reserve their rights, including copyright, in these materials. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyrights whatsoever. Copyright Apple Computer, Inc. 2003.
As shown in
It will be apparent from this description that aspects of the present invention may be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in a memory, such as ROM 107, RAM 105, mass storage 106 or a remote storage device. In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the present invention. Thus, the techniques are not limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system. In addition, throughout this description, various functions and operations are described as being performed by or caused by software code to simplify description. However, those skilled in the art will recognize what is meant by such expressions is that the functions result from execution of the code by a processor, such as the microprocessor 103.
The method of
The method of
One particular field which may be useful in the various metadata formats would be a field which includes an identifier of a plug in or other software element which may be used to capture metadata from a data file and/or export metadata back to the creator application.
Various different software architectures may be used to implement the functions and operations described herein. The following discussion provides one example of such an architecture, but it will be understood that alternative architectures may also be employed to achieve the same or similar results. The software architecture shown in
The software architecture 400 also includes a file system directory 417 for the metadata. This file system directory keeps track of the relationship between the data files and their metadata and keeps track of the location of the metadata object (e.g. a metadata file which corresponds to the data file from which it was extracted) created by each importer. In one exemplary embodiment, the metadata database is maintained as a flat file format as described below, and the file system directory 417 maintains this flat file format. One advantage of a flat file format is that the data is laid out on a storage device as a string of data without references between fields from one metadata file (corresponding to a particular data file) to another metadata file (corresponding to another data file). This arrangement of data will often result in faster retrieval of information from the metadata database 415.
The software architecture 400 of
The method of
It will be appreciated that the notification, if done through the OS kernel, is a global, system wide notification process such that changes to any file will cause a notification to be sent to the metadata processing software. It will also be appreciated that in alternative embodiments, each application program may itself generate the necessary metadata and provide the metadata directly to a metadata database without the requirement of a notification from an operating system kernel or from the intervention of importers, such as the importers 413. Alternatively, rather than using OS kernel notifications, an embodiment may use software calls from each application to a metadata processing software which receives these calls and then imports the metadata from each file in response to the call.
As noted above, the metadata database 415 may be stored in a flat file format in order to improve the speed of retrieval of information in most circumstances. The flat file format may be considered to be a non-B tree, non-hash tree format in which data is not attempted to be organized but is rather stored as a stream of data. Each metadata object or metadata file will itself contain fields, such as the fields shown in the examples of
A flexible query language may be used to search the metadata database in the same way that such query languages are used to search other databases. The data within each metadata file may be packed or even compressed if desirable. As noted above, each metadata file, in certain embodiments, will include a persistent identifier which uniquely identifies its corresponding data file. This identifier remains the same even if the name of the file is changed or the file is modified. This allows for the persistent association between the particular data file and its metadata.
Various different examples of user interfaces for inputting search parameters and for displaying search results are provided herein. It will be understood that some features from certain embodiments may be mixed with other embodiments such that hybrid embodiments may result from these combinations. It will be appreciated that certain features may be removed from each of these embodiments and still provide adequate functionality in many instances.
The combination of text entry region 709 and the search parameter menu bar allow a user to specify a search query or search parameters. Each of the configurable pull down menus presents a user with a list of options to select from when the user activates the pull down menu. As shown in
It will also be appreciated that the various options in the pull down menus may depend upon the fields within a particular type of metadata file. For example, the selection of “images” to be searched may cause the various fields present in the metadata for an image type file to appear in one or more pull down menus, allowing the user to search within one or more of those fields for that particular type of file. Other fields which do not apply to “images” types of files may not appear in these menus in order reduce the complexity of the menus and to prevent user confusion.
Another feature of the present invention is shown in
The window 1001 includes an additional feature which may be very useful while analyzing a search result. A user may select individual files from within the display region 1005 and associate them together as one collection. Each file may be individually marked using a specific command (e.g. pressing the right button on a mouse and selecting a command from a menu which appears on the screen, which command may be “add selection to current group”) or similar such commands. By individually selecting such files or by selecting a group of files at once, the user may associate this group of files into a selected group or a “marked” group and this association may be used to perform a common action on all of the files in the group (e.g. print each file or view each file in a viewer window or move each file to a new or existing folder, etc.). A representation of this marked group appears as a folder in the user-configurable portion 1003A. An example of such a folder is the folder 1020 shown in the user-configurable portion 1003A. By selecting this folder (e.g. by positioning a cursor over the folder 1020 and pressing and releasing a mouse button or by pressing another button) the user, as a result of this selection, will cause the display within the display region 1005 of the files which have been grouped together or marked. Alternatively, a separate window may appear showing only the items which have been marked or grouped. This association or grouping may be merely temporary or it may be made permanent by retaining a list of all the files which have been grouped and by keeping a folder 1020 or other representations of the grouping within the user-configurable side bar, such as the side bar 1003A. Certain embodiments may allow multiple, different groupings to exist at the same time, and each of these groupings or associations may be merely temporary (e.g. they exist only while the search results window is displayed), or they may be made permanent by retaining a list of all the files which have been grouped within each separate group. It will be appreciated that the files within each group may have been created from different applications. As noted above, one of the groupings may be selected and then a user may select a command which performs a common action (e.g. print or view or move or delete) on all of the files within the selected group.
The window 1201 shown in
A column 1211 of window 1201 allows a user to select various search parameters by selecting one of the options which in turn causes the display of a submenu that corresponds to the selected option. In the case of
The window 1301 shown in
The search results user interface shown in
Another aspect of the present inventions relates to causing searches to be performed in a mode which searches and/or presents results in a manner designed to emphasize people-related information. In a sense, this mode may be considered a people-centric mode for performing and/or displaying searches in order to emphasize information about people. In one implementation, either the search process itself or the process of presenting the results of the search may filter files which do not include matching people identifiers in certain selected fields. The filtering may cause those files to be not listed at all in the search results, or may rank them as less relevant and hence further down in a list of search results in a window from the top entry in the search results.
Thus, the listing emphasizes files and items relating to people and deemphasizes files and items which only mention people within content or in other ways which are considered less relevant to a people-centric approach. It can be seen from
Another aspect of the present inventions relates to the use of a predetermined syntax, which may be referred to as, in certain embodiments, an advanced user syntax mode. In one implementation of an exemplary method, a user may enter a search input having both search terms which are not in a predetermined syntax along with, in the same search input, search terms which are in the predetermined syntax. Thus, a single search input is capable of being formed with and without the use of the predetermined syntax in certain exemplary embodiments.
In certain implementations of this method, the search may be performed through one or both of a metadata database containing metadata having different types of metadata for different types of files, as well as a content database, such as the content of files indexed in a full text content inverted index.
Another aspect of the present inventions relates to a user interface presented in the context of a list of search results which allows a user to cause another search to occur using at least one selectable search term associated with a particular file displayed in the search results found in response to a prior user search input.
Another aspect of the present inventions relates to previews, displayed within search results windows, which are at least one of being resizable, zoomable, or pageable through. For example, a first representation of a first file found by the search may be at least one of being resizable or zoomable or scrollable or pageable through within a display region, such as a window, which contains the results of the search.
A preview, at least in certain embodiments, can apply to files or other objects (e.g. records, emails, messages, vCards, etc.). A single page preview can be used for a thumbnail or in any situation where a single image is needed to provide a preview of an item. Multiple items can be previewed at once and compared, or viewed in sequence. When multiple items are previewed at once, they can be of any file type including many different file types. The previews can be shown in the same window as the search results window or in a separate window or in a layer that is overlaid above the item, shown in a search result, which is being previewed in the layer above.
A preview may be presented using a variety of different implementations, such as a plug-in implementation which uses one or more plug-ins, such as a QuickTime plug-in, etc. Each of the previews may be formatted in one of several standard data/file types (such as PDF, text, HTML, JPEG, a movie format, or a sound/music format). The previews may be either generated by the application, which created the item or file represented by the preview, when the item or file is stored or may be generated dynamically when needed. A dynamically generated preview may be produced by invoking a generator plug-in that translates the native format of the item being previewed to one of the “standard” data/file types (e.g. PDF, text, HTML, JPEG, a standard movie format, or a standard sound/music format). A preview generator plug-in may be loaded in a separate process to protect against failures and/or security vulnerabilities. Alternatively, a trusted generator plug-in (e.g. QuickTime), or a set of such plug-ins may be loaded directly in the process of presenting the search results and such plug-ins may be used to present the previews. A preview generator may be capable of handling multiple preview requests concurrently and the preview generator and/or the search software controlling the search results window may manage a queue of preview requests, and the search software can cancel or reorder the preview requests in the queue.
The following figures show examples of previews or other representations which are resizable or zoomable or scrollable or pageable through.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
This application is a continuation of co-pending U.S. application Ser. No. 11/499,017, filed on Aug. 4, 2006.
Number | Date | Country | |
---|---|---|---|
Parent | 11499017 | Aug 2006 | US |
Child | 14149323 | US |