Sintaxa folosita de Oscar este relativ simpla. Nici o definitie a setului de forumle nu e presupusa, dar se presupune ca formula poate fi combinata si construita din alte formule prin folosirea operatiilor cum ar fi conjunctia, negatia sau cuantificarea. Detaliile sunt prezentate in fisierul Syntax. lisp.
      Oscar presupune urmatoarele constante logice: ~,&,v,->,<->,@,=. Formulele sunt liste de 3 simboluri. Urmatoarea lista e o formula:
                                              (((all x) ((P x) ->(- Q x)))) v ((some y) ((P y)&(R y))))
      Daca P e o formula, atunci (- P) e negatia acelei formule. Cuantificatorii au formula (Q var) unde Q poate fi all, some. Dandu-se cuantificatorul (Q var) si o formula P, ((Q var) P) e o formula cuantificata. Rezultatul trebuie inclus intre paranteze.Daca F este un predicat, formulele sunt  construite din el, prin constructie de liste sub forma (F x1...xn). Nu se poate folosi formula standard pentru liste,F(x1..xn) pentru ca nu e o lista Lisp. Aceste expresii sunt destul de dificile. Se face distinctie intre formule si stringuri. Stringurile sunt numite "formule dragute" si sunt construite la randul lor din formule, prin functia "PRETTY" si arata mai mult ca o notatie logica standard. De exemplu, pentru forumla de mai sus, stringul  urmatorul:
                                                "(((all x) ((P x) ->(- Q x)))) v ((some y) ((P y)&(R y)))) "
               Functia REFORM converteste o formula PRETTY intr-o formula obisnuita.
      

                   

                Secventele vor fi ordonate in perechi (X,P) unde X este o secventa supozitie si P e o formula secventa. Formula se va scrie "P/X". O secventa  e dedusa daca e o secventa de noduri ale grafului de deductii si poate fi dedusa fara a fi justificata, pentru ca nodul care o suporta poate fi definit.


                     

                 Setul de noduri deduse vor fi pastrate intr-o lista de concluzii. Regulile de deductii vor accesa aceasta lista mai usor decat sa acceseze graful de deductii. Apare o complicatie cand se folosesc concluziile. Considerand o judecata anticipata avand multiple premise. De exemplu presupunand ca [P,Q] e o judecata(rezolvare) pentru R. Presupunand ca P si Q sunt ambele in coada de deductii. Daca P e regasit primul, se va cauta Q in lista  de concluzii iar apoi se va face deductia lui R. E valabil si ivners.

           Init.lisp
     - fisierul de baza, care contine codul pentru incarcarea tuturor fisierelor utilizate de program;
     - Calea: Oscar-pathname: "/home/okv/oscar/src/"


            Initc.lisp
     - fisier identic cu "Init.lisp";
     - diferenta consta in faptul ca acesta din urma, e folosit pentru o compilare mai rapida, prin incarcarea cailor in intregime: (compile-file (full-pathname-of "nume_fisier.lisp")


            Enviroment.lisp
     - arhitectura agentilor (OSCAR_3.33)
     - se bazeaza pe varianta Oscar_3-32, insa introduce o noua metoda de calculare a grafului
     - definitii de variabile utilizate in program


            Oscar-Tools.lisp
      - definitii de macrouri
      - definitii de functii folosite in program


            Syntax.lisp
      - sintaxa folosita in limbaj , cu functii symbol
      - formule
      - secvente
      - formule pretty, stringuri

            Support-link.lisp
      - legaturi support, definire de structuri
       

           Inference-node.lisp
      - definitie de structura
      - tipul nodului: perceptii, dorinte, inferente

           Assignment_trees_3-32.lisp
      - calculul starilor
      - fixeaza calculul starilor de asignare

          Conclusions.lisp
      - lista premiselor partial instantiate
      - apelul functiei (display-conclusions) determina afisarea celor 27 de noduri ale grafului; nodurile de la 1 la 19 au gradul de acceptare 1, iar cele de la 20 la 27 au gradul 0
      - (display-c-lists) -. afiseaza formula listei pentru cele 27 de noduri:
                             ex: c-list-formula: (Q1 & (Q2&Q3))
                                  #17 sup = {} pentru nodul 17,unde sup=supozitiile asupra nodului

         Ultimate-epistemic-interests.lisp
      - afisarea cerintelor
      - coada de cerinte
      - se alege problema din lista celor 104
      - determina daca interesele sunt satisfacute sau nu; daca raspunsul la intrebare este null => se afiseaza :"nu a fost gasit nici un argument"
   

          Interests.lisp
      - instantierea premiselor
      - grful intereselor
      - graful nodurilor
          

         Forward-reasons.lisp
     - definsete o structura generica ale carei sloturi sunt folosite in comun de deductiile anterioare si ulterioare
        

         Backward-reasons.lisp
       - structuri de date ce contin urmatoarele informatii:

                -numele justificarii
                -functia justificarii, explicatiei
                -premise forward
                -premise bacward
                -concluzii justificate - o lista de formule
                -variabile justificate
                -strength - variabila reala cuprinsa intre 0 si 1 sau o expresie ce contine variabile justificate evaluate la un numar
                -regula nerealizabila: T daca ea e nerealizabila si NIL in rest
                -conditii de judecata - conditiile ce trebuie satisfacute de secventa de itneres
                -lungimea judecatii - nuamrul premiselor forward
                -factorul de reducere: nuamr real intre 0 si 1, folosit pentru determinarea judecatilor prioritare
                -variabile concluzii: concluzia judecatii

         Inference-queue.lisp
      - definirea cozii de inferente
      - afisare
      - calculul gradului de acceptare al premiselor
      - premisele au trei cinstituenti(formula, supozitia si un grad de support)
      -codificarea stari nodurilor (perceptii si dorinte primitive) => graful nodurilor de interes
      - o lista de structuri de date numite noduri ale cozii de deductii ce contine urmatoarele informatii:
                  ° nodul de introdus in coada: un interes , o intrebare
                  ° un item nou: intrebare, concluzie, interes
                  ° item complex
                  ° reducere a lungimii
                  ° gradul de acceptare
             Ordinea nodurilor va fi data de relatia : "X este preferat de Y"( daca gradul de acceptare a lui X este mai mare decat gradul de acceptare a lui Y)

        Reasons.lisp
      - afisarea rezultatelor proiectului se face in aceasi fereastra. Controlul e determinat de functii definite in acest fisier, functii care in general pot lua doua valori,corespunzatoare lui on/off
       -(proof-on)-Toate argumentele relevante sunt afisate la sfarsitul programului;Daca programul e oprit inainte sa se termine, vor fi afisate argumentele descoperite pana in acel moment, folosind functia (show-arguments);          default este off;

       -(proof-off) — Argumentele nu sunt afisate
       -(display-on) —judecata este afisata (default este"off".)
       -(display-off) — judecata nu e afisata
       -(trace-on) —activeaza modul display si da informatii detaliate despre ce operatii au loc. Este adesea folosit pentru compilare si pentru intelegerea codului(default e "off")
       -(trace-off) — inchide modul trace, dar lasa display-ul activ
       -(trace-from n) — deschide modul trace cand numarul concluziei e luat din coada de deductii
       -(logic-on) — activeaza folosirea regulilor logice (default este"on".)
       -(logic-off) — dezactiveaza posibilitatea de a folosi regulile logice
       -(reductio-on) — activeaza posibilitatea de a dovedi ca, contrariul unei propozitii este total fals, deci propozitia e adevarata (default este "on".)
       -(reductio-off) — dezactivare
       -(pause-on) — pauza intre probleme (default este "off".)
       -(pause-off) —dezactiveaza pauza
       -(log-on) — se vor afisa toate judecatile dupa terminare si se va indica care dintre ele a fost folosita pentru a obitne solutia (default este "off".)
       -(log-off) — dezactivare          

        Skolemization.lisp
      - functii de conversie a variabilelor de interes in variabile concluzii
      

         Unification.lisp
     - ex: Daca p si q sunt variabile libere, ele trebuie rescrise inainte sa aplicam algoritmul de unificare. Codul din acest fisier produce o pereche de substituenti (m1 m2) aplicand m1 lui p si m2 lui q, le unifica.

         Reason-macros_3-30.lisp
     - acest fisier ofera codul pentru macrouri
     - premisele si concluziile sunt luate drept forumle/expresii

          Prob_compiler_3-24.lisp
     - O problema e o lista care contine urmatoarele:
               o 1. numarul problemei
               o 2. lista de premise, care sunt perechi (formula, grad de justificare)
               o 3. lista de concluzii formata din perechi( formule, grad de interes)
               o 4. liste de deductii anticipate, cvintuple (nume, premise, concluzii, variabile, strength)
               o 5. lista de concluzii anticipape, 4(nume, premise, concluzii, variabile)
               o 6. lista de deductii ulterioare, 6
               o 7. lista de concluzii ulterioare, 5
               o 8. un string optional care descrie problema
      - Toate formulele pot fi introduce ca si formule "pretty"
      - Compilatorul problemelor

           Rules_3-30.lisp
      - reguli pentru alculul predicatelor si calculul propozitional

            Combined-problems.lisp
      - fisierul defineste 104 probleme si o functie test care are ca argument sau nu, numarul problemei
        

            Agent-arguments5.lisp
     - afisarea argumentelor

FISIERE UTILIZATE SI SINTAXA