Attempto Controlled English

Attempto Controlled English (ACE, англ. Попытка контролируемого английского ) — это контролируемый естественный язык, то есть подмножество стандартного английского языка с ограниченным синтаксисом и формальной семантикой, определяемой небольшим набором правил построения и интерпретации предложений[1]. Разработка ACE ведётся в Цюрихском университете с 1995 года. В 2013 году была анонсирована версия ACE 6.7[2].

Применение

ACE может использоваться как язык представления знаний, спецификаций и запросов. Он предназначен для специалистов, которым необходимы формальные обозначения и методы, но которые могут быть незнакомы с формальными языками. Несмотря на то что ACE выглядит как обычный английский и его может понять любой носитель языка, на самом деле это формальный язык[1].

ACE и связанные с ним инструменты применяются в областях спецификаций ПО, доказательства теорем, помощники доказательств, автоматические рефераты, онтологии, правила, запросы, медицинская документация и планирование.

Примеры простых фраз на ACE:

  1. англ. Every woman is a human. (Каждая женщина — человек.)
  2. англ. A woman is a human. (Женщина — человек.)
  3. англ. A man tries-on a new tie. If the tie pleases his wife then the man buys it. (Мужчина примеряет новый галстук. Если галстук нравится его жене, то мужчина покупает его.)

Правила построения ACE требуют, чтобы каждое существительное вводилось определителем (a, every, no, some, at least 5 и др.). В приведённых выше примерах правила интерпретации ACE определяют, что (1) трактуется как универсальная квантификация, а (2) — как экзистенциальная. Предложения типа «Women are human» не соответствуют синтаксису ACE и поэтому считаются недопустимыми.

Правила интерпретации решают анафорические связи, как в (3): the tie и it во втором предложении ссылаются на a new tie из первого, а his и the man — на a man. Таким образом, текст ACE — это связная последовательность анафорически связанных предложений.

Парсер Attempto Parsing Engine (APE) однозначно преобразует тексты ACE в структуры представления дискурса (DRS), использующие вариант языка логики первого порядка[3]. DRS можно преобразовывать в другие формальные языки, например, в AceRules с различной семантикой[4], OWL[5] и SWRL. Перевод текста ACE в (фрагмент) логики первого порядка позволяет производить выводы, а также проверять, валидировать и запрашивать информацию.

Обзор

В этом разделе представлен обзор текущей версии 6.6 ACE:

  • кратко описан словарь;
  • изложены особенности синтаксиса;
  • приведено описание обработки неоднозначностей;
  • объяснены механизмы анафоры.

Словарь

Словарь ACE включает:

  • предопределённые служебные слова (например, определители, союзы);
  • предопределённые фразы (например, «it is false that ...», «it is possible that ...»);
  • содержательные слова (например, существительные, глаголы, прилагательные, наречия).

Грамматика

Грамматика ACE определяет и ограничивает форму и значения предложений и текстов на ACE. Она выражена как набор правил построения. Значение предложений описывается с помощью набора правил интерпретации. Справочник по устранению проблем описывает использование ACE и способы избежать ошибок.

Тексты ACE

Текст ACE представляет собой последовательность повествовательных предложений, которые могут быть связаны анафорическими отношениями. Кроме того, ACE поддерживает вопросы и команды.

Простые предложения

Простое предложение констатирует некоторый факт, событие или состояние.

Температура составляет −2 °C.
Клиент вставляет 2 карты.
Карта и код являются действительными.

Общая структура простого предложения на ACE:

подлежащее + глагол + дополнения + обстоятельства

В каждом предложении есть подлежащее и глагол. Дополнения (прямые и косвенные объекты) обязательны для переходных (insert something) и двуобъектных глаголов (give something to somebody), обстоятельства (наречия, предл. обороты) — опциональны.

Все элементы простого предложения могут быть детализированы для более точного описания ситуации. Например, чтобы уточнить customer и card, можно добавить прилагательные:

Доверенный клиент вставляет две действительные карты.

Образы принадлежности и конструкции с of:

Клиент Джона вставляет карту Мэри.

или переменные в аппозитиве:

Джон вставляет карту A.

Далее — модификации через относительные предложения:

Клиент, которому доверяют, вставляет карту, которой владеет.

Они делают предложение сложным — описаны ниже. Также возможно уточнить событие вставки с помощью наречий:

Клиент вставляет несколько карт вручную.

или эквивалентно:

Клиент вручную вставляет несколько карт.

или с помощью обстоятельств места:

Клиент вставляет некоторые карты в слот.

