Приложения - это трудно определяемое понятие. Вроде как это сгруппированная вокруг каких-то ключевых сущностей и процессов автоматизация, но границы приложений очень размыты и определяются в каждом конкретном случае на основе очень разных критериев.
Если же рассматривать приложения через призму семантики, то можно сказать, что это всего лишь инструменты для создания более упорядоченной информации из менее упорядоченной. То есть, это средства снижения информационной энтропии.
Приложения создают порядок, информацию и смысл из шума окружающего мира. Как именно они это делают? Нужно наличие четырех элементов:
- Схема - структура конечного результата (схема БД, транзакции или сообщения)
- Ограничения - правила относительно допустимой информации. Интересны по двум поводам, во-первых, это фильтр для информации, во-вторых, обладают своей семантикой: свойством, предикатом и действием. Могут применяться как до ввода информации (списки выбора), так и во время (интерактивная валидация) или после.
- Правила - допустимые наборы преобразований и создания новой информации на основе входящей.
- Запросы - стратегии поиска новой информации.
Помимо этого приложения также изменяют окружающий мир путем выполнения действий на основе полученной информации.