Classification

Когда я знакомился с библиотекой std в плюсах, я был недоволен организацией контейнеров. Они их сделали не наращиванием возможностей, а обрезанием. Т. е. сначала реализовали двунаправленный список deque; потом, например, наследовали от него stack и пообрезали возможности добавления и удаления элементов с одного из концов.

Мне это не нравилось, потому что я думал это неэкономие памяти. Но скоро будет как в цитате из башорга:

Powerland: все придет к тому, что через двадцать лет программеры забудут что такое языки/компиляторы, которые дают нативный машинный код, будут программить для ОС, которая работает под silverlight, который работает в браузере, который написан на . NET, и запущено все это будет в какой-нибудь windows 7, а она в свою очередь будет работать в VmWare под линуксом. Среди программеров будут ходить слухи, что кто-то знает как программить не только под . NET, но и под windows и linux.

— поэтому хрен с ней с памятью, пусть для человека будет удобно. И еще важно чтобы было больше всего одинакового, больше стандартов; человеку удобно когда он везде встречает то с чем может работать, то что он уже раньше использовал.

Точно так же можно создать единую систему категоризации и классификации всех данных. Все что придумали для этих целей: иерахическая система, система тэгов, система контроля версий. Объединение всех этих систем и даст на текущий момент универсальный классификатор.

Вот чем отличаются категории и тэги в этом вордпрессе? — названием, и тем что категории могут быть иерархически организованы. А так как категории еще могут назначаться по нескольку штук на один пост (так же как и тэги), то они и представляют собой объединение систем. Еще добавить версию-расширение и тип, и мы получим полную систему.

Элементы системы классификации в компьютере — файлы.

У файлов могут быть тип и расширение(версия). Тип — пометка о внутренней структуре и подсказка какой программой отрывать этот файл; а расширение это разные представления одних и тех же данных:

  • разные языки
  • разные системы счисления
  • исходный код или откомпилированные файлы
  • разные версии
  • архив или распаковка

Кстати, грубо говоря, для файловой системы тип не нужен. Точнее его можно указывать отдельным тэгом.

Таким образом полной системой классификации файлов является система тэгов, которые организованы в иерархию + добавление предстваления одних и тех же данных. Т. е. наиболее общим способом категоризации является направленный граф без циклов (хотя можно и с циклами).

Например, в случае музыкальной коллекции: есть композиция группы Pink Floyd под названием The Trial. В случае такой системы путь к этом файлу может быть:

  • \music\artists\Pink Floyd\The Wall\The Trial
  • \music\soundtracks\The Wall Movie\The Trial
  • \music\genres\Rock\Art Rock\The Trial

К тому же у этого файла может быть несколько версий, например:

  • -mp3
  • -ogg
  • -txt-ru
  • -txt-en
  • -avi

Кстати, уже в поздних файловых системах существуют хардлинки. И с помощью них можно сделать так как показано на примере. Но у хардлинков есть недостатки:

  • сложно их создавать,
  • чтобы удалить файл нужно удалить все хардлинки на него,
  • они не создаются автоматически,
  • они не приходят вместе с файлами.

Т. е. каждый файл системы должен/может содержать поля:

  • Имя
  • Расширение
  • Размер
  • Аттрибут[name]
  • Указатель на следующий элемент
  • Указатель на предыдущий элемент
  • Предок[i]
  • Ребенок[i]
  • Синоним[i]

И должен быть программный продукт (библиотека), которая работает с такой структурой. Сумбурный пост, надо бы уточнить все требования…

Advertisements
Опубликовано в IT. Метки: . 2 комментария »

комментария 2 to “Classification”

  1. blogytalky Says:

    Сумбурный комментарий к сумбурному посту. Файловая система это вообще, на мой взгляд, совсем низкоуровнево для сегодня. Я бы не сказал, что есть прям a lot of ways to use your PC, а наоборот, совершенно конечное число видов информации in your PC. Так что хотелось бы, чтобы ось абстрагировалась от всяких файлов, директорий, mp3 отстортированных по папкам, или неотсортированных но (вот это да!) с тагами, и прочих средневековизмов. Я хочу видеть, что «в моем компе есть кусок, где лежит музыка». Как и что в этой музыке на уровне файлов — дело стандарта, и знать я не хочу. Потому что стандарт предусмотрит все варианты. И да, я из «одного куска с музыкой» смогу скопировать «кусок музыки» в «другой кусок музыки». Я смогу пользоваться любым плеером для этой оси, чтобы слушать музыку — потому что стандарт поддерживается именно осью (но написан НЕ ее производителем). Какой-то это <- Apple way, но у них вроде стандарты под грифом top secret. А по-русски это называется «с этих дебильных иподов нельзя нормально скопировать музыку». Пихать информацию в дерево каталогов, либо в таги файлов — это неправильно, ибо залепа, но лучшее — в недосягаемом ценовом диапазоне.

    • blogytalky Says:

      Вот кстати если бы так было для музыки, видео, изображений, книг, проектов и дистрибутивов, на моем компе воцарился бы беспощадный порядок. А вообще дистрибутивы на локальной машине не нужны, глупости все это, и хомячество. Вот.


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: