todocpart

Назначение

Приводит аргумент к разделу документа, где он был найден.

Синтаксис

todocpart(название_раздела, $группа)

Аргументы

Функция принимает два обязательных аргумента. Первый аргумент название_раздела указывает имя раздела, который необходимо извлечь. Этот аргумент принимает значения, перечисленные в таблице ниже.

Значение

Пояснение

section

текст всей секции (под секцией понимает область документа, ограниченную заголовками одного уровня)

section_level

уровень секции (совпадает с уровнем заголовка)

heading

заголовок секции

headin_level

уровень заголовка

table

текст всей таблицы, включая имя;

table_name

имя таблицы;

row_text

текст всей строки (значения всех ячеек, разделенные пробелом);

row_name

имя строки (значение крайней левой ячейки строки);

col_text

текст всего столбца (значения всех ячеек, разделенные пробелом);

col_name

имя столбца (значение верхней ячейки столбца столбца);

cell_text

значение ячейки;

cell_unit

единицы измерения ячейки (если задано).

cell_factor

масштабный коэффициент ячейки.

table_num

номер таблицы.

row_num

номер строки.

col_num

номер столбца.

page

Возвращает текст страницы, где был найден аргумент.

page_num

Возвращает номер страницы, где был найден аргумент.

hyperlink

интернет-ссылка

Второй обязательный аргумент — ссылка на именованную группу. Функция также принимает следующие опциональные именованные параметры:

Параметр

Пояснение

first := <numeral>

При отсутствии аргументов параметр трактуется как диапазон значений. При наличии аргументов параметр задает смещение начального аргумента.

last := <numeral>

При отсутствии аргументов параметр трактуется как диапазон значений. При наличии аргументов параметр задает смещение конечного аргумента.

separator:=<string>

Для разделения найденных аргументов можно указать пользовательский разделитель. По умолчанию разделитель равен ";".

table_level := <numeral>

Задает уровень таблиц. По умолчанию уровень не задан.

nested := <string>

Определяет диапазон поиска внутри/вне/внутри и вне вложенных таблиц. Возможные значения: «yes»/«no»/«any»; по умолчанию - «any».

has_nested := <string>

Уточняет, имеет ли таблица вложенные таблицы. Возможные значения: «yes»/«no»/«any»; по умолчанию - «any».

parent_table := <string>

Определяет, выводить ли результат для родительской таблицы (родительской считается таблица на один уровень выше). Возможные значения: «yes»/«no»/«any»; по умолчанию - «no».

ocr_confidence

Возвращает целое число, соответствующее минимальной достоверности распознавания слов, входящих в форматируемый аргумент, OCR-модулем.

default:=<string>

Позволяет присвоить аргументу значение по умолчанию.

Примечания

  • Параметры first и last можно использовать автономно, без указания именованной группы.

  • Параметр section позволяет сократить область поиска благодаря параметру field, который может принимать значения body (тело текста), heading (заголовок) и any (тело текста и заголовок). По умолчанию field:=any.

  • Параметр hyperlink ищет гиперссылки только в html-страницах. Для его корректной работы необходимо выполнить узел «Интернет», а затем присоединить к нему тот узел, в котором будут использоваться полученные результаты.

  • Параметр hyperlink позволяет сократить область поиска благодаря параметру field, который может принимать значения text (имя гиперссылки) и url (URL гиперссылки). По умолчанию field:=text.

  • Именованные параметры поиска элементов таблицы совпадают с параметрами форматирующей функции totable(). Например, параметры first и last задают смещение начальной и конечной позиции относительно найденного результата. По умолчанию first:=0, last:=0.

  • У параметров first и last есть два алгоритма работы. В случае с table и table_name они действуют в рамках всего документа. То есть извлекается предыдущая/следующая таблица/имя таблицы по расположению в тексте. Для всех остальных параметров first и last действуют только в рамках одной таблицы.

  • При использовании параметров first и last в случае разрывного аргумента (или при отсутствии аргументов) повторяющиеся элементы, которые находит поисковый запрос, не удаляются. То есть сначала выводится диапазон от first до last для первого результата, затем для второго и т.д. Так сделано для удобства анализа результатов.

Возвращаемое значение

Текстовое значение или целое число для параметров section_level и heading_level.

Примеры

todocpart(row_name, first:=-1, last:=-1, $m) приводит именованную группу $m к имени строки, предшествующей строке, в которой найдена именованная группа. Например, если аргумент найден в пятой строке, имя четвертой строки будет выведено в атрибут.

todocpart(section, $m, field:=body) приводит именованную группу $m к телу текста, в котором она была найдена.

XPDL-правило

Результат

rule: r1

{

query: {docpart(ocr, confidence:<100)}:m

result: Match = $m

attribute: OCR = todocpart(ocr_confidence, $m)

}

В атрибут числовой колонки OCR выводится достоверность распознавания слов, которые определяются модулем OCR как недостоверные.

rule: r1

{

query: {sentence()}:m

result: Match = $m

attribute: OCR = todocpart(ocr_confidence, $m)

}

В атрибут числовой колонки OCR для каждого найденного правилом предложения выводится минимальная достоверность слов этого предложения.

XPDL-правило

Результат

rule: r1

{

query: {docpart(page)}:m

result: Match = $m

attribute: PageText = todocpart(page, $m)

attribute: PageNumber = todocpart(page_num, $m, separator:=",")

}

todocpart(page, $m) выводит текст страницы для позиций именованной группы $m.

todocpart(page_num, $m) выводит номер страницы для позиций именованной группы $m.

XPDL-правило

Результат

rule: r1

{

query: {docpart(hyperlink, "пролив")}:m

result: Match = $m

attribute: URL = todocpart(hyperlink, $m, field:=url)

attribute: RefName = todocpart(hyperlink, $m, field:=text)

}

todocpart(hyperlink, $m, field:=url) преобразует именованную группу $m к URL гиперссылке.

todocpart(hyperlink, $m, field:=text) преобразует именованную группу $m к имени гиперссылки.