Сокращенный синтаксис XPDL
В этом разделе описан сокращенный синтаксис XPDL, который позволяет сделать правила более компактными.
Сокращенная форма записи простого правила
Если набор правил состоит из одного правила без вложенных правил и выводит в результат все, что найдено поисковым запросом, достаточно написать только поисковый запрос. Например, вместо правила на Изображении 1

Фрагмент правила
rule: dict_cities
{
/* например, Москва, Санкт-Петербург, Лондон */
query: {dictword(GeoAdministrative, "category = city")}:m
}
result: City = $m
}
}
можно написать только запрос, как на Изображении 2.

Фрагмент правила
dictword(GeoAdministrative, "category = city")
В этом случае тело правила, а также раздел результата создаются автоматически. Обратите внимание, что в этом режиме невозможно изменить встроенные название правила («xpdl_generated_rule») и название результата («Match»), а также добавить атрибуты результата.
Выражение «$&»
Выражение «$&» можно использовать в разделе результатов для ссылки на запрос, не включенный в именованную группу. Например, правило на Изображении 3 может быть записано так, как показано на Изображении 4 .

Фрагмент правила
rule: dict_cities
{
/* например, Москва, Санкт-Петербург, Лондон */
query: {dictword(GeoAdministrative, "category = city")}:m
}
result: City = $m
}
}

Фрагмент правила
rule: dict_cities
{
/* например, Москва, Санкт-Петербург, Лондон */
query: {dictword(GeoAdministrative, "category = city")}:m
}
result: City = $&
}
}
Результат по умолчанию
Раздел результатов в верхней части файла автоматически добавляется в правила, в которых нет раздела результатов. Это помогает избежать повторяющихся фрагментов, в случае если несколько правил выводят один и тот же результат. Например, правила на Изображении 5 могут быть записаны, как показано на Изображении 6 .

Фрагмент правила
rule: dict_cities
{
/* например, Москва, Санкт-Петербург, Лондон */
query: {dictword(GeoAdministrative, "category = city")}:m
result: City = $m
}
rule: context_cities
{
/* населенные пункты, извлекаемые по контексту (отсутствующие_в словаре) */
query: {phrase(0, form(город), case(title))}:m
result: City = $m
}

Фрагмент правила
rule: dict_cities
{
/* например, Москва, Санкт-Петербург, Лондон */
query: {dictword(GeoAdministrative, "category = city")}:m
}
rule: context_cities
{
/* населенные пункты, извлекаемые по контексту (отсутствующие_в словаре) */
query: {phrase(0, form(город), case(title))}:m
}