Het Apache Ossie-alternatief: een taal met een compiler en een verifier
Synalog-definities bouwen op elkaar voort, compileren naar SQL op zeven engines en worden geverifieerd voordat ze draaien.
SynaLemma vs Apache Ossie in één oogopslag
| Criterium | SynaLemma | Apache Ossie |
|---|---|---|
| Wat het is | Een taal met een compiler en een verifier | Een YAML-specificatie om definities uit te wisselen |
| Voert query's uit | Ja: compileert naar SQL voor zeven engines | Nee: elke tool die het bestand leest, beslist zelf |
| Definities bouwen op elkaar voort | Ja: regels gebruiken andere regels | Nee: een metric kan niet naar een andere metric verwijzen |
| Relaties | Elke relatie die een regel vastlegt | Veel-op-een foreign keys |
| Hiërarchieën en ketens over meerdere stappen | Native recursie, met geverifieerde beëindiging | Niet uit te drukken |
| Wat de definities controleert | Een symbolische verifier, plus asserties op de data | Validatie tegen het schema en de verwijzingen |
| Voor agents | De analist schrijft regels die de verifier controleert | Hints in vrije tekst (ai_context) die een model kan lezen |
Waarom teams een Apache Ossie-alternatief zoeken
-
Alleen een bestandsformaat. Ossie voert geen query's uit; elke tool beslist zelf hoe het naar SQL wordt omgezet (Ossie).
-
Geen compositie. Een metric kan niet naar een andere metric verwijzen, en datasets kunnen niet op elkaar voortbouwen (specificatie).
-
Alleen veel-op-een. Elke relatie is een veel-op-een foreign key (relationele semantiek).
-
Alleen schemavalidatie. Een geldig bestand zegt niets over wat de metrics berekenen.
SynaLemma vs Apache Ossie: de belangrijkste verschillen
1. Een compiler
Eén Synalog-programma compileert naar SQL voor PostgreSQL, BigQuery, Databricks, Trino, Presto, DuckDB en SQLite.
2. Definities die op elkaar voortbouwen
Regels gebruiken andere regels, zodat een definitie eenmaal wordt geschreven en wordt hergebruikt.
3. Recursie en tijd
Hiërarchieën, ketens over meerdere stappen, negatie en redeneren over tijd, in dezelfde taal.
4. Een verifier en asserties
Van elke regel wordt bewezen dat hij welgevormd en veilig is en eindigt, en asserties controleren de data met tegenvoorbeelden.
Voorbeeld: een definitie en haar asserties
Omzet per klant, met drie asserties. Klant 12 ontbreekt in de klantentabel; de engine noemt de rij.
Order(order_id:, customer_id:, amount:, status:) :- orders(order_id:, customer_id:, amount:, status:);
Customer(customer_id:, country:) :- customers(customer_id:, country:);
@Assert(Revenue,
one_row_per_customer: "∀ c r s, Revenue c r → Revenue c s → r = s",
known_customer: "∀ c r, Revenue c r → ∃ k, Customer c k",
positive: "∀ c, Revenue c > 0");
Revenue(customer_id:, revenue? += amount) distinct :-
Order(customer_id:, amount:, status: "delivered"); Bronnen
Gecontroleerd aan de hand van de openbare documentatie van elk product op de herzieningsdatum. Een fout melden: contact@synalinks.com.
Apache Ossie-alternatief: veelgestelde vragen
Wat is het verschil tussen Apache Ossie en Synalog?
Ossie is een YAML-formaat om definities uit te wisselen; het voert geen query's uit. Synalog is een taal met een compiler en een verifier.
Kan een Ossie-metric naar een andere metric verwijzen?
Niet in de huidige versie van Ossie. In Synalog gebruiken regels andere regels.
Volstaat een bestand met de semantische laag voor AI-agents?
Nee. Een bestand geeft een model hints. SynaLemma verifieert elke definitie die een agent schrijft, voordat ze wordt gebruikt.
Neem een vraag mee die uw huidige stack niet kan beantwoorden.
In 30 minuten laten wij zien hoe SynaLemma die beantwoordt, met de regel achter het getal en de controles die het doorstond.