Иерархиче?ка? файлова? ?и?тема была оптимальным решением дл? ?амых первых компьютеров, однако ? ро?том объёмов хранимой информации ?тановила?ь в?ё более не?ффективной, главным образом за ?чёт наличи? только одного ?по?оба категоризации документов - по их физиче?кому размещению.

?овый ?по?об хранени? документов и до?тупа к ним, который Microsoft обещает показать в конце 2006 года (WinFS), а Apple уже показала нечто похожее в ?том (Tiger Spotlight), позвол?ет а??оциировать документ ? любым количе?твом ключевых ?лов или категорий. При ?том ?тановит?? неважным, где именно находит?? конкретный документ, акцент перемещает?? на выборку информации на о?нове метаданных.

Си?тема ?та, называема? в Microsoft рел?ционной (relational file system), предо?тавл?ет новые, ранее до?тупные лишь ? помощью ?пециальных программа ?по?обы работы ? информацией. В ча?тно?ти, ?тановит?? возможным параллельное ?уще?твование различных ?труктур кла??ификации одного и того же набора документов.

?еобходимо?ть в таком ?по?обе кла??ификации возникла из за того, что в реальном мире в?е объекты как правило также отно??т?? к не?кольким категори?м одновременно. ?апример дл? облегчени? категоризации книг, как наиболее информационно на?ыщенных объектов, по?вила?ь фа?етна? кла??ификаци? (faceted classification).

Объ??н?? преимуще?тва такого подхода другим, ? ча?то ?талкиваю?ь ? двум? типичными возражени?ми:

Первые утверждают, что принадлежно?ть к не?кольким категори?м - редко?ть, крайний ?лучай, и по?тому иерархиче?ка? файлова? ?и?тема вполне адекватна.

Вторые ?оглашают?? ? множе?твенной кла??ификацией, однако указывают на то, что ?и?тема работо?по?обна только при до?таточном количе?тве мета-информации, задавать которую, оп?ть таки, придёт?? пользователю, что ?водит на нет в?е преимуще?тва нового подхода.

По?тому ? решил продемон?трировать наличие различных категорий в одном документе, а также различных путей ввода метаданных на конкретном примере:

Пред?тавьте ?ебе Мак?а, программи?та в большой фирме, занимающей?? оффшорной разработкой ПО. Сейча? Мак? зан?т в большом проекте по разработке CRM ?и?темы ? рабочим названием CURE-M, в команде, котора? отвечает за программирование GUI-фронт?нда.

В?е документы по проекту наход?т?? в одной большой иерархиче?кой ?труктуре из папок. В данный момент о?новной документ, ? которым работает Мак? - ?то ?пецификаци? модул? управлени? контактами, на о?нове которой он и реализует интерфей? и взаимодей?твие ? другими модул?ми.

CURE-M.ContactManagement.SystemDesignSpecification.Release_03.04.05.doc

Дл? начала ?тот документ можно кла??ифицировать

… по ?труктуре проекта

Предположим, что ?уще?твующа? ?труктура папок большей ча?тью по?троена в ?оответ?твии ? разделением проекта на модули, и по?тому путь к вышеозначенному документу вполне может выгл?деть так:

Projects/ CURE-M/05_Development/02_Architecture/Modules/017_ContactManagement/

Что на? ждёт вме?то ?того в новой ?и?теме? Скриншоты WinFS пока недо?тупны, Spotlight же пока ?лужит в о?новном ?ред?твом пои?ка по метаинформации, ?труктура папок на Mac’е о?таёт?? пока прежней. По?тому давайте пред?тавим, как мог бы выгл?деть интерфей? к файловой ?и?теме, о?нованной и?ключительно на метаданных.

Е?те?твенно, некое подобие папок о?танет??, только “папки” ?ти не будут физиче?ки ?одержать документы, а будут ?лужить лишь ?ред?твом группировки. Чтобы подчеркнуть ?то различие, в рамках пове?твовани? ? буду называть их контек?тами:

Принадлежно?ть документа контек?ту - ни что иное, как одна из разновидно?тей мета-информации, не?вно задаваема? пользователем.

Пока что о?обых отличий от “обычной” файловой ?и?темы не видно. Однако документы в проекте можно кла??ифицировать ещё и

… по типу

В нашем ?лучае, тип документа - Design Specification. Другими типами могут быть Requirement Specification, Team Meeting Protocol и др.

