<  1  2 

projekt maszyny myślącej Thinker

Wprowadzenie do opisu języka SymP

SymP oznacza język opisu struktury złożonej z symboli oraz sposobów jej przetwarzania. Struktura ta tworzy uniwersalną bazę wiedzy o wszechstronnym zastosowaniu, dlatego innym rozumieniem języka SymP jest język przetwarzania symbolicznego do zarządzania uniwersalną bazą wiedzy (Symbolic Processing Language for Management Universal Knowledge Base).

SymP został opracowany w 2007 r. przez zespół net3plus. Język ten został wykorzystany do realizacji symbolicznej pamięci operacyjnej pierwszej w historii maszyny myślącej serii thinker (rok 2007) <czytaj>.

Celem projektu SymP było opracowanie środowiska i metod przetwarzania symboli, jakie mają miejsce w procesie myślenia człowieka. Naczelną zasadą, jaką się kierowano, była chęć uzyskania największego stopnia uproszczenia, nie znanego jeszcze w dotychczasowych językach programowania. Upragnionym celem była chęć uwolnienia się od komputerowej metodologii, czyli od komputera. Dzięki temu uzyskano dużą uniwersalność i przenośność systemów opartych o SymP, z możliwością wyjścia nawet poza samo środowisko komputera (maszyny nowej generacji).

Wcześniej również powstawały podobne koncepcje systemów, ale kończyły się jedynie na określeniu tych koncepcji z wyjątkiem projektu FGCS - komputera V generacji, który doczekał się okresu realizacji <czytaj>.

Spis treści

Symbol

Jedynym podstawowym elementem jakiego używa język SymP jest symbol i w tym tkwi siła tego języka oraz daje uniezależnienie się od komputera. Czyni to SymP swoistym językiem działającym na symbolach.

Symbol jest to twór występujący pod postacią znaku (lub znaków), którego istnienie wynika z tego, że coś on oznacza, coś przedstawia lub coś reprezentuje. Z symbolem jest skojarzone też jego znaczenie.

Z istnieniem symbolu wiąże się też jego nazwa. Nazwa symbolu nie jest tożsama ze znakiem (bądź znakami) przedstawiającym symbol, lecz może służyć do identyfikacji symbolu, co ma miejsce w SymP.

W języku SymP z nazwą symbolu jest skojarzony odpowiadający mu desygnat złożony z zestawu innych symboli oraz skojarzone znaczenie symbolu zawarte w bazie wiedzy. Nie potrzeba więc wiedzy człowieka na przetrzymywanie znaczenia symbolu związanego z jego nazwą.

W innych językach programowania pseudo symbolicznego na przykład Lisp lub Prolog, symbol przedstawiony jest w postaci ciągu liter, który dopiero w pamięci człowieka jest kojarzony z pewnym znaczeniem. Bez wiedzy człowieka jest tylko ciągiem liter, który może być zestawiony z innymi ciągami, w pewne struktury. Nie mamy wówczas do czynienia z działaniem na symbolach, lecz na ciągach znaków.

Definiowanie symbolu

Symbol może wskazywać jakiś desygnat istniejący w rzeczywistości lub też jakiś zestaw innych symboli. Możliwość wskazywania zestawu innych symboli uzyskujemy przy pomocy następującego wyrażenia języka SymP:

Symbol = Symbol1 Symbol2 Symbol3;

Wyrażenie to oznacza, że nadajemy symbolowi o nazwie Symbol własność reprezentowania zestawu symboli: Symbol1 Symbol2 Symbol3.

Powyższa instrukcja może oznaczać na przykład definicję jakiejś reguły bazy wiedzy, w postaci:

Regula1 = Fakt1 Fakt2 Fakt3;

Znakiem rozdzielającym elementy listy symboli jest znak pusty (podobnie jak w języku Lisp).

Uogólnienie symbolu

W języku SymP istnieje bardziej ogólna postać wyrażenia definiującego symbol, która ma przełomowe znaczenie dla tego języka.