Всё можно совместить:

Доверенный клиент Джона вставляет действительную карту Мэри вручную в слот A.

Сложные предложения

Сложные предложения строятся рекурсивно из простых через сочинение, подчинение, квантификацию и отрицание. Сложные предложения по терминологии ACE частично перекрываются с тем, что лингвисты называют сложносочинёнными и сложноподчинёнными предложениями.

Сочинение

Соединение через and возможно как предложений, так и фраз одного синтаксического типа.

Клиент вставляет карту, и автомат проверяет код.
Есть клиент, который вставляет карту и который вводит код.
Клиент вставляет карту и вводит код.
Старый и надёжный клиент вводит карту и код.

Соединение фраз карта и код выражает объект во множественном числе.

Соединение через or возможно между предложениями, глагольными группами и относительными предложениями.

Клиент вставляет карту или автомат проверяет код.
Клиент вставляет карту или вводит код.
У клиента есть карта, которая недействительна или повреждена.

Для and и or действует стандартный приоритет логики: and связывает сильнее, чем or. Запятые могут изменить порядок. Так, предложение:

Клиент вставляет VisaCard или вставляет MasterCard, и вводит код.

означает, что клиент вставляет карту Visa и код, или карту Master и код.

Подчинение

Четыре механизма подчинения: относительные предложения, условные предложения if-then, модальность и подчинённые предложения.

Относительные предложения с who, which, that уточняют существительные:

Клиент, которому доверяют, вставляет карту, которой он владеет.

Предложения if-then задают условные или гипотетические ситуации:

Если карта действительна, то клиент вставляет её.

Анафора it во второй части ссылается на a card из первой.

Модальность позволяет выразить возможность или необходимость:

Доверенный клиент может/должен вставлять карту.
Возможно/необходимо, чтобы доверенный клиент вставлял карту.

Подчинение предложений:

Правда/ложь, что клиент вставляет карту.
Недоказуемо, что клиент вставляет карту.
Кассир считает, что клиент вставляет карту.
Квантификация

Квантификация позволяет говорить обо всех объектах класса (универсальная квантификация) или о наличии хотя бы одного объекта (экзистенциальная квантификация). Область действия квантификатора распространяется до конца предложения, а в сочинённых — до конца сочинённого компонента.

Все клиенты вставляют карты:

Каждый клиент вставляет карту.

Это означает: каждый клиент вставляет карту, которая для разных клиентов может быть разной. Чтобы выразить, что все вставляют одну и ту же карту:

Карту вставляет каждый клиент.

или:

Существует карта, которую вставляет каждый клиент.

Чтобы сказать, что каждая карта вставляется клиентом:

Каждая карта вставляется клиентом.

или:

Для каждой карты существует клиент, который вставляет её.
Отрицание

Отрицание используется для выражения того, что нечто не происходит:

Клиент не вставляет карту.
Карта недействительна.

Для отрицания относительно всех объектов класса используется no:

Ни один клиент не вставляет более двух карт.

или there is no:

Нет клиента, который вставляет карту.

Для отрицания всего утверждения — отрицание предложения:

Неправда, что клиент вставляет карту.

Эти формы — логическое отрицание (нечто доказуемо ложно). Отрицание как невозможность доказательства выражает, что невозможно установить, верно ли утверждение или нет.

Недоказуемо, что клиент вставляет карту.

Вопросительные предложения

ACE поддерживает два типа вопросов: вопросы типа да/нет и специальные вопросы (wh-questions).

Вопросы да/нет проверяют наличие/отсутствие ситуации. Если указано:

Клиент вставляет карту.

— можно спросить:

Вставляет ли клиент карту?

Вопросительные предложения всегда заканчиваются вопросительным знаком.

Wh-вопросы — с вопросительными словами:

Кто вставляет карту?
Какой клиент вставляет карту?
Что клиент вставляет?
Как клиент вставляет карту?
Когда клиент вставляет карту?
Где клиент вставляет карту?

Вопросы можно строить как последовательность утверждений и одного вопроса:

Есть клиент и есть карта, которую клиент вставляет. Вставляет ли клиент карту?

Команды

ACE поддерживает и команды. Примеры:

Джон, иди в банк!
Джон и Мэри, ждите!
Каждая собака, лаять!
Брат Джона, дай книгу Мэри!

Команда — это всегда именная группа (адресат), запятая и глагольная группа. Команда оканчивается восклицательным знаком.

Ограничение неоднозначности

