Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Онтологическое программирование на марше

Я определяю онтологическое программирование как domain-driven design, учитывающий такой самый общий domain как традиционно понимаемую онтологию -- разделяемое людьми понимание того, "что есть в мире". Онтология обсуждает такие странные вопросы, "есть ли у объектов свойства" (субстанциальная парадигма, где "красный" -- это только свойство-атрибут каких-то объектов, и не существует само по себе), или знаем ли мы о мире только факты (и тогда "красный" -- это множество всех красных объектов, которые были, есть и будут, и можно говорить о членстве в этом множестве, а "атрибутов" у объектов нет). Подробнее см. http://ailev.livejournal.com/938647.html. Если с этих самых общих вопросов начинать раскапывать более конкретные, то появляются самые общие понятия, в терминах которых описывается в том числе и производственная деятельность (см. "промышленная метафизика", писал об этом ровно три года назад в связи с формулированием проекта PraxOS -- http://ailev.livejournal.com/605021.html, а потом через год в "онтологические модели -- это проектирование/программирование/моделирование-в-большом", http://ailev.livejournal.com/748188.html). Будет ли программирование прямо поддерживать концепты из этой "промышленной метафизики", зафиксированные в какой-то библиотеке справочных данных ("библиотеке знаний по предмету"), или каждый раз для каждой программы придется заново "с нуля" сочинять выражение какого-нибудь "бизнес-процесса" или "продукта работы" в терминах используемого языка программирования?

Конечно, использование в явном виде онтологий с необходимостью приведет и к пересмотру самых базовых понятий в программировании -- ибо нужно будет честно ответить на вопрос об онтологической природе программистских объектов. Эту тему непрерывно поднимает justy_tylor (например, про "время в языках программирования" -- http://justy-tylor.livejournal.com/151557.html).

Я считаю, что онтологическое программирование будет не просто развиваться само по себе, как удобный способ работать с онтологиями (в том числе микротеориями, подхватываемыми из внешних хранилищ, "в большом") из обычных языков программирования, но будет языкоориентированным -- то есть поддержано разнообразными language workbenches, дающими возможность формулирования пользовательских нотаций для отражения понятий предметной области.

Я считаю, что программирование/онтологизирование/моделирование будут через некоторое очень небольшое время одним и тем же. И это быстро-быстро начнёт менять сам предмет программирования. Так, я неделю назад обсуждал с одним из известных авторов школьных и вузовских учебников информатики, когда нужно знакомить людей с материалом книжки BORO -- и он мне ответил: "в третьем классе, пожалуй, рано. В ВУЗе уже поздно. Скорее всего где-то в девятом классе". А сейчас он эту книжку внимательно читает: ибо уже понятно, как учить алгоритмике, но непонятно, как учить формально записывать в программе ответ на вопрос "что есть в мире".

Отрадно видеть, что эти идеи сейчас активно разрабатываются не только где-то далеко и недоступно, но и людьми, с которыми можно поговорить по-русски:

1. Проект онтологического программирования .15926 (обсуждение в комьюнити dot15926, реализован язык .15926L как работа с библиотеками справочных данных ISO 15926 в среде Питона). Очень надеюсь, что еще в этом году эта технология не просто выйдет в мир с исходными кодами и оттестированной, но и будет хорошо отдокументирована (мы делаем всё, чтобы этого добиться -- http://dot15926.livejournal.com/23803.html). А с Нового года займёмся "языкоориентированностью" -- http://dot15926.livejournal.com/24612.html. Применений ожидается множество. Так, софт praxos явно будет на базе этого движка онтологического моделирования -- пункт 8а в http://praxos.livejournal.com/12576.html

2. Проект Ontological Programming Framework, также дающий возможность работы с онтологиями из Питона. Этот проект ведется algebraic_brain, вебсайт проекта: http://code.google.com/p/py-opf/. Сегодня там появилась преальфа софта, поздравляю автора!

3. Как я понимаю, выхода на какой-то проект можно ждать и от avlasov. У него есть множество свежих постингов по данной проблеме: http://avlasov.livejournal.com/47229.html, http://avlasov.livejournal.com/47061.html, http://avlasov.livejournal.com/37597.html, да и раньше он на эту тему писал регулярно.

Очень надеюсь, что этой проблемой связи онтологии, философской логики и современной computer science заинтересуются больше людей, которые или поддержат имеющиеся уже проекты, или сделают свои новые. Это ведь сейчас фронтир, и для участия в этих прорывных исследованиях не нужно принимать никаких правительственных решений о поддержке науки или затевать государственные программы научно-технического развития. Нужно просто сказать себе "мне это интересно", и заняться этим. Никакой бюрократии, никаких начальников. Просто начать тратить на это время, просто быть одной ногой в настоящем, а не полностью увязать в программистком прошлом. Ибо я считаю, что после данного постинга онтологическое программирование по-русски уже не столько будущее, сколько настоящее. Куча ведь начинается с трёх зерен...
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 9 comments