Затрагиваемые уровни модели
Онтолог может строить онтологию (обычно речь идет о прикладной онтологии и модели) не только своей (привычно) предметной области но и онтологию любой предметной области, не только в привычной upper-ontology, но и в любой другой заданной, в которой понятно, какие есть типы и их свойства и какая foundational ontology.
Пока можно исходить из того, что foundational ontology не меняется от проекта к проекту, --- объекты и отношения есть везде, и объекты это то, что, а отношения это то, что оно друг с другом делает. Хотя, конечно, если вы захотите (и решите, что к целям проекта подходит) любая другая --- прекрасно!
Мы также можем с помощью внимания представлять объекты как отношения и отношения как объекты, --- по сути, мы уже знакомились с этой операцией, когда говорили о кортежах: (программист [пишет]{.underline} код)/([программист, пишущий код]{.underline}).
Upper ontology выбирают тщательно для предметной области и задачи, и их есть некий длинный список[1]. Не все, что есть в длинном списке, --- популярно и пригодно к постоянному использованию, и многое из того, что есть в списке, похоже друг на друга и стоит на похожих принципах. Многие верхнеуровневые онтологии объясняют, почему они устроены так, а не иначе, и их создатели выпускают работы философско-промышленного характера с аргументацией того, почему эти, а не другие базовые типы будут хорошо работать в том наборе ситуаций, для которых подходит эта верхнеуровневая онтология.
Дальше начинается создание прикладной онтологии и одновременно модели (если это не отдается доменным экспертам или сотрудникам предприятия). Когда речь идет о незнакомой области, то есть несколько существенных отличий от знакомой:
- есть поначалу совершенно непонятная практика использования слов и выражений и она далека от того, чтобы аккуратно разделять уровни моделей, ролевые позиции, системные уровни, и так далее. При этом в итоге все действительно выиграют, если сделать эту практику использования аккуратнее.
- вы не знаете, в каких документах, стандартах, учебниках, BOK'ах содержатся качественные мета-модели и с помощью самостоятельного поиска быстро это не выяснить.
Вы знаете только общую схему того, что вы должны найти ролевые позиции, чтобы смочь определить интересные системные уровни и уровни абстракции; пользоваться в модели типами из мета-модели, а в мета-модели типами из мета-мета-модели и так далее; сделать онтологию разделенной между всеми ролями, и для этого лучше поискать мета-У-модель и потом улучшить ее под вашу ситуацию; выбрать средства моделирования, которые подойдут пользователям вашей модели.