Symbol4 Symbol5 Symbol = Symbol1 Symbol2 Symbol3;

Lista nazw symboli występująca przed nazwą definiowanego symbolu, w tym przypadku Symbol4 Symbol5, nazywa się uogólnieniem symbolu o nazwie Symbol. Uogólnienie decyduje o znaczeniu symbolu i umiejscowieniu w bazie nazw symboli.

Zapis tego wyrażenia jest nad wyraz prosty, ale SymP nadaje temu zapisowi pewną interpretację, decydując o dużej mocy tego języka. W tym prostym zapisie znajduje się kondensacja sporych możliwości

Współtowarzyszące symbolowi uogólnienie nadaje jemu znaczenia (symbol w SymP to nie tylko ciąg znaków). Ponadto organizuje kod zapisu języka w hierarchiczną strukturę danych. Pisząc wyrażenia w języku SymP tworzymy jednocześnie symboliczną bazę danych.

Organizację symboli w bazie SymP możemy przyrównać do map pojęć, sieci semantycznej, ontologii. Jest to postać typu: jedno pojęcie jest uogólnieniem innego, z jednego wynika drugie, itd).

Można byłoby pomyśleć, że język SymP ma niespotykaną w innych językach prostą konstrukcję (dokładny opis języka w dalszej części).Należy jednak pamiętać, że tak na prawdę SymP nie został stworzony dla komputera, ale dla dowolnego środowiska, w którym można zaimplementować strukturę przetwarzania symbolicznego i gdzie realizacja nawet najprostszej struktury językowej może być problemem (pierwsze zastosowanie SymP odnajdujemy w realizacji pamięci operacyjnej maszyn myślących <czytaj>).

SymP, pomimo tej prostej konstrukcji (co jest również jego wysoką zaletą w stosunku do komputerowych języków programowania), w dziedzinie przetwarzania symbolicznego ma ogromne możliwości, porównywalne z możliwościami przetwarzania w systemach biologicznych na poziomie przetwarzania symbolicznego (kora mózgowa człowieka).

Pojawienie się SymP oznacza zarazem odejście od dotychczasowej jedynej dominacji elektronicznego komputera w dziedzinie sterowanego przetwarzania danych i oznacza współpracę różnych środowisk systemowych różnych technologii w tym zakresie. Otwiera też szerokie możliwości zastosowania <czytaj>.

Język kontekstowy

Z uogólnieniem symbolu kojarzy się pojęcie kontekstu symbolu. W SymP może istnieć wiele różnych symboli pod taką samą nazwą, które posiadają różną definicję i znaczenie zależne od kontekstu (uogólnienie symbolu). Oznacza to, że język SymP można traktować, jako język kontekstowy w odróżnieniu od bezkontekstowych innych języków programowania, które z kolei można traktować jako jednowymiarowe podzbiory języka SymP. W językach bezkontekstowych również można uzyskać występowanie tych samych nazw zmiennych o różnych znaczeniach, ale są one separowane od siebie w ciałach funkcji, procedur, obiektów, lub występują w postaci tych samych nazw funkcji różniących się inną deklaracją parametrów.

Ogólnie, wyrażenie języka SymP jest bytem składający się z dwóch części, części znaczeniowo identyfikacyjnej i części informacyjnej, który to byt można składować w pamięci masowej komputera (pamięci dyskowej), w sieci internetowej, w sieci neuronalnej, w postaci skondensowanej, jak i rozproszonej oraz można przetwarzać w postaci rozproszonej.

Jawna semantyka

W innych językach programowania syntaktyka i semantyka języka jest ukryta w kodzie kompilatorów i translatorów tych języków. Bez nich języki są bezwartościowe, bo nie można ich wykorzystać. Ten fakt otworzył szeroki rynek dla producentów tych kompilatorów.

Aby posługiwać się tymi językami musimy się ich dodatkowo nauczyć i zdobyć odpowiednią praktykę ich stosowania.

