Что такое фасетная классификация?
Система классификации, которая относит предмет к четко определенным, взаимоисключающим аспектам класса. В отличие от иерархических систем классификации, многогранная система классификации позволяет классифицировать предметный материал по более чем одному аспекту, что создает более одного пути для доступа к материалу.
Мне интересен данный материал, т.к. в ближайшее время фасетная схема будет использована для навигации и на Агути. Удивительно, но она проще в управление, чем плоская схема, с множеством проверок, которая есть сейчас.
Есть некоторые изменения в базе (добавлены таблицы, убраны поля), но это оправданно, для гибкости и чтобы не нарушать консистентность данных, если уж делать все более «правильно». Не буду о деталях, местами это запутанно звучит, чем есть на самом деле. В общем, фасеты — это удобно, вполне достаточно этого, чтобы попробовать.
Меня всегда интересовали базовые механизмы, которые можно использовать далее. Думаю, достаточно перспективная штука, которую можно использовать не только тут для навигации (темам), но и в разных каталогах: программы, товары, сайты, эл. документы, библиотеки и т.д.
Еще определение фасетной классификации
фасетная классификация — система для организации материалов, основанная на систематической комбинации взаимоисключающих и коллективно исчерпывающих характеристик материалов (фасетов) и отображения характеристик таким образом, чтобы показать их взаимосвязь.
Один из примеров организации фасетной сехемы, был каталог Яндекса:
Документация (некоторые пояснения, точнее) по Яндексу:
схема иерархической классификации универсальных каталогов становится громоздкой и труднообозримой. В качестве одного из возможных решений этой проблемы можно предложить фасетную классификацию (ФК).
Фасетная организация интернет-каталога и автоматическая жанровая классификация документов.
Ист: http://www.ict.nsc.ru/jspui/bitstream/ICT/1457/1/Facet-Based%20Internet%20Directory%20Design.pdf
Материал на русском языке, написан достаточно просто.
Что смотрел…
GitHub:
Я не стал останавливаться на расширениях, например, PHP Sphinx API для фасетного поиска и др., которые обычно связаны с поиском.
Данные реализации не совсем то, что тут нужно, т.к. представляют из себя по сути «дорогу» с некоторым сужением потока по мере выбора дополнительных свойств. Это не то, что надо.
Доп. инф. материалы:
Фасетная структура освобождает схему классификации от прокрустового слоя жесткого иерархического и чрезмерно перечислительного подразделения, которое привело к фиксированным «ящикам» для предметов, которые были известны или были предвидены при разработке системы, но часто не оставляли места для будущих разработок и не предусматривал выражения сложных отношений и их последующего поиска.
Фасетная классификация отличается от традиционной тем, что в ней не назначаются фиксированные интервалы для субъектов…
Полезная литература:
Работы на сайте начаты. Первый этап создание легко управляемого дерева:
На данные момент управление не совсем верное, для админ-интерфейса. Мы должны выбирать расположение в самом дереве. А не только вверх. Мы должны назначать вес отдельных ветвей и выбор корневой метки, создание независимых свойст (сущностей) к чему темы могут иметь отношения и т.д.
Теперь необходимо перестать думать о жеском вложение и подтемах, свойственных категориями. Этого больше не будет.
Собственно само дерево, — первый шаг к реализации…
CREATE TABLE `topics_relation` (
`topic_parent_id` int(11) DEFAULT NULL,
`topic_chaid_id` int(11) DEFAULT NULL
)...
На сайте ведутся работы. Возможно некоторые неполадки в ближайшее время.
P.S. мне интересно реализация этого на php и mysql (с которым испытал некоторые проблемы)… Большое спасибо: n0byk, max и др. кто помог «прояснить» некоторые моменты связанные с фасетами, базой… Сайт работает на Micro-Framework HLEB…
А базу надо переделывать, согласен…
Интересно. Действительно интересно посмотреть на реализацию. По статье Яндекса, что-то сложно очень.
На самом деле ничего сложного. Скоро… )