Alternative à AtScale

L'alternative à AtScale où l'agent n'écrit jamais de SQL

SynaLemma répond aux questions sur vos données métier avec des règles prouvées avant exécution, puis compilées en SQL. L'agent n'écrit jamais de SQL, et la même question donne toujours le même SQL.

SynaLemma

SynaLemma face à AtScale : principales différences

  1. L'agent n'écrit jamais de SQL

    L'agent écrit des règles, pas du SQL. Le moteur vérifie chaque règle, puis écrit un SQL qui ne fait que lire vos tables : ni SQL brut ni injection, c'est prouvé formellement.

  2. Chaque règle prouvée avant de s'exécuter

    Un vérificateur symbolique prouve que chaque règle est bien formée, sûre et qu'elle termine. Une règle invalide est refusée avec la raison, avant toute exécution SQL.

  3. Des assertions qui désignent les lignes en défaut

    Clés, références, totaux ou transitivité s'écrivent en logique du premier ordre. Le moteur parcourt toute la table et renvoie les lignes qui les mettent en défaut.

  4. Des questions de graphe sur vos bases SQL

    Hiérarchies, nomenclatures et chaînes d'approvisionnement sont des règles récursives, dont la terminaison est vérifiée, compilées en SQL sur PostgreSQL, BigQuery, Databricks, Trino, Presto, DuckDB et SQLite. Ni base de graphe, ni migration.

  5. Même question, même SQL

    La même question compile toujours vers le même SQL, et chaque chiffre cite la règle dont il provient. Votre équipe peut lire, corriger ou verrouiller cette règle.

  6. Souverain par construction, pas par contrat

    Données, règles et modèle restent sur votre infrastructure. Le moteur compile le SQL : un petit modèle ouvert suffit, sans frais par token. Le moteur Synalog est open source, sous licence Apache-2.0.

Synalog

Exemple : une requête récursive avec assertions

Une nomenclature à n'importe quelle profondeur, avec deux assertions. Les données contiennent un cycle ; le moteur le signale avant de renvoyer une réponse.

parts.l
# La nomenclature, lue depuis la base de données.
Component(assembly:, part:, quantity:) :- bom(assembly:, part:, quantity:);

# Une pièce est dans un assemblage directement, ou dans l'une de ses pièces.
@Recursive(Contains, 20);
@Assert(Contains,
      transitive: "∀ a b c, Contains a b → Contains b c → Contains a c",
      no_cycle:   "∀ a, ¬ Contains a a");
Contains(assembly:, part:) distinct :- Component(assembly:, part:);
Contains(assembly:, part:) distinct :-
  Contains(assembly:, part: sub),
  Component(assembly: sub, part:);
$ synalog parts.l verify
✓ Contains.transitive holds ✗ Contains.no_cycle is violated: ∀ a, ¬ Contains a a 2 counterexamples: +---------+ | a | +---------+ | "wheel" | | "hub" | +---------+ 2 rows
En un coup d'œil

SynaLemma face à AtScale en un coup d'œil

SynaLemma face à AtScale en un coup d'œil
CritèreSynaLemmaAtScale
Comment un agent répond Il écrit une règle ; le moteur la prouve et compile le SQLL'agent écrit un SELECT SQL et l'envoie au serveur MCP
Ce qui vérifie les définitions Chaque règle prouvée bien formée, sûre et terminante avant exécutionValidation de la syntaxe SML et validateur de modèle de Design Center
Contrôles sur les données Des assertions en logique du premier ordre qui renvoient les lignes en défautContrôles intégrés des clés et des hiérarchies ; pas d'assertions écrites par l'utilisateur
Hiérarchies et chaînes à plusieurs étapes Récursion native à toute profondeur, dont la terminaison est vérifiéeHiérarchies à niveaux ; pas de parent-enfant dans la référence SML
Langage des définitions Synalog, un langage logique open source doté d'un compilateurSML, un format YAML, ou l'éditeur Design Center
Jointures Toute jointure que la règle énonce, aussi loin que la question l'exigeDes jeux de faits vers les dimensions ; plusieurs-à-plusieurs par une table de liaison
Modèle de langage Celui que vous choisissez : un petit modèle ouvert suffit, sans frais par tokenLe modèle du client, comme ChatGPT, Claude ou Gemini
Déploiement Sur site, sur votre infrastructureVotre infrastructure : Kubernetes avec Helm, ou un installateur Linux
AtScale

Pourquoi chercher une alternative à AtScale

  • Du SQL écrit par l'agent

    L'outil MCP run_query valide et exécute un SELECT que l'agent écrit à partir de la question (outils MCP).

  • Des hiérarchies à niveaux

    Les hiérarchies SML sont des niveaux fixes, chacun subdivisant celui du dessus ; les chaînes parent-enfant récursives ne figurent pas dans la référence (dimensions SML).

  • Une validation, pas une preuve

    La CLI SML contrôle la syntaxe et le validateur de modèle contrôle les clés et les hiérarchies ; aucune assertion sur les données écrite par l'utilisateur n'est documentée (SML).

FAQ

Alternative à AtScale : FAQ

Quelle est la meilleure alternative à AtScale pour les agents IA ?

SynaLemma. L'agent écrit des règles au lieu de SQL, chaque règle est prouvée avant exécution, les assertions désignent les lignes en défaut et la récursion est native. Un petit modèle ouvert sur votre propre matériel suffit.

AtScale prend-il en charge les hiérarchies récursives ?

La référence SML ne décrit que des hiérarchies à niveaux. Dans Synalog, la récursion est native : un organigramme ou une nomenclature se suit à toute profondeur, et la terminaison est vérifiée.

Qui écrit le SQL quand un agent interroge AtScale ?

L'agent. Il écrit un SELECT SQL sur le modèle sémantique et l'envoie à l'outil run_query. Dans SynaLemma, l'agent écrit une règle qui est vérifiée, puis compilée en SQL par le moteur.

SynaLemma peut-il fonctionner avec un modèle local ?

Oui. Un petit modèle ouvert sur votre propre matériel suffit, car le moteur compile le SQL.

Sur vos propres données

Venez avec une question à laquelle vos outils actuels ne savent pas répondre.

En 30 minutes, nous vous montrons SynaLemma qui y répond, avec la règle derrière le chiffre et les vérifications qu'elle a passées.