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

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

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.

{ "measure_groups": { ... }, "dimensions": { ... }, "attribute_values": [] }

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

{ "dimension": "ИМЯ ИЗМЕРЕНИЯ", # можно использовать только оригинальное имя, а не переименование "attribute": "ИМЯ АТРИБУТА", "value": "ЗНАЧЕНИЕ АТРИБУТА", "new_values": [ "новое значение 1", "новое значение 2" ] }

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

"attribute_values": [ { "dimension": "Медиастор_Филиал", "attribute": "филиал", "value": "Москва", "new_values": [ "Столица", "Москва" ] }, { "dimension": "Медиастор_Клиенты", "attribute": "Наименование клиента", "value": "«Красноярский завод цветных металлов имени В. Н. Гулидова»", "new_values": [ "КЗЦМ", "«Красноярский завод цветных металлов имени В. Н. Гулидова»" ] } ]