> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
Esta especificação descreve a integração do TrustGraph com fluxos de dados estruturados, permitindo que o sistema trabalhe com dados que podem ser representados como linhas em tabelas ou objetos em armazenamentos de objetos. A integração suporta quatro casos de uso primários:
1.**Extração de Não Estruturado para Estruturado**: Ler fontes de dados não estruturados, identificar e extrair estruturas de objetos e armazená-las em um formato tabular.
2.**Ingestão de Dados Estruturados**: Carregar dados que já estão em formatos estruturados diretamente no armazenamento estruturado, juntamente com os dados extraídos.
3.**Consulta em Linguagem Natural**: Converter perguntas em linguagem natural em consultas estruturadas para extrair dados correspondentes do armazenamento.
4.**Consulta Estruturada Direta**: Executar consultas estruturadas diretamente contra o armazenamento de dados para recuperação precisa de dados.
## Objetivos
**Acesso Unificado a Dados**: Fornecer uma única interface para acessar dados estruturados e não estruturados dentro do TrustGraph.
**Integração Perfeita**: Permitir interoperabilidade perfeita entre a representação de conhecimento baseada em grafo do TrustGraph e formatos de dados estruturados tradicionais.
**Extração Flexível**: Suportar a extração automática de dados estruturados de várias fontes não estruturadas (documentos, texto, etc.).
**Versatilidade de Consulta**: Permitir que os usuários consultem dados usando linguagem natural e linguagens de consulta estruturadas.
**Consistência de Dados**: Manter a integridade e a consistência dos dados em diferentes representações de dados.
**Otimização de Desempenho**: Garantir o armazenamento e a recuperação eficientes de dados estruturados em grande escala.
**Flexibilidade de Esquema**: Suportar abordagens de esquema-na-escrita e esquema-na-leitura para acomodar diversas fontes de dados.
**Compatibilidade com Versões Anteriores**: Preservar a funcionalidade existente do TrustGraph, adicionando recursos de dados estruturados.
## Contexto
Atualmente, o TrustGraph se destaca no processamento de dados não estruturados e na construção de grafos de conhecimento a partir de diversas fontes. No entanto, muitos casos de uso empresariais envolvem dados que são inerentemente estruturados - registros de clientes, logs de transações, bancos de dados de inventário e outros conjuntos de dados tabulares. Esses conjuntos de dados estruturados geralmente precisam ser analisados juntamente com conteúdo não estruturado para fornecer insights abrangentes.
As limitações atuais incluem:
Ausência de suporte nativo para ingestão de formatos de dados pré-estruturados (CSV, arrays JSON, exportações de banco de dados).
Impossibilidade de preservar a estrutura inerente ao extrair dados tabulares de documentos.
Falta de mecanismos de consulta eficientes para padrões de dados estruturados.
Falta de uma ponte entre consultas semelhantes a SQL e as consultas de grafo do TrustGraph.
Esta especificação aborda essas lacunas, introduzindo uma camada de dados estruturados que complementa as capacidades existentes do TrustGraph. Ao suportar dados estruturados nativamente, o TrustGraph pode:
Servir como uma plataforma unificada para análise de dados estruturados e não estruturados.
Permitir consultas híbridas que abrangem relacionamentos de grafo e dados tabulares.
Fornecer interfaces familiares para usuários acostumados a trabalhar com dados estruturados.
Desbloquear novos casos de uso em integração de dados e inteligência de negócios.
## Design Técnico
### Arquitetura
A integração de dados estruturados requer os seguintes componentes técnicos:
1.**Serviço de Conversão de Linguagem Natural para Consulta Estruturada**
Converte perguntas em linguagem natural em consultas estruturadas.
Suporta vários alvos de linguagem de consulta (inicialmente sintaxe semelhante a SQL).
Integra-se com as capacidades existentes de NLP do TrustGraph.
2.**Suporte para Esquema de Configuração** ✅ **[COMPLETO]**
Sistema de configuração estendido para armazenar esquemas de dados estruturados.
Suporte para definir estruturas de tabela, tipos de campo e relacionamentos.
Versionamento de esquema e capacidades de migração.
3.**Módulo de Extração de Objetos** ✅ **[COMPLETO]**
Integração aprimorada do fluxo de extração de conhecimento.
Identifica e extrai objetos estruturados de fontes não estruturadas.
Mantém a rastreabilidade e as pontuações de confiança.
Registra um manipulador de configuração (exemplo: trustgraph-flow/trustgraph/prompt/template/service.py) para receber dados de configuração e decodificar informações de esquema.
Recebe objetos e os decodifica em objetos ExtractedObject para entrega na fila Pulsar.
OBS: Existe código existente em `trustgraph-flow/trustgraph/extract/object/row/`. Esta foi uma tentativa anterior e precisará ser refatorada significativamente, pois não está em conformidade com as APIs atuais. Use-o se for útil, comece do zero se não for.
Requer uma interface de linha de comando: `kg-extract-objects`