Имена сущностей

ViTalk работает с сущностями (показатели, атрибуты, значения атрибутов, измерения) в базе данных ViQube. Чтобы при запросе выделялись корректные сущности, необходимо, чтобы их можно было найти используя интуитивные обозначения на естественном языке. Рекомендации к именованию сущностей приведены здесь.

Однако бывают ситуации, при которых база данных уже настроена с не самыми подходящими именами сущностей и перенастройка БД может быть дорогостоящей. Также, на одну сущность может оказаться удобно ссылаться используя разные имена (Москва, столичный филиал, главный филиал).

Поэтому, для управления именами сущностей, используемыми в ViTalk, предоставляется несколько инструментов.

В разделе синонимы описано, как можно настроить глобальные (независимые от конкретных показателей, измерений и др. сущностей) синонимичные фразы, а также можно указать части сущностей, которые должны игнорироваться при их поиске в ViTalk (например, в измерении Медиастор_клиенты, можно срезать часть Медиастор_).

В данном разделе описана работа с конфигурационным файлом entity_names.json. Конфигурация в этом файле позволяет переименовать или задать альтернативные имена конкретным сущностям БД. Именно заданные имена будут использоваться ViTalk для распознавания присутствия сущностей в запросе на естественном языке.

Файл entity_names.json генерируется после заполнения файла metadata.json. В него попадают те сущности, которые не будут игнорироваться ViTalk в соответствии с конфигурацией в metadata.json.

Файл имеет следующую структуру:

 

{ "measure_groups": { "ИМЯ_ГРУППЫ ПОКАЗАТЕЛЕЙ_1": { "имя показателя": [ "новое имя показателя1", "новое имя показателя2" ], "имя показателя2": [ ... ], ... }, "ИМЯ_ГРУППЫ ПОКАЗАТЕЛЕЙ_2": { .. }, ... } }, "dimensions": { "Имя измерения1" { "vitalk_name": [ "Новое имя измерения1", ... ], "attributes": { "имя_атрибута1": [ "Новое имя атрибута1", ... ], "имя_атрибута2": [...], ... } "roles": { "Имя ГП": { "Имя роли измерения1": ["новое имя роли"], ... }, ... } } }, "attribute_values": [] }

Далее, опишем настройку имен разных типов сущностей:

Переименование показателей

Чтобы переименовать показатель или добавить новое имя, необходимо найти этот показатель в разделе measure_groups.

Например, мы хотим, чтобы показатель “отгрузка” также назывался “продажи”. Для этого достаточно добавить слово “продажи” в список имён.

"measure_groups": { "Медиастор_Оборот": { "Оборот": [ "Оборот" ], "прибыль": [ "прибыль" ], "отгрузка": [ "отгрузка", "продажи" # добавлено новое имя ], ...

Переименование измерений, ролей измерений и атрибутов

Чтобы переименовать измерение, его атрибуты или роли, необходимо найти это измерение в разделе “dimensions”. Предположим, мы хотим, чтобы атрибут “филиал” измерения “Медиастор_филиал” можно было найти по слову офис.

В таком случае нам нужно найти атрибут “филиал” в поле “attributes” и дописать имя “офис”.

"dimensions": { ..., "Медиастор_Филиал": { "vitalk_name": [ "Медиастор_Филиал" ], "attributes": { "филиал": [ "филиал", "офис" # добавлено новое имя ] }, "roles": { "Медиастор_Оборот": { "Медиастор_Филиал": [ "Медиастор_Филиал" ] }, "Медиастор_Дебиторка": { "Медиастор_Филиал": [ "Медиастор_Филиал" ] }, "Медиастор_Расходы": { "Медиастор_Филиал": [ "Медиастор_Филиал" ] } } },

Чтобы отредактировать имя роли измерения, нужно найти раздел с ролями для интересующей группы показателей (поле roles)

Поле vitalk_name позволяет отредактировать имя неролевого измерения.

Переименование значений атрибутов.

Чтобы переименовать значения атрибутов (фильтры), нужно самостоятельно дописать их в раздел attribute_values

Формат записи для переименования и добавления имён следующий:

Приведём примеры: