Skip to main content

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.

PyPI version Python License INPI

"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 da WorkingMemory, permitindo o processamento seguro de múltiplos pacientes/casos em sequência.
  • ✅ Novos Operadores Lógicos: Suporte nativo para AND, OR, NOT e AS (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 MATCH para ligar variáveis e AND/OR para 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.



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

ikin_expert-2.0.2.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ikin_expert-2.0.2-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

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

Hashes for ikin_expert-2.0.2.tar.gz
Algorithm Hash digest
SHA256 54a22de5e7eaac0c18a86d86af17f614211ba2d9638cd69a3aa266107f0ffcf9
MD5 c793b7922a48393cd33f68c8620c5b49
BLAKE2b-256 ffc1cc00b80499e43386976c9dd583f0d0268be247e6fb7cda10e72a17aceefe

See more details on using hashes here.

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

Hashes for ikin_expert-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2eece2689236af02010e69d4818217aaf7bff84dd7d90c0afa556f82d5a7cc43
MD5 a6bf0b193d99853ed9a50c3ecb1687df
BLAKE2b-256 5332cad14843d79f75a8ef4491cca9f41fc9c54a5cbe66b7c2692bda21550160

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page