Ponadto w aplikacjach stworzonych przy pomocy tych języków, semantyka oparta na znaczeniu poszczególnych elementów interfejsu współpracy z użytkownikiem jest zawarta w założeniach szczegółowych do projektów tych aplikacji lub w formie udostępnionej - instrukcji obsługi. Aby posługiwać się tymi aplikacjami musimy opanować instrukcje obsługi dołączone do tych aplikacji. Tak czy inaczej ciągle musimy się uczyć używania komputera.

Język SymP jest bardzo prosty dla człowieka, gdyż nie celem było, aby się go uczyć. Semantyka symboli jest zawarta w bazie wiedzy o symbolach w formie bardzo przejrzystej dla umysłu ludzkiego. Postawiono przed sobą następujące cele:

  • najprostszy sposób reprezentacji wiedzy,
  • najprostszy sposób zapisu samego języka,
  • przejrzysty sposób przetwarzania

bez stosowania komputerowej metodologii, aby można było stosować język również w innych środowiskach wyznaczonych zupełnie odmienną technologią, również taką, w której realizacja najprostszych koncepcji zawartych w tym języku może być problemem.

Można sobie przypomnieć, jak uproszczenie zapisu liczby dziesiętnej do zapisu binarnego (to znaczy dwustanowego) umożliwiło zamianę mechanicznych maszyn liczących na miniaturowe procesory elektroniczne, pamięci elektroniczne, magnetyczne i optyczne, w których bezpośrednia realizacja zapisu dziesiętnego (bardzo łatwa do uzyskana w maszynie mechanicznej) jest niemożliwa, natomiast zapisu binarnego jest wyjątkowo prosta.

Hierarchiczna struktura bazy wiedzy

Treść programu w języku SymP jest podzielona na kawałki, które są umieszczone w hierarchicznej strukturze wiedzy uogólnień symboli. W językach bezkontekstowych (C, Pascal, Lisp, itd), taki podział treści programu otrzymuje się poprzez umieszczanie kawałków treści programu w ciałach procedur, funkcji, obiektów i modułów (język SymP jest już obiektowy na poziomie wyrażeń). W takich językach powstaje potem problem, jak rozproszyć te funkcje, procedury, obiekty w sieci komputerowej, aby stały się współużywane. Takiego problemu nie ma przy języku SymP. Jest on już z założenia rozproszony w przestrzeni sieci symbolicznej.

Uogólnienie symbolu wyznacza zarazem ścieżkę dojścia do symbolu w hierarchicznej bazie nazw symboli. Przy przesuwaniu się po uogólnieniu symbolu w różne strony możemy uzyskiwać: proces uszczegółowiania lub uogólniania, w zależności od kierunku w którym się przesuwany.

Hierarchiczna struktura nazw sprawdziła się już w logicznej organizacji zasobów dyskowych, zasobów sieciowych i światowej sieci Internet. Jest sprawdzonym standardem przyjętym przez współczesne systemy operacyjne.

Utworzoną strukturę hierarchiczną nazw symboli można przeszukiwać, wstawiać i usuwać symbole, kopiować i usuwać podstruktury, przeprowadzać wnioskowanie, innymi słowy, można zarządzać utworzoną bazą wiedzy. Można też w jednakowy sposób potraktować obszar danych i kodu programu SymP, przez co wpływać na modyfikację tego kodu podczas operacji przetwarzania uogólnionej sieci symbolicznej (przetwarzanie kodu i danych), a po zakończeniu programu zachowywać zmodyfikowany kod. Modyfikowany w ten sposób kod programu SymP można potraktować jako bazę wiedzy doświadczeń systemu (metoda stosowana w korze przedczołowej człowieka <czytaj>).

