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

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

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": [
    "КЗЦМ",
    "«Красноярский завод цветных металлов имени В. Н. Гулидова»"
   ]
  }
 ]

Related content

Имена сущностей
Имена сущностей
More like this
Имена сущностей
Имена сущностей
More like this
Имена сущностей
Имена сущностей
More like this
Имена сущностей
Имена сущностей
More like this
Имена сущностей
Имена сущностей
More like this
Имена сущностей
Имена сущностей
More like this