Plataforma de Dados
A plataforma de dados organiza o trabalho em 7 etapas sequenciais — da coleta ao DOI. Cada etapa tem ferramentas específicas e roda sobre a infraestrutura CPPS.
Princípio central: dados fluem em camadas (bronze → silver → gold). A GPU platform é consumida como serviço (API) — nenhum modelo roda dentro da data platform.
Jornada do dado
Ver jornada interativa → Catálogo visual
Etapa 1 — Coleta
De onde vêm os dados: web, RSS, APIs, PDFs com URL direta, upload manual.
| Ferramenta | Uso | Quando usar |
|---|---|---|
| Scrapy | Crawlers para diários oficiais, portais governamentais, notícias | Fonte com HTML previsível, paginação |
| Playwright | Crawling de páginas com JS pesado, SPAs, logins | Fonte que exige JavaScript para renderizar |
| feedparser + FreshRSS | Monitoramento RSS incremental | Jornais e portais com RSS — só baixa o novo |
| wget / curl | APIs REST com JSON/XML, PDFs com URL direta | Fontes simples com URL estável |
| ArchiveBox | Snapshots WARC + PDF + screenshot por URL | Preservação de evidências web |
Combinação típica para bases de notícias: FreshRSS monitora feeds → feedparser extrai links → Scrapy coleta HTML → Playwright para fontes sem RSS → ArchiveBox preserva snapshots.
Infra: K3s workload. Airflow DAG agenda e orquestra as coletas.
Etapa 2 — Extração
Texto, estrutura e metadados extraídos do documento bruto.
| Ferramenta | Uso | Observação |
|---|---|---|
| Docling | OCR deep learning + parsing estruturado de PDFs e imagens | Primário — qualidade superior. Via GPU platform (API) |
| Apache Tika | Extração de 1000+ formatos (DOCX, ODT, planilhas, HTML) | Fallback para formatos exóticos |
| Grobid | Parser de artigos científicos — autores, afiliações, referências | Só para artigos acadêmicos |
| Camelot | Extração de tabelas de PDFs com camada de texto | Complementa Docling para dados estruturados |
| Whisper + pyannote | Transcrição de áudio/vídeo com diarização de falantes | Via GPU platform (API) |
Infra: K3s. Docling e Whisper consumidos via API da GPU platform — não rodam na data platform.
Etapa 3 — Lakehouse
Bronze → Silver → Gold: dado versionado, consultável via SQL, com rastreabilidade.
| Ferramenta | Papel |
|---|---|
| Apache Airflow | Orquestração de todos os pipelines — DAGs de ingestão, enrichment, sync gold→InvenioRDM |
| Apache Hudi | Formato lakehouse com upsert, time-travel e compaction automática sobre S3 |
| SeaweedFS (S3) | Object storage S3-compatible — backend do Hudi e arquivos originais. Já deployado. |
| Trino | Query engine federada — SQL sobre Hudi + PostgreSQL |
| PostgreSQL | Metadados do InvenioRDM, Airflow, configurações. Já deployado. |
| DVC | Versionamento de datasets de pesquisa no Git — rastreabilidade de análises |
Camadas do lake:
| Camada | Conteúdo |
|---|---|
| Bronze | Documento original + metadados crus do crawler |
| Silver | Texto extraído + NER + embeddings + resumo + keywords |
| Gold | Dados curados e validados → sync para InvenioRDM |
Infra: K3s. LINSTOR para storage dos volumes PostgreSQL. SeaweedFS já em produção no cluster.
Etapa 4 — Enriquecimento
NER, embeddings semânticos, grafo de entidades, resumo automático.
Airflow DAG chama serviços da GPU platform via API:
Documento (silver) │ ├── vLLM → NER (pessoas, organizações, locais, datas, leis) │ → entidades extraídas → Neo4j (knowledge graph) │ ├── vLLM → resumo, classificação temática, keywords │ ├── BGE-M3 → embeddings → Qdrant (busca semântica) │ └── LightRAG → extrai entidades + relações → Neo4j → community detection → summaries hierárquicos| Ferramenta | Papel |
|---|---|
| vLLM | Motor de NER, resumo, classificação — GPU platform via API |
| spaCy | NER local complementar (entidades simples, baixa latência) |
| BGE-M3 | Embeddings densos+esparsos — GPU platform via API → Qdrant |
| Qdrant | Banco vetorial — armazena e serve embeddings para busca semântica |
| Neo4j | Knowledge graph — pessoas, organizações, documentos e relações |
| LightRAG | GraphRAG — extrai grafo via vLLM, detecta comunidades |
Princípio: nenhum modelo roda dentro da data platform. Tudo via API da GPU platform.
Etapa 5 — Busca / Portal
Pesquisador descobre, navega e seleciona o corpus de interesse.
InvenioRDM aqui = portal de busca. Pesquisador encontra documentos por palavras-chave, filtros, ou similaridade semântica.
| Ferramenta | Tipo de busca | Quando usar |
|---|---|---|
| InvenioRDM + OpenSearch | Full-text + facetada | Palavras exatas, filtros por tipo/data/autor |
| Qdrant | Semântica (embeddings) | Busca por significado, sem as palavras exatas |
| Datashare (ICIJ) | Investigativa | Explorar corpus grande, batch search por lista de nomes |
| Open WebUI | Conversacional (RAG) | Perguntas em linguagem natural sobre o corpus |
Etapa 6 — Análise
Pesquisador trabalha sobre o que encontrou.
| Ferramenta | Para quem | O que faz |
|---|---|---|
| QualCoder | Pesquisadores qualitativos | CAQDAS desktop — codificação de texto, imagem, áudio, vídeo |
| Label Studio | Equipes colaborativas | Anotação web com pré-anotação via vLLM |
| CATMA | Humanidades digitais | Anotação hermenêutica, TEI-XML, KWIC |
| JupyterHub | Pesquisadores que programam | Notebooks Python/R com acesso a Trino, Qdrant, Neo4j |
| Superset | Pesquisadores, gestores | BI — dashboards e queries visuais via Trino |
| Marimo | Análise mista | Notebooks reativos — SQL + Python, quali-quanti |
Etapa 7 — Publicação
Dado curado do gold layer recebe DOI, metadados FAIR e acesso controlado.
InvenioRDM aqui = destino de publicação. Papel distinto da etapa 5: o mesmo sistema serve como portal de descoberta para pesquisadores e como repositório institucional de publicação.
| Ferramenta | Papel |
|---|---|
| InvenioRDM | Repositório FAIR — DOI, versionamento, comunidades, acesso controlado |
| Zotero | Gestão bibliográfica — integração com QualCoder para literature review |
| OJS | Publicação de periódicos científicos |
Fases de implementação
Cada fase funciona independente das seguintes.
| Fase | Foco | Estado |
|---|---|---|
| 0 | Fundação | SeaweedFS S3 ✅ · PostgreSQL ✅ · Airflow ✅ · Superset 🚧 |
| 1 | Ingestão básica | Scrapy + Playwright · feedparser · ArchiveBox |
| 2 | Lakehouse | Apache Hudi · Trino |
| 3 | Repositório | InvenioRDM + OpenSearch |
| 4 | Busca semântica | Qdrant + BGE-M3 |
| 5 | CAQDAS | QualCoder + Label Studio + CATMA |
| 6 | Conhecimento | Neo4j + spaCy + LightRAG |
| 7 | Aplicações | JupyterHub · Datashare · Open WebUI · Zotero |
| 8 | IA avançada | Agentic RAG completo |