Hierarchiczna struktura pozwala na przeprowadzanie procesu porządkowania wiedzy. Jeżeli mamy spory materiał poznawczy składający się z wielu luźnych (niepowiązanych ze sobą) początkowo pojęć, a dotyczących pewnego interesującego nas głównego pojęcia, możemy powiązać te pojęcia ze sobą w sieć współzależności. Pierwszą naturalną rzeczą staje się pogrupowanie tych luźnych pojęć w mniejsze równorzędne hierarchicznie grupy (leżące o rząd niżej od hierarchii pojęcia głównego), pod względem posiadania pewnych cech przynależnych każdej grupie. W ten sposób możemy zawęzić pole naszego skupiania się do mniejszej ilości interesujących nas w danej chwili pojęć (abstrahowanie <<czytaj>>), a odstawić na później pojęcia mniej nas interesujące w danej chwili. Drogą hierarchiczną można też później łatwo powrócić do pojęć już porzuconych.

Hierarchiczną strukturę wiedzy SymP łatwo jest też skojarzyć z sieciami neuronalnymi (forma dywergencji lub konwergencji pobudzenia).

Praca równoległa

W odróżnieniu od tradycyjnych języków proceduralnych wykonywanie programu w SymP nie jest sterowane kolejnością kodu programu lecz procesem podobnym do myślenia człowieka, odbywającym się w symbolicznej bazie wiedzy (coś na wzór języka Prolog, w którym wykonywanie programu jest sterowane wnioskowaniem). Przy takim wykonywaniu programu bardzo łatwo jest zaimplementować pracę równoległą (za przykład może posłużyć Parlog - równoległy Prolog <czytaj>).

Przetwarzanie własnego kodu

Kod programu zapisany w języku SymP jest ładowany do hierarchicznej struktury bazy wiedzy i na równi może być traktowany z danymi pobieranymi z innej części bazy wiedzy. Na skutek działania operacji przetwarzania obejmujących ten kod i dane, kod programu może ulec zmianie, dostosowując się do nowych warunków, wyznaczonych zarówno danymi jak i kodem programu. Jeżeli program jest wiedzą na jakiś temat (w systemie SymP program i wiedza są traktowane równorzędnie), to zmiana kodu może być uważana jako proces zdobywania nowego doświadczenia. Świadczy to o tym, że program napisany w języku SymP wykazuje cechy inteligentne (język Lisp ma również zdolność do modyfikowania własnego kodu, zapisanego w postaci listy znaków).

Przy innych językach programowania (C, Pascal, itd) kod programu nie ma zdolności do samoadaptacji (samomodyfikacji). W miejsce pojęcia samomodyfikacji kodu jest używane pojęcie modyfikacji działania programu w granicach, jakie zaplanował w momencie pisania programu programista, uzyskiwane poprzez zapamiętywanie ustawień zmieniających działanie programu w zmiennych programu, w plikach konfiguracyjnych lub rejestrze systemowym (również po zakończeniu pracy tego programu). Taki program ma ograniczone, z góry przewidziane przez programistę, możliwości zmian działania. Może tylko udawać, że jest inteligentny i to na krótką metę, zanim użytkownik nie rozpozna reguły tych zmian. Nic nie ma to wspólnego z samoadaptacją i inteligencją <czytaj>. Jeszcze gorzej, jak program traci zmianę swojego działania z chwilą jego zakończenia, w niektórych przypadkach uznawane za jego zaletę.

Maszynowy język przetwarzania symbolicznego

Do przetwarzania cyfrowego wykorzystywany jest mikroprocesor naszego komputera. Umie on wykonywać rozkazy zapisane w kodzie programu w postaci języka maszynowego. Aby procesor mógł wykonywać kod programu kod ten musi być najpierw załadowany do pamięci operacyjnej komputera z jakiegoś miejsca na dysku. Jest to warunek konieczny wykowania programu. Ponieważ kod maszynowy nie jest czytelny dla człowieka, do programowania stosowany jest inny język wysokiego poziomu (C, Pascal, Lisp, itd), bardziej zrozumiały dla człowieka (pod względem rozwiązywanego przed niego problemu). Program zapisany w języku wysokiego poziomu musi być i tak przetłumaczony na język maszynowy mikroprocesora (przy pomocy specjalnych programów noszących nazwę kompilatorów), aby mógł być przez mikroprocesor wykonany.

