High-Performance Rete Engine with Hash Joins for Python.
Project description
Ikin-Expert 🧠 v2.0.2
A High-Performance Rete Engine with Hash Joins for Python.
"A ciência é feita de dados, mas a sabedoria é feita de inferências."
🚀 O que há de novo na v2.0.2?
Esta versão consolida o motor para uso em Sistemas Críticos (HealthTech):
- ✅ Correção de Memória: O método
.reset()agora garante a limpeza total daWorkingMemory, permitindo o processamento seguro de múltiplos pacientes/casos em sequência. - ✅ Novos Operadores Lógicos: Suporte nativo para
AND,OR,NOTeAS(Alias) para regras complexas. - ✅ Hash Joins O(1): Cruzamento de dados instantâneo entre fatos diferentes utilizando tabelas hash indexadas.
📋 Sobre o Projeto
O Ikin-Expert é uma biblioteca de Sistemas Especialistas projetada para substituir ferramentas legadas no ecossistema Python moderno (3.10+).
Diferente de antecessores que utilizavam estruturas de dados lentas, o Ikin-Expert implementa Indexação Automática e tipagem forte com Pydantic.
Principais Diferenciais
- ⚡ Hash Joins (O(1)): Se você cruzar 10.000 Pacientes com 10.000 Exames, o sistema usa índices hash para encontrar pares instantaneamente, evitando o produto cartesiano lento.
- 🛡️ Type Safety: Integração nativa com Pydantic.
- 🔗 Sintaxe Poderosa: Use
MATCHpara ligar variáveis eAND/ORpara lógica condicional aninhada. - 🏥 Medical-Grade: Projetado para suportar o projeto NephroIA (Diagnóstico Renal), garantindo estabilidade e precisão.
🛠 Instalação
Agora disponível oficialmente no PyPI:
pip install ikin-expert
Requisitos: Python 3.10 ou superior.
💻 Exemplo de Uso: Automação Residencial (IoT)
Veja como criar um "cérebro" para uma casa inteligente que toma decisões baseadas em sensores:
from ikin_expert import KnowledgeEngine, Rule, Fact, MATCH, OR
# 1. Definindo os Sensores (Fatos)
class Sensor(Fact):
tipo: str # "movimento", "temperatura", "fumaca"
local: str # "sala", "cozinha", "quarto"
ativo: bool
class Ambiente(Fact):
periodo: str # "dia", "noite"
# 2. Criando o Cérebro da Casa
class HomeAssistant(KnowledgeEngine):
# REGRA: Iluminação Inteligente
# SE detectar movimento em um local (MATCH.loc) E for noite...
# ... ENTÃO acenda a luz DAQUELE local específico.
@Rule(
Sensor(tipo="movimento", local=MATCH.loc, ativo=True),
Ambiente(periodo="noite")
)
def acender_luzes(self, loc):
print(f"💡 AÇÃO: Movimento detectado! Acendendo luzes da {loc}.")
# REGRA: Segurança Crítica (Incêndio)
# SE detectar fumaça OU temperatura muito alta (> 60 graus)...
# ... ENTÃO dispare o alarme geral.
@Rule(
OR(
Sensor(tipo="fumaca", ativo=True),
Sensor(tipo="temperatura", valor__gt=60.0)
),
salience=100 # Prioridade máxima! Executa antes de tudo.
)
def alarme_incendio(self):
print("🔥 EMERGÊNCIA: Risco de Incêndio! Ativando sprinklers e sirene.")
# 3. Execução
jarvis = HomeAssistant()
jarvis.reset()
# Cenário: É noite, houve movimento na sala e a cozinha está pegando fogo
jarvis.declare(Ambiente(periodo="noite"))
jarvis.declare(Sensor(tipo="movimento", local="sala", ativo=True))
jarvis.declare(Sensor(tipo="temperatura", local="cozinha", valor=85.0))
jarvis.run()
🆚 Comparativo de Performance
| Tecnologia | Método de Junção | Resultado (1k x 1k dados) |
|---|---|---|
| Legado / Naive | Loop Aninhado | 🐌 Lento / Trava CPU |
| Ikin-Expert v2.0 | Hash Join Indexado | 🚀 Instantâneo |
⚖️ Propriedade Intelectual
- Registro de Software (INPI): BR 51 2026 000822-0
- Licença: Dual License (MIT + Apache 2.0)
👨🏿🔬 Autor e Pesquisador
Desenvolvido por Kalluan Cley Fiuza.
- 🔬 Foco de Pesquisa: HealthTech, IA Simbólica, Nefrologia Computacional.
- 🏢 Mantenedor: Projeto incubado no ecossistema Kalluan Cartoon™.
- 📧 Email: kalluancartoon@gmail.com
- 🔗 LinkedIn: Kalluan C. Fiuza
- 🆔 ORCID: 0009-0005-2693-6477
- 📚 Currículo Lattes: Acessar Lattes
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ikin_expert-2.0.2.tar.gz.
File metadata
- Download URL: ikin_expert-2.0.2.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54a22de5e7eaac0c18a86d86af17f614211ba2d9638cd69a3aa266107f0ffcf9
|
|
| MD5 |
c793b7922a48393cd33f68c8620c5b49
|
|
| BLAKE2b-256 |
ffc1cc00b80499e43386976c9dd583f0d0268be247e6fb7cda10e72a17aceefe
|
File details
Details for the file ikin_expert-2.0.2-py3-none-any.whl.
File metadata
- Download URL: ikin_expert-2.0.2-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eece2689236af02010e69d4818217aaf7bff84dd7d90c0afa556f82d5a7cc43
|
|
| MD5 |
a6bf0b193d99853ed9a50c3ecb1687df
|
|
| BLAKE2b-256 |
5332cad14843d79f75a8ef4491cca9f41fc9c54a5cbe66b7c2692bda21550160
|