Skip to main content
A ontologia diz à Strattum o que existe nos seus dados e como as coisas se ligam: um cliente abre chamados, um contato trabalha numa empresa. Com ela, a Strattum monta o grafo da Memory, que junta o mesmo cliente visto em sistemas diferentes e deixa os assistentes de IA responderem perguntas sobre ele. A ontologia fica na tela Ontologia do Console. Só administradores a alteram.

O jeito recomendado: o Construtor

Na tela Ontologia, clique em Abrir o Construtor. Ele pergunta sobre o seu negócio, olha as tabelas dos seus conectores e propõe a ontologia pronta. Você revisa a proposta, aceita e aplica. O Construtor aparece quando está habilitado na sua instalação. Se o painel disser que ele está indisponível, fale com quem administra a Strattum, ou monte a ontologia à mão, como explicado abaixo.

Fazer à mão

A ontologia é um arquivo YAML com três partes:
  • nodes: os tipos de coisa que existem, como cliente, empresa ou chamado. Cada um vem de uma tabela.
  • edges: as ligações entre eles, como “o chamado foi aberto pelo cliente”.
  • timeline: eventos com data, que aparecem na linha do tempo de uma entidade.

Um exemplo completo

Imagine um CRM, com as tabelas de contatos e de atividades, e um sistema de suporte, com as tabelas de solicitantes e de chamados. A mesma pessoa está cadastrada nos dois sistemas. A ontologia abaixo:
  • junta o contato do CRM e o solicitante do suporte num cliente só, pelo e-mail;
  • cria os chamados e liga cada um a quem o abriu;
  • coloca as atividades do CRM na linha do tempo do cliente.

Como o cliente das duas fontes vira um só

Os dois itens de nodes têm o mesmo label, Customer, e cada um lê uma tabela. Quando uma linha do CRM e uma do suporte têm o mesmo e-mail, a Strattum as reconhece como a mesma pessoa e cria uma entidade só, com as informações das duas: O e-mail com maiúsculas no suporte não atrapalha, porque a Strattum normaliza os identificadores antes de comparar. Para juntar fontes de um mesmo tipo:
  • Repita o label e mude o source. Cada fonte tem o próprio id_field e as próprias properties.
  • As fontes precisam ter um identificador em comum em er_fields. Ele pode ser direto (as duas têm email) ou em cadeia: o CRM compartilha cpf com o ERP, e o ERP compartilha email com o suporte.
  • Se as fontes não têm nenhum identificador em comum, a validação recusa a ontologia, porque os clientes de uma nunca se encontrariam com os da outra.
Três regras resolvem a maior parte dos casos:
  1. source começa com clean/, seguido do nome da tabela tratada do conector. Se a tabela vem de uma fonte federada, o prefixo é fed/.
  2. Toda coluna citada em id_field, er_fields ou indexed_fields precisa estar em properties.
  3. Use er_fields só para colunas que identificam a pessoa ou empresa sozinhas, como e-mail, telefone, CPF ou CNPJ. É por elas que a Strattum reconhece que o cliente do CRM e o do suporte são a mesma pessoa. Nunca coloque ali uma coluna que se repete, como status ou cidade.
Para ligar dois tipos, use join_key quando a tabela já traz o identificador do outro lado, e match_field quando a ligação é por um valor como o e-mail.

Aplicar

  1. Na tela Ontologia, aba YAML, clique em Editar e cole ou altere o YAML. O Console valida enquanto você edita.
  2. Clique em Verificar schema para conferir se as tabelas e colunas existem.
  3. Clique em Salvar rascunho. Nada muda no grafo ainda.
  4. Clique em Aplicar e confirme em Aplicar agora.
Para voltar atrás, abra o Histórico, escolha uma versão anterior e aplique de novo.

Os campos

O arquivo tem um campo opcional no topo, version, que você pode usar para numerar as suas versões. Os demais campos ficam dentro de nodes, edges e timeline.

Campos de um tipo (nodes)

Cada item de nodes descreve um tipo de coisa e a tabela de onde ele vem.

Identificadores: id_field e er_fields

O id_field diz qual é a linha. O er_fields diz quem é a entidade. Um chamado só existe no sistema de suporte, então basta o id_field. Um cliente aparece no CRM, no suporte e no ERP, então ganha também er_fields, para que a Strattum reconheça que é a mesma pessoa. Coloque em er_fields só colunas que identificam a entidade sozinhas: e-mail, telefone, CPF, CNPJ, placa, matrícula. Uma coluna que se repete entre entidades diferentes, como status, cidade ou cor, juntaria todas elas numa só. Para filtrar por essas colunas, use indexed_fields. Toda coluna citada em id_field, er_fields e indexed_fields precisa estar também em properties.

Normalizadores

Antes de comparar identificadores, a Strattum limpa os valores, para que (11) 99999-9999 e 11999999999 sejam o mesmo telefone. Quando a coluna se chama email, phone, telefone, cpf ou cnpj, a limpeza certa é escolhida pelo nome. Para outro nome, declare em normalizers, usando o nome que está em er_fields. Exemplo de um cadastro de funcionários em que o CPF está numa coluna chamada documento e a matrícula tem letras:

Campos de uma ligação (edges)

Cada item de edges liga dois tipos. Cada linha da tabela indicada vira uma ligação. Cada lado (from e to) diz qual tipo procurar e como achar a entidade certa: Cada lado usa join_key ou match_field, nunca os dois. Exemplo de uma tabela que liga contatos a empresas pelos ids:

Campos de um evento (timeline)

Cada item de timeline transforma as linhas de uma tabela em eventos com data na linha do tempo de uma entidade, como reuniões, pedidos ou atividades.

Erros comuns

A validação mostra um problema por tipo de cada vez. Depois de corrigir, valide de novo para ver se há outro.