Co to jest ten język maszynowy procesora komputera? Jest to lista złożona z kolejnych rozkazów procesora i danych zapisane w postaci liczb w zapisie binarnym. Procesor pobiera rozkazy z pamięci operacyjnej i wykonuje. Dla zapoznania się ze szczegółami <czytaj>.

W odróżnieniu od procesora komputera (przetwarzającego dane w sposób cyfrowy) procesor symboliczny ma zestaw rozkazów działających na symbolach, a nie na liczbach.

Rozkazy Procesora Cyfrowego są dostosowane do sprzętu komputera, a rozkazy Procesora Symbolicznego odbywają się w sferze rozumowania abstrakcyjnego i są niezależne od realizacji sprzętowej samego Procesora Symbolicznego. Ta niezależność jest wykorzystana w realizacji procesów myślowych w korze mózgowej człowieka, gdzie Procesor Symboliczny zrealizowany na zbiorze powiązanych ze sobą neuronów, dla których ogólny proces myślowy jest nieistotny).

W przypadku programowania w języka SymP w komputerze, ważna jest obecność w komputerze Procesora Symbolicznego (w postaci programowej lub sprzętowej). Sam sposób implementacji Procesora Symbolicznego na komputerze już nas nie obchodzi, na przykład może być on częścią sytemu operacyjnego. Nasz program w języku SymP może także pracować w innych systemach niż komputerowe, czyli posiada charakter ponadwymiarowy.

Zarówno dla Procesora Binarnego komputera jak i Procesora Symbolicznego bardzo ważną rolę odgrywa pamięć operacyjna. Jest to pamięć krótkotrwała, służąca do, między innymi, zapamiętywania pośrednich wyników przetwarzania danych, z łatwą możliwości zapisu i kasowania. W mózgu człowieka taka pamięć jest zlokalizowana w grzbietowo-bocznej korze przedczołowej <czytaj>.

W innych środowiskach niż komputer, pamięć symboliczna może być bardzo nietrwała i posiadać małą pojemność, skąd potrzeba współpracy z zewnętrzną pamięcią przechowującą bieżące wyniki przetwarzania (odpowiednik kory hipokampa w mózgu człowieka <czytaj>).

Przyznaję trochę racji tym, którzy przyrównują język SymP działający w komputerze do języka wysokiego poziomu, ze względu na to, że jest zrozumiały dla człowieka, jednakże zdziwiliby się z pewnością, jakby odszukali ten sam język w systemach zupełnie różnych od systemów opartych na zasadzie działania komputera, czego nie można powiedzieć o tradycyjnych językach wysokiego poziomu, dostosowanych tylko do charakteru pracy komputera.

Tak na prawdę SymP nie został stworzony tylko dla komputera. Może pracować w dowolnym innym środowisku, dla którego istnieją metody realizacji symbolicznego środowiska przetwarzania danych.

Różnica między językiem SymP, a komputerowym językiem wysokiego poziomu

W środowisku komputera język SymP jest podobny do języka programowania wysokiego poziomu, bo jest dostosowany do człowieka, a nie do procesora binarnego komputera.

Jednakże SymP w odróżneniu od innych języków programowania wysokiego poziomu jest przeznaczony także do bezpośredniego programowania Procesora Symbolicznego, zrealizowanego w dowolnej technologii, nie tylko elektronicznej, stąd bardzo prosta, uniwersalna konstrukcja tego języka, aby nie było problemów z adaptacją tego języka do tych środowisk.

