Основной алгоритм онтологического моделирования
Опишем последовательность шагов, позволяющих выделить объект и включить его в онтологическое описание интересующей вас предметной области, в соответствии с методиками BORO:
- Начните размышлять о предметной области на русском языке, при этом записывайте результаты своих размышлений.
Очень полезно начинать размышления над предметной областью (особенно чужой и незнакомой) с чтения каких-то документов - учебника, стандарта, методики, отчёта, анкеты, набора электронных таблиц. Короче говоря, с любой модели (описания), уже построенного кем-то до вас
Идите по порядку, рассматривайте каждый объект, называйте его и спрашивайте себя: «Как я представляю, что имеется в виду под этим словом/словосочетанием?» Закрывайте глаза и старайтесь представить себе эту сущность. Если не получается, или перед глазами возникает много размытых вариантов, то вам нужно переформулировать – у вас пока что пустое или слишком размытое понятие. Лучше ссылаться на объекты понятным образом.
Иногда вы думаете какое-то слово (фразу), и действительно имеете в виду не что-то одно, а несколько объектов сразу — так тоже бывает, и это нормально, но только если четко вами осознается, и вы способны избавляться от несоответствий и уточнять своё выделение объектов.
- Представьте себе то, что вы хотите включить в модель. Спросите себя:
«Я могу это увидеть, потрогать, зафиксировать прибором? Оно имеет протяженность в пространстве и времени, я могу себе представить, когда оно возникло, в какие моменты времени оно существует? Оно мне интересно именно как имеющее протяженность в пространстве и времени?»
Если ответ на эти вопросы “да”, то это физический объект. Дайте ему индивидуальное имя, отражающее его идентичность и уникальность, а также момент или промежуток времени его существования, интересующий вас.
Если “нет”, то вы выяснили, что это не физический объект, перед вами какой-то объект ментального пространства: класс или кортеж .
- Класс — группа объектов, объединённых в соответствии со своей сутью, или по какому-то признаку. Класс – результат абстрагирования, когда мы отбрасываем лишнее, не нужное нам в данный момент при моделировании, и объединяем в класс все объекты, которые после такого отбрасывания становятся неразличимы.
Мы можем отбросить все индивидуальные признаки, оставив функциональную суть - и у нас получится класс “Стол”. Или мы можем оставить только один признак - синий цвет, и отбросить все остальные признаки индивидов, тогда у нас получится класс “Синий объект”.
Мы обсуждали классы выше во всех предыдущих разделах руководства, когда говорили о категориях, идеях, абстракциях.
- Когда вы выявили физические объекты и классы - постарайтесь понять, как они соотносятся друг с другом. Если вы увидели взаимодействие, отношение двух объектов - вы имеете дело с кортежем. Кортеж — упорядоченная пара объектов и вид отношения между ними (то есть информация о том, к какому классу отношений принадлежит эта пара).
Отношения между объектами могут быть разным, мы обсуждали разные виды отношений выше. Если вы новичок в моделировании, вам лучше опираться на какую-то стандартную онтологию отношений, пригодную для вашей предметной области. Например, на обсуждённые выше в нашем руководстве отношения классификации, специализации, часть-целое и т.д.
3.1. Если на первом этапе вы нашли физические объекты - обязательно посмотрите, какие из них являются частями друг друга, постройте разбиение. Не забывайте, что части бывают как пространственные, так и темпоральные, то есть какой-то физический объект может быть частью другого физического объекта (в том числе процесса::физический объект) только в какой-то момент времени,.
Возможно, вы на первом шаге выделили два физических объекта, являющихся частями какого-то целого. Тогда для записи отношения композиции вам надо будет пополнить список физических объектов новым объектом - этим самым целым.
3.2. Для каждого физического объекта найдите в модели хотя бы один класс, его содержащий (классифицирующий). Если такого класса не находится - введите его в модель. Обычно это нетрудно сделать, отбросив индивидуальные признаки объекта.
3.3. Для каждого класса найдите, есть ли в модели надкласс для него, и свяжите подкласс и надкласс отношением специализации.
3.3.1. Если для класса нет надклассов, попробуйте понять, нужно ли вам вводить в модель какое-то более абстрактное понятие, идею, чем то, что выражает ваш класс. Если нужно - включите в модель новый класс (надкласс для вашего класса).
3.3.2. Если надклассов на данный момент вам не нужно, то определите для вашего класса какой-то тип, в соответствии с онтологией предметной области, используемой вами. Попробуйте определить, связан ли ваш класс с этим типом отношением специализации или классификации (это может быть непросто, необходимо будет провести тот анализ, который мы обсуждали выше для классов классов).
Следование этому алгоритму мы будем тренировать далее. Для начала выполните относительно простое задание.