Предположим что Юрий, менеджер проекта, желает по?то?нно быть в кур?е прогре??а ?оздани? ?пецификаций, дл? чего ему нужен ?пи?ок в?ех ?пецификаций проекта. По?кольку в иерархиче?кой ?и?теме документы ?ти лежат в папках модулей, по?тому ему необходимо каждый раз обойти в?ю ?труктуру проекта.

В новой ?и?теме Юрий может про?то дать команду ?и?теме показать в?е документы ?того типа, отно??щие?? к его проекту. Пон?тно, что дл? ?того кажда? ?пецификаци? должна быть помечена ?оответ?твующим образом, чего однако легко добить??, по?кольку в ?ерьёзных проектах в?е документы ?оздают?? на о?нове шаблонов. До?таточно в?его лишь пометить ?ам шаблон.

По организационной ?труктуре проекта

Предположим, что разработчики разбиты на две группы - GUI-Team и Core-Team, во главе каждой из которых ?тоит Team-лидер, который подчин?ет?? менеджеру проекта Юрию. Таким образом можно отне?ти в?е документы, над которыми работает, например, GUI-Team, к одноимённой категории. Теперь, е?ли Мак?у потребуют??, ?кажем, API модулей до?тупа к данным, он может начать про?мотр ? контек?та “в?е документы Core-Team”:

В большин?тве ?лучаев мета-информацию об организационной ?труктуре можно автоматиче?ки назначать на о?нове автора документа. В о?тальных ?луча?х, как например дл? архитектора проекта, который уча?твует в ?оздании ?пецификаций дл? обоих групп, можно пред?тавить ?ебе другие не?вные ?по?обы: например е?ли ?оздать новый документ в открытом контек?те, то документу будут при?воены в?е категории контек?та.

Раз уж мы ко?нули?ь другого типа кла??ификации, ра??мотрим и его:

По авторам

Вполне логично, что у каждого документа е?ть автор - тот пользователь, кто его ?оздал. Более того ?та информаци? уже ?ейча? помещает?? в большин?тво документов, по?кольку её легко определить автоматиче?ки по реги?трации пользовател? в ?ети.

В новой ?и?теме они лишь будет подчин?ть?? общим правилам, то е?ть Е?ли Юрий захочет про?мотреть в?е документы, которые ?оздал Мак?им, ?делать ?то будет очень про?то:

Текуща? работа

?е?мотр? на то, что работать ? категори?ми легче, чем ? иерархиче?кой ?и?темой, Мак?у не хочет?? тратить ?воё врем?, каждый раз задава? параметры пои?ка документов. По?тому он ?оздаёт ?ебе отдельный контек?т, в который помещает в?е ?в?занные ? текущим заданием документы:

Фоку? работы ?ме?тил?? - можно ?оздать ещё один контек?т или под?троить ?тот. ? ?тавшие неактуальными контек?ты можно в?егда безбо?зненно удалить.

По вер?и?м

?аличие не?кольких вер?ий одного и того же документа - вещь неотделима? от любого документооборота. В про?тейшем ?лучае номер вер?ии помещают в название файла, в более ?ерьезных ?луча?х пользуют?? ?пециальными программными продуктами, автоматиче?ки архивирующими вер?ии. К ?ожалению ни WinFS ни Tiger OS не ?одержат в?троенных ?ред?тв вер?ионировани?, так что дл? больших коллекций документов без дополнительного ин?трумента видимо будет не обойти?ь. Однако техниче?ки дл? ?той цели можно во?пользовать?? в?ё тем же механизмом категорий, назнача? каждому файлу мета-информацию о вер?ии:

По ?одержанию

?аконец ?амый большой и?точник дл? мета-информации ?то ?об?твенно ?одержание документа. Спецификаци? модул? контактов может например ?одержать оригинальную реализацию шаблона MVC (Model-View-Controller) или библиотеку работы ? векторной графикой, которые вполне могут быть и?пользованы в других проектах. ?азначив дополнительные ключевые ?лова, мы повы?им до?тупно?ть ?того документа:

?а ?егодн?шний день алгоритмы автоматиче?кого выделени? ключевых ?лов из тек?та ещё не до?таточно надёжны и релевантны, по?тому “ответ?твенно?ть” за добавление ?мы?ловой мета-информации пока ещё лежит на пользователе. ?о уже ?ейча? на помошь приходит коллаборативный подход: е?ли один пользователь уже при?воил документу определённую категорию, о?тальные могут ?тим уже про?то пользовать??.

P.S. Хорошее введение в тему метаданных, тегов и категорий:
Ontology is Overrated: Categories, Links, and Tags