Для ограничения неоднозначности ACE применяет три подхода:

  • Некоторые неоднозначные конструкции исключены; вместо них есть однозначные аналоги.
  • Остальные неоднозначные конструкции интерпретируются детерминированно небольшим числом правил.
  • Пользователь может принять предложенную интерпретацию или переформулировать ввод.

Предотвращение неоднозначности

В естественном языке относительные предложения в сочетании с сочинениями могут создавать неоднозначность:

Клиент вставляет карту, которая действительна и открывает счёт.

В ACE это предложение означает, что клиент открывает счёт — см. перефраз:

Карта действительна. Клиент вставляет карту. Клиент открывает счет.

Чтобы выразить альтернативное (пусть даже маловероятное) значение, что карта открывает счёт, относительное местоимение that должно быть повторено:

Клиент вставляет карту, которая действительна и которая открывает счет.

Это однозначно эквивалентно перефразированию:

Карта действительна. Карта открывает счёт. Клиент вставляет карту.

Правила интерпретации

Не все неоднозначности можно устранить, не сделав язык искусственным. Для детерминированной интерпретации синтаксически корректных предложений используется набор правил. Например:

Клиент вставляет карту с кодом.

Здесь с кодом относитcя к глаголу вставляет, а не к карта, что редко желаемо. Чтобы указать связь “код принадлежит карте”, применяют правило, что относительное предложение модифицирует ближайшее существительное, и переформулируют:

Клиент вставляет карту, которая содержит код.

Что эквивалентно:

Карта содержит код. Клиент вставляет карту.

Или — чтобы выразить, что клиент вставляет карту и код:

Клиент вставляет карту и код.

Анафорические связи

Обычно текст ACE состоит более чем из одного предложения:

Клиент вводит карту и код. Если код действителен, то SimpleMat принимает карту.

Чтобы указать, что речь об одной и той же карте и одном коде, в ACE используются анафорические ссылки с определённым артиклем:

Клиент вводит карту и код. Если код действителен, то SimpleMat принимает карту.

При обработке такого текста все анафорические ссылки заменяются на последнее наиболее конкретное существительное, согласующееся по роду и числу («самое недавнее и наиболее конкретное»). Например:

Клиент вводит красную карту и синюю карту.

Тогда:

Карта верна.

— относится ко второй карте, а

Красная карта верна.

— к первой.

Имённые группы в if-then, универсальных и отрицательных предложениях, модальности и подчинённых предложениях не доступны в качестве анафорических ссылок из последующих предложений — то есть они недоступны («недоступны из последующего текста»):

Если клиент владеет картой, то он её вводит.
Каждый клиент вводит карту.
Клиент не вводит карту.
Клиент может ввести карту.
Кассир считает, что клиент вводит карту.

— нельзя потом ссылаться:

Карта верна.

Анафора возможна и с помощью личных местоимений:

Клиент вводит карту и код. Если он действителен, SimpleMat принимает карту.

И через переменные:

Клиент вводит карту X и код Y. Если Y действителен, SimpleMat принимает X.

И можно комбинировать:

Клиент вводит карту X и код Y. Если код Y действителен, SimpleMat принимает карту X.

Имена собственные, такие как SimpleMat, всегда ссылаются на тот же объект.

Примечания

  1. 1 2 Norbert E. Fuchs, Kaarel Kaljurand, Gerold Schneider. Attempto Controlled English Meets the Challenges of Knowledge Representation, Reasoning, Interoperability and User Interfaces (англ.). FLAIRS 2006 (2006). Дата обращения: 30 июня 2024. Архивировано 26 марта 2020 года.
  2. Attempto News (англ.). Attempto. Дата обращения: 30 июня 2024. Архивировано 14 апреля 2021 года.
  3. Norbert E. Fuchs, Kaarel Kaljurand, Tobias Kuhn. Discourse Representation Structures for ACE 6.6 (англ.). Technical Report ifi-2010.0010, Department of Informatics, University of Zurich (2010). Дата обращения: 30 июня 2024. Архивировано 11 сентября 2020 года.
  4. Tobias Kuhn. AceRules: Executing Rules in Controlled Natural Language (англ.). First International Conference on Web Reasoning and Rule Systems (RR 2007) (2007). Дата обращения: 30 июня 2024. Архивировано 24 августа 2019 года.
  5. Kaarel Kaljurand, Norbert E. Fuchs. Verbalizing OWL in Attempto Controlled English (англ.). OWL: Experiences and Directions (OWLED 2007) (2007). Дата обращения: 30 июня 2024. Архивировано 23 июля 2019 года.

Ссылки