Что такое онтологии и зачем вообще про них знать?

Можно считать этот пост затравочным. Тема concept map (семанти́ческих сетей / карт знаний…) изначально указана у меня как смежная с аутлайнерами. Начал развиваться инструментарий для работы с «семантикой» в приложениях — появился повод больше про это писать (есть с чем поиграться).

Если упрощенно, то онтологии — это способ формализации некоторой области знаний с помощью концептуальной схемы, содержащей:

  • основные Понятия в предметной области (concepts) и их экземпляры,
  • типовые Атрибуты у понятий,
  • существующие Зависимости понятий между собой (relationships)
  • и правила взаимодействия, принятые в этой области.

Одной из главных целей онтологии является классификация объектов (экземпляров) в данной области: люди, книги, термины, события, что угодно…

В общем виде, она выглядит как знакомое нам дерево в аутлайнере (иерархия понятий / экземпляров). Часто используют графическое отображение онтологии в виде карты, визуально похожей на Concept map.

Чуть подробнее про эту концепцию можно почитать в «Энциклопедии Рувики». А для понимания его актуальности, нам достаточно двух фактов:

➊ Онтологии — один из обязательных элементов профессиональных «систем управления знаниями» (СУЗ / KMS). И в наиболее продвинутых решениях есть инструменты для работы с ними. Либо встроенные, либо импорт / экспорт из специализированных редакторов и хранилищ.

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

Популярный пример: когда мы создаём в приложении типовой шаблон с атрибутами для описания «книг» — это во многом является описанием элемента онтологии.

Если говорить про конкретные приложения, то разработчики Logseq:

  • С полгода назад открыли отдельный репозиторий rdf-export в github.
  • Свой сайт с документацией осознано наполняют с использованием онтологий.
  • Будущий функционал атрибутов в DB-версии приложения так же разрабатывается с учётом их применения и для описания онтологий.

Судя по всему, данное направление у Logseq одно из фундаментальных (хоть они публично и не делают на этом акцент :0)

Скорее всего, есть схожие разработки для работы с онтологиями и для Emacs, просто пока не дошли руки поискать эти решения.

Я бы выделил два наиболее частых кейса, когда онтологии могут пригодиться в персональной «базе знаний» (подробнее про это упоминают в гайде ниже):

Отделение знаний конкретной предметной области от оперативных знаний.

Большинство людей, с которыми приходилось общаться, ведут всю свою информацию в одной базе. Онтология позволяет сформировать отдельный слой для «навигации». Элементы онтологии удобно использовать при создании Queries (запросов) для выборок информации.

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

Для общего понимания структуры информации при совместном использовании людьми.

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


Примеры руководств по разработке онтологий

Как может выглядеть описание онтологии в формате аутлайнера ➜ Можно посмотреть в graph с документацией Logseq. На сайте есть отдельная страница по этому поводу.

➊ Есть подробный гайд для новичков на 20 страниц «Ontology Development 101: A Guide to Creating Your First Ontology» от 2001 года. Старенький, но вряд ли что-то принципиально новое с того времени придумано :0)

И его перевод на русский by A. Filyaev, European subgroup of the International Forum on Educational Technologies and Society (пишу как указано в первоисточнике) ➜ в формате doc.

➋ Книга «Введение в онтологическое моделирование» от компании «Тринидата» на 150 страниц — размещена на arhigraph.ru. Там же есть и развёрнутое руководство по моделированию на уровне предприятий.

Но вообще, при поиске по слову «Ontology» даже в VK выдаётся пара сотен файлов на данную тему. Можно поискать варианты с разбором именно нужной вам предметной области. Тема на самом деле глубокая, целые диссертации на «на соискание ученой степени» в сотни страниц по ней пишут.

❗️ Важно: Чтобы создать качественную онтологию, надо хорошо понимать предметную область и способы её формализации (иметь знания и навык).

Поэтому, если вы новичок в этой сфере, то не стоит сразу замахиваться на «глобальную систему», которая опишет все знания в вашей базе. Лучше формализировать её небольшими изолированными частями, шаг за шагом.

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


Самый простой способ "поиграться" в онтологии и Concept Map в визуальном виде ➜ Использовать сервис «Онто»

https://ontonet.ru

onto features

Он российский, бесплатный для личных нужд и будет отчасти привычен большинству пользователей, т.к. в его основе — бесконечный холст с карточками и стрелками (а-ля Excalidraw, Miro или Whiteboards в Logseq).

Как работать в нём с объектами, атрибутами, связями — уже сложнее разобраться, т.к. подобного функционала нет в массовых «досках». Но в справке есть много живых примеров.

Единственное, на мой взгляд, у сервиса плоховато со слоганами и позиционированием. Он избыточно делает акцент на термин «база знаний», а это никак не отражает его суть и вводит в заблуждение.

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

В полноценных СУЗ (KMS) очень много специфичного стороннего функционала. Например, встроенные системы обучения и адаптации персонала (LMS), интеграции со всеми каналами коммуникации в компании (мессенджеры, репозитории, таск-трекеры) и т.д.

Пытаться "запихать" всё это в свой сервис? Гораздо правильнее сделать сквозные интеграции с существующими массовыми системами: L2U, Minerva, Teamly…

Тем не менее, с основной своей функцией (помощь в формализации семантики или предметной области) «Онто» хорошо справляется.