Krzysztof Ożóg - Marek Piasecki
Transkrypt
Krzysztof Ożóg - Marek Piasecki
Wydział Elektroniki Politechniki Wrocławskiej Kierunek: Informatyka Specjalność: Inżynieria Systemów Informatycznych Wrocław, 5 VI 2007 Sensory i efektory oraz ich obsługa w systemach agentowych Krzysztof Ożóg 133319 Prowadzący: Dr inż. Marek Piasecki 1. Wstęp Temat opracowania w pierwotnej wersji brzmiał: „Sensory i efektory systemów informatycznych”. Punktem wyjścia zbierania informacji do prezentowanej pracy były zagadnienia, hasła oryginalnego tytułu. Przedmiotem mojego zainteresowania był system automatycznego rozpoznawania mowy (ARM) i sposób wykorzystania w nim przetwarzania danych za pomocą drzew klasyfikacyjnych. Taki system służyłby m.in. do komunikacji człowiek - komputer i naturalnym by było aby kierować do urządzenia polecenia na poziomie wypowiedzi wyższym niż „Kali jeść, Kali pić”. Zrozumienie przekazu nie powinno sprawiać trudności oprogramowaniu korzystającemu z sieci semantycznych czy badającego kontekst sformułowań – mógłby to być odpowiedni agent. Jednak moje dalsze przemyślenia na temat integracji sensorów z oprogramowaniem agenckim kierowały mnie do tego, że praktycznie to nie miałoby większego sensu aby agent programowy rozpoznawał dźwięki i rozumiał kontekst (w większości przypadków). Pragnę przedstawić podejście do zagadnienia programowania agentowego, które w większym stopniu skupia się na tym jak środowisko przyjmie takie byty, a mniej na tym jak agenci oddziaływają na nie. Zwrócić uwagę na pewne zjawiska, które mogą mieć wpływ na sposób tworzenia, działania, wykorzystania programów inteligentnych. Odniosę się również do postulatów działania agentów. Jak większość opinii wybiegających nieco w przyszłość, mogą się okazać bardziej lub mniej trafne. 2. Definicje 2.1 System informatyczny „... jest to zbiór powiązanych ze sobą elementów, którego funkcją jest przetwarzanie danych przy użyciu techniki komputerowej.” Elementy składowe to: sprzęt (przechowywanie danych, komunikacja, odbieranie danych, wpływanie na świat zewnętrzny, przetwarzanie danych), oprogramowanie, ludzie, elementy organizacyjne i informacyjne. Z jednej strony elementy systemu mają określone role do spełnienia, z drugiej jednak podobne typy elementów w różnych systemach mogą być odpowiedzialne, za realizację różnych celów. Co więcej, każdy element jest w zasadzie sam w sobie systemem. Sprawność jest zależna od najsłabszego ogniwa. Efektywność natomiast od zdolności do współpracy z innymi systemami i rezygnacji ze spełniania części funkcji na rzecz lepiej przystosowanych, praktyczniejszych elementów. Przykładowo żołnierze w wojsku rzadko przemieszczają się w tradycyjny sposób – teraz mamy piechotę zmechanizowaną. Z drugiej strony przyjmuje się niekiedy pozornie nie efektywne, ale niezbędne bądź po prostu tanie. Krytyka programowania agentowego m.in. opiera się na tym, że wiele aspektów, można zrealizować w alternatywny sposób (tańszy, jakościowo lepszy). Dlatego myślę, że nie należy próbować tworzyć agentów w czystej postaci, autonomicznych programów. Jeżeli nawet kiedyś programy zyskają postulowaną samowystarczalność, to nie dlatego, że je planowano, ale poskładano z modułów coś, co spełnia założenia, zachowuje się jak agent. Sądzę, że główną przyczyną braku znaczących postępów omawianego problemu, jest sprzeczne wewnętrznie podejście. Rozpoczyna się budowę systemu ze zdroworozsądkowym podejściem świadomości ograniczeń, próbą rozwijania prostych systemów (np. dodanie funkcjonalności automatycznego zapalania światła gdy ktoś wejdzie do pokoju), wykonywania wyspecjalizowanych funkcji. W praktyce oczekuje się ich przydatności (takiej, że użytkownik zada sobie trud aby skorzystać z programu), i tych wszystkich rzeczy, które go odróżnią, od zwykłych programów – „inteligencji” - spełniania nawet pojedynczych funkcji w sposób przydatny użytkownikom, a to zazwyczaj nie jest do zrealizowania przez proste reaktywne algorytmy, liczba problemów jakie trzeba rozwiązać wzrasta wraz z głębszą analizą zadania. Definiowane cechy jakie powinien spełniać agent są pozornie uproszczone. Praktycznie wymaga się nie tylko stworzenia oprogramowania samego w sobie, ale również stworzenia infrastruktury środowiska dla jego działania i interakcji z innymi systemami. Ktoś może zarzucić, że aż takich wymagań nie ma, ale może zobrazuję problem na prostym przykładzie. Robot jeździ po lesie i zbiera opadłe liście. Nie może zderzać się z drzewami ani przebiegającymi zwierzętami. Wszystko jest dobre do czasu, aż zmienił się właściciel lasu i postawił tablicę z napisem „Teren prywatny”. Problem do rozwiązania trywialny, ale trzeba zarówno wiedzieć, że urządzenie po tym konkretnie lesie sobie jeździ, powiadomić o sytuacji zarówno właściciela lasu, osoby którą reprezentuje robot i samo urządzenie. Autonomiczność agentów wysokiej klasy (praktycznych) w Internecie jest prawie nie możliwa do zrealizowania – zmiany prawne są nie przewidywalne a ich konsekwencje są poważne. Idea aby każdy agent co jakiś czas czytał akty prawne i analizował, jest niepraktyczna (szacując liczność agentów na miliony). Od razu nasuwa się myśl aby jeden agent analizował, wnioskował i sterował zachowaniem innych (poprzez informowanie ich). Rozdzielenie funkcji pomiędzy agentów w celu realizacji zadań to jeden z aspektów. Innym jest konieczność zmiany realizacji, dostosowywanie się do zmian wymagań. Agenci powinni być programami dynamicznymi czy to poprzez automatyczne programowanie czy budowę modułową, wtyczek. Podsumowując, warto by było rozwijać idee programów agentowych jednak odrzucając kontekst agentów, nie obejmować go całościowo. Np nie tworzyć „mobilnych agentów” ale „mobilne oprogramowanie” - podczas zagrożenia usługi firm mogły by się uruchamiać na nowych stacjach roboczych; obecnie jest to realizowane przez tworzenie kopii zapasowych, ale można sobie wyobrazić usługi dla których krytycznym jest ciągłość działania – mobilność była by dodatkowym sposobem na jej zapewnienie, a w ekstremalnych sytuacjach może i jedynym. Należy szukać zastosowań oraz wdrażać nowe technologie już podczas rozwijania ich. Pozwala to wskazać na aktualny stan rozwoju danej gałęzi nauki jak również uwydatnić praktyczne problemy lub wskazać przyszłych odbiorców produktu. Przykładem może być rozwój robotów. Jak do tej pory nie udało się stworzyć w pełni funkcjonalnego odpowiednika człowieka. Mimo to, zarówno dzięki rozwojowi cybernetyki jak i medycyny, można wszczepić człowiekowi sztuczne kończyny. Chociaż daleko im do pełnej funkcjonalności, są wręcz bezcenne dla właścicieli. Przypadki Jesse Sullivana oraz Claudii Mitchel, osób mające mechaniczne ręce podłączone do nerwów, obrazują płynność granic między człowiekiem, maszyną a programem oraz ich częściową zastępowalność. 2.2 Sensory i efektory Głównym zadaniem informatyki jest przetwarzanie informacji. Tworzy się oprogramowanie, maszyny, które jest odwzorowaniem reguł zaobserwowanych w świecie. Następnie próbuje się rozwinąć odtwórcze działanie systemów pod kątem inteligentnej analizy. Obecnie ta analiza jest w znacznym stopniu przewidywalna, a niekiedy rozważane algorytmy sztucznej inteligencji wręcz zastępowane przez proste reaktywne odpowiedzi na bodźce. Specyfika systemów autonomicznych wymaga projektowania z uwzględnieniem wielowarstwowości ich budowy. W prostych aplikacjach agentowych nadmiar tworzonego kodu będzie niewątpliwie zauważalny i naturalny, ale jest niezbędny do ewentualnego ponownego wykorzystania kodu. Naturalnym jest ponowne wykorzystanie nawet nie dopracowanego kodu niż pisanie ponowne podobnej jakości modułów (szczególnie gdy nie jest on istotą rozwiązywanego zagadnienia oraz nie mamy wiedzy na temat realizowanej przez niego funkcjonalności). W podsumowaniu punktu 2.1 pragnąłem uwydatnić słabe strony systematyki systemów autonomicznych (biologiczny, mechaniczny, obliczeniowy) – jakoby była ona błędna, gdyż nie występująca w rzeczywistości. Efektywne projektowanie systemów agentowych musi uwzględniać fakt, że funkcjonalność może być zapewniona przez różne podzespoły i żaden z nich nie może być zbyt ściśle powiązany z całym systemem. Jest to istotne, gdyż w odróżnieniu od tradycyjnych systemów agentowość z definicji zakłada dostosowywanie się zmian środowiska. Praktyczny podział systemu na moduły może pozwolić projektantom na szybkie zmiany budowy agentów (kolejne wersje), a w dalszej perspektywie poprawne reakcje na zmiany w określonej dobrze znanej dziedzinie. Każdy element systemu jest zarazem oddzielnym systemem. Komunikują się one nawzajem, wpływają na siebie. Poniższy podział zaczerpnięty z prezentacji Włodzisława Ducha. Klasyfikuje efektory i detektory w ramach wspomnianej wyżej taksonomii. Uwzględnienie jej jest istotne przede wszystkim dlatego, że to co nas otacza w mniejszym lub większym stopniu jest „czarną skrzynką” z dołączonym interfejsem. Tabela 1: Przykładowe sensory i efektory różnych typów agentów człowiek sensory oczy, uszy, skóra, język nos efektory ręce, nogi język usta robot program kamery, czujniki podczerwieni, sonary, mikrofony wirtualne: ciągi bitów zawierające informacje dochodzące ze środowiska koła, motory, manipulatory wirtualne: ciągi bitów przesyłane do środowiska Agenci mają reprezentować człowieka. Minimalna komunikacja wymagać będzie takich urządzeń myszka czy ekran. Korzystanie z nich przez aplikacje powinno być oddzielone od samego modułu przetwarzającego dane. Podczas projektowania należy uwzględnić alternatywne sposoby komunikacji. Programy dedykowane konkretnym urządzeniom są ściśle powiązane z danymi przesyłanymi do nich. Można wydzielić część programu pełniącą rolę interfejsu. Zauważmy, że agent może korzystać z mikrofonu odbierając jakieś informacje. Jednak krytycznym czynnikiem projektu jest jakich danych oczekujemy. Jeżeli wymagane jest wykrycie dowolnego dźwięku, to nie będzie problemu z odczytaniem informacji, jednak w wypadku założenia, że system bazuje na słowach w języku naturalnym to istotne jest czy do programu informacje będą dochodzić z mikrofonu bezpośrednio, czy może możemy wykorzystać już stworzony system ARM. Zakładając mobilność oprogramowania i chęć wykorzystania go przez dłuższy okres czasu należy zapewnić jego uniwersalność. Agent jako system powinien sobie poradzić również w sytuacji gdy odczytuje dane z pliku bazy danych czy ma możliwość dostępu do sprzętowej sieci neuronowej. Rozwiązaniem było by nie tyle tworzenie standardu z którego korzystali by agenci, ale warstwy rozpoznającej (urządzenia) i konwertującej ciągi bitów do formatu obsługiwanego przez stworzone oprogramowanie. Oznaczało by to wyjście na przeciw trendom i stosowanym technologiom. Istnienie kilku interfejsów agent-urządzenie (źródło/cel informacji) wymagałoby od agenta poprawnego wyboru jednego z nich. Można by zastosować do tego drzewa decyzyjne. Warunki wyboru nie musiały by być skomplikowane. Opierały by się na takich zagadnieniach jak: dostępne urządzenia, interfejsy (czyli zdolność do komunikacji, znajomość języka), celowość wykorzystania urządzenia itp. Stworzenie uniwersalnego sposobu dodawania warunków, odczytu, przebudowy drzewa było by naturalne przy przedstawianym podejściu. Są one (drzewa) w miarę dobrze opisywane matematycznie, intuicyjne do oprogramowania ich wykorzystania i co najważniejsze mogły by być wykorzystywane przez „wszystkich”. Wybór odpowiedniego urządzenia - narzędzia pracy agenta – stało by się jedynie jednym z możliwych sposobów użytkowania drzew. Należy dodać, że program nie musi znać wszystkich procedur obsługi. Wystarczy mu informacja, że są one stworzone i w jakimś miejscu udostępnione. Przy rzadkim wykorzystywaniu, może być usunięte. Z drugiej strony wątpliwym jest tworzenie efektywnych drzew decyzyjnych za każdym razem od podstaw, wraz z każdym wydaniem jakiegoś programu. Natomiast jeżeli optymalizacje, rozwiązywanie problemów związanych z wykorzystaniem tego sposobu reprezentacji wiedzy w ramach jednego modułu może dostarczyć narzędzia, które stanie się zarazem pewnym standardem. 3. 66,6MHz „Nikt już nie chce takiej waty, która potem zlepia usta Wesołe miasteczko, wesołe miasteczko pip, pip” K. Daukszewicz Od dłuższego czasu toczą się dyskusje jak i plany poważnych projektów związanych z technologią RFID, która wraz Wi-fi będzie tworzyć bezprzewodowe systemy śledzenia ludzi i obiektów. Sieć punktów dostępowych może wykrywać tagi podając ich pozycje. W szpitalach system taki służyłby do śledzenia drogiego a ruchomego sprzętu ratującego życie, gdy szybkie zlokalizowanie może być sprawą życia i śmierci. Sporo kontrowersji budzi zastosowanie tagów do śledzenia ludzi, tym bardziej gdy próbuje się promować zastosowania niepraktyczne lub wręcz niepotrzebne. Zazwyczaj związane są one z bezpieczeństwem. Tagi miałyby być wprowadzone do ochrony studentów na uczelni, szczególnie w sytuacjach zagrożenia jak pożar. Na uwagę zasługują właściwości oprogramowania korzystającego z systemu. W wielu przypadkach nie istnieje potrzeba aby pozycja tagu była sprawdzana na bieżąco. Szczególnie jeśli obserwacji podlegać będzie znaczna ilość tagów. Dla uczelnianego systemu, koordynacja ewakuacji studentów była by realizowana tak rzadko, że nawet sprawdzanie potrzeby wywołania procedur było by niepotrzebną stratą czasu pracy procesora. Ekonomicznej jest uruchamiać procesy gdy są one potrzebne. Wyszukanie konkretnej osoby mogłoby być zlecone jakiemuś agentowi. Poszukiwanie niekiedy może się odbywać poza siecią. Czasem większa ilość agentów może wykonywać proste czynności jak oczekiwanie na pojawienie się kogoś lub jakieś zdarzenie. Wykorzystanie środowiska JADE aż samo się narzuca na myśl! Ponieważ podobną funkcjonalność można zrealizować na wiele sposobów istotna staje się sprawna reakcja na wprowadzane technologie. Zakładana adaptacyjność agentów zapewniała by szybkie dostosowanie się do zmieniającego się prawa związanego z przetwarzaniem informacji RFID. To na co pragnę zwrócić uwagę w tym rozdziale to zależność wykorzystania, a zatem i rozwoju agentów w dużym stopniu od czynników nie związanych z samym rozwojem inteligentnych algorytmów przetwarzania informacji, ale od czynników czysto marketingowych oraz możliwościami ograniczanymi przez prawo. Działanie agentów należy dostosowywać do przepisów. Należy wypracować metody w jaki sposób mają się aplikacje dostosowywać do niego. Posiadający znaczną autonomiczność agenci reprezentują właściciela programu. Użytkownik nie będzie korzystał z programów, które w jakiś sposób mogą go narazić na konflikt z organami ścigania tylko dlatego, że prawo w kraju się zmieniło. Taka prosta zależność nie istnieje, ale rozwój podejścia agentowego do korzystania z sieci zależy również od rozwoju prawnych i etykiety internetowej. Obecnie jawnie mówi się o podsłuchiwaniu rozmów telefonicznych, listów elektronicznych czy prywatnych dysków. Jeżeli idee programowania agentowego będą marginalizowane prawdopodobnym jest, że nie będą miały szansy rozwinięcia się przez wprowadzenia albo zbyt ścisłej kontroli nad nimi (w poszukiwania informacji czy danych sensytywnych, które nawet mogą nie podlegać ochronie prawnej) albo przez tworzenie przepisów znacznie ograniczających możliwości działania. Ostatnio na portalu „Onet” zamieszczono ankietę „Pojedynki” w której oddaje się głosy na jedną z uczelni dobranych w pary. Przy rywalizacji między politechnikami Śląską i Wrocławską zabawa zmeniła nieco swój charakter. Zaczęto wykorzystywać skrypty w celu automatycznego oddawania głosów. Wiele się nie zmieniło, gdyż można się spodziewać, że przodować będzie frakcja mająca dostęp do większej ilości komputerów lub zdoła zachęcić do zabawy większą liczbę osób. Szybkie i ciągłe przyrosty punktów, jak również ciągłe zmiany lidera zwiększyły znacznie atrakcyjność i zainteresowanie ankietą. Samo zdarzenie nie jest może istotne ale odbiło się echem w mediach. „Dziennik Internautów” przedstawił to zdarzenie w świetle zmieniającego się prawa (22.05.2007 ). „Propozycje przepisów podanych w Rzeczpospolitej, które w najbliższych tygodniach trafią do Sejmu, jak na razie także nie wydają się być zbyt precyzyjne, a jedynie ostrzejsze. Jak pisze gazeta, wkrótce można będzie zostać skazanym na 5 lat już tylko za celowe utrudnianie dostępu do witryny. Co więcej, by zostać postawionym w stan oskarżenia wcale nie będzie musiało dojść do zablokowania danej strony - wystarczy, że potencjalny atak "spowoduje wyłącznie wydłużenie czasu wejścia użytkownika na zaatakowaną stronę." W takiej sytuacji w stan oskarżenia mogliby zostać postawieni np. uczestnicy jednej z ostatnich ankiet w serwisie Pojedynki na portalu matura.Onet.pl.” Nazwanie agentów „botami” może nie jest najwłaściwsze, ale jednak bazując na prostych rozwiązaniach mogą one znacząco je przypominać. Mogą być tez podobnie postrzegane przez serwisy z których będą próbować pobrać informacje. Po pierwsze mogą nadmiernie eksploatować pojedynczy serwer, po drugie wiele agentów może żądać dostępu do pojedynczych informacji, generując podobne obciążenie łącz lub procesorów. Dla dostawcy usługi opierającego dochody na zamieszczanych reklamach, które agenci filtrują, jako niechciane dane, najprościej będzie wykorzystać przepisy w celu utrzymania przychodów. Inną metodą, równie niepożadaną, stało by się celowe „karmienie” automatów reklamami. Odpytywanie wielu witryn i następnie prezentowanie wyników na własnej stronie wymaga często opłat licencyjnych. Agent może być czasem podobnie traktowany – zbiera informacje i odpowiednio je prezentuje. Szczególnie jeżeli program nie jest projektem akademickim ale staje się komercyjnym produktem. 4. „Web 3.0 = 4C+P+VS” „Ile jestem w stanie dać dla tego świata? Ile jestem w stanie z tego świata wyłapać?” O.S.T.R. Metodologia programowania agentowego musi uwzględniać trendy rozwoju Internetu. Sieć trzeciej generacji ma między innymi bazować na dostarczaniu danych, środowiska m.in. dla systemów autonomicznych. W poprzednich rozdziałach starałem się ukazać potrzebę uniezależnienia przetwarzania danych od ich pobierania bądź wysyłania. Ma to na celu zapanowanie w pewnym stopniu nad niepewnością i różnorodnością występującą w świecie. W tym rozdziale przytoczone będą kierunki rozwoju „wirtualnego środowiska”, które prawdopodobnie wyznaczą sposób przetwarzania danych. 4.1 Content, Commerce, Community (zawartość, handel, społeczność). Wymienione dziedziny przenikają się nawzajem. W sytuacji gdy poszukujemy produktu interesuje nas zarówno co otrzymamy jak i opinie osób, które już zakupiły towar i zechciały się podzielić informacjami o nim. Można się dopatrywać dwóch kierunków rozwoju agentów. Jeden to aktywne badanie „rynku” a drugi to korzystanie z usług. Sądzę, że użytkownik będzie mógł jedynie korzystać z danych przedstawionych przez różnorakie serwisy. Dla klienta będzie to korzystne z tego względu, że uzyska informacje szybciej niż przez delegowanie agenta do przeszukania sieci. Już teraz istnieją takie serwisy jak „Skąpiec.pl” spełniające funkcje wyszukania informacji (tu z zakresu dostępnych towarów w sklepach internetowych) i odpowiedniej prezentacji. Podobna centralizacja nastąpi również w wyszukiwaniu informacji na dowolny temat. Oprogramowanie klienckie nie będzie analizować sieci semantycznych na wielką skale. Będą się tym zajmować korporacje takie jak „Google”. Naturalnym jest, że jeżeli pojawi się sposób na celniejsze przekazanie poszukiwanych informacji to zostanie to wykorzystane do poprawy jakości usług. Agenci mający znaleźć odpowiednie informacje nawet o tej samej zawartości będą się znacząco różnić, ze względu na czas w którym będą musiały wykonać zadanie. Użytkownicy również na tym skorzystają ponieważ nie będą uzależnieni od oprogramowania; w większym stopniu od serwisu, ale one będą się starały dostarczać usług na wysokim poziomie. To rozróżnienie będzie prowadzić przede wszystkim do projektowania interfejsów. Będą one dostosować się do sposobu w jaki zechcą komunikować się dostawcy. Różnica między opisywanymi typami agentów jest analogiczna do sprawdzania czy treść ulubionych serwisów zmieniła się poprzez wchodzenie na każdą z nich a korzystaniem z czytnika RSS. 4.2 Context (kontekst). Nawiązując do poprzedniego podpunktu, reklama będzie bardzo podobna jak obecnie. Na pewno nadal popularne będą linki sponsorowane, do których ułatwiony będzie dostęp oraz reklama kontekstowa w postaci kierowania jej do określonej społeczności, potencjalnych klientów. Przetwarzanie języka naturalnego z uwzględnieniem kontekstu oraz opinii o autorze może ograniczyć wpływ firm na wybór ich produktu przez klienta. 4.3 Personalization (personalizacja). Gusta można kształtować jedynie w ograniczonym zakresie. Może nie doceniam wpływu mediów i nieustannego „ataku” jakiego dokonują na nas każdego dnia, ale... Jest w człowieku coś co sprawia, że zachowuje się niekiedy nie przewidywalne. Częściowo jest to spowodowane różnymi priorytetami przy ocenianiu przydatności czy wartości rzeczy. Od czasu do czasu przy wyborze decydująca jest cecha która jest podrzędną lub też pewne specyficzne, niejednokrotnie nie do opisania upodobania – gdy po prostu czujemy się dobrze wybierając taki a nie inny produkt. Usługi bazujące na przedstawianiu danych z różnych źródeł zazwyczaj nie będą próbować przedstawiać informacji w sposób dedykowany konkretnej osobie. To zadanie pozostanie domeną osobistych agentów, przede wszystkim dlatego iż mając ciągły kontakt z użytkownikiem będą mogły zebrać o nim więcej informacji i poprawnie je zinterpretować. 4.4 Vertical Search (przeszukiwanie wektorowe). Jeżeli programy reprezentujące człowieka będą korzystać z witryn w podobny sposób jak każdy użytkownik, to muszą być przygotowane na to, że językiem komunikacji będzie najczęściej właśnie takie wyszukiwanie. Możliwe również, że agenci w podobny sposób będą odbierać polecenia. Ten sposób dotarcia do informacji jest obecnie powszechnie stosowany więc może powinien być wykorzystany zanim zostaną wprowadzone oczekiwane sieci semantyczne. 5. Podsumowanie „Barbarzyńcy w kożuchach zmienią się w naród ambitny Pod Kolumną Trajana zajmując się drobnym handlem.” J. Kaczmarski W zaprezentowanej pracy starałem się przedstawić problemy jakie należy rozwiązać podczas projektowania programów agentowych. Są one oderwane od funkcjonalności jakiej oczekuje się od programów. Dla zwykłych programów są one rozwiązywane na etapie projektowania aplikacji. W sytuacji zmiany przepisów lub procedur na nowo implementuje się programy. Zakładając dążenie do autonomiczności systemu należy spróbować stworzyć mechanizmy, które pozwolą na dynamiczne dostosowywanie się do prawa. Ujęte zostaje ono jako kolejny element środowiska z którym oddziaływają agenci. Pozwoli to na zmniejszenie kontroli jaką należy bezpośrednio sprawować nad programem. Przeciętny użytkownik nie będzie znał przepisów na tyle dobrze aby samodzielnie wyznaczyć zakres dozwolonej pracy agenta. W sytuacjach spornych będzie się starał przenieść odpowiedzialność na dostawcę oprogramowania. 6. Źródła „lecz myśl ta czyja ? samo się nie myśli tak jak grzmi samo i samo się błyska” M. Grechuta 1. Cykl wykładów z przedmiotu Informatyka Systemów Autonomicznych dra M. Piaseckiego 2. „Agenci programowi jako metodologia tworzenia oprogramowania”, Marcin Paprzycki http://www.e-informatyka.pl/article/show/422 3. System informatyczny http://pl.wikipedia.org/wiki/System_informatyczny 4. O zmianach prawnych http://di.com.pl/news/16571,Wiezienie_za_utrudnianie_dostepu_do_stron_WWW.html 5. Web 3.0 http://www.readwriteweb.com/archives/web_30_4cpvs.php 6. Sieci semantyczne http://www.webdeveloper.pl/322,1,1,pl,lpt.html 7. Cyborgizacja http://www.sigmorobot.com/technology/news/toast_bionic_man.htm http://www.washingtonpost.com/wpdyn/content/article/2006/09/13/AR2006091302271.html?nav=E8 8.RFID http://www.rfidconsultation.eu/ http://news.bbc.co.uk/2/hi/uk_news/magazine/3307471.stm http://news.bbc.co.uk/2/hi/technology/6389581.stm http://news.bbc.co.uk/2/hi/technology/6691139.stm http://news.bbc.co.uk/2/hi/technology/6453931.stm