Attempto Controlled English (ACE ) - это контролируемый естественный язык, то есть подмножество стандартного английского языка с ограниченным синтаксисом и ограниченной семантикой, описываемым небольшим набором правил построения и интерпретации. Он находится в разработке в Цюрихском университете с 1995 года. В 2013 году была анонсирована версия ACE 6.7.
ACE может служить представлением знаний, спецификация и язык запросов и предназначена для профессионалов, которые хотят использовать формальные обозначения и формальные методы, но могут не быть знакомы с ними. Хотя ACE кажется совершенно естественным - его может прочитать и понять любой человек, говорящий по-английски - на самом деле это формальный язык.
ACE и связанные с ним инструменты использовались в областях спецификаций программного обеспечения, доказательство теорем, текстовые сводки, онтологии, правила, запросы, медицинская документация и планирование.
Вот несколько простых примеров:
Правила построения ACE требуют, чтобы каждое существительное вводилось определителем (a, every, no, some, по крайней мере, 5,...). Что касается приведенного выше списка примеров, правила интерпретации ACE решают, что (1) интерпретируется как универсально квантифицированный, а (2) интерпретируется как экзистенциально квантифицированный. Такие предложения, как «Женщины - люди», не соответствуют синтаксису ACE и, следовательно, недействительны.
Правила интерпретации разрешают анафорические ссылки в (3): связь и она во втором предложении относятся к новой связи в первом предложении, в то время как его и человек во втором предложении относятся к мужчине из первого предложения. Таким образом, текст ACE представляет собой связную совокупность анафорически связанных предложений.
Механизм анализа попыток (APE) однозначно переводит тексты ACE в структуры представления дискурса (DRS), которые используют вариант языка логики первого порядка. DRS может быть дополнительно переведен на другие формальные языки, например, AceRules с различной семантикой, OWL и SWRL. Преобразование текста ACE в (фрагмент) логики первого порядка позволяет пользователям обосновать текст, например, проверить, проверить и запросить это.
В качестве обзора текущей версии 6.6 ACE этот раздел:
Словарь ACE включает:
Грамматика ACE определяет и ограничивает форму и значение предложений и текстов ACE. Грамматика ACE выражается в виде набора правил построения. Значение предложений описывается в виде небольшого набора правил интерпретации. В Руководстве по поиску и устранению неисправностей описано, как использовать ACE и как избежать ошибок.
Текст ACE - это последовательность повествовательных предложений, которые могут быть анафорически взаимосвязаны. Кроме того, ACE поддерживает вопросы и команды.
Простое предложение утверждает, что что-то имеет место - факт, событие, состояние.
Простые предложения ACE имеют следующую общую структуру:
У каждого предложения есть подлежащее и глагол. Дополнения (прямые и косвенные объекты) необходимы для переходных глаголов (вставлять что-то) и двойных переходных глаголов (давать что-то кому-то), тогда как дополнения (наречия, предложные фразы) необязательны.
Все элементы простого предложения можно детализировать, чтобы описать ситуацию более подробно. Чтобы дополнительно указать существительные клиент и карта, мы могли бы добавить прилагательные:
притяжательные существительные и предложные фразы:
или переменные в качестве аппозиций:
Другие модификации существительных возможны посредством относительных предложений:
которые описаны ниже, поскольку они составляют составное предложение. Мы также можем подробно описать событие вставки, например путем добавления наречия:
или, эквивалентно:
или, добавляя предложные фразы:
Мы можем объединить все эти разработки, чтобы прийти к:
Составные предложения предложения рекурсивно строятся из более простых предложений посредством координации, подчинения, количественной оценки и отрицания. Обратите внимание, что составные предложения ACE перекрываются с тем, что лингвисты называют составными предложениями и сложными предложениями.
Координация по и возможна между предложениями и между фразами одного синтаксического типа.
Обратите внимание, что согласование словосочетаний существительного дает карточку и код представляет собой объект множественного числа.
Возможна координация предложений, глагольных фраз и относительных придаточных предложений.
Координация с помощью и или регулируется стандартным логическим порядком связывания, т. Е. Связывает сильнее, чем или. Запятые можно использовать для отмены стандартного порядка привязки. Таким образом, предложение:
означает, что клиент вставляет VisaCard и код или, альтернативно, MasterCard и код.
Существует четыре конструкции подчинения: относительные предложения, предложения «если-то», модальность и подчинение предложений.
Относительные предложения, начинающиеся с who, which и позволяющие добавлять детали к существительным:
С помощью предложений if-then мы может указывать условные или гипотетические ситуации:
Обратите внимание на анафорическое упоминание через местоимение it в тогда-части к существительной фразе карта в if-части.
Модальность позволяет нам выразить возможность и необходимость:
Подчинение предложений принимает различные формы:
Количественная оценка позволяет нам говорить обо всех объектах определенного класса (универсальная количественная оценка ) или явно обозначать наличие хотя бы одного объекта этот класс (экзистенциальная количественная оценка ). Текстовое появление универсального или экзистенциального квантификатора открывает его область действия, которая простирается до конца предложения или, согласованно, до конца соответствующего согласованного предложения.
Чтобы выразить, что все вовлеченные клиенты вставляют карты, мы можем написать
Это предложение означает, что каждый клиент вставляет карту, которая может быть, а может и не быть такой же, как один вставлен другим покупателем. Чтобы указать, что все клиенты вставляют одну и ту же карту - какой бы нереалистичной ни казалась эта ситуация - мы можем написать:
или, что эквивалентно:
Чтобы указать, что каждую карту вставляет покупатель, мы пишем:
или, несколько косвенно:
Отрицание позволяет нам заявить, что что-то не так:
Чтобы отрицать что-то для всех объектов определенного класса используется no:
или, нет:
Чтобы отрицать полную В первом заявлении используется отрицание предложения:
Эти формы отрицания являются логическими отрицаниями, т.е. они утверждают, что что-то доказуемо не так. Отрицание как несостоятельность утверждает, что положение дел нельзя доказать, то есть нет информации о том, так обстоит дело или нет.
ACE поддерживает две формы запросов: да / нет-запросы и белые-запросы.
Запросы типа "да / нет" запрашивают наличие или отсутствие определенной ситуации. Если мы указали:
тогда мы можем спросить:
, чтобы получить положительный ответ. Обратите внимание, что вопросительные предложения всегда заканчиваются вопросительным знаком.
С помощью wh-запросов, то есть запросов со словами запроса, мы можем запросить текст на предмет деталей указанной ситуации. Если мы указали:
мы можем запросить каждый элемент предложения, за исключением глагола.
Запросы также могут быть построены из последовательности декларативных предложений, за которыми следует одно вопросительное предложение, например:
ACE также поддерживает команды. Некоторые примеры:
Команда всегда состоит из существительной фразы (адресат), за которой следует запятая, за которой следует несогласованная глагольная фраза. Кроме того, команда должна заканчиваться восклицательным знаком.
Для ограничения неоднозначности полного естественного языка ACE использует три простых средства:
На естественном языке относительные предложения в сочетании с согласованиями могут привести к двусмысленности:
В ACE предложение имеет однозначное значение, что клиент открывает счет, что отражено в перефразировке:
Чтобы выразить альтернативу, хотя и не очень реалистичную, означающую, что карта открывает счет, относительное местоимение, которое необходимо повторять, что приводит к согласованию относительных предложений:
Это предложение однозначно эквивалентно перефразированию:
Не все неоднозначности можно безопасно удалить из ACE, не сделав их искусственными. Для детерминированной интерпретации синтаксически правильных предложений ACE мы используем небольшой набор правил интерпретации. Например, если мы напишем:
затем с кодом присоединяется к вставкам глагола, но не к карте. Однако, вероятно, мы не это хотели сказать. Чтобы выразить, что код связан с картой, мы можем использовать правило интерпретации, согласно которому относительное предложение всегда изменяет непосредственно предшествующую именную фразу, и перефразировать ввод как:
что дает перефразирование:
или - чтобы указать, что клиент вставляет карту и код - как:
Обычно ACE тексты состоят из нескольких предложений:
Чтобы выразить, что все вхождения карты и кода должны означать одну и ту же карту и один и тот же код, ACE предоставляет анафорические ссылки через определенный артикль:
Во время обработки текста ACE все анафорические ссылки заменяются самой последней и наиболее конкретной доступной именной фразой, которая совпадает по роду и номеру. В качестве примера «самого последнего и самого конкретного» предположим, что синтаксическому анализатору ACE дано предложение:
Затем:
относится ко второй карте, в то время как:
относится к первой карте.
Существительные словосочетания в предложениях «если-то», предложения с универсальной квантификацией, отрицания, модальность и подчиненные предложения не могут быть анафорически переданы из последующих предложений, т.е. такие именные фразы не «доступны» из следующего текста. Таким образом, для каждого из предложений:
мы не можем ссылаться на карту с:
Анафорические ссылки также возможны через личные местоимения:
или через переменные:
Анафорические ссылки через определенные статьи и переменные могут быть объединены:
Обратите внимание, что имена собственные, такие как SimpleMat, всегда относятся к одному и тому же объекту.