Artur Protasewicz
2013-10-06 09:51

Słownik "Bułka z masłem": A4, Word, Times New Roman 12, marginesy normalne

Krótkie uzupełnienie do artykułu:
Regułowy System ekspercki / Rule-driven expert system

"Na początku było słowo," (Jan 1,1) – tego nigdy nie zrozumiem. Ludzki mózg, to nieodgadniona tajemnica, a mózg programisty jest po prostu arcydziełem (pytanie czyim: Boga, czy ewolucji, czy tajemniczego sprawcy z kosmosu?) Oto, jak trudno jest powiedzieć słowami to, co mózg programisty rozumie po jednym spojrzeniu na kod. Sam nie wiem, ile jest moich błędów w słowniku "Bułka z masłem" poniżej. Tym bardziej nie rozumiem, że "Na początku było słowo,"(?)

/*Zwróć fragment wniosku w formie słownej znajdujący się w pewnej kolumnie i pewnym wierszu tabeli z regułami wnioskującymi.*/
String Conclusions(int Column, int Row) 
      return (String)grdConclusions[Column, Row].Value;

/*Jeśli operator o numerze Index znajdujący się w kolumnie RelacjaAB (inaczej w kolumnie operatora pomiędzy faktem A i faktem B) jest ORAZ ("I", "and"), do części ścieżki lub bieżącej ścieżki uzasadnienia "dlaczego?" dla relacji Fakt A ORAZ Fakt B dodaj tekst złożony z nazwy faktu A i nazwy faktu B połączonych iloczynem logicznym, ujęty w nawiasy okrągłe.*/
if (Conclusions(abRelationCol, ConclusionIndex) == "and")
      sFact += "(" + FactA + " and " + FactB + ")";

/*Jeżeli rezultat warunku logicznego jest true (prawda), do ścieżki uzasadnienia "dlaczego?" dodaj zdanie twierdzące, że wniosek zachodzi (is true = jest prawdą) i zmniejsz wcięcie oraz zwróć potwierdzenie prawdziwości wniosku.*/
if (result) { WhyPath("conclusion " + Conclusion + " is true"); Nested--; return true; }

/*Czy zachodzi fakt A dla wniosku o indeksie Index dla kandydata Candidate na męża dla Alicji?*/
IsFactA(int ConclusionIndex, String Candidate)

/*Jeżeli i-ty fakt w kolumnie "Obiekt" tabeli fakty to imię kandydata na męża dla Alicji i kandydat ma cechę nazwaną tekstem FaktA, do ścieżki uzasadnienia "dlaczego?" dodaj zdanie twierdzące, że FaktA zachodzi (is true = jest prawdą) dla danego kandydata i zmniejsz wcięcie oraz zwróć potwierdzenie tego, że zachodzi faktA dla kandydata Candidate.*/
if (Facts(objectCol, iFact) == Candidate && Facts(attributeCol, iFact) == FactA) {
      WhyPath("fact " + FactA + " is true for " + Candidate); Nested--; return true;
}

/*Dla każdej osoby spośród kandydatów na męża dla Alicji, jeżeli równocześnie prawdziwy jest wniosek mówiący, że Alicja może poślubić daną osobę i fałszywy jest wniosek mówiący, że Alicja nie może poślubić danej osoby, do zbioru osób, które może poślubić Alicja dodaj kandydata.*/
foreach (String Person in Persons) { 
      if (Is("can marry", Person) && !Is("cannot marry", Person)) result.Add(Person);
}
aurel

@Artur Protasewicz: Ale czym właściwie jest "słowo"? Za wiki: "zespół dźwięków mowy ludzkiej będący symbolicznym oznaczeniem jakiegoś pojęcia". Znaczy to IMHO mniej więcej tyle, że stworzenie nie było przypadkowe, lecz właśnie na początku było słowo (znaczenie, pojęcie, wyraz woli Boga), a dopiero na jego podstawie - stworzenie. Nie na odwrót ;)
A to wszystko tylko pod warunkiem, że przejdziemy ponad interpretację oczywistą - słowo jest synonimem Jezusa ;) (co wynika z dalszej części tekstu: "Słowo stało się ciałem i zamieszkało wśród nas. Oglądaliśmy Jego chwałę, którą jako Jednonarodzony, pełen łaski i prawdy, ma od Ojca.")