СИСТЕМА И СПОСОБ, ИСПОЛЬЗУЮЩИЕ ВИРТУАЛЬНЫЕ ПАПКИ
SYSTEM AND METHOD USING VIRTUAL FOLDERS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к файловым системам и, более подробно, к системе и способу, использующим виртуальные папки.
УРОВЕНЬ ТЕХНИКИ
Существующие в настоящее время компьютерные файловые системы имеют множество нежелательных ограничений. Одним ограничением является то, что пользователи обычно не способны управлять структурой, которая показывается им. Другими словами, когда папки организованы, пользователь должен выбрать структуру, и эта структура является трудной для изменения. В качестве специфического примера для папки «музыка» пользователь может выбрать организацию музыкальных файлов в формате исполнитель/альбом, где все папки альбома для каждого исполнителя сгруппированы в папку этого определенного исполнителя, и все песни на специфическом альбоме сгруппированы в папку этого альбома. Формат исполнитель/альбом не позволяет проигрывать музыку по типу (например, проиграть две джазовые песни двух различных исполнителей) или проиграть выбранные альбомы других различных исполнителей.
Другая проблема, когда пользователь имеет большое число файлов, которые являются трудно организуемыми. Некоторые пользователи реализуют твердую схему размещения для файлов и таким образом создают для них строгую иерархию. Управлять такими файлами становится все более и более сложно и трудно, поскольку число доступных документов растет, делая также трудным поиск и извлечение. Эта проблема дополнительно усиливается, когда дополнительные файлы используются от других мест, типа общих файлов и т.д.
Пользователи также должны иметь дело с файлами, находящимися в различных местах, например, на различных устройствах, на других PC, или в неавтономном состоянии (режиме онлайн). Например, пользователи могут выбрать прослушивание своей музыки на компьютере (которые могут быть доступными для программы для проигрывания музыки) или могут выйти в режим онлайн и слушать музыку с веб-сайтов, однако есть строгое деление между этими двумя источниками. Музыка, приходящая из различных мест, организована по-разному и не сохраняется тем же самым способом или в том же самом месте. В качестве другого примера, файлы, сохраненные в корпоративной сети, могут быть, по сути, отделены от файлов, которые пользователь имеет на текущей машине.
Пользователи также должны следить не только за тем, какие файлы данных сохранены, но и где они сохранены. Например, для музыкальных файлов пользователи вынуждены сохранить копии на различных системах и пытаться следить за тем, где какие музыкальные файлы музыки. Это может сделать файлы трудными для нахождения, даже когда они сохранены локально.
Также иногда трудно найти и возвратиться к файлам, которые имеет пользователь. Пользователь может решить, что ему трудно вспомнить, где и как он сохранил некоторые файлы. Получив набор папок и даже группу сходных файлов, пользователи часто находят трудным быстро найти тот, который они ищут. Для файлов, сохраненных в трудном для нахождения месте, намного более сложно определить их местонахождение. Дополнительно, особенно когда пользователи имеют достаточно много файлов в папке, становится более трудным быстро проанализировать папку, особенно, если содержание сходное.
Также иногда трудно для пользователей найти или возвратиться к файлам в сети. Предоставление совместного доступа и публикация файлов часто является трудным делом, и часто может быть более трудным извлечь такой файл из того места, где он является доступным. Пользователи обычно должны запоминать или отображать различные сайты и имена, которые им нужны для нахождения файлов в сети.
Пространства имен могут измениться, что может вызвать замешательство пользователя относительно того, что является «правильным». Это особенно истинно для сети, где есть различные соглашения об именах, ограничениях и так далее. Например, некоторые операционные системы могут требовать коротких имен без пробелов для того, чтобы быть видимыми.
Программы также часто сохраняют файлы в их собственном каталоге или другом пространстве имен, что может помешать пользователям вновь найти путь к файлам. Программы часто имеют каталоги и места по умолчанию, куда они сохраняют документы. Пользователь часто должен перерывать свой жесткий диск и делать предположения о том, где файл сохранен.
Родственные элементы также часто сохраняются в разных местах. Родственные файлы, которые пользователь имеет, могут быть сохранены на различных частях жесткого диска и т.д. Эта проблема становится более общей с развитием цифровых медиаслужб, которые имеют множество типов содержания (например, изображения, музыку, видео).
Данное изобретение направлено на предоставление системы и способа, которыми преодолевают описанные выше и другие недостатки. Более определенно, данное изобретение относится к файловой системе, использующей виртуальные папки.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Представлены система и способ, использующие виртуальные папки. В соответствии с одним аспектом изобретения виртуальные папки показывают правильные файлы и папки (также известные как каталоги) пользователям при различных представлениях, основываясь на их метаданных, вместо фактической физической, лежащей в основе файловой системы структуры на диске. Таким образом, система способна взять свойство, которое сохранено в базе данных и представить его как контейнер, который похож на папку. Так как пользователи уже знакомы с работой с папками, представление виртуальных папок подобным способом позволит пользователям более быстро приспособиться к новой системе.
В соответствии с другим аспектом изобретения виртуальные папки предоставляются в соответствии со способом, который используется в компьютерной системе, имеющей дисплей и память для хранения элементов. В соответствии со способом выбирается свойство метаданных. Система тогда ищет элементы, которые имеют выбранное свойство метаданных и предоставляет отображаемый объект виртуальной папки, совокупность элементов которого имеет свойство метаданных.
В соответствии с другим аспектом изобретения система включает процессор папок, который получает запросы от пользователя и реляционной базы данных для сохранения информации об элементах. Процессор папок сначала получает запрос от пользователя и передает запрос к реляционной базе данных. Реляционная база данных передает результаты обратно на процессор папок, и, основываясь на результатах из реляционной базы данных, процессор папок передает результаты пользователю в виде виртуальных папок. В одном варианте воплощения результаты, которые переданы обратно на процессор папок, включают строки и столбцы базы данных. Строки и столбцы базы данных преобразуются процессором папки в нумерованную структуру, которая используется после этого для заполнения дисплея результирующими виртуальными папками.
В соответствии с другим аспектом изобретения пользователи способны работать с виртуальными папками через прямое манипулирование. Другими словами, механизмы, которые предоставлены для управления виртуальными папками, подобны тем, которые в настоящее время используются для управления обычными физическими папками (например, перетаскиванием, копированием, вставкой и т.д.).
В соответствии с другим аспектом изобретения способ для выполнения прямого манипулирования виртуальными папками обеспечен в компьютерной системе, имеющей дисплей и память для хранения элементов. В соответствии со способом группы элементов представлены как виртуальные папки. Определенные действия предоставлены для того, чтобы они могли быть выполнены для прямой манипуляции виртуальными папками, когда выполняется определенное действие, и виртуальная папка управляется непосредственно определенным действием. Примером определенного действия может быть щелчок и перетаскивание виртуальной папки. В одном варианте воплощения действие щелчка и перетаскивания первой виртуальной папки ко второй виртуальной папке выполняет функцию копирования элементов из первой виртуальной папки во вторую виртуальную папку. Копирование элементов в виртуальную папку может вовлечь добавление или, альтернативно, изменение выбранных свойств метаданных, которые связаны с элементами.
В соответствии с другим аспектом изобретения предоставляются фильтры для управления виртуальными папками. Фильтры являются существенными инструментальными средствами для сужения набора элементов. В одном варианте воплощения фильтры динамически генерируются, основываясь на свойствах отдельных элементов. Например, для набора элементов механизм фильтра может сделать обзор свойств, и, если элементы вообще имеют «авторов» как свойство, фильтр может предоставить список авторов. Тогда, нажимая на специфического автора, элементы, которые не имеют автора, исчезают. Это позволяет пользователю сужать содержание.
В соответствии с другим аспектом изобретения обеспечиваются быстрые ссылки. В одном варианте воплощения быстрые ссылки являются набором предопределенных ссылок (например, расположенных на левой стороне дисплея), по которым можно щелкнуть для генерации полезных видов наборов элементов. Они могут быть предопределены программой или установлены пользователем. Например, нажатие на ссылку «все авторы» может возвратить вид, отсортированный по авторам. Ссылка «все документы» может возвратить плоское представление всех документов через все области памяти. Пользователи могут также создавать свои собственные быстрые ссылки. Например, пользователь мог бы наложить фильтр на все документы, которые он изменил в январе 2003, а затем мог бы сохранить это как быструю ссылку.
В соответствии с другим аспектом изобретения предоставляются библиотеки. Библиотеки состоят из больших групп используемых типов файлов, которые могут быть связаны вместе. Например, фотографии могут быть одной библиотекой, музыка может быть другой, и документы могут быть другой. Библиотеки обеспечивают инструментальные средства и действия, которые связаны со специфическими типами элементов. Например, в библиотеке фотографий есть инструментальные средства и фильтры, которые касаются управления фотографиями, например, для создания слайдов или совместного использования изображения.
В соответствии с другим аспектом изобретения может быть доступен широкий набор файлов или элементов. Другими словами, система способна представить файлы/элементы из множества физических мест (например, различных жестких дисков, различных компьютеров, различных сетевых мест и т.д.) так, чтобы пользователю казалось, что все эти элементы из одного места. Например, пользователю можно показать все его музыкальные файлы на единственном экране и дать манипулировать всеми файлами из одного представления, даже при том, что файлы могут быть физически сохранены на различных жестких дисках, различных компьютерах или в различных сетевых местах.
В соответствии с другим аспектом изобретения нефайловые элементы могут быть представлены в виртуальных папках. Другими словами, файлы, которые сохранены в памяти, расположены в физическом хранилище. Виртуальные папки могут быть сделаны для включения элементов, которые в настоящее время не представлены в физическом хранилище. Примером нефайловых элементов являются сообщения электронной почты и записи контактов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Описанные ранее аспекты и многие из преимуществ предлагаемого изобретения будут более очевидны при следующем подробном описании со ссылкой на сопроводительные чертежи, на которых:
Фиг.1 является блок-схемой универсальной компьютерной системы, подходящей для осуществления данного изобретения;
Фиг.2 является блок-схемой системы виртуальной папки в соответствии с данным изобретением;
Фиг.3 является блок-схемой, иллюстрирующей подпрограмму, с помощью которой пользователь передает запрос, который снимает выбранные файлы и папки;
Фиг.4 является блок-схемой, иллюстрирующей подпрограмму, с помощью которой виртуальные папки создаются и отображаются на экране или в соответствии с заданным по умолчанию запросом, или в соответствии с запросом от пользователя;
Фиг.5 является древовидной схемой структуры папки в соответствии с физическим расположением папки на жестком диске;
Фиг.6 является древовидной схемой структуры виртуальной папки;
Фиг.7 является древовидной схемой структуры виртуальной папки фиг.6, где стек клиентов дополнительно отфильтрован в соответствии с контрактами и годом;
Фиг.8 является древовидной схемой структуры виртуальной папки фиг.7, где контракты стека клиентов дополнительно отфильтрованы по году;
Фиг.9 является древовидной схемой структуры виртуальной папки фиг.6, где стек контрактов дополнительно отфильтрован по клиентам и по году, из которого клиенты все еще дополнительно отфильтрованы по году;
Фиг.10 является диаграммой, иллюстрирующей экранное устройство отображения, показывающее стеки библиотеки документа;
Фиг.11 является диаграммой, иллюстрирующей экранное устройство отображения, показывающее документы в стеке ABC Corp. фиг.10;
Фиг.12 является диаграммой, иллюстрирующей экранное устройство отображения, в котором функция накопления выбрана для документов фиг.11;
Фиг.13 является диаграммой, иллюстрирующей экранное устройство отображения, в котором параметр «стек авторов» выбран для функции стека фиг.12;
Фиг.14 является диаграммой, иллюстрирующей экранное устройство отображения, в котором файлы фиг.13 были расположены в стеке по авторам;
Фиг.15 является диаграммой, иллюстрирующей экранное устройство отображения, в котором выбрана функция стека, и опция «стек по категориям» дополнительно выбрана для повторного расположения в стеке файлов фиг.14;
Фиг.16 является диаграммой, иллюстрирующей экранное устройство отображения, в котором файлы фиг.14 были повторно расположены в стеке по категориям;
Фиг.17 является диаграммой, иллюстрирующей экранное устройство отображения, в котором выбрана быстрая ссылка для показа физических папок;
Фиг.18 является диаграммой, иллюстрирующей экранное устройство отображения, в котором показаны физические папки, которые содержат файлы стеков виртуальных папок фиг.17;
Фиг.19 является блок-схемой, иллюстрирующей подпрограмму, с помощью которой пользователь может непосредственно управлять виртуальными папками;
Фиг.20 является диаграммой, иллюстрирующей экранное устройство отображения, в котором новый стек «Западное побережье» добавлен к стекам фиг.10;
Фиг.21 является диаграммой, иллюстрирующей экранное устройство отображения, в котором прямое манипулирование используется для копирования файлов со стека «ABC Corp.» в стек «Западное побережье» фиг.20;
Фиг.22 является блок-схемой, иллюстрирующей подпрограммы для системы, динамически генерирующей новые условия фильтра;
Фиг.23 является блок-схемой, иллюстрирующей подпрограммы для системы, фильтрующей элементы, основываясь на выборе условия фильтра;
Фиг.24 является диаграммой, иллюстрирующей экранное устройство отображения, в котором стеки фиг.10 были отфильтрованы условием «AB»;
Фиг.25 является диаграммой, иллюстрирующей экранное устройство отображения, в котором стеки фиг.10 были отфильтрованы условием «ABC»;
Фиг.26 является диаграммой, иллюстрирующей экранное устройство отображения, в котором условия фильтра «год 2002» выбраны для стеков Фиг.10;
Фиг.27 является диаграммой, иллюстрирующей экранное устройство отображения, в котором стеки фиг.10 были отфильтрованы по условию «год 2002», и дополнительно выбрано условие фильтра «месяц»;
Фиг.28 является диаграммой, иллюстрирующей экранное устройство отображения, в котором список представлен для выбора месяца для фильтра;
Фиг.29 является диаграммой, иллюстрирующей экранное устройство отображения, в котором стеки фиг.10 были дополнительно отфильтрованы по месяцу «январь», и дополнительно показаны условия фильтра «день»;
Фиг.30 является блок-схемой, иллюстрирующей подпрограммы для создания новой быстрой ссылки;
Фиг.31 является диаграммой, иллюстрирующей экранное устройство отображения для создания новой быстрой ссылки, названной «январская работа», основываясь на фильтре фиг.29;
Фиг.32 является диаграммой, иллюстрирующей экранное устройство отображения, в котором выбрана быстрая ссылка «Все авторы»;
Фиг.33 является диаграммой, иллюстрирующей экранное устройство отображения, в котором представлен список всех авторов фиг.32;
Фиг.34 является диаграммой, иллюстрирующей экранное устройство отображения, в котором «Автор 1» был выбран из списка фиг.33 и показаны все документы Автора 1;
Фиг.35 является блок-схемой, иллюстрирующей подпрограммы для создания новой библиотеки;
Фиг.36 является диаграммой, иллюстрирующей экранное устройство отображения, в котором показана совокупность различных доступных библиотек;
Фиг.37 является блок-схемой, иллюстрирующей подпрограммы для определения контекста совокупности виртуальных папок;
Фиг.38 является блок-схемой, иллюстрирующей различные источники, которые могут формировать контекст совокупности виртуальных папок;
Фиг.39 является блок-схемой, иллюстрирующей подпрограммы для включения нефайловых элементов в совокупности виртуальных папок; и
Фиг.40 является диаграммой, иллюстрирующей экранное устройство отображения, показывающее различные нефайловые элементы, включенные в виртуальную папку.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ.
Данное изобретение направлено на виртуальные папки. Виртуальные папки используют те же самые или подобные интерфейсы пользователя, которые в настоящее время используются для файловых систем. Виртуальные папки выдают правильные файлы и папки (также известные как каталоги) пользователям в различных видах, основываясь на их метаданных вместо фактической физической, основной на файловой системе на диске, структуры. Создаются независимые от местоположения виды, которые позволяют пользователям управлять их файлами и папками, используя подобные элементы управления таким же образом, что и в настоящее время используемые для управления файловыми системами. Вообще это означает, что пользователи могут организовывать и перестраивать свои файлы, основываясь на встроенных непосредственно в файлы свойствах, вместо управления и организации, сделанной в виде отдельной части системы. Виртуальные папки могут показать файлы или элементы из различных физических мест, например, от множества дисководов в пределах одного компьютера, между множеством компьютеров, или различными сетевыми местами так, чтобы одно представление файлов или элементов могло бы показать файлы или элементы, находящиеся в различных физических местах. В одном варианте воплощения различные элементы или файлы, для того чтобы быть включенными, должны быть связанными только через сеть IP.
Модель виртуальных папок также способна использоваться для традиционно нефайловых объектов. Приложение для этого должно иметь набор интерфейсов пользователя, подобных файлам и папкам (то есть объектам и контейнерам) для того, чтобы показать традиционно нефайловые объекты. Одним примером таких нефайловых объектов могут быть сообщения электронной почты, в то время как другим будет информация о контактах из базы данных контактов. Этим способом виртуальные папки обеспечивают независимую от местоположения систему представления на основе метаданных, которая работает независимо от того, приходят ли показываемые данные из файлов или из нефайловых объектов. Вообще эти аспекты дают больше гибкости в условиях, дающих пользователям управлять их файлами и данными, используя обычную технологию интерфейса пользователя (щелкнуть и перетащить, дважды щелкнуть и т.д.) так же, как и усиленную богатую интеграцию различных типов данных.
Фиг.1 и следующее обсуждение предназначены для предоставления краткого, общего описания подходящей компьютерной среды, в которой данное изобретение может быть осуществлено. Хотя это и не требуется, изобретение будет описано в общем контексте компьютерных выполнимых команд, типа программных модулей, выполняемых персональным компьютером. Вообще программные модули включают подпрограммы, программы, символы, компоненты, структуры данных и т.д., которые выполняют специфические задачи или осуществляют специфические абстрактные типы данных. Поскольку специалисты в данной области техники оценят, что изобретением можно заняться в других конфигурациях компьютерной системы, включая карманные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые PC, миникомпьютеры, универсальные компьютеры и т.п. Изобретением можно также заняться в распределенных компьютерных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через коммуникационную сеть. В распределенной компьютерной среде программные модули могут быть расположены и в локальных, и в удаленных запоминающих устройствах.
Со ссылкой на фиг.1, примерная система для осуществления изобретения включает универсальное компьютерное устройство в форме обычного персонального компьютера 20, включая процессор 21, системную память 22 и системную шину 23, которая соединяет различные системные компоненты, включая системную память 22, с процессором 21. Системная шина 23 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из разнообразия шинных архитектур. Системная память включает постоянное запоминающее устройство 24 (ROM) и оперативную память 25 (RAM). Базовая система 26 ввода-вывода (BIOS), содержащая основные подпрограммы, которые помогают передавать информацию между элементами в пределах персонального компьютера 20, например во время запуска, сохранена в ROM 24. Персональный компьютер дополнительно включает накопитель 27 жесткого диска для чтения или записи на жесткий диск 39, накопитель 28 магнитного диска для чтения или записи на сменный магнитный диск 29 и накопитель 30 оптического диска для чтения или записи на сменный оптический диск 31 типа CD-ROM или другие оптические носители. Накопитель 27 жесткого диска, накопитель 28 магнитного диска и накопитель 30 оптического диска связаны с системной шиной 23 по интерфейсу 32 жесткого диска, интерфейсу 33 магнитного диска и интерфейсу 34 оптического диска, соответственно. Накопители и их соответствующие читаемые компьютером носители обеспечивают энергонезависимое хранение читаемых компьютером команд, структур данных, программных модулей и других данных для персонального компьютера 20. Хотя примерная среда, описанная здесь, использует жесткий диск 39, сменный магнитный диск 29 и сменный оптический диск 31, специалисты в данной области техники оценят, что другие типы читаемых компьютером носителей, которые могут хранить данные и которые являются доступными с помощью компьютера, типа магнитных кассет, плат флэш-памяти, цифровых видеодисков, картриджей Бернулли, оперативной памяти (RAM), постоянных запоминающих устройств (ROM) и т.п., могут также использоваться в примерной среде.
Множество программных модулей может быть сохранено на жестком диске 39, магнитном диске 29, оптическом диске 31, ROM 24 или RAM 25, включая операционную систему 35, одну или более прикладных программ 36, другие программные модули 37 и программные данные 38. Пользователь может ввести команды и информацию в персональный компьютер через устройства ввода данных типа клавиатуры 40 и устройства управления позицией 42. Другие устройства ввода данных (не показанные здесь) могут включать микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер, или подобное этому. Эти и другие устройства ввода данных часто соединяются с процессорным модулем 21 через интерфейса 46 последовательного порта, который соединен с системной шиной 23, но может также быть связан другими интерфейсами типа параллельного порта, игрового порта или универсальной последовательной шины (USB). Дисплей в форме монитора 47также связан с системной шиной 23 через интерфейс типа видеоплаты или адаптера 48. Один или более динамиков 57 могут также быть связаны с системной шиной 23 через интерфейс типа аудиоадаптера 56. В дополнение к дисплею и динамикам персональные компьютеры обычно включают другие периферийные устройства вывода (не показанные здесь) типа принтеров.
Персональный компьютер может работать в сетевой среде, используя логические подключения к одному или более персональным компьютерам типа удаленного компьютера 49. Удаленный компьютер 49 может быть другим персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим обычным сетевым узлом и обычно включает множество или все элементы, описанные выше относительно персонального компьютера 20. Логические подключения, изображенные на фиг.1, включают локальную сеть 51 (LAN) и глобальную сеть 52 (WAN). Такие сетевые среды являются обычными в офисах, компьютерных сетях масштаба предприятия, интранет и Интернет.
При использовании в сетевой среде LAN персональный компьютер связан с локальной сетью 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде WAN персональный компьютер обычно включает модем 54 или другие средства для установления связи по глобальной сети 52 типа сети Интернет. Модем 54, который может быть внутренним или внешним, связан с системной шиной 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, изображенные относительно персонального компьютера или его частей, могут быть сохранены на удаленном запоминающем устройстве. Будет оценено, что показанные сетевые подключения являются примерными, и могут использоваться другие средства установления связи между компьютерами.
Как осуществлено на системе, проиллюстрированной на фиг.1, данное изобретение использует виртуальные папки, которые облегчают для пользователей выполнение основных задач вокруг манипуляции файлами и передвижением по папкам (просмотр) и обеспечивают более высокий уровень возможностей хранения, которые могут быть усилены для новых возможностей. Виртуальные папки показывают пользователям файлы и элементы в различных видах, основываясь на их метаданных, вместо фактической, физической, основной на файловой системе на диске структуры.
Фиг.2 является блок-схемой системы 200 виртуальных папок в соответствии с данным изобретением. Как будет описано более детально ниже, виртуальные папки позволяют пользователю изменять «опору», который контролирует способ просмотра данных. Как пример, пользователь может просматривать свою музыку как плоский список всех песен, которые могут быть сгруппированы в альбомы. Альтернативно пользователь может переключить представление для показа только по жанрам или по артистам, или по годам и т.д. Пользователь может приспособить представление для того, чтобы видеть только объекты, подходящие для насущной задачи. Это позволяет улучшить опыт просмотра, который снимает потребность в дальнейшем передвижении через папки (и вниз, и обратно). Те же самые уроки и возможности применяются к моделированию других типов данных, не сохраненных в виде файлов. Контакты, например, могут быть выданы пользователю этим способом, давая им с помощью знакомых возможностей интерфейса, так же, как и с помощью более богатой инфраструктуры, управлять этими элементами, чем тот способ, который предоставляется простой адресной книгой.
Как проиллюстрировано на фиг.2, система 200 виртуальных папок включает процессор 210 папок, реляционную базу 230 данных, виртуальную базу 232 данных описаний папок, другой компонент 234 оболочки папок, компонент 236 обработчика папок, браузер оболочки и компонент 240 представления. Процессор 210 папок включает компонент 212 обработчика родного кода, компонент 214 обработчика, определенный при изготовлении, компонент 216 записи свойства, компонент 218 синтаксического анализатора набора строк, компонент 220 средства построения запроса, компонент 222 перечисления и компонент 224 свойства, определенный при изготовлении.
Реляционная база 230 данных хранит свойства обо всех файлах в системе. Она также полностью хранит некоторые элементы, подобные контактам (то есть, нефайловые элементы). Вообще она хранит метаданные о типах файлов и элементов, которые она содержит. Реляционная база 230 данных получает SQL запросы от средства 220 построения запроса. Реляционная база 230 данных также посылает набор строк SQL компоненту 218 синтаксического анализатора набора строк с одной строкой для каждого столбца элемента, где столбцы являются свойствами элемента.
База 232 данных описаний виртуальных папок включает описания виртуальных папок. База 232 данных описаний виртуальных папок отправляет данные компоненту 220 построения запроса, включающие список типов для отображения в папке, начальный фильтр и физическое местоположение для показа результатов (контекста).
По отношению к другому компоненту 234 оболочки папок процессор 210 папок передает в существующие оболочки папки из многих типов элементов, включая все файлы, для обработчиков или свойств. Другой компонент 234 оболочки папок посылает свойства от других папок в компонент 224 свойств. Другой компонент оболочки папок также посылает обработчики компоненту 214 обработчика.
Компонент 236 обработчиков папки предоставляет кодовое поведение для элементов, которые существуют только в базе данных, подобно контактам. Это то, что позволяет нефайловым элементам вести себя подобно файлам. Компонент 236 обработчиков папки посылает обработчика компоненту 214 обработчика.
Для компонента 212 обработчика родного кода процессор 210 папок непосредственно реализует некоторые обработчики, основываясь на свойствах элементов. Компонент 212 обработчика родного кода посылает обработчика компоненту 214 обработчика. Для компонента 212 обработчика родного кода и компонента 236 обработчика папки, подобно всему пространству имен, виртуальные папки должны предоставить набор обработчиков (контекстное меню, значок, эскиз, всплывающее информационное сообщение,...) для их элементов. Для большинства из них (всплывающего информационного сообщения, объекта данных, обработчика перетаскивания, фонового контекстного меню,...) виртуальная папка предоставляет обычный (родной) обработчик для всех типов, которые она содержит. Однако есть другие, которые автор типа должен предоставить (контекстное меню непосредственно для элемента, перезаписываемое хранилище свойства,...). Заданный по умолчанию обработчик может также быть отменен. Виртуальные папки многократно используют это для файлов и позволяют нефайловым элементам делать то же самое.
Компонент 214 обработчика берет список идентификаторов и производит код поведения, который предоставляет контекстные меню, значки и т.д. Вообще процессор 210 папок может использовать родные обработчики, внешние обработчики или обращаться к другим оболочкам папок для получения обработчиков, как описано выше относительно компонента 212 обработки родного кода, к другому компоненту 234 оболочки папок и компоненту обработчиков 236 папки. Компонент 214 обработчика посылает обработчики браузеру оболочки в представлении 240, как это требуется для представления. Компонент 214 обработчика посылает обработчик свойства устройству 216 записи свойства.
Устройство 216 записи свойства преобразует намерения пользователя, такие как вырезать, скопировать и вставить, в свойство файла или элемента. Браузер оболочки и компонент 240 представления отправляют данные устройству 216 записи свойства, включая прямую манипуляцию (вырезать/скопировать/вставить) или редактирование метаданных. Вообще начиная с виртуальных папок, представляющих организацию, основанную на свойствах элемента, операции типа перемещения и копирования (перетаскивание) становятся редактируемыми на этих свойствах. Например, перемещение документа в представление, расположенное в стеке авторов, от Автора 1 к Автору 2, означает изменение автора. Компонент 216 устройства записи свойства реализует эту функцию.
Синтаксический анализатор 218 набора строк берет базу данных набора строк и сохраняет все свойства элемента в структуре списка идентификаторов оболочки. Набор строк берет кусочное определение виртуальной папки и строит строку SQL, которая может после этого быть выдана базе данных. Компонент 218 синтаксического анализатора набора строк посылает списки идентификаторов компоненту 222 перечисления. Как описано выше, компонент 218 синтаксического анализатора набора строк также получает данные от реляционной базы 230 данных, включая SQL набор строк, с одной строкой на элемент, где столбцы являются свойствами элемента.
Компонент 220 построения запроса строит SQL запрос. Компонент 220 средства построения запроса получает данные от компонента 222 перечисления, включая новые фильтры от навигации. Компонент 220 средства построения запроса также получает данные от базы 232 данных описаний виртуальных папок, включая список типов для отображения в папке, начальный фильтр и физическое местоположение для показа результатов (контекста). Компонент 220 средства построения запроса посылает SQL запросы реляционной базе 230 данных.
Вообще компонент 220 построения запроса включает набор строк (другими словами таблицу). Это то, к чему приводит выполнение запроса. Компонент 218 синтаксического анализатора набора строк берет каждую строку и использует имя столбца для преобразования строки в список идентификаторов. Список идентификаторов является хорошо известной структурой оболочки, которая используется для ссылки на элементы в пространстве имен. Выполнение этого позволяет виртуальным папкам быть точно такими же, как и любое другое пространство имен, к остальной части оболочки. Также кэширование этих данных помогает свести доступ к базе данных, который может быть дорогостоящим, к минимуму.
Компонент 222 перечисления работает в ответ на навигацию по виртуальной папке. Как описано выше, компонент 222 перечисления получает списки идентификаторов из компонента 218 синтаксического анализатора набора строк и посылает новые фильтры от навигации к компоненту 220 построения запроса. Компонент 222 перечисления также отправляет данные на браузер оболочки и компонент 240 представления, включая списки идентификаторов, которые возвращаются для того, чтобы быть вставленными в представление после навигации.
Компонент 224 свойства берет списки идентификаторов и идентификаторы свойств и возвращает значения для этих свойств. Компонент 224 свойства получает данные от компонента 214 обработчика, включающего обработчик свойства. Как описано выше, компонент 224 свойства также получает данные от другого компонента 234 оболочки папок, включающие свойства от других папок. Компонент 224 свойства также отправляет данные на браузер оболочки и компонент 240 представления, включая свойства элемента, как это требуется представлением.
Браузер оболочки и компонент 240 представления отображают содержание папки в окне и обрабатывают все пользовательские взаимодействия с отображенными файлами или элементами типа щелчка, перемещения и навигации. Таким образом, браузер оболочки и компонент 240 представления получают пользовательские действия. Браузер оболочки и компонент 240 представления также получают данные относительно кода поведения, который требуется от папки, в этом случае от процессора 210 папок.
Как описано выше, виртуальные папки выдают правильные файлы и папки (также известные как каталоги) пользователям в различных видах, основываясь на их метаданных вместо фактической, физической, основной на файловой структуре на диске, системы. Таким образом система способна взять свойство, которое сохранено в базе данных, и представить элемент как контейнер, который походит на папку. Так как пользователи уже знакомы с работой с папками, представление виртуальных папок подобным способом позволяет пользователям приспособиться к новой системе более быстро.
Фиг.3 является блок-схемой, иллюстрирующей подпрограмму 300, с помощью которой пользователь передает запрос, который отодвигает выбранные элементы. В блоке 302 процессор папок получает запрос от пользователя. В блоке 304 процессор папок передает запрос к реляционной базе данных. В блоке 306 реляционная база данных предоставляет результаты назад процессору папок. В блоке 308 процессор папок предоставляет результаты пользователю в форме виртуальных папок и элементов.
Фиг.4 является блок-схемой, иллюстрирующей подпрограмму 320, с помощью которой виртуальные папки создаются и отображаются на экране в соответствии с заданным по умолчанию запросом или в соответствии с запросом от пользователя. В блоке 322, когда пользователь сначала открывает виртуальную папку, используется заданный по умолчанию запрос. Этот заданный по умолчанию запрос взят от системного реестра. Например, заданный по умолчанию запрос для библиотеки музыки должен будет показать все песни, сгруппированные по альбомам. В блоке 324 процессор папок создает объект запроса для этого запроса и затем передает этот запрос к реляционной базе данных. В блоке 326 реляционная база данных генерирует результаты запроса и передает им назад на процессор папок в виде строк и столбцов базы данных.
В блоке 328 процессор папок берет эти результаты и преобразовывает их из строк и столбцов данных в структуру перечисления, которая используется представлением папки для заполнения экрана результирующими виртуальными папками и элементами для пользователя для взаимодействия с ним. В решающем блоке 330 пользователь решает, изменить ли представление (с помощью выдачи другого запроса или «опоры»). Например, пользователь может выдать опору «показать всех исполнителей». Если пользователь действительно хочет изменить представление, то подпрограмма возвращается к блоку 324, где процессор папок передает этот новый запрос к реляционной базе данных, получает назад новые строки и столбцы результатов и создает новую структуру перечисления. Эти процессы также продолжаются, как описано выше, когда представление для папки очищают и обновляют, используя перечисление для рисования объекта «исполнитель» на экране.
В одном примере объекты альбома представляют собой контейнеры, по которым пользователи могут передвигаться. Например, двойной щелчок на альбомы «Beatles» передвинет эти представления для просмотра всех песен Beatles. Процессор папок выдает запрос «показать все песни Beatles» реляционной базе данных, которая возвращает строки и столбцы данных для этих песен. Процессор папок создает перечисление всех этих песен, которые после этого отображаются на экране.
Пользователь может также выбрать представление в любой точке при просмотре виртуальных папок. От вышеупомянутого примера, после сужения до показа только песен Beatles, пользователь может изменить представление только до показа песен в виде альбомов. Процесс изменения представления элементов в другое представление называют «компоновкой в стеке». Это потому, что элементы концептуально размещены в «стеки», основываясь на этом представлении. В этом случае песни перестраиваются в стеки для каждого из различных альбомов. Пользователи могут тогда передвинуться в один из этих стеков, видя песни только из этого определенного альбома. Вновь пользователь может перестроить представление этих оставшихся песен в стеки, основываясь на свойстве (например, на оценке рейтинга). Если бы свойство рейтинга было выбрано, песни из альбомов Beatles были бы показаны в стеках для оценки с одной, двумя или с тремя звездами.
Результаты каждого запроса зависят от физического местоположения, включенного в контекст. Например, контекст может быть сделан для включения только папок в папках «мои документы» пользователя. Альтернативно, контекст может включать все папки в компьютере или даже все папки на множестве подключенных по сети компьютеров. Пользователь способен просматривать и изменять контекст через окно свойств контекста. В одном примере окно свойств контекста может быть выдано, щелкая правой кнопкой мыши на виртуальной папке и выбирая «свойства». Пользователь может добавить новые папки к контексту или удалить папки, которые предварительно добавлялись.
Одной группой пользователей, для которых виртуальные папки обеспечивают специфическую выгоду, являются специалисты в сфере информационных технологий. Виртуальные папки позволяют специалистам в сфере информационных технологий легко переключаться между просмотром документов по типу файлов, проектов, номером дела, автором и т.д. Поскольку каждый специалист в сфере информационных технологий имеет тенденцию иметь различный способ для организации документов, виртуальные папки могут использоваться для приспособления к этим различным предпочтениям.
Фиг.5 является древовидной схемой структуры папок в соответствии с физическим расположением папок на жестком диске. Это физическое расположение папок основывается на традиционной реализации папок, которые могут быть основаны на файловой системе NTFS или других существующих файловых системах. Такие папки упоминаются как физические папки, потому что их структурирование основано на фактической, физической, основанной на файловой системе на диске структуре. Как будет описано более подробно ниже, в отличие от виртуальных папок, которые создают независимые от местоположения представления, которые позволяют пользователям управлять файлами и папками способами, которые являются подобными используемым в настоящее время, для управления физическими папками.
Как проиллюстрировано на фиг.5, папка 400 является папкой «мои документы». На первом уровне папка 400 включает папки 410, 420 и 430, соответствующие Клиентам 1, 2 и 3, соответственно. На втором уровне каждая из папок 410, 420 и 430 содержит папку 411, 421 и 431 соответственно, каждая из которых соответствует контрактам для выбранного клиента. На третьем уровне каждая из папок 411, 421 и 431 содержит папку 412, 422 и 432 соответственно, каждая из которых соответствует году 2001. На третьем уровне каждая из папок 411, 421 и 431 также содержит папку 413, 423 и 433 соответственно, каждая из которых соответствует году 2002.
Необходимо отметить, что перед пользователем, который желает управлять структурой файла физической папки, типа проиллюстрированного на фиг.5, стоит ряд препятствий. Например, если пользователь желает работать со всеми контрактами, которые пользователь произвел, пользователь должен будет сначала передвинуться к папке 411 для работы с контрактами Клиента 1, затем должен будет повторно передвинуться к папке 421, чтобы достигнуть контрактов Клиента 2, и вновь должен будет повторно передвинуться к папке 431 для контрактов Клиента 3. Это расположение мешает пользователю обращаться ко всем контрактам, и вообще предотвращает одновременное рассмотрение и манипуляцию всеми контрактами. Точно так же, если пользователь желает просмотреть все контракты, произведенные в 2001 г., пользователь должен будет передвигаться и повторно передвигаться к папкам 412, 422 и 432 соответственно. Как будет описано более подробно ниже, виртуальные папки данного изобретения обеспечивают улучшенную структуру файловой системы.
Фиг.6 является древовидной схемой структуры виртуальной папки. Как будет описано более подробно ниже, виртуальные папки создают независимые от местоположения представления, которые позволяют пользователям управлять их файлами и папками удобными способами. Как показано на фиг.6, виртуальные папки представляются в виде стеков. Виртуальная папка 500 является папкой «все элементы». На первом уровне виртуальная папка 500 содержит виртуальные папки 510, 520 и 530, соответствующие клиентам, контрактам и году соответственно. Как будет описано более подробно ниже, эта структура позволяет пользователю обращаться к файлам согласно желательному параметру.
Фиг.7 является древовидной схемой структуры виртуальной папки фиг.6, где на втором уровне виртуальная папка 510 дополнительно включает виртуальные папки 511 и 512, которые соответствуют контрактам и году соответственно. Другими словами, стек клиентов виртуальной папки 510 дополнительно отфильтрован в соответствии с контрактами и годом. Процесс для определения, какие файлы и элементы содержатся в каждой из виртуальных папок, будет описан более подробно ниже.
Фиг.8 является древовидной схемой структуры виртуальной папки фиг.7, где на третьем уровне виртуальная папка 511 содержит виртуальную папку 513, которая соответствует году. Другими словами, стек контрактов виртуальной папки 511 дополнительно отфильтрован по году. В то время как структура виртуальных папок для виртуальных папок 510, 511 и 513 была структурирована согласно клиентам, контрактам и году, необходимо оценить, что виртуальные папки учитывают другие структурные последовательности, которые возникают так, как будет описано более подробно ниже со ссылкой на фиг.9.
Фиг.9 является древовидной схемой структуры виртуальной папки фиг.6, где на втором уровне виртуальная папка 520 была дополнительно отфильтрована в виртуальные папки 521 и 522, соответствующие клиентам и году. На третьем уровне виртуальная папка 521 была дополнительно отфильтрована к виртуальной папке 523, соответствующей году. Контраст между организационными структурами фиг.8 и 9 иллюстрирует гибкость системы виртуальных папок. Другими словами, в системе виртуальных папок пользователь способен управлять виртуальными папками согласно желаемым параметрам, в противоположность тому, чтобы быть зависимым от зависимых от местоположения представлений физической структуры файла типа проиллюстрированного на фиг.5.
Фиг.10 является диаграммой, иллюстрирующей экранное устройство 600 отображения, показывающее стеки библиотеки документа. Как отмечено выше, стеки могут использоваться для представления типа виртуальной папки. Как будет описано более подробно ниже, экранное устройство 600 отображения включает элементы 610-613 быстрых ссылок, элементы 620-626 фильтра, элементы 630-633 действий, информацию и элементы 640-645 управления и стеки 651-655 виртуальных папок.
Элементы быстрых ссылок включают быструю ссылку 610 «все категории», быструю ссылку 611 «все авторы», быструю ссылку 612 «январская работа» и выбор для отображения дополнительных быстрых ссылок 613. Как будет описано более подробно ниже, быстрые ссылки могут быть выбраны пользователем для выполнения желаемой навигации виртуальных папок. Быстрые ссылки могут быть предоставлены системой, и некоторые быстрые ссылки могут быть созданы и сохранены пользователем.
Элементы фильтра включают индикатор 620 «фильтровать по», пустую запись 621, индикатор 622 «по дате», селектор 623 «год», селектор 624 «выбрать автора», селектор 625 «выбрать категорию» и селектор 626 «больше фильтров». Индикатор 620 «фильтровать по» показывает пользователю, что элементы ниже могут использоваться для фильтрования виртуальных папок или элементов. Пустая запись 621 обеспечивает область, в которой пользователь может напечатать желаемое новое условие фильтра. Индикатор 622 «по дате» показывает пользователю, что, выбирая дату из селектора 623 «год», виртуальные папки или элементы могут быть отфильтрованы по выбранному году. Селектор 624 «выбрать автора» позволяет пользователю применить фильтр по определенному автору. Селектор 625 «выбрать категорию» позволяет пользователю применить фильтр по выбранной категории. Селектор 626 «больше фильтров» позволяет пользователю перемещать дополнительные фильтры на дисплей.
Селекторы действий включают селектор 630 «создать новую категорию», селекторы 631 и 632 «действия» и селектор 633 «больше действий». Как будет описано более подробно ниже, действия, которые могут быть представлены для обычно необходимых функций или могут быть направлены, более определенно, на действия, полезные для типов виртуальных папок, которые в настоящее время отображаются. Например, селектор 630 «создать новую категорию» может быть выбран пользователем для создания новой категории, которая будет представлена новым стеком.
Как отмечено выше, селекторы деятельности 631 и 632 могут быть более определенно направлены на типы отображаемых папок или элементов. Например, существующий дисплей имеет библиотеку документа, для которой селекторы 631 и 632 «действий» могут быть направлены на действия, определенным образом специализированные для документов типа редактирования или создания вложений. Если существующая библиотека была библиотекой фотографий, селекторы 631 и 632 «действий» могут быть для действий, определенно направленных на фотографии типа формирования альбомов фотографий или совместного использования фотографий с другими пользователями.
Информация и элементы управления включают информационные строки 640 и 641, управляющую строку 642, управление 643 возвратом и информационные строки 644 и 645. Информационные строки 640 и 641 обеспечивают информацию относительно текущей навигации по виртуальным папкам или элементам. В данном примере информационная строка 640 указывает, что текущая навигация является библиотекой документов, в то время как информационная строка 641 указывает более завершенную навигацию, показывая, что библиотека документа находится в пределах области хранения. Строка 642 управления обеспечивает множество стандартных управляющих элементов, и кнопка 643 возврата назад позволяет пользователю возвращаться во время навигации. Информационная линия 644 обеспечивает числовую информацию о содержании данной навигации. В данном примере информационная линия 644 указывает, что есть 41 элемент, занимающий 100 Мбайт в стеках библиотеки документа. Информационная строка 645 доступна для предоставления дополнительной информации, типа дополнительной информации о выбранном файле.
Стеки библиотеки документа включают стек 651 «ABC Corp.», стек 652 «резервной копии», стек 653 «бизнес-планы», стек 654 «XYZ Corp.» и стек 655 «маркетинговый отчет». Числа на вершине каждого из стеков указывают, сколько элементов находится в каждом стеке. Например, стек 651 «ABC Corp.» показывает, что включает 8 элементов. Общее число элементов стеков подытоживает число элементов, обозначенных в информационной строке 644, количество которых, как описано выше, составляет 41 в данном примере. Блок выбора SB предоставлен для использования пользователем для выбора желаемого элемента. Выбор стека 651 «ABC Corp.» дает представление элементов этого стека, как будет описан ниже относительно фиг.11.
Фиг.11 является диаграммой, иллюстрирующей экранное устройство отображения, показывающее элементы стека 651 «ABC Corp.» из фиг.10. Необходимо отметить, что информационные строки 640 и 641 теперь указывают, что данная навигация показывает стек «ABC Corp.». Стек 651 «ABC Corp.» показывает, чтобы включает в себя 8 документов 751-758, соответствующих документам 1-8, соответственно. Информационная строка 644 соответственно указывает, что есть 8 элементов, которые занимают 20 Мбайт памяти. Документы фиг.11 могут быть дополнительно размещены в стеках в пределах стека ABC Corp. Другими словами, в пределах виртуальной папки, представляющей стек 651 ABC Corp., могут быть организованы дополнительные виртуальные папки для того, чтобы держать документы, как будут описаны ниже относительно фиг.12-16.
Фиг.12 является диаграммой, иллюстрирующей экранное устройство отображения, в котором функция накопления выбрана для документов фиг.11. Как показано на фиг.12, пользователь способен переместить функциональный блок 760. Функциональный блок 760 включает селектор 761 «вид», селектор 762 «упорядочить значки по», селектор 763 «стеки», селектор 764 «обновить», селектор 765 «открыть содержащиеся папки», селектор 766 «вырезать», селектор 767 «скопировать», селектор 768 «отменить», селектор 769 «новый» и селектор 770 «свойства». Блок выбора SB показан так, чтобы быть вокруг селектора 763 «стеки».
Фиг.13 является диаграммой, иллюстрирующей экранное устройство отображения, в котором параметр «стек по авторам» выбран для функции стеков фиг.12. Как показано на фиг.13, отображается блок 780, который представляет различные варианты стеков. Варианты стеков включают опцию 781 «без стека», опцию 782 «стек по категориям», опцию 783 «стек по авторам» и опцию 784 «стек по пользователям». Блок выбора SB показан так, чтобы быть вокруг опции 783 «стек по авторам».
Фиг.14 является диаграммой, иллюстрирующей экранное устройство отображения, в котором файлы фиг.13 были расположены в стеке авторов. Как показано на фиг.14, стеки 791 и 792 соответствуют авторам Бобу и Лизе, соответственно. Как обозначено числами на вершине каждого из стеков, стек 791 Боба включает два элемента, в то время как стек 792 Лизы включает пять элементов. Элемент 758 (соответствующий документу 8) не имеет автора и таким образом он не включен в стек «авторов». Стеки 791 и 792 иллюстрируют, что стеки могут быть организованы на множественных уровнях, например, в стеке 651 «ABC Corp.». Таким образом, виртуальные папки могут быть сформированы на множественных уровнях типа стека 792 «Лизы», находящегося в пределах стека 651 «ABC Corp.», который находится в библиотеке документов.
Фиг.15 является диаграммой, иллюстрирующей экранное устройство отображения, в котором дополнительно выбрана опция «стек по категориям» для повторного расположения в стеке файлов фиг.14. Как показано на фиг.15, блок выбора SB находится вокруг селектора 782 «стек по категориям». Так как некоторые из элементов уже расположены в стеках 791 и 792, выбор селектора 782 «стек по категориям» повторно расположит в стеке элементы, как будет описано более подробно ниже при рассмотрении фиг. 16.
Фиг.16 является диаграммой, иллюстрирующей экранное устройство отображения, в котором файлы фиг.14 повторно расположены в стеке по категориям. Как показано на фиг.16, стеки 793 и 794 соответствуют категориям «XYZ Corp.» и «маркетинговые отчеты», соответственно. Элементы 751 и 752, соответствуя документам 1 и 2, не определены ни в какие дополнительные категории, и таким образом не относятся ни к одному из других стеков категории.
Фиг.17 является диаграммой, иллюстрирующей экранное устройство отображения, в котором выбрана быстрая ссылка для физических папок. Блок выбора SB показан вокруг быстрой ссылки 616 «все папки». Как будет описано более подробно ниже относительно фиг.18, быстрая ссылка 616 «все папки» обеспечивает переключение к представлению физических папок. Фиг.18 является диаграммой, иллюстрирующей экранное устройство отображения, показывающее физические папки. Показанные физические папки содержат файлы стеков виртуальных папок фиг.17. Другими словами, элементы, содержавшиеся в стеках 651-655 из фиг.17, также содержатся в некоторых физических папках в системе. Они показаны на фиг.18, как папка 851 «Мои документы», которая расположена на данном компьютере, папка 852 «Рабочий стол», которая расположена на данном компьютере, папка 853 «Нечто», которая расположена на жестком диске C, папка 854 «Мои файлы», которая расположена на сервере, папка 855 «Внешние диски», которая расположена на внешнем диске, папка 856 «Мои документы», которая расположена на другом компьютере и папка 857 «Рабочий стол», которая расположена на другом компьютере.
Как показано на фиг.18, пользователь способен переключаться с представления виртуальных файлов фиг.17 на представление физических файлов фиг.18. Это позволяет пользователю переключаться между представлениями виртуальных файлов и представлениями физических файлов, в зависимости от того, что желательно для текущей задачи. Различные местоположения физических папок 851-857 также иллюстрируют, что пределы виртуальной файловой системы могут быть относительно широки, как будет описано более подробно ниже.
Фиг.19 является блок-схемой, иллюстрирующей подпрограмму 880, с помощью которой пользователь может непосредственно управлять виртуальными папками. Как будет описано более подробно ниже, механизмы, которые предоставлены для управления виртуальными папками, подобны тем, которые в настоящее время используются для управления обычными папками (например, перетаскивание, копирование, вставка и т.д.). Как показано на фиг.19, в блоке 882 система предоставляет определенные действия, которые пользователь может выполнить для прямой манипуляции виртуальными папками, которые представлены как отображаемые объекты. В блоке 884 пользователь выполняет определенное действие. Как отмечалось выше, одним примером этого может быть пользователь, перетаскивающий виртуальную папку для копирования ее содержания в другую виртуальную папку. В блоке 886 виртуальная папка и/или содержание манипулируются так, как указано действием, выполняемым пользователем.
Фиг.20 является диаграммой, иллюстрирующей экранное устройство отображения, в котором новый стек 656 «Западное побережье» добавляется к стекам фиг.10. Стек 656 «Западное побережье» был сформирован пользователем, создающим новую категорию «Западное побережье». После его начального создания новый стек 656 «Западное побережье» был бы пуст и имел бы нулевые элементы. В варианте воплощения фиг.20 два элемента добавляются к стеку 656 «Западное побережье». Один из способов добавления элементов к стеку состоит в том, чтобы выбрать специфический элемент, и изменении или добавлении дополнительной категории к метаданным категории для элемента, типа добавления категории "Западное побережье" к двум элементам, как это было сделано в варианте воплощения для фиг.20. Этот процесс иллюстрирует, что данные категории являются свойством метаданных элемента, который является специальным типом свойства. Другими словами, свойство этого типа не имеет никакого неявного значения, и пользователем может быть назначено произвольное значение. Например, категория «свойство» может иметь любое значение, тогда как свойство «автор» должно быть именем человека. Как будет описано более подробно ниже со ссылкой на фиг. 21, элементы можно также выбирать и перемещать для того, чтобы скопировать их из других стеков в стек 656 «Западное побережье» (когда категории элементов автоматически модифицируются, чтобы включить «Западное побережье»). В этом отношении фиг.20 показывает, что блок выбора SB располагается вокруг стека 651 «ABC Corp.» при подготовке к копированию его содержания.
Фиг.21 является диаграммой, иллюстрирующей экранное устройство отображения, в котором прямые манипуляции используются для копирования файлов из стека 651 «ABC Corp.» в стек 656 «Западное побережье». Другими словами, как показано на фиг.20, пользователь выбрал стек 651 «ABC Corp.» и затем, как показано на фиг.21, пользователь выбрал и переместил стек для копирования в стек 656 «Западное побережье». Таким образом, стек 656 «Западное побережье», который имел два элемента на фиг.20, теперь показывает, что включает всего десять элементов, включая дополнительные восемь элементов из стека 651 «ABC Corp.». Когда элементы стека 651 «ABC Corp.» были скопированы в стек 656 «Западное побережье», было достигнуто, с помощью изменения описания категории этих восьми элементов, что они также включают категорию «Западное побережье», в дополнение к включению оригинальной категории «ABC Corp.». Это иллюстрирует тип прямой манипуляции, которая может быть выполнена.
Другим примером прямой манипуляции является правый щелчок по элементу и выбор удаления. В одном варианте воплощения, когда функция удаления выбрана пользователем, пользователю делается запрос, должен ли элемент быть удален полностью или просто удален из существующей виртуальной папки. Если элемент должен быть удален только из существующего стека категории виртуальной папки, как отмечалось выше, это может быть достигнуто, удаляя желаемую категорию из метаданных элемента. Другими словами, если один из элементов, который был скопирован из стека 651 «ABC Corp.» в стек 656 «Западное побережье», должен был быть после этого удален из стека 656 «Западное побережье», это может быть достигнуто, изменяя данные категории для специфического файла, чтобы он больше не включал категорию «Западное побережье».
Фиг.22 является блок-схемой, иллюстрирующей подпрограмму 900 для системы, динамически генерирующей новые условия фильтра. Условия фильтра используются для управления виртуальными папками. Условия фильтра используются, по существу, как набор инструментальных средств для того, чтобы сузить набор элементов. В одном варианте воплощения фильтры состоят из категорий метаданных и их значений (представленных пользователю в интерфейсе пользователя при активизации щелчком по ссылке или раскрывающемся меню). Пользователь нажимает на условие фильтра для того, чтобы отфильтровать текущий набор результирующих элементов на дисплее.
Фиг.22 иллюстрирует, как фильтры могут быть динамически сгенерированы. Как показано на фиг.22, в блоке 902 рассматриваются свойства (из метаданных) элементов в совокупности на представленном дисплее. В блоке 904 предложенные условия фильтра динамически генерируются, основываясь на общих свойствах элементов. В блоке 906 предложенные условия фильтра представляются пользователю для возможного выбора для фильтрации элементов. Как пример этого процесса, система может сделать обзор свойств набора элементов, и, если элементы вообще имеют «авторов» как свойство, фильтр может предоставить список авторов для фильтрации. Тогда, нажимая на определенного автора, элементы, которые не имеют того автора, будут удалены из набора на дисплее. Этот процесс фильтрации обеспечивает пользователя механизмом для сужения набора элементов на дисплее.
Фиг.23 является блок-схемой, иллюстрирующей подпрограмму 920 для системы, фильтрующей элементы, основываясь на выборе условия фильтра. В блоке 922 пользователь или вводит новое условие фильтра, или иначе выбирает одно из условий фильтра, которые были предоставлены системой. Как отмечалось выше, условия фильтра могут быть динамически сгенерированы системой, или они могут быть предварительно установлены. В блоке 924 элементы из совокупности на дисплее оцениваются по отношению к тому, соответствуют ли их выбранные свойства условию фильтра. Например, если условием фильтра являются элементы, которые создавались «Бобом», тогда элементы оцениваются в соответствии с тем, включает ли их свойство автора «Боб». В блоке 926 элементы, для которых выбранные свойства не соответствуют условию фильтра, удаляются из совокупности на дисплее.
Фиг.24 является диаграммой, иллюстрирующей экранное устройство отображения, в котором стеки фиг.10 были отфильтрованы условием «AB». Как показано, в области фильтра 621, условие «AB» было напечатано пользователем. Информационные строки 640 и 641 указывают, что элементы на дисплее являются теперь теми, которые были отфильтрованы условием «AB». Как показано, стек 651 «ABC Corp.» все еще содержит восемь элементов, в то время как стек 652 резервных копий теперь содержит три элемента, и стек 654 XYZ Corp. также содержит три элемента. Информационная строка 644 таким образом указывает, что есть всего 14 элементов, занимающих всего 35 Мбайт памяти.
Фиг.25 является диаграммой, иллюстрирующей экранное устройство отображения, в котором стеки фиг.10 были отфильтрованы условием «ABC». По отношению к условию фильтра «AB» фиг.24 пользователь просто напечатал дополнительный символ «C», чтобы сделать полное условие фильтра «ABC». Как показано на фиг.25, информационные строки 640 и 641 теперь указывают, что элементы на дисплее являются теми, которые содержат условие «ABC». Стек 651 «ABC Corp.» все еще показывает, что он содержит восемь элементов, в то время как стек 652 резервных копий теперь содержит только два элемента. Информационная строка 644 теперь указывает, что есть всего 10 элементов в стеках на дисплее, которые занимают всего 25 Мбайт памяти. Фиг.24 и 25 таким образом предоставляют примеры того, как пользователь может ввести новые условия фильтра и как эти условия фильтра используются для фильтрации элементов, которые показаны на дисплее.
Фиг.26 является диаграммой, иллюстрирующей экранное устройство отображения, которое показывает система, если выбрано условие фильтра «год 2002». Как отмечалось выше, под индикатором 622 даты, селектор 623 года включают годы 2000, 2001 или 2002. Блок выбора SB показывают как находящийся вокруг года 2002, указывая, что пользователь выбирает это в качестве желаемого условия фильтра.
Фиг.27 является диаграммой, иллюстрирующей экранное устройство отображения, в котором условие фильтра «2002» было применено. Также показан дополнительный выбор селектора 623A «укажите месяц». Как показано на фиг.27, после применения условия фильтра «2002» число элементов в стеках было уменьшено. Более определенно, стек 651 «ABC Corp.» теперь содержит шесть элементов, стек 652 резервных копий теперь содержит восемь элементов, стек 653 Бизнес-планы теперь содержит три элемента и стек 654 XYZ Corp. теперь содержит пять элементов. Информационная строка 644 теперь указывает всего 22 элемента, занимающих всего 50 Мбайт памяти. Информационные строки 640 и 641 теперь указывают, что элементы, показанные на дисплее, являются теми, которые были отфильтрованы как содержащие условие фильтра «2002».
Фиг.28 является диаграммой, иллюстрирующей экранное устройство отображения, в котором список представлен для выбора месяца для фильтра. Показан блок 950, который включает список месяцев. Блок 950 был показан на дисплее из-за того, что пользователь выбрал селектор 623A «укажите месяц». Блок выбора SB показан как находящийся вокруг месяца января.
Фиг.29 является диаграммой, иллюстрирующей экранное устройство отображения, в котором стеки фиг.28 были дополнительно отфильтрованы по месяцу январю, и дополнительно показывают условие фильтра «день». Как показано на фиг.29, информационные строки 640 и 641 теперь указывают, что элементы на дисплее являются теми, которые были отфильтрованы условием «Январь». Стек 652 резервных копий теперь показывает, что он содержит два элемента, в то время как стек 653 «Бизнес-планы» также показывает, что он содержит два элемента. Информационная строка 644 указывает, что есть всего четыре элемента на дисплее, которые занимают всего 10 Мбайт памяти. Показан селектор 623В «укажите день», который дает пользователю возможность дополнительно отфильтровать результаты для определенного дня.
Фиг.30 является блок-схемой, иллюстрирующей подпрограмму 940 для создания новой быстрой ссылки. Как будет описано более подробно ниже, быстрые ссылки являются предопределенными ссылками, по которым пользователь может щелкнуть для создания выбранного пользователем представления набора элементов. В одном варианте воплощения о быстрой ссылке можно думать как о типе опоры. Быстрые ссылки обеспечивают механизм для извлечения виртуальной папки. Выбор быстрой ссылки может дать пользователю желаемую папку (тем же самым способом, которым выбор «фаворитов» может дать пользователю Веб-сайт). Быстрые ссылки могут быть предопределены системой или могут быть установлены пользователем. Например, нажатие на «все авторы» может возвратить представление, расположенное по авторам. Щелчок по «все документы» может возвратить плоское представление для всех документов для всех областей памяти. Пользователи могут также создавать свои собственные быстрые ссылки.
Как показано на фиг.30, в блоке 942 пользователь делает выбор на дисплее для указания того, что новая быстрая ссылка должна быть сформирована из существующего условия фильтра или навигации. В блоке 944 пользователь дает новое название для новой быстрой ссылки. В блоке 946 новая быстрая ссылка сохраняется, и новое быстрое название ссылки дается в разделе быстрых ссылок на дисплее.
Фиг.31 является диаграммой, иллюстрирующей экранное устройство отображения для создания новой быстрой ссылки, называемое «январская работа», основанной на фильтре фиг.29. Как описано выше, для фиг.29, стеки были отфильтрованы по январю месяцу. На фиг.31 пользователь указывает, что фильтрация фиг.29 должна быть сохранена как новая быстрая ссылка и называет новую быструю ссылку «январская работа». Таким образом, новая быстрая ссылка 612 «январская работа» показывается в разделе быстрых ссылок на дисплее. По отношению к формированию новых быстрых ссылок пользователь, в общем случае, обеспечивается опцией, такой как «сохранить эту совокупность как быструю ссылку».
Фиг.32 является диаграммой, иллюстрирующей экранное устройство отображения, в котором выбрана быстрая ссылка «Все авторы». Как показано на фиг.32, блок выбора SB показывают вокруг селектора 611 «все авторы». Другие примеры совокупностей, которые могли бы быть доступны по быстрым ссылкам, включают «все авторы», «недавние документы», «все документы, которые я совместно использовал», «все документы, которые я создал», «все документы, не созданные мной», «рабочий стол» и «все типы».
Фиг.33 является диаграммой, иллюстрирующей экранное устройство отображения, в котором представлен список всех авторов элементов фиг.32. Как показано на фиг.33, показана информационная строка 950, которая указывает столбцы для отображения названия элемента, автора, даты изменения, типа, размера и местоположения элемента. Показанный список авторов 951-954 соответствует Авторам 1-4, соответственно.
Фиг.34 является диаграммой, иллюстрирующей экран дисплея, в котором «Автор 1» был выбран из списка фиг.33. Документы автора 1 включают документы 951A и 951B, соответствующие документам 1 и 2, соответственно. Документ 951A показан как созданный Автором 1, измененный 11 июля 2001, являющийся файлом Microsoft Excel, занимающий 282 КБ памяти и полученный из местоположения \\server1\folder2. Документ 951B показан, как созданый Автором 1, измененный 22 декабря 2002, являющийся файлом Microsoft Word, занимающий 206 КБ памяти, и физически сохраненный в местоположении Мои Документы\folder1. Местоположения документов 951A и 951B также иллюстрируют, что виртуальные папки данного изобретения могут содержать элементы из различных физических мест, которые будут описаны более подробно ниже.
Фиг.35 является блок-схемой, иллюстрирующей подпрограмму 960 для создания новой библиотеки. Одним примером библиотеки является библиотека документов, описанная выше со ссылкой на фиг.10. Вообще библиотеки состоят из больших групп используемых типов файлов, которые могут быть связаны вместе. Например, фотографии могут быть одной библиотекой, музыка может быть другой, и документы могут быть третьей. Библиотеки могут обеспечить инструментальные средства и действия, которые связаны со специфическими типами элементов. Например, в библиотеке фотографий могут быть инструментальные средства и фильтры, которые касаются управления фотографиями, например, для того, чтобы создать слайды или совместно использовать изображения. Как показано в фиг.35, в блоке 962 создается новая библиотека, которая должна включать элементы с выбранными характеристиками. В блоке 964 выбранные элементы группируются в библиотеку. В блоке 966 предоставляются инструментальные средства и/или действия, связанные с выбранными характеристиками элементов или другими желательными функциями.
Фиг.36 является диаграммой, иллюстрирующей экранное устройство отображения, в котором показана совокупность доступных библиотек. Как показано на фиг.36, библиотеки включают библиотеку 971 документов, библиотеку 972 фотографий и видео, библиотеку 973 музыки, библиотеку 974 сообщений, библиотеку 975 контактов и библиотеку 976 телевидения и кино, так же, как и библиотеку 977 всех элементов. Библиотека 977 всех элементов показана как включающая 275 элементов, что является общим количеством элементов из всех других объединенных библиотек. Информационная строка 644 указывает всего 275 элементов, которые занимают всего 700 Мбайт памяти. Необходимо отметить, что библиотека 971 документов является библиотекой, которая была описана выше относительно фиг.10.
Фиг.37 является блок-схемой, иллюстрирующей подпрограмму 990 для определения контекста совокупности виртуальных папок. Как будет описано более подробно ниже, система виртуальных папок является способной представить элементы из множества физических мест (например, различные жесткие диски, различные компьютеры, различные сетевые места и т.д.) так, чтобы пользователю все элементы были, с готовностью, доступны. Например, пользователю можно показать музыкальные файлы из множества физических мест на единственном дисплее и дать манипулировать всеми файлами вместе.
Как показано на фиг.37, в блоке 992 контекст определен для физических мест, из которых элементы должны быть взяты. В блоке 994, в ответ на запрос, элементы берутся из физических мест так, как определено в контексте. В блоке 996 все элементы, взятые запросом, представляются на единственном дисплее.
Фиг.38 является блок-схемой, иллюстрирующей различные источники, которые могут формировать контекст совокупности виртуальных папок. Как показано на фиг.38, система 1000 может включать данный компьютер 1010, дополнительный компьютер 1020, внешнюю и сменную память 1030 и места 1040 в сети. Полный контекст 1001 описан здесь как включающий все физические места, из которых, для создания совокупности, взяты элементы пользователя. Контекст может быть установлен и изменен пользователем. Как отмечено выше, другие чертежи иллюстрировали, что элементы могут исходить из различных физических мест, таких как фиг.34, показывающая различные документы, взятые с сервера и папки «Мои документы» на данном компьютере, и фиг.18, показывающая физические папки, которые физически сохранены в множестве мест.
Фиг.39 является блок-схемой, иллюстрирующей подпрограммы 1080 для включения нефайловых элементов в совокупности виртуальных папок. Нефайловые элементы противопоставлены файловым элементам, которые обычно расположены в физическом файловом хранилище. Примерами нефайловых элементов были бы вещи, подобные сообщениям электронной почты или контактам. Как показано на фиг.39, в блоке 1082 база данных используется для включения нефайловых элементов наряду с файловыми элементами, которые могут быть найдены запросом. В блоке 1084, в ответ на запрос, берутся соответствующие запросу нефайловые элементы и файловые элементы. В блоке 1086 и нефайловые элементы, и файловые элементы, которые соответствуют запросу, представлены на дисплее.
Фиг.40 является диаграммой, иллюстрирующей экранное устройство отображения, показывающее различные нефайловые элементы. Как показано на фиг.40, элементы были отфильтрованы, как элементы, включающие «Джон». Элементы показаны как включающие элемент 1101 контакта, элемент 1102 сообщения электронной почты и элементы 1103 и 1104 документов. Элемент 1101 контакта и элемент 1102 сообщения электронной почты являются нефайловыми элементами. Данная система позволяет таким нефайловым элементам быть включенными с обычными файловыми элементами так, что они могут быть организованы и манипулироваться как того желает пользователь. Как был описано выше относительно фиг.2, такие нефайловые элементы могут содержаться полностью в реляционной базе 230 данных, которая, в противном случае, включает информацию о свойствах файлов.
В то время как предпочтительный вариант воплощения изобретения был проиллюстрирован и описан, необходимо иметь в виду, что различные изменения могут быть сделаны здесь без отступления от духа и объема изобретения.