?

Log in

No account? Create an account
Лабораторный журнал -- Day [entries|friends|calendar]
Anatoly Levenchuk

[ website | Лабораторный журнал ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Ну, и какая у нас онтологическая традиция? [25 Sep 2011|12:10am]
Интересно было бы восстановить философско-логическую традицию, которая от чисто академических идей привела к появлению инженерных онтологий IDEAS, ISO 15926, HQDM и отчасти Gellish. Традиция -- это обратный ход во времени, ретроспектива научных школ. Понятно, что научные школы правильно представлять не "генеалогическим деревом", и даже не "генеалогической сетью", а "генеалогическим киселём" -- но я всё-таки определил бы "традицию" как какой-то идущий примерно вдоль по оси времени маршрут на графе этих школ мысли.

Знания мои тут весьма скудны, а экспертов в этой сфере почти и нету. То, что тут самое интересное -- это знаниевый мостик, пролегающий от "чистой теории" к "чистой практике". Вот моё текущее понимание:
1. философско-логическая и онтологическая работа, я их не разделяю -- хотя и отделяю от "чистой философии" как уж совсем нестрогой дисциплине (Lewis, Heller, и Quine как оппонент)
2. логическая работа (Pierce и Frege, далее огромная толпа народа)
3. онтологические и логические предпосылки для моделирования данных (Partridge, Sowa, в какой-то степени Lenat). Это ключевой мостик, без этих людей массового выхода в практику бы не было.
4. конкретные модели данных и онтологическая интеграция данных -- ибо "онтологии нужны для договаривания" (Chris Partridge с IDEAS, Matthew West с ISO 15926 и HQDM, в какой-то мере Andries van Renssen, Nicolo Guarino с DOLCHE и Ontoclean -- при всём уважении к другим членам команд разработчиков этих онтологий.

Современные титаны мысли, которые привели всю эту философскую логику в инженерное моделирование данных -- это, IMHO, разработавшие архитектуру онтологической (т.е. при помощи foundational ontology) интеграции данных Julian Fowler и Matthew West, которым помогли Bernd Wentzel и David Price. Результатом была архитектура ISO TS 18876, примером удовлетворяющего этой архитектуре стандарта стал ISO 15926. Поначалу моделированием инженерных данных в ISO занималась тусовка инженеров, программистов, администраторов данных -- среди них не было по факту философских логиков. Об этом рассказывает в предисловии к книжке HQDM сам Matthew West.

Ключевым моментом пересечения этой тусовки модельеров данных с философскими логиками был 1993 год: когда Мэтью Весту первый раз сказали, что он разработал не модель данных, а онтологию -- он тогда впервые услышал слово "онтология". Дальше история идет уже в более академические круги: Cris Partridge с его революционной книжкой BORO является тут "пограничным" человеком между программистами и университетскими людьми, плюс помогли контакты с computer science ontology группой в университете Leeds под руководством проф.Tony Cohn, в особенности Dr.John Stell, а также весь ontolog-forum (http://ontolog.cim3.net/forum/ontolog-forum/) с постоянно активными монстрами типа John Sowa.

Дальше идут уже философские логики, например, Peter Simons (автор книги Parts: a Study in Ontology -- http://www.amazon.com/Parts-Study-Ontology-Peter-Simons/dp/0199241465/). Тут интересно, что речь идет сразу не о чистой аналитической традиции, и не о чистой философии, а именно о философской логике: The author shows by his use of formal techniques that classical philosophical problems are amenable to rigorous treatment, and the book represents a synthesis of issues and methods from the analytical tradition and from the older continental realist tradition of Brentano and the early Husserl.

Если перейти к людям, которые всех этих инженеров и программистов в глаза не видели, то сразу нужно сказать о David Lewis -- именно от него в инженерию был прихвачен модальный реализм и 4D extensionalism, а также центральное место мереологии в онтологии (вспомним его книжку 1991 года Parts of Classes, см. кратенько обзор Lewis on Mereology and Set Theory в http://www.princeton.edu/~jburgess/Lewis.doc).

В книжке HQDM на странице 121 даётся следующий короткий список онтологических предпосылок, необходимых для качественного моделирования данных -- и сразу видно, что Льюис тут где-то в эпицентре:
1. Individuals exist in space-time and may be extended in time as well as space.
2. The identity of individuals is defined by their spatio-temporal extent; that is, if two individuals have the same spatio-temporal extent, then they are the same individual.
3. There are other possible worlds as well as the one we inhabit, and we can talk about things that are possible but not necessarily actual by referring to the possible world in which that is the case.
4. Classes are objects that do not exist in space-time and have members.
5. The idintity of a class is defined by its membership; that is, if two classes have the same members, then they are the same class.
6. A relationship is a collection of things that play particular roles in the relationship, defined by a signature that is a bag of roles.
Дальше обратимся к библиографии из книжки BORO, в которой опять-таки есть подразделы:
-- моделирование данных обращается к Bill Kent's, Data and Reality; Basic Assumptions in Data Processing Reconsidered (1977, http://www.amazon.co.uk/Data-Reality-William-Kent/dp/1585009709 -- переиздавалась последний раз в 2000г.). Так, много идей из главы 11 затем пошло в NIAM, которая была формализована дальше в ORM. Ага, современное "факт-ориентированное моделирование" -- противостоящее засилью двухтысячелетней давности "объектов с атрибутами". Далее Joseph D. Novak and D. Bob Gowin's, Learning how to learn (1984), про concept maps. И, конечно, J.Sowa (я бы тут не стал рекомендовать какую-то его отдельную книжку -- у него всё очень и очень интересно).
-- cдвиг к логической парадигме от "сущностной" (entity) Partridge приводит по следующей цепочке:
• Aristotle’s The Categories
• John Locke’s An Essay Concerning Human Understanding
•David Hume’s A Treatise of Human Nature
• Gottlob Frege’s Foundations of Arithmetic
• Charles Peirce’s Reasoning and the Logic of Things
Собственно, примерно такие цепочки и можно считать "историей вопроса", восстановлением традиции. Правда, я бы тут не слишком обольщался связностью в этой традиции -- например, тот же J.Sowa любит подчёркивать разницу между Frege и Pierce и явно агитирует против Frege в пользу Pierce.
-- Willard Van Orman Quine’s, Word and Object (1964) и Roots of Reference (1974). Почему рекомендован Quine, я не очень понимаю -- разве что для демонстрации тесной связи языковых и онтологических штудий.
-- Mark Heller (http://thecollege.syr.edu/profiles/pages/heller-mark.html) как представитель четырехмерия (4D) и охватизма (extensionalism), ибо не один же David Lewis работает в этом направлении? (А я бы добавил сюда Юрия Балашова, чтобы присутствовал хоть кто-то из русскоязычных -- http://ailev.livejournal.com/913373.html).

Правильно было бы собрать где-нибудь библиотечку для желающих разобраться в этой традиции. И поискать русскоязычную литературу -- какие-то обзоры (я молчу о переводе оригинальных книжек) на русском языке должны бы быть.

UPDATE (см. комменты): Еще Людвиг Витгенштейн, как задавший факт-ориентированную традицию: "мир дан нам как факты об объектах, ибо сказать мы можем что-то только об отношениях объектов, но не о самих объектах".
UPDATE2: свежая подборка по связи онтологической теории и практики от J.Sowa -- http://ontolog.cim3.net/forum/ontolog-forum/2011-09/msg00069.html
5 comments|post comment

Апгрейд, опять апгрейд! [25 Sep 2011|07:47pm]
В ходе крутых пикирований рубля (уж так получается -- сам удивляюсь этой закономерности) я обычно делаю большой апгрейд домашних компьютеров. Сегодня чаша моего терпения переполнилась: развалился домашний Wi-Fi.

В сетку у меня в идеале должны входить новые десктопы для жены и ребенка, мой ноутбук (который трогать не нужно), файл-сервер, фильм-плеер, телевизор, принтер. Хочу также приспособить к делу еще парочку старых ноутбуков. Сетка должна существовать в трех комнатах, так что прямо над входной дверью у меня на ринетовском Ethernet (безлимитка на 49.5Мбит/с) установлен не слишком молодой роутер на 802.11g. В одной из комнат проложен гигабитный Ethernet -- но интернет в него может попасть только по воздуху, через Wi-Fi Ethernet адаптер, который чуть-чуть что-то ловил через две стенки и десяток метров от того самого роутера. А сегодня этот адаптер сдох (если, конечно, это сдох именно он -- лениво даже возиться проверять этот антиквариат).

Ну, какой сегодня прилично устанавливать роутер, чтобы он не захлебнулся при обращениях к нему отовсюду? А какой адаптер брать к этому роутеру в пару, чтобы запитать висящие на проводной гигабитной сетке компьютеры в другой комнате -- через те самые десять метров и две стенки?
33 comments|post comment

Программирование для младшешкольников: алгоритмика и моделирование данных [25 Sep 2011|09:37pm]
Наконец-то закончили с дитенком половину курса для семиклассников (http://ailev.livejournal.com/948015.html). Сегодня решили первые шесть задачек уже из второй половины (десятая тема, "Рекурсия"), и я в награду за дитенкины интеллектуальные труды решил показать ему Kodu и Scratch.

Хороший программист должен уметь программировать на утюге -- так меня учили. Ага, у утюга нет процессора и памяти -- в этом-то и фишка!

После девяти уроков для Робота в КуМире программирование на этих tile-утюгах выглядит особо зрелищно, красочно и малополезно. Я записал для себя эти Kodu и Scratch в "развлечения".

И действительно, через пару минут изучения "системы команд" дитенок писал программирование пушек и летающих рыб в Kodu, как будто этим всю жизнь занимался (я только сообщил ему, что "вот это -- условия, а вот это -- команды". Ну, и показал, как в Scratch выглядят циклы). Собственно программирование при этом его не волновало, оно для него было тривиальным. Вот пострелять, потерраформировать -- это да, на это он согласен потратить его драгоценное время. Можно было бы начинать курс гейм-девелопмента, объяснять "играбельность" и тому подобные сугубо уже прикладные и непрограммистские вещи.

Разницу между "исполнителями" КуМира и объектами с методами Kodu и Scratch дитенка не заметил. Подумаешь, еще парочка исполняющих сред -- после "дотайловых" Лайтбота и ПиктоМира, а также полнотекстового КуМира!

Это как с джазом и классикой: джазисты могут играть классику, а вот классическим музыкантам джаз обычно не даётся.

Впрочем, именно это ведь и называется "базовое образование" -- в отличие от "нахватался"? Ибо "нахватавшиеся" с трудом переползают на соседние полянки, а вот люди с базовым образованием даже не замечают, что переползание случилось. Я, кажется, понимаю про победы наших студентов на олимпиадах по программированию: просто они учились программировать не на тайловых языках, и не в виртуальных мирах. По счастью, учебный "прогресс 2.0" до них не дошел -- вот и результаты.

Если так пойдёт дело и дальше, то к Новому Году курс информатики для седьмого класса закончится, и нужно будет думать, что делать дальше. В той же 179 школе, откуда я брал этот курс для семиклассников, в восьмом классе уже Питон (http://server.179.ru/wiki/?page=Informatika&v=laf). Питон для третьеклассника как-то очень уж сурово. Но, похоже, иных учебных курсов у нас для такой ситуации пока нет.

С другой стороны -- это только алгоритмика, а не информатика. Распишем подробней часть про моделирование данных пункта 3 (про информатику) из моего постинга "картина мира для младшеклассников" (http://ailev.livejournal.com/950308.html).

Школьная информатика -- это computer science: про то, какие описания пригодны для рассуждений компьютеров (т.е. про "исполняемые описания"). Рассуждения компьютера (программа), как заметил давным давно Дейкстра, это алгоритм плюс данные. Все наличные курсы школьной информатики, в том числе и лучшая на сегодняшний день технология из ПиктоМира-КуМира с использованием Ершола, учит по факту только алгоритмике, никак не касаясь моделирования данных.

Моделированию данных (точнее, моделированию объектов в реальном мире с результирующими моделями-как-данными, аналогично алгоритмике как моделированию действий в реальном мире с результирующими моделями-как-алгоритмами) в сегодняшней школьной информатике не учат никак. А надо.

Моделирование данных является приложением философской логики к проблемам программирования. Поэтому моделирование данных как наука (компактные объяснения того, как моделируем объекты реального мира) сводится главным образом к философской логике и ее приложениям к метафизике, онтологии и частично гносеологии и эпистемологии -- ибо описание данными объектов окружающего мира начинается с выявления этих объектов в окружающем мире, а ответ на вопрос "что существует в окружающем нас мире" даёт онтология. Ибо нельзя выделить из мира объект, если он не существует. А что существует, то можно выделить. Онтология -- это как раз разделяемый многими людьми ответ на вопрос о том, что существует. Тем самым моделирование данных и онтология -- это близнецы-братья.

Современное моделирование данных исправляет именно философские ошибки древних мыслителей (прежде всего Аристотеля) -- хотя эти ошибки и являются глубоко укоренёнными в языке и нынешних практиках. Увы, эти ошибки приводят к трудностям, и сейчас (относительно недавно -- что-то сто лет назад, что-то тридцать лет назад) придуманы новые способы описания мира, что ведет к новым способам моделирования данных. Эти способы контринтуитивны, и им нужно специально учить. Описание причин, по которым нужны эти новые способы описания данных даны в книжке BORO (http://ailev.livejournal.com/938647.html), а пример использования этих способов для создания конкретной методологии моделирования данных HDQM в книжке Developing High Quality Data Models (www.amazon.com/Developing-High-Quality-Data-Models/dp/0123751063/ -- в Сети эту книжку уже тоже можно найти). Научные корни всего этого я обсуждал в http://ailev.livejournal.com/952930.html.

Если поглядеть на то, как сегодня удаётся обучить алгоритмике даже малых детишек (например, http://ailev.livejournal.com/948015.html), то можно обнаружить следующий паттерн: алгоритм пишется для многих вариантов его входных данных (тестовые примеры). Моя гипотеза, что моделированию данных тоже можно обучить даже малых детишек, если модель данных будет писаться для многих вариантов использующих ее алгоритмов (тут я благодарен vvagr, который перефразировал уравнение Дейкстры про программы так: "данные нужны только для того, чтобы быть использованными алгоритмом").

Отползая к процедурной парадигме (алгоритмика -- это прежде всего процедурная парадигма) и обучению алгоритмике, понимаешь, что "алгоритмы" и "данные" связаны более тонким образом, нежели просто "использование данных в алгоритме". Недаром КуМир -- это "комплект учебных миров". Данные -- это Миры, в которых действуют Исполнители. И данные, и исполнители затем доступны из алгоритмов (это выражается в том, что алгоритмы на школьном алгоритмическом языке отображаются в КуМире черным цветом, а вот обращения к данным мира и командам исполнителя отображаются синим цветом). Алгоритмический язык остаётся одним и тем же, а вот миры с разнообразными данными и командами исполнителей могут меняться.

Гипотеза по применению этого же принципа к моделированию данных: КуМир для Онтолана (школьный онтологический язык, подходы к его определению см. в http://praxos.livejournal.com/13095.html) должен давать возможность моделировать данные, для которых будут корректно исполняться несколько разных тестовых алгоритмов, использующих разных исполнителей. Тогда 300 задач в такой исполняющей среде (это сегодня объем упражнений по начальной алгоритмике) позволили бы выучить начальное онтологическое (семантическое -- основанное на значениях слов) моделирование данных -- это должно быть порядка 60 новых для учеников понятий, как и в школьном курсе информатики.

Что должно войти в Онтолан? Как минимум,
-- множественные специализации (классификации, хотя речь идет не о членстве в классе: ненавижу эту запутывающую терминологию)
-- многоуровневая конкретизация-порождение (уровни абстракции, мета)
-- мереология (части и целое, в том числе темпоральные части)
-- время: моменты и интервалы
-- системный подход: функциональные места и модули
-- агенты, действия, продукты
-- информация, данные, информационные продукты
-- "география" (места, адреса, площадки)
-- свойства и UoM (хотя это очень мутное место! Но без этого трудно стыковаться с естественнонаучным циклом)

Да, всё это очень шапкозакидательно. Я не уверен, что это можно хоть как-то обсуждать в третьем классе. Точнее, уверен, что невозможно -- но с оговоркой. Группе "Аттик" удалось за 20 лет придумать способ, как обучать третьеклассников алгоритмике, а 20 лет назад они придумали способ, как обучать алгоритмике семиклассников. Так что я теперь сильно скептически отношусь к разговорам о начальном возрасте для обучения чему бы то ни было. Похоже, в образовательной промышленности изобретательство и рационализаторство работают не хуже, чем в любых других отраслях -- и при надлежащем подходе новые версии образовательных методик можно выпускать не реже, чем сегодня выпускают новые версии смартфонов.

Но совсем не представляю, как могли бы выглядеть упражнения для обучения моделированию данных, и какой могла бы быть для этих упражнений обучающая компьютерная среда.
23 comments|post comment

navigation
[ viewing | September 25th, 2011 ]
[ go | previous day|next day ]