sobota, 27 sierpnia 2011

Linda - Lingubot, chatter


1. Wstęp i opis programu.
2. Spis wszystkich plików.
3. Instalacja i odinstalowywanie programu
4. Wymagania.
5. Jak uzyskać najnowszą wersję programu.
6. Komunikaty programów antywirusowych.
7. Od Autora.

------------------------------------------------------------------------------
1. Wstęp i opis programu

Projekt Linda, to próba stworzenie wirtualnej świadomości, będącej interaktywnym systemem komunikacji pomiędzy użytkownikiem, a komputerem. Głównym przeznaczeniem Lindy jest porozumiewanie się z użytkownikiem za pomocą języka naturalnego, a w niedalekiej przyszłości również wykonywanie prostych zadań w systemie operacyjnym na prośbę użytkownika oraz wyszukiwanie informacji w sieci celem uzupełnienia swojej wiedzy. Uściślając, użytkownik zwraca się do Lindy, jak do drugiego człowieka,  prowadząc z nią zwyczajną rozmowę, mogąc przy tym korzystać z szeregu funkcji, w które dodatkowo została wyposażona.

Prowadzenie płynnej rozmowy nie zostało jeszcze w pełni zaimplementowane. W chwili obecnej Linda może spełniać funkcję bardziej pamiętnika, czy asystentki, która w inteligentny sposób będzie w stanie odnajdywać odpowiednie notatki zapisanej w swojej bazie wiedzy na zadane pytanie.

Po uruchomieniu programu na ekranie pojawi się krótki opis oraz znak zachęty "<Ty>" oznajmujący gotowość programu do prowadzenia konwersacji. Zasada jest prosta:
- wszystkie zdania zakończone znakiem zapytania traktowane są przez program jak pytania, na które stara się odpowiedzieć;
- wszystkie zdania rozpoczynające się wykrzyknikiem, traktowane są jak komendy, na stale zapisane w kodzie. Jeżeli chcemy zobaczyć listę możliwych do wprowadzenia komend wpisz !help.
- wszystkie pozostałe zdania rozpatrywane i kategoryzowane są przez program jako zdania twierdzące wymagające zapamiętania, czy jako pytania na które program starał się będzie odpowiedzieć.

W programie znajduje się dużo dodatków ale ich rodzaj i ilość zależą od aktualnego wdrożenia. Linda, jako program komputerowy została zaprojektowana jako zestaw modułów, tak abym mógł łatwo do niej dodawać lub usuwać (również zdalnie) dodatkowe funkcjonalności. Dodatkowym modułem,
może być np.:
- gramatyczny rozbiór zdania (podział na podmiot i orzeczenie),
- szyfrowanie bazy danych dowolnym algorytmem, etc.

Konwersację z programem kończymy poprzez wpisanie w konsoli komendy !end. Spowoduje to zapisanie dotychczas zebranej wiedzy na dysk. Jeżeli zamkniemy program bez tej instrukcji nasze dane, które wprowadziliśmy rozmawiając z Linda zostaną utracone.

Do końca roku zamierzam dodać do Lindy 3 nowe moduły, które teoretycznie już są skończone ale wciąż poddawane testowaniu:
- logika, wszystkie zdania zawierające w sobie słowa: jeżeli, jeśli, to, wtedy, itp - poddawane będą wspólnemu parsowaniu aby przy odpowiednim zapytaniu wygenerować logiczną odpowiedź;
- analiza kontekstu - pomimo, że program nie jest w stanie pojąć znaczenia słów jest w stanie wygenerować całkiem nowe zdania, będące konkluzją zdań zawartych w bazie wiedzy;
- kalkulator - dodane zostaną funkcje matematyczne.

------------------------------------------------------------------------------
2. Spis wszystkich plików

Linda_v0.8.exe - główny program (kompilacja dla Windows XP lub nowszy)
baseSDB.dat - baza wiedzy programu (plik tworzy się automatycznie)
log.dat - plik z archiwum przeprowadzonych rozmów (automatycznie)
readme.txt - właśnie go czytasz

Przy pierwszym uruchomieniu programu brakuje pliku z bazą wiedzy oraz logu rozmów. Wynika to z faktu, iż udostępniam Lindę bez jakiejkolwiek wiedzy o świecie i każdy użytkownik może wprowadzić do jej "umysłu" to na co sam ma ochotę.
Automatyczny import plików tekstowych z informacjami do zapamiętania wymaga dodatkowego modułu.

Uruchamiając program na Linux-ie należy w emulatorze Wine udostępnić JVM.

------------------------------------------------------------------------------
3. Instalacja i odinstalowywanie programu

Instalacja programu jest bardzo prosta. Należy rozpakować katalog Linda wraz z całą jego zawartością do dowolnego miejsca na dysku, skąd należy uruchamiać plik Linda_0.8.exe.

------------------------------------------------------------------------------
4. Wymagania.

Program Linda został skompilowany w językach programowania Java oraz C++. Do prawidłowego działania wymagany jest system operacyjny z dostępem do wirtualnej maszyny Java.

------------------------------------------------------------------------------
5. Jak uzyskać najnowszą wersję programu.

Wystarczy zaglądać na stronę domową programu, tj. http://lingubot.blogspot.com lub skontaktować się ze mną ;-)

------------------------------------------------------------------------------
6. Komunikaty programów antywirusowych.

Otrzymałem informację, iż niektóre programy antywirusowe proponują uruchamianie programu w środowisku izolowanym z powodu "niskiej reputacji pliku". Cokolwiek miałoby to oznaczać, zapewniam że w załączonym archiwum nie ma żadnego wirusa. Prawdopodobnie modułowość samego programu może
wzbudzać czujność filtrów heurystycznych programów antywirusowych.

------------------------------------------------------------------------------
7. Od Autora.

Aktualnie pracuję (w wolnym czasie od pracy i uczelni ;-) nad całkowitym zredefiniowaniem sposobu postrzegania wiedzy przez Lindę oraz bardziej
wektorowym zapisem danych w pamięci.

Bardzo proszę o wszelkie uwagi odnośnie programu i jego działania.
Piszcie co chcielibyście w nim zmienić lub dodać. Wasze spostrzeżenia
napewno przyczynią się do rozwoju tego programu i ułatwią w nim pracę.

Kontakt do autora programu: mr.swer [małpa] gmail.com


--------------------------------------------------------------------------------
plik do pobrania tutaj:
https://dl.dropbox.com/u/8405257/Linda.zip
--------------------------------------------------------------------------------