Język wysokiego poziomu przed uruchomieniem na komputerze musi być tłumaczony przez odpowiednie programy (kompilatory) na język maszynowy rozkazów danego procesora binarnego (lub też na inną formę przejściową). Stwarza to szeroki rynek dla kompilatorów różnych firm. Aby zdobyć większość kompilatorów trzeba zazwyczaj zapłacić. Firmy nie trzymają się standardów i w zależności od firmy produkującej kompilator, postać danego języka wysokiego poziomu może się różnić. Występuje tutaj pewną dowolność rozpoczynająca się od wyboru języka programowania wysokiego poziomu, wyboru procesora binarnego, wyboru systemu operacyjnego i kończy na wyborze kompilatora. Każdy wybór zapewnia pracę dużej ilości firm, kryjących się pod tymi wyborami.

Język SymP przeznaczony jest do bezpośredniego programowania Procesora Symbolicznego. Ze względu na maksymalne uproszczenie tego języka do niezbędnego minimum, staje się on wszechstandardem, nie dając dużego pola do popisu firmom, chcącym wyprodukować swoje odmiany języka. Byłyby to różnice nadzbyt proste. Jednakże szeroki rynek dla firm otwiera się w dziedzinie produkcji Procesora Symbolicznego. Mogą to być wersje komputerowe jak również szeroka gama Procesorów Symbolicznych zrobionych w innej technologii, nie tylko elektronicznej. Procesor Symboliczny daje na prawdę pole do popisu tym firmom. Jeden standard języka programowania tego Procesora Symbolicznego, daje również możliwość wiarygodnego porównania osiągów tych procesorów, co napędza konkurencję na niespotykaną do tej pory skalę.

Konstrukcja Procesora Symbolicznego jest znacznie łatwiejsza niż procesora binarnego i nie trzeba się trzymać jednej technologii wykonania, dostępnej tylko nielicznym.

Ponadto Procesor Symboliczny otwiera drogę rozwoju społeczeństwa technologicznego opartego na przetwarzaniu symbolicznym, a nie cyfrowym. Przetwarzanie cyfrowe tworzy dodatkową, ale nie jedyną formę przetwarzania danych.

Język naturalny językiem wysokiego poziomu

Tak, jak dla języka maszynowego, przeznaczonego do bezpośredniego programowania Procesora Binarnego, istnieją języki programowania wysokiego poziomu (jak C, Pascal, Lisp, itd), tak dla języka SymP, przeznaczonego do bezpośredniego programowania Procesora Symbolicznego, istnieją języki wysokiego poziomu, a są nimi języki naturalne człowieka takie, jak polski, angielski, niemiecki,itd. Język naturalny, w przypadku Procesora Binarnego, nie może być językiem wysokiego poziomu, bo ma on zbyt dużo różnych możliwości, które trudno jest zawrzeć ograniczonej konstrukcji kompilatora. W przypadku przetwarzania symbolicznego takim kompilatorem jest samoadaptacyjna baza wiedzy systemu SymP o dużo większych możliwościach, niż kod zawarty w programie kompilatora.

Programowanie w języku naturalnym, jest jednoznaczne z rozumieniem mowy człowieka przez maszynę. Aby maszyna mogła rozumieć, najpierw musi realizować procesy myślenia. O tym też myśleli konstruktorzy FGCS - komputera V generacji.

W roku 1979 prowadzono badania nad możliwością realizacji komputera zorientowanego na nienumeryczne przetwarzanie danych (komputer V generacji). Efektem tych badań była decyzja budowy pierwszego modelu komputera w ramach projektu FGCS (ang. Fifth-Generation Computer System). Patronat nad badaniami objęła Japonia. W celu realizacji tego projektu powołano w roku 1982 Instytut Komputerów Nowej Generacji (ang. Institute for New Generation Computer Technology). Działalność Instytutu była wspierana przez MITI - japońskie Ministerstwo Przemysłu i Wymiany Międzynarodowej (ang. Ministry of International Trade and Industry) oraz osiem firm, wiodących producentów elektroniki w Japonii, jak: Fujitsu, Toshiba, Mitsubishi, NEC, Oki, Sharp, Hitachi. Projekt komputera V generacji oparty był na procesorze symbolicznym działający na zasadzie wnioskowania (maszyna prologowa).

