1. Finalidade
Esta página define as regras de funcionamento do subsistema Busca Geral do OLA. Seu objetivo é orientar como a busca deve ser gerada, atualizada, usada e evoluída dentro da arquitetura do OLA.
2. Posicionamento no OLA
A Busca Geral do OLA é um subsistema de recuperação de conhecimento. Ela não produz conhecimento diretamente; ela permite localizar artefatos já existentes na estrutura física do OLA.
Conhecimento estruturado
↓
Artefatos publicados
↓
Pastas e arquivos do OLA
↓
busca_index.json
↓
busca.html
↓
Recuperação pelo usuário
3. Regra de escopo
A busca deve localizar apenas arquivos públicos e úteis para consulta, aprendizagem, navegação e recuperação de conhecimento no OLA.
| Inclui | Não inclui inicialmente |
|---|---|
| Páginas HTML e HTM | Arquivos privados |
| Imagens PNG, JPG, JPEG, SVG e WEBP | Arquivos temporários |
| Arquivos PDF publicados | Arquivos de sistema |
| Demandas, entregas, fundamentos e domínios publicados | Pastas de backup, rascunho ou desenvolvimento interno |
4. Regra da fonte da verdade
A fonte primária da busca deve ser a estrutura física real do OLA, isto é, suas pastas e arquivos.
Estrutura física do OLA
↓
gerar_busca_index.py
↓
busca_index.json
↓
busca.html
Portanto, a busca não deve depender de cadastro manual item a item.
5. Regra de geração do índice
O arquivo busca_index.json deve ser gerado automaticamente por um script
local, executado no Mac, antes da publicação.
python3 gerar_busca_index.py
O script deve percorrer as pastas autorizadas, identificar os arquivos permitidos
e montar um índice consultável pela página busca.html.
6. Regra de atualização
Sempre que houver inclusão, exclusão ou alteração relevante de páginas, imagens ou PDFs, o índice deve ser atualizado.
| Situação | Ação necessária |
|---|---|
| Nova página HTML | Rodar o gerador e publicar o novo busca_index.json. |
| Nova imagem | Rodar o gerador para a imagem aparecer na busca. |
| Arquivo removido | Rodar o gerador para retirar o item do índice. |
| Arquivo renomeado | Rodar o gerador para atualizar nome e caminho. |
7. Regra de nomenclatura
Os nomes dos arquivos devem favorecer a recuperação. O nome do arquivo também é informação de busca.
| Preferir | Evitar |
|---|---|
ola_como_organismo_vivo.png |
imagem1.png |
requisitos_busca_geral_ola.html |
pagina_final.html |
sistema_cognitivo_conhecimento_ola.html |
texto_novo.html |
8. Regra de classificação automática
Cada item indexado deve receber informações derivadas automaticamente do próprio caminho e da extensão do arquivo.
{
"titulo": "OLA como Organismo Vivo",
"caminho": "demandas/ola_organismo_vivo/ola_como_organismo_vivo.png",
"area": "demandas",
"formato": "imagem",
"extensao": "png"
}
9. Regra de recuperação
A busca deve considerar, no mínimo, os seguintes elementos:
- nome do arquivo;
- caminho do arquivo;
- área ou pasta principal;
- tipo de arquivo;
- extensão do arquivo.
Exemplo: a busca por organismo vivo deve recuperar arquivos cujo nome
ou caminho contenha esses termos, mesmo que o usuário não saiba o nome completo.
10. Regra de abertura dos resultados
Todo resultado encontrado deve possuir link clicável para abertura do arquivo.
- Páginas HTML devem abrir como páginas navegáveis.
- Imagens devem abrir em nova aba ou painel do navegador.
- PDFs devem abrir no visualizador do navegador.
11. Regra de miniaturas
Quando o resultado for uma imagem, a busca deve mostrar uma miniatura clicável.
Resultado de imagem:
- título
- miniatura clicável
- caminho clicável
- área
- extensão
12. Regra de exclusão da indexação
O gerador deve ignorar arquivos e pastas que não devem aparecer para o usuário final.
.DS_Store
.git/
__pycache__/
node_modules/
backup/
rascunhos/
arquivos_temporarios/
*.tmp
*.bak
13. Regra de segurança
A busca não deve expor arquivos privados, notas sensíveis, versões internas não publicáveis, arquivos pessoais ou qualquer conteúdo que não faça parte do OLA público.
Antes de publicar o busca_index.json, deve-se verificar se não há caminhos
indevidos no índice.
14. Regra de responsividade
A página de busca deve funcionar em celular, tablet, desktop e TV, respeitando o padrão visual do OLA.
- No desktop, pode usar filtros e resultados em área ampla.
- No celular, os resultados devem aparecer em cards empilhados.
- Miniaturas não devem ultrapassar a largura da tela.
- Caminhos longos devem quebrar linha ou ter rolagem controlada.
15. Regra de funcionamento sem back-end
Na primeira versão, a busca deve funcionar apenas com:
HTML
CSS
JavaScript
JSON
Ela não deve depender de banco de dados, login, PHP, Node.js ou Python no servidor. O Python será usado apenas localmente para gerar o índice.
16. Regra de publicação
Após gerar o índice no Mac, devem ser publicados na Hostinger:
busca.html
busca_index.json
novas páginas
novas imagens
novos PDFs
O arquivo gerar_busca_index.py pode permanecer no Mac e não precisa ser
publicado, a menos que seja desejado como documentação técnica.
17. Regra para testes e TDD
Para cada regra importante da busca, deve existir pelo menos um caso de teste.
| Regra | Teste esperado |
|---|---|
| Buscar imagem por nome | Buscar organismo vivo deve retornar a imagem correspondente. |
| Abrir resultado | Clicar no resultado deve abrir o arquivo. |
| Ignorar arquivo temporário | Arquivos .tmp não devem aparecer no índice. |
| Atualizar índice | Após novo arquivo e nova geração, o item deve aparecer na busca. |
18. Regra de evolução
A busca deve começar simples, mas preparada para evoluir.
- Versão 1: busca por nome, caminho, área e extensão.
- Versão 2: extração de título das páginas HTML.
- Versão 3: busca em conteúdo textual das páginas.
- Versão 4: filtros por demanda, entrega, domínio, fundamento e tipo de artefato.
- Versão 5: busca semântica ou apoio por IA.
19. Síntese das regras
A Busca Geral do OLA deve recuperar conhecimento a partir da estrutura física do próprio OLA. Ela deve funcionar sem back-end, com índice JSON gerado automaticamente, links clicáveis, miniaturas para imagens, filtros simples e atualização por geração local.
20. Rastreabilidade entre requisitos e regras
| Requisito | Regras relacionadas | Sentido da relação |
|---|---|---|
| RF01 — Buscar páginas HTML | 3. Escopo; 9. Recuperação; 10. Abertura | Define quais páginas entram na busca, como são recuperadas e como são abertas. |
| RF02 — Buscar imagens | 3. Escopo; 9. Recuperação; 10. Abertura; 11. Miniaturas | Define inclusão de imagens, localização, abertura e visualização por miniatura. |
| RF03 — Abrir resultados | 10. Abertura | Garante que todo resultado seja clicável. |
| RF04 — Exibir miniatura de imagens | 11. Miniaturas | Garante apresentação visual para imagens recuperadas. |
| RF05 — Filtrar por área | 8. Classificação; 9. Recuperação | Depende da identificação automática da área pelo caminho do arquivo. |
| RF06 — Filtrar por formato | 8. Classificação; 9. Recuperação | Depende da identificação do formato e da extensão do arquivo. |
| RF07 — Buscar por nome e caminho | 7. Nomenclatura; 9. Recuperação | Relaciona o nome significativo dos arquivos com sua recuperação pela busca. |
| RF08 — Gerar índice automaticamente | 4. Fonte da verdade; 5. Geração do índice; 6. Atualização | Define que o índice nasce da estrutura física real do OLA. |
| RF09 — Ignorar arquivos desnecessários | 12. Exclusão; 13. Segurança | Evita que arquivos temporários, privados ou indevidos sejam indexados. |
| RF10 — Exibir quantidade de resultados | 9. Recuperação; 14. Responsividade | Define retorno visível e compreensível ao usuário. |
| RNF01 — Funcionar sem back-end | 15. Sem back-end; 16. Publicação | Define que a solução inicial usa HTML, CSS, JavaScript e JSON. |
| RNF03 — Ser responsiva | 14. Responsividade | Garante funcionamento em celular, tablet, desktop e TV. |
| RNF05 — Evitar cadastro manual | 4. Fonte da verdade; 5. Geração do índice | Garante que o índice seja automático, não manual. |
| RNF07 — Preservar segurança | 12. Exclusão; 13. Segurança | Impede exposição de arquivos privados ou indevidos. |