Именованные сущности
Именованные сущности — элементы справочника именованных сущностей.
Справочники
Справочники именованных сущностей необходимы для обработки в паттернах большого количества каких-либо названий. Например, названий городов, стран, имен, валют и пр.
Задаются в виде файла с расширением .csv, строка такого файла имеет следующую структуру:
id; имя; значениеЗдесь:
id— уникальный идентификатор сущности;имя— имя сущности, возможные синонимы указываются через запятую;значение— значение сущности,stringилиjson.
В параметре имя можно перечислить синонимы, в одном из полей json указать основное название.
Например, часть справочника именованных сущностей:
149;Кузьма;{"name": "Кузьма", "sex": "male"}
150;Карл;{"name": "Карл", "sex": "male"}
151;Клавдий;{"name": "Клавдий", "sex": "male"}
152;Клод;{"name": "Клод", "sex": "male"}
153;Константин,Костя;{"name": "Константин", "sex": "male"}
154;Климент;{"name": "Климент", "sex": "male"}Элементы
Чтобы использовать элементы справочника именованных сущностей в именованном паттерне необходимо:
- Указать название справочника и путь к нему в файле сценария
.sc. Для этого используйте тегrequire:
require: common/common-cities.csv
name = RoamingRegions
var = RoamingRegions- Задайте в файле
.js-библиотек конвертер. Конвертер позволяет записывать информацию в полеvalueдерева разбораparseTreeдля паттерна. Например:
function RoamingRegionTagConverter($parseTree) {
var id = $parseTree.RoamingRegions[0].value;
return RoamingRegions[id].value
}Здесь:
RoamingRegionTagConverter— название конвертера;RoamingRegions— название справочника именованных сущностей.
Возвращаемое значение записывается в поле value.
- Объявить именованный паттерн. Используйте
$entity<>:
$roamingRegion = $entity<RoamingRegions> || converter = RoamingRegionTagConverterИменованные сущности можно использовать и без объявления именованного паттерна.
При подобном объявлении именованной сущности в $parseTree появляется элемент value, куда записывается id.