Apple patent involves methods, systems for managing data
Posted by Dennis Sellers
Oct 14, 2008 at 12:01pm
An Apple patent (number 7437358) for a method and system for managing data has appeared at the US Patent & Trademark Office. It involves systems and methods for managing data, such as metadata.
Here’s Apple’s background and summary on the invention: “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.
“According to one aspect described herein, an exemplary embodiment includes a hierarchy of saved search folders, which may be referred to as ‘smart’ folders. A first folder represents a first search query, and a second folder represents a second search query. The second folder may be nested graphically within the first folder or otherwise portrayed in a predetermined hierarchical relationship between the two folders. Opening the first folder reveals the search results of a first search query and opening the second folder displays the search results of the second search query. The predetermined relationship between the folders may be defined by user metadata. This embodiment allows the use of relationships of metadata to build a view of user files and to allow the user to browse the files within a system using that view. In one particular embodiment, the second folder may be portrayed in a graphical user interface system as a subfolder of the first folder. The view of files provided by the user metadata and the saved search folders may be different than a view provided by a file management system (e.g. Windows Explorer or the Finder on a Macintosh) which provides a graphical view based on the relative location in a file directory.
“In another aspect of this description, an exemplary method of processing a result of a search operation includes receiving an input of a search operation and performing the search operation, and displaying a list of results from the search operation, where the list presents N items which is less than M items found from the search operation. In one embodiment, the N items are the N most relevant hits in the results. The list is typically grouped by categories and the number of items within each category is also limited to less than N. Typically the list is a non-scrollable list which is sorted by recency and relevance and includes a command to show all items since less than all items are shown in the list.
“In another aspect of the disclosure, an exemplary embodiment of a method for handling data includes storing on a volume an index created from files and metadata for the files with an operating system and making the volume available for distribution to licensees or customers. Typically, the index is created for all user related files beyond merely help files, such as all files normally accessible to a user through the standard use of word processing programs, spreadsheet programs, presentation programs, graphics programs or other types of software. This index is stored with the user related files and with an operating system on a volume, which is made available for distribution to licensees or customers. These volumes may, for example, be CD ROMs or DVD ROMs or a bootable magnetic hard drive which is shipped with a newly manufactured computer system.
“In another aspect of the disclosure, an exemplary embodiment of a method for processing data includes displaying an open file window, displaying a search input field to allow entry of a search query to find a file within the open file window, receiving a search query and performing a search, and displaying a result of a search within the open file window. Typically, the open file window is invoked by using a “open” command or an ‘open file’ command from an application program such as a word processing program (e.g. Microsoft Word) or a spreadsheet program (e.g. Excel), or a presentation program (e.g. Keynote or PowerPoint), or a graphics program (e.g. PhotoShop), etc. The open file window typically provides an interface allowing the user to select the folder within which files may exist. The user can select the file which is displayed within a particular folder and then activate an ‘open’ button to cause the file to be opened within the application from which the open file window was invoked.
“According to another aspect of the present description, an exemplary embodiment of a method for processing data includes displaying text within a text processing application, receiving a selection of at least some of the text, receiving a selection of a command to search a plurality of files using the selection, and displaying results of a search of the plurality of files. The selection may be through a pop-up menu which appears associated with the selected text within the text processing application, such as a word processing application or an email application.
“In another aspect of the present disclosure, an exemplary method for processing data includes displaying a search input parameter and interface which displays an expandable plurality of metadata search attributes, and receiving a selection of a particular metadata search attribute from the display of the expandable plurality of metadata attributes. The selection of a particular metadata search attribute is typically used in forming a search query.
“In another aspect of the present description, an exemplary embodiment of a method for processing data includes receiving a command to perform a search for content and/or metadata of content, displaying search results and a search window, creating or receiving new documents, some of which may match or satisfy the search query while the search window is open, and updating the search results in the search window dynamically as the new documents are created or received. New documents which match the search query, as they are created or received, appear within the search window without having to open or close the search window or without having to select a command to refresh the search window. Thus, it appears as if the search window is updated live as new documents are created or received in the system.
“A method of managing data in one exemplary embodiment includes capturing metadata from a plurality of files having different file types (and having different metadata content for the different file types) or created by a plurality of different software applications which execute on a data processing system. The type of information in the metadata for the files of a first software application differs from the type of information in metadata for files of a second software application. This captured metadata may be searched. In one embodiment, this search may occur concurrently for all of the metadata from the different files created by or used by the different software applications. In one implementation of this method, a single search interface may be provided to search all of the metadata for all of the different files created by the different software applications, thereby allowing a single search to search through all of the metadata for all of the files created by the different software applications. Further, the single search may also search through non-metadata such as the indexed (or non-indexed) content of the actual data files.
“According to another aspect of the invention, an exemplary method includes capturing metadata from a plurality of different files created by a plurality of different software applications and storing the metadata on a storage medium in a flat file format. Another aspect relates to a flat file format for the metadata on the storage medium.
“Another aspect of the present invention relates to various user interfaces which may be provided by a system to allow a user to search through the metadata. In one exemplary embodiment of such a user interface, the method includes capturing metadata from a plurality of files created by a plurality of different software applications and displaying a search input interface for searching through the metadata, wherein the type of information in metadata for files of a first software application differs from the type of information in metadata for files of a second software application. Various implementations of user interfaces are discussed for search input and also for the presentation (e.g. display) of search results. For example, the search results may be displayed in multiple different formats (e.g. list view, icon view, column view) and they may be displayed with headers or titles which separate the groups of matches in a search results list. Further, the displayed results may be limited to a predetermined number (or a dynamically generated number) for each category so that a limited viewing can still display multiple categories within a search result window. Further, a search query can be saved as a folder which appears within a user configurable portion of the search results window, and a selection of the folder causes another search to be performed using the saved search query (sometimes also referred to as search criteria). A display of the search results from the saved search query can then be sorted or further searched to limit the results to a subset of the original matches from the saved search query. Numerous other user interface implementations are shown and described. Another user interface feature includes the ability to provide both a list view and another view (e.g. icon view) for different portions (e.g. different categories) of a search results window.
“Another aspect of the present invention relates to a software architecture for managing metadata. One exemplary embodiment of this architecture includes a first plurality of application programs which are capable of creating a plurality of different data files and a metadata management program which is coupled through programming interfaces with the first plurality of application programs and which is coupled to a file system storage of metadata which is captured from files created by the first plurality of application programs. Normally, the type of information in metadata for files of a first application program differs from the type of information in metadata for files of a second application program. The metadata management program is also coupled to other (non-metadata) sources of information about the data files such as an indexed database of the full text content of the data files and software which is capable of searching this indexed database. Search queries which are directed to the metadata may also be concurrently directed to the non-metadata sources so that the search results include matches from both the metadata and the non-metadata sources, and these searches, through both metadata and non-metadata sources, may be in response to a single search query or a single search request or command and these searches may be performed concurrently.
“Another aspect of the inventions described herein relates to one or more importers which interact with new or modified files created by different application programs. These one or more importers may be invoked (e.g. called) by the application programs or by an operating system component (e.g. a metadata processing software) which responds to a call from the application programs or from an operating system kernel. In one particular example, an importer is called by a metadata processing software in response to a notification from an OS kernel that a new file has been created or an existing file has been modified; in this case, the particular importer called by the metadata processing system will typically depend upon the type of file (e.g. text file or image file or MP3 file, etc.), although one, single importer for all file types on a system may be used regardless of the type of file. An importer will typically specify a file path name for the extracted metadata and specify selected data to be extracted and written into the file path name of the file containing the extracted metadata.
“Another aspect of the inventions described herein relates to performing a search through a system while receiving input from a user, where the search is through a plurality of data files created by different software applications on a data processing system. In an exemplary method of this aspect, the data processing system begins a search through the plurality of data files as the user enters input and before the user completes the entry of the search query. Thus, a user may enter a search (“quick brown fox”) and before the user has entered “fox,” the data processing system has searched through, or begins to search through, the plurality of data files created by different software applications and has displayed the list of matches to the partial search query ‘quick brown’ (or at least begins to display a partial list of matches to the partial search query ‘quick brown’). This search may be performed through the plurality of data files as well as the metadata for the plurality of data files, wherein the type of information in metadata for files of a first software application differs from the type of information in metadata for files of a second software application. The search results may be sorted by relevancy, and the system may display first only a partial list of matches and then, in response to a user request, display all the matches. The search results may be organized by categories. Selecting one of the items in the search result may cause the display of additional information, beyond what is already displayed in the original search results listing.
“Another aspect of the inventions relates to a method of selecting a group of items, such as a group of individual data files. In an exemplary method of this aspect, a data processing system receives a selection of a plurality of items such as data files, folders (e.g. graphical user interface representations of subdirectories), application programs or a combination of one or more of these items. This selection may be performed by one of the many conventional ways to select a plurality of items such as (a) pointing a cursor at each item individually (e.g. through movement of a mouse) and indicating a selection individually by, for example, pressing and releasing a button such as a mouse’s button; (b) pointing a cursor at a first item in a list and indicating a selection of the first item and pointing the cursor at a last item in a list of items and indicating a selection of all items from the first item to the last item in the list; (c) drawing a selection rectangle by a dragging operation of the cursor, etc. After the selection of the plurality of items has been received, the data processing system receives a command to create a new folder and add or move, e.g. in one operation, the selected plurality of items into the new folder. The add operation creates the new folder (optionally with a name specified by the user as a result of a prompt or request by the system) and copies the selected files into the new folder, which represents a new subdirectory. This add operation is in response to the single command which requests that a new folder be created and that copies of the selected items be created and stored with a path name reflecting storage within the new folder. The move operation also creates a new folder (optionally with a name specified by the user as a result of a prompt or request by the system) and may merely change the path names associated with each of the selected items, which changed path names reflect the new file system location (within the subdirectory of the new folder) of the selected items.”
The inventors are Yan Arrouye, Dominic Giampaolo, Bas Ording, Gregory Christie, Stephen Olivier Lemay, Marcel van Os, Imran Chuadhri, Kevin Tiene and Pavel Cisler. The graphic below shows an exemplary embodiment of a data processing system, which may be a general purpose computer system and which may operate in any of the various methods described herein.


Leave a comment ⇒
Please post the article topic & comment in our forums. No registration required.
Article Information
Comment on this Article Print this Article Email this Article Digg This
Contributor
Dennis Sellers
Dennis has been a newspaper editor/reporter (seven years) and teacher (seven years). He has over 10,000 magazine, newspaper and online articles to his credit. He has also covered the Mac and tech industries for over a decade for such online publications as MacCentral, MacMinute and now MacsimumNews.






