Sita de evaluare verifica daca implementarea respecta contractele arhitecturale end-to-end: ingestie in Sys2DSL, encodare geometrica determinista, organizare in teorii, reasoning deductiv/abductiv/analogic si raspuns explicabil. Fiecare caz este o poveste scurta in limbaj natural care se transforma in fapte asteptate si interogari verificate.
Link direct catre suita: evalsuite/ (README, runSuite.js, rezultate)
Comenzi rapide:
node evalsuite/runSuite.js --dry-run
node evalsuite/runSuite.js --case 03_deontic_reasoning --verbose
Cum este structurata suita
Fiecare folder numerotat contine un case.json cu trei blocuri esentiale: theory.natural_language (textul brut de invatat), theory.expected_facts (faptele pe care encoderul trebuie sa le derive) si queries (intrebari in limbaj natural cu raspunsuri asteptate si nivel de adevar). Optional, o intrebare poate defini un bloc counterfactual pentru a activa o teorie temporara. Rularea suitei scrie un results.json sumar, util pentru CI.
Cazuri ilustrative
01_taxonomy - lanturi IS_A tranzitive
- Context: mamifere, animale, pasari, instantiere de exemplare (Fido, Whiskers, Sparky).
- Intrebare cheie: "Is Fido an animal?" trebuie sa traverseze Dog -> Mammal -> Animal, iar "Is Sparky a mammal?" trebuie sa raspunda fals pe baza disjunctiei implicite.
- Testeaza: inferenta tranzitiva, propagare negativa pe lanturi si coerenta clasei de baza.
02_physical_properties - stari de agregare si comparatii
- Context: apa la diverse temperaturi (Celsius0, Celsius100), gheata si abur, metale cu topire/densitate.
- Intrebari: temperatura de fierbere a apei, daca mercurul este solid, si enumerarea starilor apei.
- Testeaza: fapte directe BOILS_AT/FREEZES_AT, disjunctie solid vs liquid si compunerea starilor derivata din sinonime (ice, steam).
03_deontic_reasoning - permisiuni si interdictii
- Context: spatii aeriene (spital, scoala, proprietate privata, centru) si exceptii pentru MedicalDrone, PoliceDrone, CommercialDrone.
- Intrebari: override-ul permisiunii medicale peste interdictia generala, interdictia pentru drone comerciale in centru, zona permisa implicita.
- Testeaza: combinarea PERMITTED_IN/PROHIBITED_FROM, mostenirea regulilor pe subtipuri si rezolvarea de conflicte normative.
04_counterfactual - scenarii what-if
- Context: punct de fierbere al apei, temperaturi de camera/corp, dependenta de supravietuire umana de apa lichida.
- Intrebari: ce se intampla daca apa fierbe la 50C sau 30C, si un caz mai speculativ fara gravitatie.
- Testeaza: aplicarea unei teorii temporare cu
removes, recalcularea verdictelor si tratamentul raspunsurilor PLAUSIBLE cand lantul cauzal este incomplet.
05_abductive - cea mai buna explicatie
- Context: simptome (febra, tuse, oboseala) si cauze candidate (infectii, alergii, gripa, toxiinfectie alimentara).
- Intrebari: diagnostic pentru febra+tuse (respiratory infection), adaugarea oboselii (influenza), eliminarea ipotezei food poisoning.
- Testeaza: scorarea acoperirii simptomelor, preferinta pentru ipoteza cu acoperire maxima si excluderea cauzelor partiale.
06_analogy - transfer structural
- Context: pattern lider-organizatie-loc (rege-regat-castel, CEO-companie-HQ, parinte-familie-casa, profesor-clasa).
- Intrebari: presedinte la ce conduce, unde lucreaza un capitan, ce relatie are un dirijor cu orchestra.
- Testeaza: mapare analoga a relatiei de conducere si a locului asociat, inclusiv generare de completari plauzibile.
07_conflict_detection - disjunctii si contradictii
- Context: muritor vs nemuritor (Socrate, Zeus), disjunctii explicite si proprietati derivate (moarte vs viata eterna).
- Intrebari: imortalitatea lui Socrate, conflictul daca Socrate ar fi zeu, mortalitatea lui Zeus.
- Testeaza: DISJOINT_WITH, verificari CHECK_WOULD_CONTRADICT si respectarea consecventei in raspuns.
08_multi_theory - comutare intre contexte
- Context: fizica standard (viteza luminii, limite), scenarii SF (warp drive, hyperspace), si perspectiva cuantica (entanglement fara transfer de informatie).
- Intrebari: timpul luminii pana la Pamant, posibilitatea vitezelor superluminice in Star Trek, folosirea entanglement-ului pentru comunicare.
- Testeaza: izolarea teoriilor paralele, raspunsuri diferentiate real vs fictiune si evitarea extrapolarii nepermise.
Ce ar trebui sa verifici cand rulezi sita
- Encoderul extrage toate
expected_facts (verifica rezultate partiale in --verbose).
- Reasonerul respecta nivelele de adevar (
TRUE_CERTAIN, FALSE, PLAUSIBLE, UNKNOWN) si furnizeaza explicatii legate de traseul de inferenta.
- Manipularea teoriilor temporare nu polueaza baza permanenta (rezultatele revin la normal dupa un caz contrafactual).
- Rularea completa produce un
results.json stabil, util pentru trenduri de regressie.