Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Понятия и категории: в мозгу, софте, справочных данных

Мне очень хочется по-человечески классифицировать (типологизировать, категоризовать) практики предприятия -- стратегирование, инженерию, операции (http://praxos.livejournal.com/14905.html). Причём сделать это так, чтобы можно было объяснить и клиентам, и студентам, и компьютеру. Казалось бы, это просто -- вдобавок к "структуре разбиения установки" (PBS) и "структуре разбиения работ" (WBS) добавить структуру разбиения практик (методов, архитектурных паттернов, шаблонов из adaptive case management и т.д.). Но не тут-то было.

Практика -- это и типовые виды работ, и типовые виды объектов работ, и типовые виды исполнителей, и языки, и много чего ещё. Этому учит ситуационная инженерия методов. Если добавить к ней архитектуру предприятия, то добавляются типовые виды органиграмм, типовой софт. Если ещё добавить адаптивное управление кейсами, то появятся шаблоны -- можно говорить о паттернах адаптивной архитектуры предприятия (http://praxos.livejournal.com/13988.html). Как можно отклассифицировать дисциплины/практики/методы/архитектурные паттерны? Ведь каждый из них имеет множество разнородных компонент и сам по себе может быть реализован очень по-разному. Что, брать за основу классификацию работ -- ибо методы часто называются по названию ведущих работ? Но почему не объектов работ (дисциплины ведь часто различают именно по объектам работы, а не по собственно работам)? Классифицировать тем самым нужно не пойми что. И вообще, что такое "классифицировать"?

Так что нужно как-то разбораться с теорией классификации/типологизирования/категоризирования не-пойми-чего в её современном состоянии. Подведением не-пойми-чего под какой-то класс/тип/категорию занимается "понятие" (concept). Это означает, что нам нужно разбираться со школами философии, когнитивной науки, лингвистики, по-разному определяющими понятия. Главные школы таковы (http://plato.stanford.edu/entries/concepts/):
1. Теория определений (definition theory, классика им.Аристотеля, а также неоклассика).
2. Теория прототипов (prototype theory, есть типичные экземпляры, и менее типичые -- и дело в "похожести" на типичный экземпляр. Теория экземпляров -- сюда же).
3. Теория теории (theory theory, понятия как теории. Жизнь идёт, одни понятия сменяются другими, как одни научные теории сменяются другими).
4. Понятийный атомизм (conceptual atomism, понятия -- это просто языковые теги, никакого смысла не имеющие, а смысл открывается не из отношения друг ко другу, а из их отношения к миру).
5. Плюрализм (pluralism, который говорит -- что нужно в понятиях объяснять, ту теорию и берите. Как в ISO 42010 -- множество групп описаний, множество нотаций, все нужны, одной никогда не хватит, ибо потребности всегда разные. Это относительно свеженькое, 1999г.).
6. Удаленчество (eliminativism, нет никаких понятий. Это совсем свежее, 2009г.).
Разобравшись с понятиями, нужно дальше рассматривать категоризацию (http://plato.stanford.edu/entries/categories/), с учётом сдвига дискуссии от "онтологических категорий" к "семантическим категориям" (см. подробнее пункт 1.6 по ссылке -- про категории в когнитивной науке). Для меня, не верящего в "предзаданность мира" и "настоящую онтологию" (я ведь неверующий), "онтология" просто означает ту "разделяемую семантику", к которой на данный момент времени нужно относиться серьёзно, и менять немедленно, ежели будет найдена семантика, более компактно описывающая мир. [внимание! Проблему категорий в философии не путать с "теорией категорий", которая вообще про другое, хотя тоже рассматривается в философии -- http://plato.stanford.edu/entries/category-theory/]

Разобравшись с категоризацией, нужно будет разобраться с типизацией (различие между типами и конкретностями -- http://plato.stanford.edu/entries/types-tokens/ с ответами на вопрос "что такое тип?" как множество, или вид/kind -- обсуждение прямо пересекается с нашими теориями понятий, а еще тип может пониматься как закон). Теория типов тоже есть (http://plato.stanford.edu/entries/type-theory/) -- но там сразу логика и теория множеств, и никаких "видов" и "законов" (хотя Curry-Howard и позволяет мечтать о переинтерпретировании, но тамошний язык тоже не будет близок какому-нибудь Карлу Линнею от менеджеров или инженеров).

И тут самое время поглядеть на то, к чему пришли безо всех этих философско-математических заморочек люди в областях, требующих классифицировать/типологизировать/категоризировать не слишком зависящее от них многообразие -- прежде всего биология, медицина, промышленность. Наиболее кучеряво всё у биологов (см. хотя бы http://ailev.livejournal.com/1002500.html -- с цитатой по классификации классификаций). Медики (это уже очевидно) получили огромное финансирование, и теперь они по факту попали в semantic web -- медицинские онтологии, и будет у них всё в OWL, а шаг вправо-влево будет считаться побегом. Промышленные каталоги везде ad hoc, и никакой теории (кроме воплощенных в современном ООП двухтысячелетней давности идей Аристотеля) в них не найдётся. Всяческие classification theory -- обычно частные случаи того, что нам нужно (или упираются в пару биологических классификаций, или занимаются чисто вопросами построения типа ОО-языков программирования, например http://staffwww.dcs.shef.ac.uk/people/A.Simons/classify/).

В качестве кейсов для разговора можно было бы использовать уже имеющиеся справочные данные: собранные в самых разных предметных областях по самым разным теориям категоризации (а чаще всего -- безо всяких теоретизирований) словари данных, глоссарии, тезаурусы, таксономии, терминологии (terminology, следуя совету Джона Совы не произносить всуе слово "онтология", если речь не идёт сразу о формальной семантике в логическом формализме. Так, ISO 15926 PCA RDL у Джона -- это пока, безусловно, терминология, ибо работа по формализации тамошней семантики ещё не закончена). Тут речь идёт не о софте, который помогает репрезентовать и вести (редактировать, хранить, запрашивать) эти данные, а именно о самих данных и накопленном опыте и проблемах в их использовании людьми-некомпьютерщиками (SME, subject matter expert, http://en.wikipedia.org/wiki/Subject-matter_expert).

Дальше мы должны будем ответить себе на вопрос: хотим ли мы воспроизвести в компьютере человечьи категории (что крайне полезно, ежели нам придется общаться с другими человеками), или нам можно воспроизвести какие-то другие категории, которые к человекам не будут иметь никакого отношения. Другими словами, насколько нам нужно использовать находки когнитивной науки и лингвистики, вместо того, чтобы ad hoc задействовать математику и computer science (например, пройти по линии http://www.haskell.org/haskellwiki/Curry-Howard-Lambek_correspondence). Если люди важны, то нам либо придётся подгонять все эти "типы" под человечьи понятия, или при помощи типов моделировать фреймы-слоты с копированием-делегированием и опираться при этом на теорию прототипов из когнитивной психологии (выверяясь постоянно, что думают люди "на самом деле"). Опять же, если не использовать достижения когнитивной психологии, то остаться в мейнстриме сегодняшней компьютерной науки, кодируя таксономии чистой логикой-на-теории-множеств с традиционными классификациями/специализацями и далее используя formal concept analisys, который компактифицирует знание, конечно, но каковые результаты компактификации простым смертным будут непонятны (а непростым смертным, которые понимают в FCA, но не являются экспертами в предметной области, с которой работают методами FCA, результаты тем более будут непонятны).

Вот одна из немногих попыток как-то подумать про реализацию понятий в софте (студенческий диплом, 2002г.): http://ethesis.helsinki.fi/julkaisut/hum/psyko/pg/pesonen/concepts.pdf (recently a new type of OO languages has emerged. These object-based languages offer possibilities lacking in previous languages. This study will show that these languages can overcome some problems associated with traditional OO languages and also with frames. This study will also point out two grave weaknesses in the entire OO paradigm). Обратите внимание, что в этой работе даже не делается различий между понятиями и категориями. И не поминается ни одного языка программирования (кроме 61-й страницы, в полустраничном разделе taxonomies -- Class hierarhies). Тем не менее, делаются важные и осмысленные заявления -- типа того, что "прототипные языки программирования ни разу не соответствуют теории прототипов в понимании когнитивных учёных".

А вот обзорчик 2006г. про категоризацию в компьютерной науке -- но нужно учитывать, что это Джон Сова: http://www.jfsowa.com/pubs/cogcat.htm

Про софт (языки программирования, лингвистические библиотеки, программы AI, семантические/онтологические платформы) нужно, конечно, разговаривать отдельно.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 10 comments