С.С. Магазов, Д.О. Чугунов
8
В XLog включен оператор отсечения, используемый для преры-
вания возврата. Отсечение обозначается знаком “!”. Действует отсе-
чение просто: через него невозможно совершить возврат.
Структура программы.
Структура программы на языке XLog
похожа на структуру программы на языке PROLOG [4]. Программа
состоит из раздела
XLog-правил
(Rule) и раздела
XLog-цели
(Goal).
Шаблон программы выглядит следующим образом:
Program
name
Rule
head
:-
predicate_construction,…
;
…
head
:-
predicate_construction,…
;
head
;
Goal
predicate_construction, …
;
end
В шаблоне
name
–
имя программы,
head
– заголовок правила,
predi-
cate_construction
– либо точечный оператор, либо конструкция, либо
оператор поиска правила.
Заголовок правила имеет три формы:
1) ~(
xlоg_tmpl, variable
1
,…, variable
n
), где
xlоg_tmpl
– URL, указы-
вающий на место расположения XLоg-документа, а
variable
1
,…, vari-
able
N
– переменные, которые могут как входить, так и не входить в
xlоg_tmpl
. При этом список переменных может вообще отсутствовать
в заголовке.
2) ~(@ "
xlоg", variable
1
,…, variable
n
)
.
Эта форма аналогична пер-
вой форме. Различие заключается лишь в том, что в первом аргумен-
те задается не URL, а XLog-документ.
3) ~(
L
,
variable
1
,…, variable
n
), где
L
–
список, а
variable
i
– пере-
менные.
Телом правила
назовем
последовательность
предикатных кон-
струкций (
predicate_construction
),
входящих
в
правило
.
Областью ви-
димости определенных в правиле переменных, т. е. местом в про-
грамме, где можно их использовать, является тело правила. Правило
может состоять только из заголовка.
Пример 6.
Приведенная ниже программа выделяет из HTML-
документа текстовую информацию. В тексте распознаются упрощен-
ные версии атрибутивных предложений (формула предложения
объ-
ект-предикат
) и двухсоставные предложения.
Двухсоставное пред-
ложение
содержит два
главных члена – подлежащее
и сказуемое,
причем и подлежащее, и сказуемое могут быть составными.