- Начать размышлять (письменно) о предметной области на естественном языке. Удобно начинать с уже построенной кем-то модели (описания / учебника / стандарта / инструкции). Для каждого объекта нужно подобрать название и попытаться его (объект) себе представить. Это понятизация, называние интересующих нас объектов. Здесь важно, что эти объекты должны существовать в мире, т.е. речь идет о конкретных физических объектах и о классах/кортежах.
- Определить, к какому “пространству” относится объект. Если имеет протяженность в пространстве и времени, если по нему “можно постучать” - то это ФО, физический объект. Иначе - класс или кортеж.
- Классы выделяются путем абстрагирования, то есть отбрасывания всего лишнего и несущественного (возможно, стоит отбрасывать вообще ВСЕ признаки, кроме одного интересующего нас в этом объекте)
- После выявления объектов и классов нужно понять, каковы их отношения. Другими словами, нужно
определить кортежи, участниками которых являются найденные индивиды, классы и, возможно, другие
кортежи.
- Для физических объектов важно построить разбиение по отношению “часть-целое”.
- Для физических объектов обязательно найти хотя бы один класс, содержащий эти объекты.
- Для классов стоит поискать надклассы, и если это оправдано, ввести их в модель. Если же надклассы из предметной области для целей моделирования не нужны - тогда нужно присвоить классу тип из онтологии верхнего уровня.
Можно выразить этот же алгоритм в виде другого описания:
Описание какой-то предметной области на специальном языке можно понять, если нам известен этот язык. Нам известен язык, если мы знаем используемые в нём понятия и связывающие их отношения. Как правило, нас интересуют те понятия языка, которые означают классы и типы объектов предметной области: тогда мы сможем выделить индивидуальные объекты предметной области, типизировать их (или классифицировать, что, мы помним, по смыслу одно и то же), связать их отношениями – и получить понятное нам и другим описание (модель).
Процесс моделирования, организованный по уровням
- Объекты в мире. Индивиды, то есть, конкретные физические объекты и соответствующие им объекты ментального пространства. Они должны быть явно выделены вниманием, мы должны о них знать. Мы их пока не моделируем, просто перечисляем / обнаруживаем в мире.
- Экземпляры модели. Называя объекты, мы начинаем работать уже не с ними в мире, а с их обозначениями в модели. По идее, мы уже работаем с их описаниями и моделью, это прямой результат онтологического моделирования. Это операционная модель / онтология экземпляров.
- Модель данных. Рабочая онтология, описывает язык, которым мы описываем экземпляры в модели предыдущего уровня. Здесь становятся важны классы объектов и отношения между ними. Как правило, такие модели явно запрещают использование неклассифицированных элементов, зачастую задавая шаблон описания, определяющий структуру данных модели экземпляров и ее онтологию. Это “мета-С-модель”, ситуационная модель.
- Модель предметной области. Прикладная онтология, разделяется более широким сообществом, чем ситуационная модель. Это “мета-У-модель”, учебная, теоретическая. Важно каждую С-модель вписывать в известные У-модели для устоявшихся предметных областей, тогда появляется возможность использовать наработанные лучшие практики и понимать других специалистов. А еще лучше - строить С-модели, исходя из имеющихся лучших У-моделей.
- Система типов. Это верхняя онтология, к этому уровню относится, например, онтология Business Objects Re-engineering for re-use.
- Язык записи. Может быть естественным языком (с учетом сообщества), может быть табличным или графическим.
Строго говоря, невозможно определить любой уровень этого процесса, не имея определенного уровня выше него. Обычно всегда неявно существует естественный язык, как наиболее верхнеуровневый.