Celem podstawowym było opracowanie inteligentnej maszyny o sporych możliwościach przetwarzania wiedzy opartej na nienumerycznym przetwarzaniu. Projektu nie udało się dokończyć. Przyczyną niepowodzenia było oparcie nienumerycznego procesora komputera V generacji na przetwarzaniu symbolicznym, które ostatecznie sprowadzało się do wydawania logicznej decyzji (prawda lub fałsz), a nie na przetwarzaniu czysto symbolicznym, no i oczywiście z powodu zaprzestania finansowania projektu przez niecierpliwych sponsorów. Więcej informacji <czytaj>

Jak SymP łączy się ze światem zewnętrznym

SymP działa na symbolach, czyli pokazuje symboliczną postać odwzorowania świata zewnętrznego. Jednak system oparty o SymP nie jest jakimś oderwanym bytem. Posiada metody, zwane interfejsami, do łączenia go ze światem zewnętrznym. Interfejsy są ważnym elementem systemu SymP oprócz symboli.

Interfejsy w języku SymP służą do realizacji następujących procesów:

  • poznawczych (odpowiednik odbioru sygnałów sensorycznych),
  • wykonawczych (odpowiednik emisji sygnałów motorycznych),
  • wskazywanie desygnatów (znajdujących się poza systemem SymP) symboli zlokalizowanych w systemie SymP
  • współpraca z pamięcią zewnętrzną bieżącą oraz długotrwałą (środowiskiem pracy SymP jest symboliczna pamięć operacyjna)
  • połączenie pochodzące od "wyższego" sterowania
  • połączenie przeznaczone do "niższego" sterowania
  • dodatkowe

W systemie SymP interfejsy służą do definiowania symboli pierwotnych języka SymP.

Istnieje w języku SymP odmiana symboli pierwotnych nosząca nazwę pierwotnych symboli abstrakcyjnych, które nie są powiązane z interfesjami. Symbole abstrakcyjne mają tą właściwość, że w każdej chwili można do nich dołączyć interfejs i na odwrót, symbolom pierwotnym można odbierać interfejs. Te pierwsze przestają być symbolami abstrakcyjnymi, a te drugie stają się symbolami abstrakcyjnymi ze wskaźnikiem odbioru interfejsu. Są to metody realizacji procesów przypominania, wiązania i zapominania.

Interfejsy występują też w mózgu człowieka i służą do powiązania symboli określonych w wyższych asocjacyjnych polach kory mózgowej z niższymi polami asocjacyjnymi i drugorzędowymi związanymi z analizatorami słuchowym, wzrokowym, dotykowym i węchowym. Dla zapoznania się ze szczegółami <czytaj>.

Interfejsy, oprócz własności wskazanych powyżej, mają jeszcze bardzo ważną funkcję. Umożliwiają zagnieżdżenie systemu SymP w innym środowisku, a jednocześnie zapewniają niezależność od tego środowiska, co zapewnia możliwość wszechstronnego zastosowania <czytaj>.

Takim środowiskiem, w którym można zagnieździć system SymP, może być system operacyjny komputera, jak również dowolne inne środowisko, w którym można tylko zrealizować symboliczną maszynę SymP.

Wiedza jako czysta postać programu SymP

Czystą formą programu SymP jest wiedza. Ta forma programu jest samoprogramowalna. Gromadzenie wiedzy (konsolidacja w bazie wiedzy SymP) odpowiada samoprogramowaniu. Kod programu i dane są na równi przetwarzane przez procesor SymP. Celem jest porządkowanie wiedzy już posiadanej z napływającymi danymi. Ta forma programowania została wykorzystana w projekcie maszyny myślącej (thinker) opartej o język SymP.

Wzajemna współpraca programów SymP

