Консоль выражений
Текст может содержать неточности, устаревшие данные или технические ошибки. Пожалуйста, проверяйте критически важную информацию перед использованием.
Выражение отвечает на вопрос о модели: есть ли у элемента имя, какие процессы реализует компонент. Модель изменяют два языка из пяти.
Консоль выполняет выражения над выделенным объектом и ничего не сохраняет.
Режим выражений
- Откройте панель Ассистент.
- Раскройте переключатель языка под полем ввода. Первый пункт — Чат, ниже перечислены Acceleo Query Language (AQL), Object Constraint Language (OCL), Epsilon Object Language (EOL), Common Expression Language (CEL) и SPARQL.
- Выберите AQL.
Поле ввода подсветит синтаксис, кнопка отправки станет кнопкой запуска. Выбор языка сохраняется для следующих запросов.
Запрос
Выделите в навигаторе моделей компонент приложения ArchiMate и выполните:
self.outgoingRelationships
->select(r | r.oclIsKindOf(archimate::RealizationRelationship))
->collect(r | r.target)
self — объект, выделенный в навигаторе моделей на момент запуска. Если ничего
не выделено, self — корень текущей модели. Эта переменная есть в любом языке,
в SPARQL она называется ?self.
Результат выводится в переписку по элементу на строку. Объект модели показан
подписью с типом — Label (BusinessProcess). Это ссылка: по щелчку объект
раскрывается и выделяется.

| Клавиша | Действие |
|---|---|
| Enter | Выполнить запрос или принять подсказку |
| Shift+Enter | Перевод строки |
| Up, Down | Предыдущий и следующий запрос из истории |
Автодополнение есть в AQL, OCL и SPARQL. Ошибки подчёркиваются по мере ввода, первая выводится под полем; пока запрос содержит ошибку, кнопка запуска недоступна.
Выбор языка
| Язык | Назначение | Читает | Изменяет | Автодополнение | Проверка до запуска |
|---|---|---|---|---|---|
| AQL | Навигация по модели, поля выражений метамодели | Да | Нет | Да | Статическая типизация |
| OCL | Инварианты в правилах проверки | Да | Нет | Да | Статическая типизация |
| EOL | Быстрые исправления и другие изменения модели | Да | Да | Нет | Синтаксис |
| CEL | Компактные проверки с операторами в духе C | Да | Нет | Нет | Синтаксис и тип результата |
| SPARQL | Запросы к модели как к RDF и обновления | Да | Да | Да | Синтаксис и требование ASK для логического результата |
Изменяют модель только EOL и SPARQL Update, поэтому быстрые исправления пишут на них.
Читающее выражение отличается от изменяющего по телу, а не только по языку. Тело
на EOL с разделителем операторов ; — программа, изменяющая модель; без
разделителя это одиночное выражение, вычисляемое ради значения. В SPARQL читают
SELECT, ASK, CONSTRUCT и DESCRIBE, изменяет UPDATE.
Изменение модели
Выберите EOL и напишите тело, которое меняет модель. Рядом с переключателем языка появится флажок Применить изменения, а запуск начнёт задачу Модификация модели.
- Флажок снят — сначала просмотр: выполнение приостанавливается и показывает список изменений, ничего не записывая.
- Флажок установлен — изменения применяются сразу.
В просмотре по строке на изменение, каждая начинается с его типа: CREATE,
DELETE, SET (характеристика: было → стало), ADD, REMOVE, MOVE.
Изначально отмечены все строки. Снимите отметки с ненужных и нажмите
Выполнить; Отмена отбрасывает весь набор.
Изменения записываются одной транзакцией: сбой в любой части откатывает всё. Набор для просмотра действует десять минут, после чего выражение нужно выполнить заново. Изменения, которые больше не подходят к модели, пропускаются, и задача сообщает их число.
Быстрые исправления работают через тот же механизм, поэтому исправление, предложенное для группы замечаний, можно применить к части из них.
Другие места, где пишут выражения
- Правила проверки и быстрые исправления — четыре поля: Precondition
Language, Precondition, Implementation Language, Implementation.
Правило может проверять на AQL, а исправлять на EOL. Реализация правила
возвращает логическое значение:
true— инвариант выполнен. Реализация быстрого исправления обязана менять модель, читающее тело редактор отклоняет. - Конструктор метамоделей работает только на AQL: Predicate у класса сущности, Display Expression у подписи, Allowed Values у ссылки.
- Документы используют один язык на весь документ, он задаётся полем Язык выражений в форме документа. Выражения документа модель только читают.