Ponieważ kod programu i dane są rozproszone w sieci, naturalnym staje się korzystanie z tych zasobów przez wiele serwerów z maszynami SymP. Ich wspólnym celem jest konsolidacja wiedzy w jedną spójną całość, sprawdzanie poprawności danych (walidacja) oraz jej serwowanie użytkownikom końcowym. Wydajność całego systemu jest wypadkową wydajności wszystkich serwerów.

Sieć komputerowa naturalnym środowiskiem SymP

Naturalnym środowiskiem SymP jest sieć komputerowa, a w szczególności światowa sieć internetowa,.ze względu ma podobną strukturę logiczną z bazą wiedzy SymP. Procesor Symboliczny SymP traktuje tą sieć jako własne środowisko, które eksploruje. Najbardziej istotnym zasobem internetu jest zgromadzona w nim wiedza. Wiedza jest samonapędzającym i samoadaptującym się programem systemu SymP. Dużą rolę w konsolidacji systemu SymP w sieci widzi się w wyszukiwarkach, które będąc dysponentem procesorów SymP mogą przetwarzać wiedzę sieci dla odbiorców końcowych.

Procesor Symboliczny

Język SymP służy do programowania Procesora Symbolicznego tak zwanej maszyny symbolicznej, która zajmuje się przetwarzaniem symboli. Termin "Procesor Symboliczny" oznacza procesor przetwarzający symbole.

To, że program SymP może pracować w komputerze, zawdzięczamy tylko temu, że Procesor Symboliczny został zrealizowany w postaci programu działającego wewnątrz komputera lub w sieci komputerowej. Może to być usługa samego systemu operacyjnego lub usługa serwowana z jakiegoś serwera w sieci komputerowej. Nie ma istotnego znaczenia, w jakim języku opracowano komputerową wersję Procesora Symbolicznego, a jeżeli usługa działa w sieci, w jakim systemie operacyjnym działa Procesor Symboliczny i w jakiej technologii jest on wykonany. Jest to już znana wieloplatformowość systemów działających w sieci (na przykład serwer bazy danych mySQL działający w Linuksie lub QNX-ie może poprzez sieć zadawać usługę programom działającym w systemie Windows). Ponadto Procesor Symboliczny może być zrealizowany w innej technologii niż elektroniczna.

Daje to dużą uniwersalność systemu opartego na SymP uwalniając go nawet od środowiska komputera (przetwarzanie symboliczne, a nie cyfrowe). Nic nie stoi na przeszkodzie, aby Procesor Symboliczny działał też w innych środowiskach niż komputer. To otwiera nową drogę do rozwoju maszyn myślących opartych na innej zasadzie niż komputer.

Podstawowe operacje Procesora Symbolicznego

Procesor SymP wykonuje operacje na symbolach. Nie musimy się ich uczyć ponieważ są modelowane na myśleniu człowieka i z tego względu są nam bliskie. Działanie Procesora SymP możemy porównać do działania maszyny wnioskującej Prologu (tzw. maszyna Prologowa), której działania nie musimy być świadomi, wiedząc tylko tyle, że wnioskuje z pewnej bazy wiedzy zbudowanej przy użyciu metod, jakie daje język Prolog.

W odróżnieniu od maszyny wnioskującej - Prologowej, która potrafi tylko wnioskować (wstecz), Procesor Symboliczny SymP wykonuje następujące operacje na symbolach:

  1. synteza,
  2. analiza,
  3. porównywanie,
  4. abstrahowanie,
  5. uogólnianie,
  6. łączenie,
  7. wydzielanie,
  8. szukanie,
  9. wnioskowanie w przód,
  10. wnioskowanie wstecz,
  11. konsolidacja.

Waldemar Wietrzykowski
Computational Neuroscience
Digital Intelligence Laboratory
email: mail

Zobacz też

Linki

dil

< 1 2

Copyright  © 25.05.2008 net3plus  mail