Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE DIPLOM
ADAPTAREA ROBOILOR
NTR-UN SISTEM SENZITIV LA CONTEXT
PENTRU O CAS INTELIGENT
2009
VIZAT EF CATEDR
Prof.Dr.Ing. Rodica POTOLEA
1.
CONINUTUL PROIECTULUI:
A. Piese Scrise
Introducere
Studiu bibliografic
Fundamentare teoretic
Specificaiile i arhitectura sistemului
Proiectarea de detaliu
Utilizarea sistemului
Punerea n funciune i rezultate experimentale
Concluzii
Bibliografie
B. Anexe
CD coninnd piesele scrise, codul surs i uneltele folosite
2.
3.
4.
5.
CONDUCTOR DE PROIECT
Asist. Ing. Lucia Vcariu
SEMNTUR ABSOLVENT
Mihai Gabriel Raiu
Cuprins
1
INTRODUCERE...............................................................................................................1
STUDIU BIBLIOGRAFIC..............................................................................................3
2.1
Case inteligente...........................................................................................................3
2.2
Sisteme senzitive la context........................................................................................5
2.2.1 Concepte de baz....................................................................................................5
2.2.1.1 Context............................................................................................................5
2.2.1.2 Senzitivitate la context....................................................................................5
2.2.1.3 Sistem Senzitiv la Context..............................................................................5
2.2.2 Paradigma Ubiquitous Computing..........................................................................6
2.2.2.1 Definiii...........................................................................................................6
2.2.2.2 Caracteristici...................................................................................................6
2.2.3 Ontologie.................................................................................................................7
2.2.3.1 Definiii...........................................................................................................7
2.2.3.2 Caracteristici...................................................................................................7
2.2.4 Ageni senzitivi la context......................................................................................8
2.2.4.1 Paradigma agentului........................................................................................8
2.2.4.2 Ageni BDI......................................................................................................8
2.3
Arhitecturi de sisteme senzitive la context.................................................................9
2.3.1 Arhitecturi de sisteme senzitive la context locale...................................................9
2.3.1.1 Modelul arhitectural stratificat Context Stack.............................................9
2.3.2 Arhitecturi de sisteme distribuite senzitive la context..........................................11
2.3.2.1 Serviciile Web Semantice.............................................................................12
2.3.2.2 Arhitectura Serviciilor Web Semantice.........................................................13
2.4
Medii de dezvoltare ale aplicaiilor senzitive la context...........................................15
2.5
Aplicaii n domeniul caselor inteligente..................................................................16
2.6
Dificulti i riscuri ntmpinate n crearea aplicaiilor senzitive la context............18
2.7
Proiecte ample de cercetare n desfurare...............................................................20
FUNDAMENTARE TEORETIC...............................................................................22
3.1
Modelarea formal a contextelor..............................................................................22
3.1.1 Ageni bazai pe cunotine...................................................................................22
3.1.1.1 Baze de date de cunotine............................................................................22
3.1.2 Reprezentarea cunotinelor..................................................................................23
3.1.3 Folosirea ontologiilor n modelarea contextelor...................................................24
3.1.3.1 Modelarea contextului cu ontologii..............................................................24
3.1.3.2 Proiectarea ontologiilor de context...............................................................25
3.1.3.3 Limbajul OWL..............................................................................................28
3.1.4 Extensii probabilistice ale ontologiilor.................................................................29
3.2
Metode folosite pentru modelarea bazelor de cunotine.........................................32
3.2.1 Metodologii existente pentru crearea bazelor de cunotine.................................32
3.2.2 Unelte de dezvoltare a ontologiilor.......................................................................33
3.2.2.1 Protg 4.......................................................................................................34
3.3
Metode folosite pentru dezvoltarea agenilor...........................................................35
3.3.1 Platforme de dezvoltare a agenilor......................................................................35
3.3.2 Platforma JADE....................................................................................................37
3.3.3 Mediul JADEX 0.96.............................................................................................38
3.3.3.1 Modelul BDI definit n Jadex.......................................................................38
3.3.3.2
PROIECTARE DE DETALIU.......................................................................................47
5.1
Analiza cerinelor......................................................................................................47
5.2
Proiectarea arhitecturii..............................................................................................48
5.2.1 Sistemul de roboi.................................................................................................48
5.2.1.1 Agentul Robot Manager................................................................................49
5.2.1.2 Agentul Robot Supraveghetor.......................................................................50
5.2.1.3 Agentul Robot Misiune.................................................................................51
5.2.1.4 Agentul Robot Divertisment.........................................................................54
5.2.2 Sistemul de senzori...............................................................................................54
5.2.3 Sistemul de dispozitive.........................................................................................55
5.2.4 Sistemul de control...............................................................................................56
5.2.5 Sistemul de monitorizare......................................................................................56
5.2.6 Proiectarea bazei de cunotine.............................................................................57
5.3
Detalii de implementare............................................................................................57
5.3.1 Caracteristici generale legate de implementarea sistemului.................................57
5.3.1.1 Pachetele aplicaiei........................................................................................58
5.3.2 Implementarea agenilor.......................................................................................58
5.3.2.1 Implementarea fiierelor de descriere a agenilor.........................................58
5.3.2.2 Implementarea planurilor..............................................................................60
5.3.3 Interfee Utilizator.................................................................................................61
5.4
Scenariu de testare....................................................................................................61
UTILIZAREA SISTEMULUI.......................................................................................62
CONCLUZII...................................................................................................................72
8.1
Realizri....................................................................................................................72
8.2
Direcii de dezvoltare................................................................................................73
BIBLIOGRAFIE.............................................................................................................75
Cuprins
Lista de Tabele
Tabel 2.1 Clasificarea roboilor utilizai n locuine...................................................................4
Tabel 3.1 Comparaie ntre SOCAM i CoOL privind modelarea ontologiilor de context......27
Tabel 3.2 O parte din regulile de argumentare OWL................................................................29
Cuprins
Lista de Figuri
Figura 2.1 Tendina n vnzarea roboilor de cas pe piaa japonez.........................................4
Figura 2.2 Modelul arhitectural Context Stack.........................................................................10
Figura 2.3 Comparaie ntre SemanticURS i sistemele tradiionale........................................12
Figura 2.4 Clasele componente ale unei ontologii de tip OWL-S............................................13
Figura 2.5 Arhitectura detaliat a Semantic URS.....................................................................14
Figura 2.6 Procedura de integrare automat a unui agent SemanticURS.................................15
Figura 2.7 Diagrama de interaciune ntre modulele componente ale JCAF............................15
Figura 2.8 Arhitectura general cu diagrame de colaborare a JCAF........................................16
Figura 2.9 Arhitectura de tip OSGi pentru o cas senzitiv la context.....................................17
Figura 3.1 Cazul general de programare a unui agent bazat pe cunotine...............................23
Figura 3.2 Exemplu de modelare a unei ontologii superioare..................................................24
Figura 3.3 Definire ontologii specifice reprezentate prin reele Bayesiene..............................26
Figura 3.4 Model de proiectare a ontologiilor contextuale, folosind SOCAM........................26
Figura 3.5 (a) Schema relaional i (b) Modelul probabilistic pentru o cas inteligent........30
Figura 3.6 Arhitectura SOCAM cu ontologii specifice i modele probabilistice.....................31
Figura 3.7 Procesul de dezvoltare a unei baze de cunotine folosind Methontology..............32
Figura 3.8 Arhitectura general a unei platforme de ageni i comunicarea ntre platforme....36
Figura 3.9 Platforma, depozitele i comunicaiile ntre platforme JADE................................38
Figura 3.10 Diagrama de colaborare ntre componentele unui agent Jadex.............................39
Figura 4.1 Diagrama arhitectural a sistemului........................................................................45
Figura 5.1 Diagrama de interaciune ntre actorii i sistemul casei inteligente........................48
Figura 5.2 Diagrama de obiective a sub-sistemului de roboi..................................................49
Figura 5.3 Obiectivele robotului transportor n casa inteligent...............................................52
Figura 5.4 Sistemul de senzori al casei inteligente...................................................................55
Figura 5.5 Sistemul de dispozitive al casei inteligente.............................................................56
Figura 5.6 Obiectivele sistemului de control al casei inteligente.............................................56
Figura 5.7 Antetul fiierului de descriere a agenilor ADF.......................................................59
Figura 5.8 Schema de definire a unui agent Jadex....................................................................59
Figura 5.9 Definirea planului de micare pentru robotul transportor.......................................60
Figura 6.1 Reprezentarea robotului transportor........................................................................62
Figura 6.2 Panoul de control al simulatorului...........................................................................62
Figura 6.3 Consola agentului pentru baza de cunotine..........................................................63
Figura 7.1 Pornirea platformei de ageni din Eclipse...............................................................65
Figura 7.2 Platforma de ageni Jadex........................................................................................66
Figura 7.3 Clasele ontologice specifice agenilor roboi..........................................................68
Figura 7.4 Proprieti individuale specificate n modelul ontologic - robot supervizor...........68
Figura 7.5 Mesajul trimis ctre agentul bazei de cunotine pentru identificarea roboilor.....69
Figura 7.6 Mesajul cu coninutul instanelor de roboi trimis de agentul bazei de cunotine. 69
Figura 7.7 Mesaje ACL transmise ntre agentul robot transportor i sistemul casei inteligente
...................................................................................................................................................70
Figura 7.8 Consola agentului Manager pentru roboii casei inteligente i planurile executate 71
Introducere
INTRODUCERE
Introducere
roboilor la sistemul senzitiv la context al casei nu este de ajuns folosirea cunotinelor despre
context i regulile predefinite sau cele deduse ulterior, toate acestea nu vor conduce de fiecare
dat la rspunsul optim care s satisfac preferinele utilizatorului. Dar de multe ori acest
rspuns al sistemului se poate apropia de cerine.
Pentru satisfacerea cerinelor exprimate n problema propus este necesar ca n primul
rnd din soluia de proiectare a arhitecturii s rezulte o arhitectur flexibil, care permite
adaptarea a noi componente. Astfel soluia propune construirea unui sistem multi-agent
distribuit descentralizat bazat pe agent, fiecare component a sistemului fiind un agent, iar
comunicarea ntre componente fiind realizat prin comunicarea de mesaje ntre ageni.
Folosirea agenilor aduce o generalizare mare a problemei, deoarece prin ageni se pot
reprezenta diferite tipuri de entiti sau actori, printre care i roboi, agenii putnd fi
configurai s emuleze comportamentul unui robot din sistemul senzitiv la context.
Cerinele i direciile de proiectare i cercetare abordate n aceast lucrare sunt
urmtoarele:
Studiul conceptelor de baz folosite n domeniul senzitivitii la context i a
roboilor Lucrarea furnizeaz un dicionar cu explicaii i amnunte legate de
conceptele de baz privind senzitivitatea la context, sisteme senzitive la context i
roboi;
Studiul metodelor de modelare a contextelor i folosirea ontologiilor Se face o
analiz a avantajelor i dezavantajelor proiectrii contextelor cu ontologii;
Studiul diferitelor arhitecturi existente de sisteme senzitive la context i o
comparaie ntre acestea Se studiaz diferite modele arhitecturale pentru sisteme
senzitive la context. De asemenea se valorific aportul adus de proiectarea cu
ageni la infrastructura sistemului;
Studiul metodelor i metodologiilor de realizare a adaptrii agenilor la un sistem
senzitiv la context Pentru a ndeplini obiectivele lucrrii este necesar studierea
diferitelor metode de dezvoltare a agenilor, unelte folosite pentru crearea agenilor
precum i platforme de simulare a sistemelor multi-agent. Se face i un studiu de
fezabilitate pentru toate aceste platforme, n ncercarea de a alege cea mai bun
metod pentru atingerea scopului lucrrii;
Proiectarea arhitecturii senzitive la context n compatibilitate cu adaptarea
roboilor n partea de proiectare a arhitecturii trebuie luate n considerare tipurile
de ageni folosii pentru modelarea entitilor din sistemul senzitiv la context al
casei inteligente, tipurile de ageni folosii pentru roboi, modul de colaborare ntre
ei, cunotinele mprite, obiectivele i planurile executate pentru atingerea
obiectivelor i dependenele dintre ei;
Implementarea unei aplicaii care s simuleze adaptarea roboilor n sistemul
senzitiv la context al casei inteligente Construirea unui sistem multi-agent este
un proces complex care include provocrile i problemele referitoare la sisteme
distribuite, probleme rezultate din flexibilitatea i comunicarea la distan ntre
componente i simularea adaptrii ntr-o aplicaie vizual demonstrativ;
Descoperirea i tratarea provocrilor existente i a dezvoltrilor ulterioare pentru
sistemul senzitiv la context cu roboi Prezentarea unor direcii de dezvoltare
ulterioar a sistemului.
Implementarea unei adaptri complete a roboilor este n afara scopurilor lucrrii
deoarece acest lucru implic cercetri i expertize complexe n domeniul electronicii,
ciberneticii, psihologiei i alte domenii auxiliare care pot interveni n proiectarea roboilor
inteligeni.
2
Universitatea Tehnic din Cluj-Napoca
Introducere
3
Universitatea Tehnic din Cluj-Napoca
Introducere
2
2.1
STUDIU BIBLIOGRAFIC
Case inteligente
Studiu Bibliografic
Arie de interes
Roboi pentru comunicare
Roboi existeni
NEC PaPeRo
Hitachi EMIEW/EMIW2
AIST PARO
ART Robovie
Roboi pentru ajutor casnic
Fuji Heavy Industry
iRobot Roomba
Toshiba ApriPoko
Mitsubishi Heavy Industry
Wakamaru
Roboi folosii pentru munci Matsushita Electric
mai grele
Works HOSPI
Secom Secom Robot X
Cyberdyne
Toyota IRT
Aplicabilitate
Securitatea domiciliului
Monitorizare la distan
Terminal de informare
ngrijire medical / ddac
Ajutor casnic
Aerisirea
i
reglarea
temperaturii ncperilor
Curenie
Securitate i monitorizare
Servicii n instiuii publice
(coli, spitale, etc.)
Ddcire
ngrijire medical
Securitate
n Japonia, conform companiei Seed Planning Company, cota de pia pentru roboii
de tip service-robot a crescut de la 1,9 miliarde yeni la 6,7 miliarde yeni n 2006. n 2007
deoarece marile companii s-au retras de la a mai comercializa roboi de amuzament precum
roboi de companie, vnzrile au sczut per total, ns, vnzarea roboilor de menaj i a celor
ddac a continuat s creasc aa cum se poate vedea i n Figura 2 .1.
5
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
2.2
2.2.1
2.2.1.1
Context
n general, contextul reprezint orice informaie care poate fi folosit pentru a
caracteriza starea unei entiti [16]. O entitate poate s fie la rndul ei o persoan, un loc, o
situaie sau un obiect care este relevant interaciunii dintre un utilizator i o aplicaie.
Aplicaiile senzitive la context caut rspuns pentru circumstanele n care o entitate se poate
afla, i folosesc aceste informaii pentru a determina ce situaii apar n aceste circumstane.
n [15] este dat urmtoarea definiie pentru un context: Un context se refer la ceea ce
furnizeaz surse adiionale de informaie, aduce contribuie la nelegerea situaiei, pentru un
anumit punct de interes vizat.
Conceptul de context a fost introdus n multe domenii din tiina calculatoarelor,
acestea incluznd, procesarea limbajelor formale i naturale (gramatici dependente/
independente de context), grafic pe calculator, procese decizionale, procesare de informaii,
dispozitive de calcul omniprezente sau securitate. Scopul utilizrii contextului este adugarea
adaptabilitii sistemelor i suport n luarea deciziilor.
2.2.1.2
Senzitivitate la context
Senzitivitatea la context este un punct foarte important i esenial n mediile
computaionale omniprezente, pentru adaptarea entitilor computaionale la schimbrile care
pot interveni, cum ar fi schimbrile necesitilor utilizatorilor sau a capacitilor tehnice [17].
Fundamentul senzitivitii la context este un model de reprezentare ct mai formal al
contextului, care este necesar pentru a reprezenta contextul ntr-o manier interpretabil de
ctre calculator. n medii distribuite, este primordial ca aceast informaie contextual s
poat fi interpretat de entitile computaionale diferite, ceea ce ofer interoperabilitate. Mai
mult, este necesar argumentarea cunotinelor despre context, de exemplu, pentru a rezolva
inconsistenele datelor venite de la senzori, sau pentru a deduce context de nivel nalt, din
informaii vagi i eronate venite de la senzori.
Senzitivitatea la context este un subiect care trateaz modul n care dispozitivele pot
interfera i nelege contextul curent bazat pe informaiile preluate de la senzori [18]. Prin
nelegerea contextului curent (o situaie, un mediu) n care se afl utilizatorul sau
dispozitivul, sistemul poate lua n mod inteligent o decizie pentru a face un anumit tip de
aciune sau cel puin s notifice i s cear permisiunea utilizatorului pentru a confirma
aciunea pe care o va executa.
Sistemele senzitive la context bazate pe recomandri sunt o component esenial n
acest tip de medii pervazive. Scopul acestor ageni inteligeni este s determine prioriti sau
s sugereze aciunile de care utilizatorul este interesat, lund n calcul contextul interaciunii.
2.2.1.3
Studiu Bibliografic
2.2.2
2.2.2.1
Definiii
Cuvntul ubiquitous (n traducere care se mprtie peste tot, omniprezent) poate fi
transpus nspre domeniul tehnic ca a fi sau a exista peste tot n acelai timp, ntlnit n mod
frecvent, rspndit peste tot, referindu-se la faptul c tehnologia este peste tot i o folosim
tot timpul [19].
Din cauza omniprezenei acestor tehnologii tindem s le folosim fr a ne gndi la un
anumit dispozitiv, la o anumit unealt gen calculator sau telefon mobil. n schimb ne gndim
doar la aciunea pe care vrem s o ntreprindem, fcnd astfel acest tip de tehnologii invizibile
din punctul de vedere al utilizatorului.
Cercettorii de la Research Center for Educational Technology [19], n urma muncii
lor i a observaiilor bazate pe experien i pe cunotinele existente au dezvoltat o definiie
care poate fi aplicat n domeniul nvmntului pentru a rspndi aceast noiune nou n
rndul studenilor: Mediile computaionale pervazive sunt medii de nvare n care toi
studenii au acces la o varietate de servicii i dispozitive digitale, incluznd calculatoare
conectate la Internet, precum i dispozitive mobile, oriunde i oricnd au nevoie de ele.
Noiunea noastr de ubiquitous computing este mai mult axat pe relaia: de la mai muli-la
mai muli (many-to-many) dect pe unu-la-unu (one-to-one) sau unu la-mai muli (one-tomany) i include ideea de tehnologie oricnd la dispoziia studenilor.
Mark Weiser, cercettor la Xerox, a fost primul care a introdus termenul de ubiquitous
computing i a definit termenul astfel: Ubiquitous computing este metoda prin care se
mbuntete utilizarea calculatorului, fcnd mai multe dispozitive disponibile prin mediul
fizic, acestea fiind invizibile pentru utilizator [20].
Marcia Riley, de la Georgia Institute of Technology, Atlanta, spunea c UC, sau
tehnologia calm este o schimbare de paradigm, n care tehnologia devine practic
invizibil, dar este peste tot prezent n vieile noastre [20].
2.2.2.2
Caracteristici
Folosind dispozitivele aprute n ultima perioad utilizatorii tind s comunice prin
diferite metode, s fie mult mai activi, s foloseasc spaiul geografic i temporal n mod
diferit, i s dein mai mult control. Astfel, datorit nevoilor utilizatorilor, UC a fost
conceput avnd urmtoarele caracteristici:
Dispozitivele sunt prezente peste tot n jurul nostru;
Sunt interconectate i comunic unul cu cellalt;
Nu necesit atenie continu din partea utilizatorului pentru a funciona;
Fiecare dispozitiv tinde s fie ct mai specializat;
Sunt invizibile, fiind ascunse n mediul n care sunt folosite;
7
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
2.2.3
Ontologie
2.2.3.1
Definiii
Termenul ontologie i are originile n filosofie i se refer la disciplina care se
ocup cu existena i cu lucrurile care exist. n tiina calculatoarelor lucrurile care exist
sunt cele care pot fi reprezentate prin date [17].
Diferite definiii pentru ontologiile legate de tiina calculatoarelor pot fi gsite n
literatur [23]. Ca un exemplu, o definiie dat de J. Vo [24] este: O ontologie este un sistem
definit formal de concepte i relaiile dintre aceste concepte. Ontologiile conin, cel puin n
mod implicit, reguli. Se pot deosebi trei probleme cnd punem aceast definiie pentru
ontologii n relaie cu modelarea contextelor i argumentarea:
Un model de context este de asemenea un sistem de concepte (entiti) i relaii
care fac din ontologie o unealt bun pentru modelarea conceptelor;
Ontologia este definit formal, ceea ce este o precondiie pentru ca un computer
s o poat interpreta, de exemplu, pentru motive de argumentare;
Regulile pot fi folosite pentru a implementa argumentarea contextului.
2.2.3.2
Caracteristici
M. Gruninger i J.Lee [25] despart aplicabilitile ontologiilor n 3 grupuri mari:
Comunicaii i mprirea cunotinelor: o ontologie servete ca un vocabular
comun pentru ageni diferii (entiti computaionale sau oameni).
Inferen i argumentare logic: O ontologie poate fi folosit pentru a deduce
cunotinele implicite din cunotinele explicite, aplicnd reguli.
Refolosirea cunotinelor: Ontologiile comune pot fi folosite cnd se construiesc
ontologii specifice domeniului.
Elementele tipice ale unei ontologii sunt:
Conceptele i atributele lor.
Taxonomii pentru a clasifica conceptele prin generalizare i specificare.
Relaii ntre concepte.
8
Studiu Bibliografic
2.2.4
Axiome pentru a defini formule care sunt ntotdeauna adevrate. Ele sunt folosite
pentru a demonstra consistena cunotinelor modelate de o ontologie i pentru a
deduce lucruri ulterioare.
Faptele sunt instane ale conceptelor i relaiile dintre ele.
Se deosebesc mai multe limbaje diferite ce pot fi folosite pentru a defini ontologii.
Dintre acestea amintim Ontolingua [28], LOOM [29] i OWL Web Ontology
Language [26, 27]. OWL este limbajul cel mai folosit pentru a definii ontologii
pentru sisteme senzitive la context, incluznd i serviciile Web semantice [26].
Paradigma agentului
Cercettorii n domeniul sistemelor agent au definit n diferite maniere noiunea de
agent, deosebindu-se dou dintre aceste abordri n funcie de proprietile care sunt dorite
pentru agentul definit: Noiunea de agent simplu i noiunea de agent BDI Belief-DesireIntention (Convingere Dorin Intenie) care extinde agentul simplu adugnd proprieti.
n descrierea agentului simplu Wooldridge [38] puncteaz o definiie descriind
proprietile eseniale ale agentului Un sistem de calcul hardware sau cel mai des software
care satisface urmtoarele proprieti:
autonomie: agenii opereaz fr intervenia direct a omului sau altfel, i au un
nivel de control asupra aciunilor i a strii interne;
abiliti sociale: agentul interacioneaz cu ali ageni printr-un anumit limbaj de
comunicare;
reaciune: agenii percep mediul n care se afl i reacioneaz la schimbrile care
au loc n el;
proactivitate: agenii nu doar c iau decizii ca rspuns la schimbri, ei sunt capabili
s aplice comportamente obiective prelund iniiativa.
O definiie mai general a agentului a fost elaborat de Russell i Norvig [39]: Un
agent este orice care poate fi s perceap mediul prin senzori, i s acioneze n acel mediu
prin efectori. Ei specific c noiunea de agent este prevzut pentru a fi o unealt pentru a
analiza sistemele, nu o caracterizare absolut care desparte lumea n ageni i non-ageni.
2.2.4.2
Ageni BDI
Modelul BDI aa cum este descris n [40] este bazat pe 3 concepte: Convingere,
Dorin i Intenie (tradus Belief-Desire-Intention). Ideea are baze filosofice n conceptul
analog din teoria argumentrii umane. Convingerile reprezint cunotinele agentului despre
starea curent a mediului, starea intern a lui, informaii despre ali ageni. n mediile reale, cu
un grad mare de incertitudine convingerile agentului sunt incomplete i inexacte.
9
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
2.3
2.3.1
Sistemele orientate pe reea sunt uor de implementat din cauza standardului ISO
Open System Interconnection (OSI), care este un model stratificat n care fiecare nivel este
independent i are funcionalitatea sa specific. n acest fel, n [33] se propune un model
stratificat pentru arhitectura unui sistem senzitiv la context, Context Stack.
2.3.1.1
10
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
Nivelul achiziie
Este nivelul cel mai de jos n care contextul este preluat ntr-un format neprocesat,
fiind preluat de la o multitudine de tipuri de senzori pervazivi. De exemplu, locaia n cas a
unui locatar poate fi obinut de la un sistem de senzori RFID, care detecteaz apariia unei
modificri n configuraia RFID, nivelul luminii fiind detectat de senzorii de lumin, iar
nivelul zgomotului este obinut de la senzorii de zgomot. Datele preluate pot s nu ofere
context care s poat fi neles i utilizat de serviciile senzitive la context, astfel el trebuie
trimis la nivelele de mai sus pentru procesri ulterioare.
Nivelul Reprezentare
Studiu Bibliografic
pentru a se putea ulterior s se fac interpretri, bazate pe contextele curente i pe cele din
trecut.
Nivelul Interpretare
La nivelul cel mai de sus, serviciile senzitive la context utilizeaz att contexte de
nivel jos, ct i contexte de nivel nalt pentru a-i ajusta comportamentul. Lund exemplul dat
n Figura 2.2, telefonul inteligent (smart phone-ul) preia contextul utilizatorului i decide s
redirecioneze toate apelurile telefonice nspre csua vocal. De asemenea el ia n considerare
contextul prezis pentru a nfptui unele aciuni.
2.3.2
Studiu Bibliografic
2.3.2.1
Studiu Bibliografic
realiza aceste servicii interpretabile de computere, de a crea servicii Web semantice ale cror
semantic, precum proprieti, capaciti i interfee, s fie codificate ntr-un mod neambiguu,
ntr-o form inteligibil de ctre maini. Serviciile Web Semantice sunt construite astfel nct
s ndeplineasc aceste cerine, descriind serviciile Web folosind ontologii OWL, numite
generic OWL-S. OWL-S este structurat n 3 clase eseniale: Service Profile, Service Model,
Service Grounding [06] (Figura 2.4).
Studiu Bibliografic
RDF folosete limbajul de interogare Data Query Language (RDQL) [09], [10]. Dup
ce planul a fost compus cu succes, modulul de execuie a planului transform planul ntr-un
format executabil pentru ca ulterior s fie pus ca cerere pe stiva de comunicare a serviciului
Web.
EKR Enviromental Knowledge Repository conine o baz de cunotine a domeniilor
(Domain Knowledge Base - DoKB) i o baz de cunotine a dispozitivelor (Device
Knowledge Base - DeKB) utilizate pentru nregistrarea i descoperirea cunotinelor. DoKB
conine cunotine OWL-S despre conceptele generale legate de servicii i task-urile compuse
care descriu modelele comune ale serviciilor pentru un anumit domeniu. DeKB conine
cunotine salvate n format OWL-S despre task-urile atomice care reprezint serviciile oferite
de dispozitive i senzori, n medii specifice serviciilor. EKR conine de asemenea i obiectele
de descoperire a serviciilor, pentru a manipula n mod automat interogrile de descoperire a
cunotinelor cu predicate semantice despre cunotinele OWL-S formate de RA. EKR
conine i stiva de comunicare Web Service, componenta comportndu-se ca un Web Service
independent, fiind accesat de RA prin SOAP.
DWS Device Web Service este o implementare specific a Web Service-urilor pentru
dispozitive ubicuitare incluznd roboi, senzori, actuatori .a.m.d. Fiecare DWS poate avea
obiecte de control pentru unul sau mai multe dispozitive, care pot lucra mpreun, de pild un
dispozitiv de aer condiionat i un senzor de temperatur. DWS dispune de asemenea de
servicii Web pentru a comunica cu RA.
Proiectarea aa cum este descris n Figura 2.6 mparte procesul de integrare automat
al unui agent SemanticURS n 3 faze:
Descoperirea cunotinelor;
Planificarea Serviciului;
Executarea planificrii.
15
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
2.4
Astfel mediul JCAF nu are construit nici un modul inteligent el fiind responsabil doar
de controlul traficului, schimbrile de mediu i transportul informaiilor ctre aplicaiile
senzitive la context. Nivelul cel mai important al mediului JCAF o constituie serviciile de
context, care formeaz o reea interconectat de tip punct-la-punct, fiecare serviciu fiind
specializat pentru un anumit tip de informaie de context, aceste servicii putnd comunica
16
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
ntre ele pentru a schimba informaii de context. O arhitectur general poate fi vzut n
Figura 2.8, mpreun cu arhitectura unui serviciu.
2.5
17
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
Studiu Bibliografic
Serviciul Web (SW) Semantic Serviciul SW furnizeaz API-uri Semantic Web pentru
accesarea i manipularea contextelor codificate n OWL, pentru a persista i interoga
modelele semantice ale contextelor n baze de date relaionale i pentru a infera contexte
adiionale din contextele existente n KB. Implementrile curente sunt bazate pe Jena
Semantic Web Toolkit, totui implementri alternative pot fi expuse printr-o interfa generic
pentru a fi ataate arhitecturii. SW service bundle furnizeaz fundamentele urmtoarelor 3
servicii.
Serviciul de Context Acquisition - Acest serviciu este responsabil pentru colectarea
informaiilor despre context de la o gam variat de surse i transform descrierile ad-hoc ale
contextelor n reprezentri semantice folosind ontologii. Acest serviciu furnizeaz
funcionalitile nivelului achiziie i nivelul reprezentare semantic al arhitecturii stratificate
descris n Capitolul 2.3.1.
Serviciul Context KB Baza de date de cunotine despre contexte furnizeaz un
mediu de stocare pentru cunotinele despre contexte prin folosirea bazelor de date relaionale.
Aceasta stocheaz i manipuleaz att ontologii de context statice (descrierile ontologice ale
claselor sau tipurilor de entiti relaionale) ct i contexte dinamice (instane ale situaiilor
sau indivizi reprezentai bazai pe ontologiile de context existente). Astfel are suport pentru
argumentare despre ontologiile de context, ct i pentru informaiile contextuale situaionale.
Serviciul KB permite arhitecturii serviciului s agrege i relaioneze contexte dinamice de la
surse contextuale distribuite i astfel furnizeaz funcionalitatea nivelului agregare din
arhitectura prezentat n Capitolul 2.3.1.
Serviciul de Context Inference Acest serviciu este un modul de argumentare care
poate fi folosit de serviciile senzitive la context pentru a deduce contexte de nivel nalt din
contextele de baz. Serviciul de inferen este bazat pe Jena API, care furnizeaz inferen
bazat pe reguli pentru OWL. Acest serviciu furnizeaz funcionalitatea nivelul inferen de
context al arhitecturii prezentate n Capitolul 2.3.1.
2.6
Una dintre cele mai mari dificulti n crearea aplicaiilor ubiquitous i senzitive la
context robuste este dezvoltarea unor algoritmi care pot detecta contexte din date senzoriale
ambigue i cu zgomote.
Provocarea pentru astfel de sisteme const n complexitatea capturrii, reprezentrii i
procesrii datelor de context. Pe lng abilitatea de a obine informaiile despre context
aplicaiile trebuie s includ logic adiional pentru a procesa informaia i pentru a deduce
scopul acestora. Aceasta este probabil cel mai provocator lucru, deoarece este de cele mai
multe ori indirect i poate fi dedus prin combinarea unor diferite piese de informaie
contextual [41].
n [42] se descriu dificultile ce apar cnd se folosesc informaiile de context n
aplicaii pe calculator:
Informaia de context este adeseori achiziionat de la senzori neconvenionali care nu
sunt gsii n viaa de zi cu zi: termostat, GPS .a.m.d.
Datele preluate de la senzori trebuie s fie abstractizate ntr-o reprezentare de nivel
nalt pentru a deveni folositoare. Lund exemplul unui termostat, temperatura citit n grade
trebuie abstractizat n frig, mediu, cald, foarte cald. Dar, o aplicaie poate s abstractizeze
informaiile venite de la mai muli senzori, de exemplu, pe lng temperatur aplicaia poate
s aib nevoie de informaii despre umiditate pentru a determina nivelul de confort al unei
camere.
19
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
20
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
2.7
Studiu Bibliografic
svrite de subiecii care particip la experiment, att nainte de a locui n cas, precum i
dup aceea. Principalele probleme care se ridic n cadrul experimentului sunt:
Ce influeneaz comportamentul oamenilor n propria lor cas?
Cum se poate eficientiza aportul tehnologic n cadrul traiului n cas pe perioade
mai ntinse de timp?
Poate tehnologia s modeleze schimbrile de comportament din timpul vieii?
n ce msur, monitorizarea i msurarea activitilor din cas pot fi cuantificate n
aa manier nct se pot crea noi aplicaii pe calculator utile casei?
Cum poate tehnologia s fie folosit pentru a facilita controlul caselor din prezent
i viitor, s se economiseasc resurse i s se mbunteasc sntatea?
Ce influeneaz modul n care oamenii se adapteaz la noi medii?
Care este modul de nvare al oamenilor n contextul casei?
Ce inovaii aduse unei case ar putea mbunti cel mai semnificativ maniera
noastr de a tri viaa de zi cu zi?
OSBA Open Source Building Alliance are scopul de a dezvolta componente cheie ale
unui model reactiv cu ajutorul cruia s se poat crea locuine n care:
Dezvoltatorii devin integratori i membri ai alianei i ofer soluii adaptate
indivizilor;
Arhitecii concep abloane de proiectare pentru a crea n mod eficient mii de medii
inteligente unice;
Productorii aprob standardele interfeelor i devin furnizori de componente de
primul nivel;
Constructorii devin instalatori i asamblori;
Clienii sunt cei din centrul procesului primind informaii personalizate legate de
proiectare, produse i servicii n funcie de deciziile lor.
Dintre implementrile realizate de ctre aliana OSBA amintim:
OSBA: Integrated Interior Infill (I3);
Sisteme OSBA care ofer soluii gen work-at-home, sisteme acustice integrate,
sisteme interactive, elemente transformabile, aplicaii i dispozitive conectate n
reea .a.m.d.
OPEN Prototype House Initiative
A fost format pentru a crea nite prototipuri de locuine care testeaz un nou model
pentru design-ul i fabricarea unor locuine cu reactivitate mare. Aceast alian, condus de
MIT House_n Open Source Building Alliance i Bensonwood Homes, va permite partenerilor
industriali s colaboreze pentru prototipizarea i crearea unor noi materiale, sisteme,
dispozitive utile pentru casele inteligente.
Just-In-Time Persuasive User Interfaces for Motivating Healthy Behaviors
Acest program investigheaz tehnologiile i proiectarea interfeelor utilizator pentru a
crea dispozitive i spaii persuasive. Programul dezvolt o tehnologie care detecteaz automat
un anumit punct de decizie (point-of decision) folosind senzori de mediu. Interfeele utilizator
folosesc aceste informaii just-in-time despre ce aciune efectueaz un anumit individ, i
idei preluate din psihologia social i alte tiine sociale, pentru a motiva o schimbare a
comportamentului n perioade lungi de timp aplicnd o metod neiritant, educaional.
Astfel, domeniile n care se aplic aceast idee sunt conservarea energiei, regim
alimentar sntos, activitate fizic, sigurana personal i la locul de munc i nvarea.
Informaiile pot fi expuse cel mai eficient pe un dispozitiv pervasiv, precum un telefon mobil.
22
Universitatea Tehnic din Cluj-Napoca
Studiu Bibliografic
23
Universitatea Tehnic din Cluj-Napoca
FUNDAMENTARE TEORETIC
3.1
3.1.1
Aplicaia curent are la baz folosirea agenilor inteligeni. Precum oamenii cunosc,
nva i raioneaz, cunotinele i raionamentele sunt aplicate i n cazul agenilor bazai pe
cunotine. Astfel ei i pot nsui comportamente foarte greu de atins ntr-o alt manier. De
exemplu [39], un agent-reflex poate s gseasc o rut valid ntre 2 orae doar prin noroc,
sau un agent bazat pe rezolvarea problemelor poate rezolva probleme foarte complexe, dar
cunotinele sale sunt limitate i inflexibile. Cunotinele unui agent pot fi exprimate n
diferite forme generale, combinnd i recombinnd informaii pentru diferite scopuri, nu de
fiecare dat dintre cele mai folosite, la fel cum un matematician poate dezvolta o nou
teorem, care nu neaprat trebuie s satisfac anumite nevoi din acel moment.
Agenii bazai pe cunotine joac un rol crucial n cazul mediilor observabile parial
precum casele inteligente. Acetia pot combina cunotinele generale cu informaiile curente
pentru a infera aspecte nevizibile ale strii curente, nainte de a decide o anumit aciune, la
fel cum un doctor diagnosticheaz un pacient pentru a infera boala cu care se confrunt
pacientul, care nu este direct observabil, nainte de a i prescrie un anumit tratament [39].
Agenii bazai pe cunotine sunt foarte flexibili. Acetia sunt capabili s accepte noi
ntrebuinri sub forma unor obiective descrise i pot deveni competeni pentru a le ndeplini
doar spundu-li-se sau nvnd noi cunotine despre mediu, putndu-se adapta schimbrilor
mediului reactualiznd cunotinele relevante despre acesta.
3.1.1.1
Fundamentare Teoretic
3.1.2
Reprezentarea cunotinelor
Fundamentare Teoretic
Pentru orice ontologie specializat este posibil s se fac schimbri pentru a putea
conecta aceast ontologie ntr-una mai generalizat. Aceast proprietate confer reprezentrii
ontologice a cunotinelor o flexibilitate foarte mare, fiind exact ceea ce este nevoie pentru
modelarea bazei de cunotine a unui agent bazat pe cunotine care acioneaz ntr-o cas
inteligent. O problem care se pune este dac toate ontologiile ar putea converge la o
ontologie generalizat [25]. Acest lucru este un subiect de controvers. Totui, exist nite
caracteristici ale ontologiilor de uz general care le face s fie distincte fa de ontologiile
specializate:
O ontologie generalizat trebuie s poat fi aplicat n orice domeniu specializat;
ntr-un domeniu suficient de complex cunotinele diferite trebuie unificate
deoarece argumentarea i rezolvarea problemelor poate s implice mai multe
domenii simultan.
3.1.3
3.1.3.1
Fundamentare Teoretic
3.1.3.2
Fundamentare Teoretic
Unul dintre cele mai cunoscute modele este SOCAM (Service Oriented Context
Aware Middleware) detaliat n [21]. Specificaiile acestuia presupun o arhitectur natural pe
dou nivele ca Figura 3 .13:
Nivelul superior - pentru ontologii superioare comune, n care sunt ncadrate
conceptele generale;
Nivelul inferior - pentru ontologii specifice, care sunt aplicate n cteva domenii
inteligente.
Fundamentare Teoretic
Limbaj de descriere
SOCAM
OWL
Specificaii Model
Proiectat pe 2 nivele
Modeleaz contexte i relaii cu
tipuri de date i obiecte
Extensii
probabilistice
ale
predicatelor
Mecanism de
argumentare
Argumentare ontologic
Argumentare cu reguli
Concluzii
Fiabilitatea ontologiilor se
folosesc
numai
ontologiile
inferioare
n
procesul
de
argumentare.
Model foarte bine acceptat n
dezvoltarea sistemelor ubiquitous
CoOL
OWL sau alte limbaje
(DAML, F-Logic .a.m.d.)
Proiectat pe 2 nivele
Utilizeaz modelul ASC
Modelul ASC poate fi folosit
ca un model de transfer ntre
diferite tipuri de modele de
context
Mecanism de inferen Onto
Broker
F-Logic ca limbaj de
interogare
ASC este un model flexibil
ce poate folosi ca vocabular
de baz pentru alte modele.
ASC se poate folosi cu valori
eterogene
care
descriu
aceeai entitate
Fundamentare Teoretic
3.1.3.3
Limbajul OWL
a) Introducere
Limbajul OWL se afl ntre specificaiile World Wide Web Consortium (W3C) i este
folosit ca o component fundamental a iniiativei Semantic Web [30]. Limbajul se bazeaz
pe Extensible Markup Language (XML), XML Schema[31], Resource Description
Framework (RDF) i pe RDF Schema (RDF-S) [09]. Este divizat n 3 sub-limbaje diferite
prin expresivitate: OWL-Lite, OWL-DL i OWL-Full. OWL-DL este folosit cel mai frecvent,
pentru c este cel mai expresiv, fr a pierde completitudinea i decidabilitatea, spre deosebire
de OWL-Full.
Au fost dezvoltate mai multe unelte pentru a putea lucra cu OWL:
Protg, care este un editor grafic;
Jena, care este un Java API pentru a accesa ontologiile OWL;
Racer, un modul de inferen care poate fi integrat cu Jena i Protg.
Mai multe detalii despre aceste unelte vor fi furnizate n seciunile ulterioare.
b) Elementele limbajului OWL
Cele mai importante elemente ale limbajului OWL vor fi descrise aici. O specificare
detaliat poate fi gsit n [26]. Cuvntul cheie Class este folosit pentru a defini concepte
ontologice. Cuvntul cheie subClassOf definete concepte specializate, deci poate fi folosit
pentru a construi taxonomii. Cuvntul cheie DataTypeProperty este folosit pentru a defini
atribute i concepte. Scopul variabilei se specific prin schem XML. Cuvntul cheie
ObjectProperty definete relaii ntre concepte. Acestea pot fi marcate ca i tranzitive,
simetrice sau funcionale. Dou relaii pot fi marcate ca una fiind inversa celeilalte. Relaiile
pot fi specializate folosind subPropertyOf n analogie cu subClassOf pentru concepte.
Att relaiile ct i atributele pot fi modificate prin restricii de cardinalitate i noi
valori. De asemenea este posibil s se defineasc fapte despre conceptele, atributele i relaiile
definite anterior prin instanierea lor. Aceste instane se numesc indivizi. Mai mult, este
posibil s definim concepte specializate, dependente de valorile relaiilor i atributelor.
OWL furnizeaz de asemenea mijloace pentru a clasifica ontologiile i pentru a marca
conceptele, atributele, relaiile i indivizii n analogie cu elementele altor ontologii. Acest
lucru furnizeaz interoperabilitatea sistemelor care folosesc ontologii diferite.
c) Argumentare folosind OWL
Potrivit semanticii diferitelor elemente ale limbajului se pot deduce cunotine n mod
explicit folosind faptele deja definite. Conform proprietilor subClassOf, subPropertyOf,
intersectionOf, unionOf i disjointWith se poate calcula ce indivizi aparin unui concept i
vice-versa, ce concepte se mapeaz unui obiect dat. O list mai complet de reguli poate fi
gsit n [32].
Mai mult, valorile unor atribute i relaii pentru un individ pot fi calculate n cazul n
care acestea nu sunt explicit precizate, folosind subPropertyOf, inverseOf i proprietile de
tranzitivitate i simetrie.
Exist mai multe metode cu care se face modelarea i argumentarea contextelor.
Dintre acestea amintim SOCAM, CoOL, CONON, COBRA-ONT i SOUPA. SOCAM i
CoOL fac parte din scopul acestei teme fiind detaliate n capitolul precedent. Toate aceste
metode, folosesc semantica ontologic pentru a face argumentare logic. Totui, beneficiul
real al folosirii ontologiilor pentru informaii despre context n sistemele pervazive, nu va
deveni efectiv nainte ca s se propun un standard general valabil pentru ontologia
contextelor.
Fundamentare Teoretic
Tabel 3.3 O parte din regulile de argumentare OWL
3.1.4
Fundamentare Teoretic
Figura 3.14 (a) Schema relaional i (b) Modelul probabilistic pentru o cas inteligent
Bazat pe modelul propus mai sus putem construi o ontologie de context pentru a capta
cunotinele preluate dintr-o cas inteligent. Precum se specific i n cazul arhitecturii
SOCAM, i aici se pot modela ontologii de context folosind acel model stratificat, cu
ontologiile generale pe nivelul superior, iar cele specifice pe nivelul inferior.
Acest model are dou componente:
Ontologie generic este ontologia de nivel superior la fel ca i n cazul SOCAM;
Ontologie specific o colecie de ontologii de nivel inferior care definesc detalii
despre conceptele i proprietile din fiecare sub-domeniu. O ontologie specific
pentru un sub-domeniu este compus din dou pri:
o Schema relaional care specific relaiile i cascadrile ntre relaii
pentru sub-domeniu;
o Modele probabilistice care reprezint dependenele probabilistice
condiionale dintre proprietile acelui sub-domeniu.
n Figura 3.6 ontologia generic definete conceptele de CompEntity, Location,
Person, Activity. Detaliile fiecrui concept generic precum relaiile sau dependenele
probabilistice sunt redefinite n ontologii specifice domeniului (pe un nivel inferior), care pot
varia de la un domeniu la altul.
Fundamentare Teoretic
Contextul ontologic se reprezint folosind limbajul OWL, cruia i-au fost adugate
cteva elemente pentru a modela conceptele noi, privind relaiile ntre entitile probabilistice
i modelele probabilistice. Limbajul este numit de cercettori PROWL (Probabilistic
Annotated OWL, tradus OWL cu adnotri pentru probabiliti).
Folosind aceast structur de modelare probabilistic a contextelor, se pot face 3 tipuri
de raionamente:
Raionamente din schema de baz a modelului:
o Raionament bazat pe reguli;
o Raionament ontologic.
Raionamente inovative adugate de modelul extins:
o Raionament Bayesian.
Raionamentele bazate pe reguli au aceeai logic precum n schema clasic, dar cu
meniunea c n acest model sunt aplicate claselor probabilistice i nu unor clase normale.
Raionamentele ontologice sunt asemenea cu cele din schema clasic, doar ca ele sunt
reprezentate acum n PROWL. Totui se pot face raionamente tip OWL fr probabiliti,
folosind OWL, deci nu se va ajunge la o constrngere de limbaj n cazul n care nu se vrea
folosirea probabilitilor pentru astfel de raionamente.
Raionamentele Bayesiene se fac pe baza reelelor Bayesiene construite din modelul
contextului. n funcie de domeniu se pot construi una sau mai multe reele derivate care
corespund fiecrui model probabilistic. Aceste reele se construiesc folosind algoritmul
Construct-BN [50].
Avantajele acestui model sunt introducerea probabilitilor n modelarea iniial a
contextelor. Deoarece ontologiile reprezint conceptele dintr-un domeniu, acest model de
context poate ngloba ntr-o manier facil. Folosind aceast abordare se poate modela un
domeniu al bazei de cunotine comun pentru casele inteligente fr a fi necesar construcia
unei baze de cunotine noi de fiecare dat. Deci aceast modelare suport scalabilitatea.
Fundamentare Teoretic
3.2
3.2.1
Fundamentare Teoretic
Pe lng aceste metodologii enumerate mai sus, mai exist i altele, niciuna dintre
aceste abordri neatingnd nc stadiul de maturitate, comparnd, de exemplu cu ingineria
software. Totui, se poate considera Methontology cea mai matur abordare n construirea
bazelor de cunotine, recomandat i de FIPA. Toate aceste metodologii nu sunt unificate,
deoarece fiecare grup de cercettori aplic abordarea proprie n procesul creaional.
Colaborarea ntre aceste grupuri pentru a unifica abordrile lor ar fi cea mai rezonabil
metod pentru a ajunge la un proces unificat i matur de creare a ontologiilor specifice
aplicate n cazul bazelor de cunotine.
3.2.2
Fundamentare Teoretic
3.2.2.1
Protg 4
Mediul de dezvoltare a ontologiilor Protg, ajuns la a 4-a versiune, este un mediu
complet i stabil pentru dezvoltarea bazelor de cunotine i a ontologiilor oferind facilitatea
de a integra o varietate mare de module adiionale, care pot fi dezvoltate i de ctre utilizatorii
de rnd, codul surs al aplicaiei fiind pus la dispoziie.
Protg dispune de 2 editoare separate fiecare avnd un anumit scop. Editorul
Protg-Frames faciliteaz dezvoltarea bazelor de cunotine compatibile cu standardul
OKBC. Acest editor furnizeaz interfee utilizator, care pot fi modificate pentru a modela
cunotinele dup bunul plac al utilizatorului, precum i module pentru vizualizare,
management, inferen sau raionare. De asemenea este pus la dispoziie i un API Java care
poate fi folosit pentru a crea alte aplicaii pentru accesarea cunotinelor modelate cu Protg
Frames.
Editorul Protg-OWL face posibil dezvoltarea de ontologii folosind standardul W3C
OWL. Acesta ofer uneltele necesare pentru a folosi ontologiile OWL i RDF, suport pentru
vizualizarea claselor, expresii OWL i alte faciliti. Platforma Protg ofer flexibilitatea de a
integra module adiionale. Aceste module sunt de trei tipuri: module de stocare, module
grafice i panouri.
Un modul de stocare este un modul care salveaz sau ncarc modele dintr-un format
fiier sau baze de date (XML, XML Schema, RDF .a.m.d.).
Un modul grafic se ocup de partea grafic a aplicaiei, fiind o component cu ajutorul
creia se pot vizualiza imagini, sunete sau chiar imagini video.
Panourile pot fi vizualizate n fereastra principal Protg. Exist mai multe subtipuri
de panouri n Protg:
Panouri de vizualizare:
o OntoWiz vizualizare grafic configurabil sub form de graf pentru
ontologii i relaiile ntre ele. Se formeaz o diagram similar cu UML.
o TGWiz vizualizare grafic a metodelor claselor.
o Jambalaya o unealt de rsfoire a ontologiilor care permite editarea
acestora.
Panouri pentru managementul fiierelor sau a proiectului:
o BeanGenerator genereaz clase Java (Java Beans) dintr-un model de
clase ontologice specificate n Protg.
o Prompt permite manipularea a diferite modele care pot fi unificate,
comparate, sau compuse.
o DataGenie ntrete interaciunea dintre Protg i baze de date furniznd
un modul JDBC de conectare la baze de date.
Panouri pentru motoare de raionare:
o QueryTab pentru interogarea bazei de cunotine.
o PAL mecanism de editare i evaluare a axiomelor PAL (Protg Axiom
Language Limbajul Axiomelor Protg).
Conceptul de ontologie are n Protg o form asemntoare cu cea a claselor din
proiectarea orientat-obiect. Clasele Protg sunt similare cu clasele Java i pot fi aezate ntro structur ierarhic, diferena fiind c aceste clase nu conin definiii de metode. Acestea pot
fi abstracte sau concrete, doar cele concrete putnd fi instaniate. Protg suport de asemenea
motenirea multipl. Atributele sunt definite ca perechi nume-valoare: valori primitive (logic,
ntreg, flotant, ir de caractere); numele se reprezint printr-un ir de caractere. Aceste atribute
pot fi de asemenea referine la alte clase sau instane de clase. Cu ajutorul atributelor se
construiesc relaiile ntre clase.
Fundamentare Teoretic
3.3
Dei numrul de medii de dezvoltare a agenilor a crescut mult n anii cureni, medii
care furnizeaz unelte vizuale i interfee pentru a uura proiectarea agenilor i realizarea a
diverse sisteme de ageni, eforturile i investiiile n acest sens sunt considerabil mai mici,
dect n dezvoltarea uneltelor menite altor ramuri ale industriei software.
Totui, metodologiile existente elaborate de diferite laboratoare de cercetare n
domeniul sistemelor multi-agent sugereaz mprirea procesului de dezvoltare a agenilor n
faze similare cu dezvoltarea unui alt produs software. Astfel procesul este mprit n 5 faze:
cerinele primare, cerinele secundare, proiectarea arhitecturii, proiectarea detaliat,
implementarea.
Cerinele primare identific actorii i obiectivele reprezentate de dou modele diferite.
Se construiesc diagrame care depicteaz implicrile i relaiile dintre actorii modelului,
numite dependine. Aceste dependine depicteaz modul n care actorii depind unii de alii
pentru a ndeplini obiectivele sau pentru a executa planurile. Diagramele obiectivelor
nfieaz analiza obiectivelor i planurilor referitoare la un actor responsabil s le
ndeplineasc.
Toate aceste modele sunt extinse n faza de cerine secundare, care modeleaz sistemul
ncadrat n mediul n care va aciona. n aceast faz obiectivele sunt descompuse n subobiective.
n faza de proiectare detaliat se construiesc specificaiile obiectivelor, capacitilor i
a raionamentelor agenilor. De asemenea, comunicarea ntre ageni este specificat n detaliu.
n aceast faz se proiecteaz sistemul strict dependent de platforma de dezvoltare folosit,
fiind adaptat la trsturile programrii adaptate a agenilor.
Faza de implementare are ca obiectiv generarea codului de construire a agenilor din
specificaiile oferite folosind proiectarea de detaliu.
3.3.1
Fundamentare Teoretic
Figura 3.17 Arhitectura general a unei platforme de ageni i comunicarea ntre platforme
Fundamentare Teoretic
3.3.2
Platforma JADE
Fundamentare Teoretic
3.3.3
Jadex (JADE eXtension) este o aplicaie JADE, care este folosit pentru a crea
raionamente de tip BDI (Belief-Desire-Intention Convingere-Dorin-Intenie) pentru
ageni BDI, implementai folosind platforma JADE [62]. Ultima versiune aprut n 2007 este
0.96 care este o versiune stabil. Recent, Jadex a ajuns la versiunea 2.0 care este nc n faz
beta.
3.3.3.1
Fundamentare Teoretic
comportamentul agenilor. Pentru a atinge obiectivele, un agent execut planuri care sunt
transpuse prin metode procedurale n Java. Arhitectura abstract prin care se pot vizualiza i
componentele descrise mai sus poate fi vzut n Figura 3 .19 [63].
Fundamentare Teoretic
propuse i obiectivele pentru care deja se ndeplinesc aciuni, s-a creat conceptul de ciclu de
via al obiectivului, obiectivele putndu-se astfel afla n 3 stri: activ, suspendat i opional.
Cnd un nou obiectiv este introdus el intr n sistem cu starea opional. Mecanismul de
deliberare a obiectivelor, este responsabil pentru determinarea tranziiilor pentru obiectivele
active. Unele obiective pot fi valide doar n contexte specifice determinate de presupunerile
agentului. Cnd un obiectiv devine invalid pentru contextul curent, acesta este marcat ca
suspendat pn la validarea contextului.
Patru tipuri de obiective sunt suportate de ctre mediul Jadex. Primul tip se refer la
obiectivele care definesc o aciune care trebuie executat, dar care nu neaprat conduce la un
rezultat specific. Al doilea tip se refer la obiectivele care definesc un scop sau care au o int
fr ns a se specifica cum se atinge acel obiectiv. Al treilea tip se refer la obiectivele care
reprezint o nevoie pentru informaii noi. Dac informaiile cerute nu sunt la dispoziie,
planurile sunt selectate i executate pentru a aduna informaiile necesare. Al patrulea tip i
ultimul reprezint obiectivele care specific o stare a agentului care trebuie pstrat odat ce a
fost atins. Toate obiectivele sunt reprezentate ca obiecte care au cteva atribute. Starea final
poate fi specificat ca o expresie evaluat pentru a verifica dac obiectivul a fost atins.
Structura obiectivelor care sunt n starea activ este memorat ntr-o baz de obiective. Un
agent BDI specificat n Jadex are cteva obiective de nivel nalt, care servesc ca puncte de
intrare n baza de obiective. Obiectivele pot fi separate n sub-obiective, formndu-se astfel o
structur arborescent de obiective.
Planurile descriu aciunile concrete pe care un agent le poate executa pentru a
ndeplini obiective. Un dezvoltator dezvolt un plan specificnd antetul planului i planul
propriu-zis. Antetul conine condiiile sub care planul poate fi executat i este specificat n
fiierul de descriere a agentului. Corpul planului este o structur secvenial, care descrie
aciunile care trebuie executate pentru a atinge un obiectiv sau pentru a reaciona la un
eveniment. n timpul execuiei unui plan se pot defini noi sub-obiective i atepta ca alte
evenimente s apar.
3.3.3.2
4.1
Specificaiile sistemului
4.1.1
Sistemul Smart House va furniza control automat al unor obiecte casnice (aparat de
aer condiionat, nclzirea central) mpreun cu controlul factorilor de confort din cas
(luminozitate, umiditate, cldur), sistemul fiind capabil s ia o decizie asupra aciunilor sau
misiunilor care trebuie nfptuite bazate pe datele contextuale procesate.
Cerinele funcionale ale sistemului dezvoltat curent vor fi prezentate n continuare.
4.1.1.1
Coordonarea aciunilor
Aplicaia va integra planuri de aciuni predefinite n vederea efecturii anumitor
execuii complexe i totodat va permite facilitatea de a crea aciuni definite de utilizator.
Utilizatorul va avea abilitatea de a stabili obiectivele primare ale sistemului, precum
maximizarea confortului locuitorilor casei inteligente. Obiectivele care trebuie atinse cnd se
vorbete de coordonarea aciunilor sunt:
Crearea sau anularea unei aciuni Utilizatorul va putea s introduc noi aciuni
sau s replanifice sau s anuleze misiunea curent. n cazul n care se produc
dependene n executarea unei misiuni planificate, sistemul va putea crea aciuni
care s fie executate naintea aciunii specificate.
Executarea aciunilor Aplicaia va executa n mod automat aciunile planificate
sau va putea s replanifice aciunile care nu au fost terminate cu succes.
Crearea de rapoarte Orice aciune nfptuit n sistem va fi detaliat ntr-un
raport de execuie.
4.1.1.2
Executarea operaiilor
Sistemul va putea s execute operaii de baz ca rspuns la schimbrile de context sau
aciuni primitive, ca operaii unitare ale unei misiuni. Dintre operaiile care se vor putea
nfptui n sistemul dezvoltat identificm:
Manipularea de obiecte Roboii vor putea manipula obiecte, prelua i muta
diferite obiecte ntre diferite locaii ale casei.
Controlul dispozitivelor Sistemul poate s i adapteze comportamentul n mod
automat, modificnd starea diferitelor dispozitive ubiquitous n acord cu situaia
curent sau intervenia direct a utilizatorilor. Cerina primordial a sistemului este
s creeze o atmosfer ct mai confortabil pentru locuitorii casei inteligente, prin
controlarea dispozitivelor, n funcie de anumii parametri preluai ca date de
context (de ex. temperatura). Printre parametrii care pot fi manipulai se numr
intensitatea luminoas, volumul muzicii ambientale, temperatura, umiditatea etc.
4.1.1.3
Interaciunea cu utilizatorii
Utilizatorii trebuie s poat interveni n sistemul casei inteligente, dup bunul plac,
astfel sistemul necesit o interfa utilizator pentru crearea de aciuni utilizator sau controlarea
aciunilor i parametrilor cureni. Informaiile pot fi prezentate la cererea utilizatorului sau
automat cnd se execut o anumit aciune specific.
4.1.2
4.1.2.1
4.1.3
Cele trei tipuri de roboi cu care va fi prevzut sistemul casei inteligente sunt robotul
supervizor, robotul care ndeplinete misiuni i robotul de companie, care se ocup de
divertismentul locuitorilor casei.
Aceti 3 roboi vor trebui adaptai la sistemul casei inteligente. Provocrile construirii
adaptabilitii roboilor la sistemul casei inteligente se rezum la dou motivaii-cheie. Prima,
un model adecvat sistemului casei inteligente, proiectat pentru a ndeplini misiunile pentru
care ei au fost introdui, respectiv, descrierea modelului folosind un limbaj cunoscut
sistemului.
4.1.3.1
4.2
Arhitectura sistemului
4.2.1
Nivelul Senzorial
4.2.2
Nivelul Dispozitivelor
4.2.3
Nivelul Roboilor
n acest nivel se mapeaz la nivel de ageni roboii din sistem prelund informaiile de
la nivelul fizic legate de roboi i introducndu-le n sistem. Cei trei roboi monitorizai prin
ageni logici sunt:
Pet Robot robotul preocupat de divertismentul din cas;
Mission Robot mutarea diferitelor obiecte din cas;
Supervisor Robot care monitorizeaz activitatea roboilor precum i alte
schimbri legate de locuitorii casei.
Agentul logic Robot Manager este responsabil de controlarea agenilor logici pentru
roboi, fiind senzitiv la modificrile aprute n activitatea roboilor activi din cas.
4.2.4
Nivelul Decizional
4.2.5
4.2.6
Nivelul fizic
Acest nivel reprezint senzorii la nivel fizic, diferite obiecte, dispozitive, actuatori care
furnizeaz informaii de cele mai multe ori eronate sau inconsistente despre sistem. Fiecare
informaie provenit de la o categorie de dispozitive fizice este controlat i prelucrat de un
anumit nivel din arhitectura curent, nainte de a fi trimis la nivelul de achiziionare de
context din sistem.
PROIECTARE DE DETALIU
5.1
Analiza cerinelor
Proiectare de detaliu
Harta mediului este procesat de ctre sistemul de control care include mecanisme decizionale
pentru a se adapta n mod dinamic la noile informaii contextuale preluate.
5.2
Proiectarea arhitecturii
5.2.1
Sistemul de roboi
Proiectare de detaliu
5.2.1.1
Proiectare de detaliu
Proiectare de detaliu
Stabilirea de noi obiective Obiectivele noi vor fi planificate de ctre acest agent
pentru a fi atinse.
Acest agent are asignate urmtoarele ipoteze, planuri i obiective:
Ipoteze (beliefs)
o Locaie locaia iniial n care se afl robotul;
o Tipul robotului tipul robotului;
o nceput misiune timpul n care pornete misiunea;
o Sfrit misiune timpul n care se sfrete misiunea;
o Mediul curent al casei inteligente aceast ipotez se mapeaz printr-un
obiect de tip singleton care conine toate cunotinele despre cas;
o Mediul vizual curent al casei inteligente aceast ipotez creeaz mediul
casei inteligente n mod vizual.
Planuri (plans)
o Supravegheaz inte supravegheaz roboii int;
o Patrulare Patruleaz ncperile casei.
Obiective (goals)
o nregistrare DF nregistrare robot la registrul de tip pagini aurii;
o Deregistrare DF denregistrare robot de la serviciul de tip pagini aurii;
o Red cunotinele despre cas roboilor care ndeplinesc aciuni Aceast
funcie red toate cunotinele despre mediu existente n baza de cunotine
tuturor actorilor de tip robot.
5.2.1.3
Proiectare de detaliu
urmtor, indiferent dac robotul se afl ntr-o alt misiune de depozitare a vreunei
cutii. Acest obiectiv are asignat un plan de cutare a cutiilor, nregistrnd n baza
proprie de cunotine noile cutii aprute n mediul casei inteligente;
Proiectare de detaliu
Proiectare de detaliu
5.2.1.4
5.2.2
Sistemul de senzori
Proiectare de detaliu
5.2.3
Sistemul de dispozitive
Proiectare de detaliu
5.2.4
Sistemul de control
5.2.5
Sistemul de monitorizare
Proiectare de detaliu
5.2.6
5.3
5.3.1
Detalii de implementare
Caracteristici generale legate de implementarea sistemului
Proiectare de detaliu
Pachetele aplicaiei
Toate pachetele aplicaiei conin prefixul smarthouse urmtorul nume relevant fiind
modulul arhitectural din care acestea fac parte. Astfel pachetul smarthouse.robots definete
toate definiiile legate de roboii din sistemul casei inteligente. Celelalte pachete tind s
respecte modelul arhitectural specificat prin componente, astfel alte pachete relevante sunt
smarthouse.sensors, smarthouse.devices, smarthouse.ontology, smarthouse.knowledge.base.
Ontologiile i clasele Nuggets generate sunt specificate n pachetul smarthouse.ontology iar
partea vizual i de monitorizare a aplicaiei n pachetul smarthouse.monitoring.
5.3.2
Implementarea agenilor
Pentru a crea aplicaii cu Jadex dezvoltatorul trebuie s creeze dou tipuri de fiiere:
Fiiere de definire a agenilor(Agent Definition Files, prescurtat ADF);
Clase Java prin care se implementeaz planurile.
5.3.2.1
Proiectare de detaliu
<agent xmlns="http://jadex.sourceforge.net/jadex"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jadex.sourceforge.net/jadex
http://jadex.sourceforge.net/jadex-0.96.xsd"
name="MissionRobot"
package="smarthouse.robots.world.mission">
Figura 5.27 Antetul fiierului de descriere a agenilor ADF
n primul rnd tag-ul agent specific faptul c documentul XML respect definiia
de schem jadex-0.96.xsd care permite verificarea faptului c documentul este un fiier valid
ADF, nu doar un XML corect formulat. Numele tipului agentului este specificat prin atributul
name i trebuie s fie acelai cu numele dat n definirea numelui fiierului, dar nlturnd
sufixul .agent.xml. Este de asemenea folosit ca un nume din oficiu pentru noi instane ale
aceluiai agent cnd ADF este ncrcat din aplicaia grafic Jadex. Definiia pachetului
specific locul n care agentul trebuie s caute prima dat clasele necesare pentru planuri i
ipoteze, i trebuie s corespund cu locul n care fiierul XML este locat. n plus, pachete
adiionale pot fi specificate folosind directiva imports.
Motorul Jadex necesit anumite proprieti pentru iniializare, care sunt n mod
implicit preluate din directorul jadex/config/runtime.properties.xml. n mod normal acest
lucru nu este de interes pentru dezvoltatorii de ageni, dar uneori, precum este i cazul de fa,
a fost necesar o schimbare a comportamentului motorului Jadex.
n Figura 5 .28 se prezint schema de definire a unui agent Jadex folosind fiierul
ADF, toate acestea fiind elementele care pot fi specificate n interiorul fiierului ADF.
Eticheta <imports> este folosit pentru a specifica ce clase i pachete pot fi folosite de
expresiile din fiierul ADF. Pentru a modulariza funcionalitatea agentului, agenii pot fi
descompui dup capaciti. Capacitile folosite de un agent sunt refereniate cu ajutorul tagului <capabilities>. Partea esenial a specificrii unui agent se refer la definirea ipotezelor,
obiectivelor i planurilor agentului, care sunt plasate n tag-urile <beliefs>, <goals>, respectiv
<plans>.
Proiectare de detaliu
Este de notat faptul c ordinea apariiilor seciunilor mai sus este fix, fiind exact aa
cum a fost specificat n schema XML. De asemenea se pot omite acele elemente care nu sunt
necesare n definirea agenilor cureni.
Cnd fiierul ADF este ncrcat, obiecte Java sunt create pentru elementele din
XML(ex. ipoteze, obiective, planuri). Interfeele care specific modelul acestor elemente sunt
specificate n pachetul jadex.model. Exemple de astfel de interfee sunt IMBelief, IMGoal,
IMPlan. n cele mai multe cazuri, nu trebuie accesate aceste interfee. Cnd un agent este
executat, instane ale modelelor predefinite pentru elementele sale sunt create sub form de
elemente runtime. Acest lucru asigur ca n momentul rulrii mai multe instane ale aceluiai
model s poat fi create n mod simultan.
5.3.2.2
Implementarea planurilor
Planurile reprezint mijloacele prin care agenii acioneaz n mediu. Astfel planurile
compun librria de aciuni specifice agentului care le descrie. Depinznd de situaia curent
planurile sunt selectate ca un rspuns la evenimentele sau obiectivele curente. Selecia
planului care se execut se face n mod automat de ctre sistem i reprezint unul din
aspectele eseniale ale infrastructurii BDI. n Jadex planurile sunt mprite n dou
componente: antetul planului definit n ADF i etalarea circumstanelor n care un plan
propriu-zis va fi instaniat i executat.
Implementarea antetului planurilor n fiierul ADF
Proiectare de detaliu
Conexiunea dintre planul propriu zis i antetul planului este stabilit n descrierea fcut n
antetul planului, astfel planurile propriu-zise putnd fi reutilizabile n diferite configuraii sau
planuri specificate. Pentru a spori reutilizabilitatea planurilor, este recomandat folosirea
parametrilor planului, n combinaie cu maprile planului pentru anumite evenimente sau
obiective ale cror succes depind de execuia planului.
Orice plan extinde clasa abstract jadex.runtime.AbstractPlan, n timp ce planurile
standard implementeaz metoda body() aa cum a fost specificat mai sus. Metoda body() este
executat o singur dat de-a lungul apelrii unui plan, apoi planul ateptnd terminarea
execuiei evenimentelor descrise prin triggere apelnd directiva waitFor().
Dac planul se termin fr producerea vreunei excepii, este considerat ca i succes.
Dup terminarea cu succes, eec sau anularea planului se apeleaz metoda passed(), failed(),
respectiv aborted().
Excepia care indic o anomalie n execuia planului este PlanFailureException care
se apare de fiecare dat cnd planul nu se execut cu succes.
Scrierea planurilor permite de asemenea executarea de poriuni de cod atomice, n
cazul n care nu vrem ca prin concuren s producem anomalii de citire sau scriere pentru
anumite ipoteze eseniale pentru buna funcionare a agentului BDI n care este specificat
planul.
5.3.3
Interfee Utilizator
Exist trei interfee utilizator disponibile n sistemul curent, prima fiind interfaa de
monitorizare, cu ajutorul creia se monitorizeaz i controleaz senzorii i dispozitivele
disponibile n casa inteligent.
Interfaa de monitorizare a robotului supervizor reprezint o hart 2D a casei i robotul
care se plimb pe harta casei.
Interfaa de monitorizare explicit a robotului misionar reprezint un plan simplu pe
care sunt aezate obiectivele identificate de ctre robotul transportor, precum i robotul
transportor mpreun cu raza lui de aciune.
5.4
Scenariu de testare
UTILIZAREA SISTEMULUI
Aplicaia se pornete din mediul Eclipse sau individual a platformei pentru ageni
pentru ca ulterior s se porneasc fiecare agent pe rnd. Pentru a realiza acest lucru se
acceseaz fiierele .bat existente n directorul surs al aplicaiei.
Odat ce toi agenii au fost pornii cu succes vor aprea cele trei interfee utilizator:
interfaa de monitorizare i control a senzorilor i dispozitivelor, interfaa specific robotului
supervizor i interfaa specific robotului misiune.
Pentru a testa pornirea cu succes a senzorilor casei se verific consola pentru ageni,
pentru a vedea toi agenii pornii.
Simularea roboilor ncepe odat cu pornirea agentului manager de roboi. Pentru ca
rezultatele rulrii simulatorului pentru roboi s fie edificate, este nevoie ca celelalte procese
costisitoare care ruleaz pe maina de test s fie oprite.
Pentru a testa adaptarea se urmrete vizualizarea grafic a micrii robotului precum
i faptul c el i ndeplinete cu succes obiectivele i anume:
Micarea robotului transportor este urmrit de ctre robotul supervizor i mediul
se actualizeaz de fiecare dat;
Cutiile care intr n raza vizual a robotului transportor vor fi transportate una cte
una la locul de depozitare;
Robotul i menine starea de patrulare prin cas att timp ct nu ndeplinete alt
misiune;
Robotul se ndreapt spre staia de acumulare a energiei atunci cnd bateria este la
nivelul minim acceptat;
La fiecare micare nivelul bateriei robotului scade cu 1%. Acest lucru se
monitorizeaz prin eticheta energy ataat robotului;
Dac robotul transport o cutie atunci acest lucru este semnalizat pe interfaa
grafic prin eticheta carries box.
n Figura 6.1 este reprezentarea robotului transportor aa cum este el vizualizat n
simulatorul pentru roboi al casei inteligente.
Pentru a monitoriza numrul de cutii care trebuie s fie preluate de ctre robotul
transportor se vizualizeaz panoul aflat n partea de jos a imaginii, care are aceeai structur
ca n Figura 6.2:
Utilizarea Sistemului
Tot cu ajutorul simulatorului se poate seta starea depozitului de cutii. n cazul n care
depozitul este plin robotul este informat de sistemul casei de acest lucru, drept urmare el
anulnd planul de a depozita cutia n depozitul respectiv.
Pe consola agentului bazei de cunotine trebuie s apar anumite loguri prin care se
explic ce roboi au fost gsii n casa inteligent, aceste informaii de context fiind transmise
agentului manager de roboi pentru a porni agenii roboi subsecveni. Cu ajutorul consolei
agentului bazei de cunotine putem vedea toate instanele de clas Robot create, mpreun cu
proprietile aferente acestora (Figura 6.3).
7.1
Tehnologii folosite
7.1.1
Cerine Hardware
Sistemul dezvoltat ca urmare a lucrrii curente este un sistem software, care implic
utilizarea unei maini de tip PC cu sistemul de operare Windows sau Linux. Pentru rularea
aplicaiilor cerinele hardware minimale pentru maina utilizat sunt:
Procesor: Frecven 1GHz, Spaiu de adresare 32-bit (x86);
Memorie RAM: 512 MB;
Spaiu hard-disk: minimum 1GB.
7.1.2
Cerine Software
Produsul curent este dependent de urmtoarele produse software:
Java VM Version 6 - Pentru rularea sistemului este nevoie de instalarea mainii
virtuale Java (Java Virtual Machine) pe maina folosit. Instalarea mainii virtuale
Java poate fi fcut accesnd adresa http://www.java.com/en/download/index.jsp;
Platforma Jade Platforma de ageni Jade poate fi descrcat de la adresa
http://jade.tilab.com/;
Jadex Aplicaia pentru ageni Jadex poate fi descrcat de la adresa
http://sourceforge.net/project/showfiles.php?group_id=80240&package_id=81901;
Eclipse Ganymede Pentru a descrca mediul Eclipse se poate accesa pagina
http://www.eclipse.org/downloads/.
7.1.3
7.1.4
Configurarea proiectului
Pentru a configura proiectul se efectueaz urmtorii pai:
La pornirea mediului Eclipse se configureaz calea spre workspace-ul n care se
afl proiectul. Astfel se adaug calea <dir_workspace> /<nume_workspace> /
workspace. Workspace-ul Eclipse cu sursele i configuraia proiectului se afl n
distribuia aplicaiei. Numele implicit este WSBB;
Se configureaz o nou librrie utilizator Eclipse din meniul Project /Properties
apoi seciunea Java Build Path ->Add Library.... Se adaug toate fiierele cu
extensia .jar din directorul <dir_workspace>/<nume_workspace> /
workspace/SmartHouse/lib. Dup adugare se ataeaz aceast librrie la proiectul
curent pentru a compila sursele.
7.1.5
Punerea n funciune a platformei pentru ageni Jadex se poate face dup ce s-a pornit
Eclipse mpreun cu pachetele auxiliare care necesit instalarea. Dac instalarea a avut loc cu
succes, n bara de butoane a mediului Eclipse va aprea un buton cu ajutorul cruia se poate
porni platforma, locat ca n Figura 7.1:
Dac platforma a pornit cu succes va aprea o nou fereastr n care vor exista cei trei
ageni master din Jadex AMS, DF i RMA. Fereastra are forma din Figura 7.2:
7.1.6
7.1.7
7.1.8
7.1.9
mediul vizual cu ajutorul cruia vor putea fi monitorizate reeaua de senzori i reeaua de
dispozitive a aplicaiei. De asemenea acest agent monitorizeaz i starea de spirit a locatarilor
casei inteligente.
7.2
7.2.1
Dac dup pornirea platformei nu apare fereastra de control care asigur pornirea cu
succes a platformei de ageni, iar pe consol apare o excepie numit AlreadyBoundException
atunci este cazul excepiei de nregistrare a aplicaiei n registrul RMI, datorit faptului c
portul implicit pe care se pune n funciune RMI i anume 1099 este ocupat.
De asemenea i o oprire forat a platformei de ageni poate duce la ocuparea de ctre
procesul javaw n stare inactiv a portului 1099.
Pentru rezolvarea problemei se distruge procesul javaw care ine ocupat portul 1099,
folosind o aplicaie de management a porturilor numit Cports. O alt modalitate de rezolvare
a problemei este restartarea platformei Eclipse care distruge toate procesele copil create la
nchiderea sa.
7.2.2
Dac la pornirea agenilor apar erori pe consol, atunci trebuie verificat n primul rnd
dac consola pentru ageni funcioneaz corect. Ulterior se verific dac toi agenii
dependeni, precum agentul pentru baze de cunotine, funcioneaz corect.
Dac eroarea de pornire nu este cauzat de unul din cazurile de mai sus atunci se
editeaz fiierul .bat specific agentului, pentru a verifica dac toate cile spre pachetele care
se seteaz ca i Java Classpath sunt corecte. Dac acele ci nu exist se actualizeaz cu cile
valide spre pachetele folosite la pornirea agenilor.
Dac nici acest lucru nu rezolv problemele de punere n funciune, atunci se verific
dac numele pachetelor corespunztoare locaiei agenilor i dac numele agenilor exist.
7.3
7.3.1
Rezultate experimentale
Crearea roboilor
n faza de creare a roboilor dup crearea instanei de agent manager pentru roboi i
nregistrarea lui la platforma de ageni se face un apel la agentul bazei de cunotine pentru
gsirea instanelor de ageni roboi specifici casei inteligente i crearea lor ca ageni logici
pentru casa inteligent.
Crearea agenilor roboi se face printr-un apel de tip creare agent spre agentul master
al platformei, AMS.
Clasele ontologice specifice roboilor create n contextul ontologic al sistemului casei
inteligente sunt precum n Figura 7.3:
De asemenea fiecare robot are specificate anumite proprieti, care vor fi luate n
considerare la crearea instanelor. Proprietile robotului supervizor sunt legate de locaie,
nume, descriere, activitate, precum n Figura 7.4:
Crearea efectiv a roboilor se poate valida prin vizualizarea mesajelor trimise ntre
agentul manager pentru roboi i agentul responsabil pentru baza de cunotine.
Agentul Manager trimite un mesaj tip ACL cu coninutul getRobots agentului pentru
baza de cunotine aa cum poate fi vizualizat n Figura 7.5.
Figura 7.37 Mesajul trimis ctre agentul bazei de cunotine pentru identificarea roboilor
Figura 7.38 Mesajul cu coninutul instanelor de roboi trimis de agentul bazei de cunotine
7.3.2
Adaptarea roboilor
Odat ce instanele de ageni roboi au fost create cu succes, ncepe adaptarea roboilor
la contextul casei inteligente. Acest lucru poate fi vizualizat interognd consola de pornire a
agenilor pentru a vedea planurile executate i mesajele transmise ntre agenii roboi i
sistemul casei inteligente, precum n Figura 7.7.
Figura 7.39 Mesaje ACL transmise ntre agentul robot transportor i sistemul casei inteligente
De asemenea pe consola agentului manager pentru roboi pot fi vzute toate aciunile
efectuate de ctre roboii din casa inteligent, cele mai relevante informaii fiind planurile care
se execut la un moment dat de ctre acetia, cel mai interesant de urmrit fiind planurile
robotului transportor (Figura 7.8).
Figura 7.40 Consola agentului Manager pentru roboii casei inteligente i planurile executate
8 CONCLUZII
8.1 Realizri
Cerinele lucrrii exprimate n introducere au fost atinse prin proiectarea adaptrii
roboilor la sistemul senzitiv la context pentru casa inteligent i prin argumentarea tuturor
conceptelor i metodelor folosite, care au condus la validarea proiectrii cerinei de adaptare a
roboilor la sistemului senzitiv la context, multi-agent i distribuit.
n primele capitole ale lucrrii s-a abordat problema adaptrii n toat complexitatea ei
prin prezentarea noiunilor teoretice legate de conceptele folosite n scopul adaptrii roboilor.
S-au detaliat noiuni bine stabilite legate de domeniul senzitiv la context, domeniul ubicuu
care este o aplicaie practic a senzitivitii la context, precum i de noiunile de baz folosite,
unele dintre ele fiind mprumutate din domeniul inteligenei artificiale, precum noiunea de
agent, sistem multi-agent, noiuni legate de incertitudine.
S-au identificat problemele existente i provocrile aprute n timpul proiectrii unei
aplicaii senzitive la context, precum i provocrile aprute n comunicarea dintre roboi i o
aplicaie senzitiv la context.
S-a motivat nevoia de a folosi o metod flexibil i extensibil pentru a modela datele
contextuale, un limbaj comun neles de toi participanii la arhitectur, imperios necesar
pentru a putea realiza comunicarea dintre sistemul de roboi i sistemul casei inteligente.
Folosirea ontologiilor faciliteaz de asemenea i deducerea de noi informaii prin raionarea
asupra datelor contextuale. Din punct de vedere a raionamentelor deduse, folosirea
ontologiilor permit ierarhizarea datelor de context, n contexte de nivel superior, generale i
reutilizabile, i contexte de nivel inferior, specifice, care conin validri de consisten.
Derivarea de noi contexte de nivel superior din datele de nivel inferior se poate obine
folosind tehnicile mprumutate din inteligena artificial legate de algoritmi de raionare i
mecanisme de inferen. Dup aprofundarea metodei de modelare a contextelor s-a studiat i
un model derivat care adaug suport pentru incertitudine n modelul contextual iniial,
aprofundarea acestui model ajutnd la rezolvarea problemelor de incertitudine deschise n
proiectarea adaptrii roboilor la sistemul casei inteligente.
Au fost studiate i diferite abordri i metodologii de proiectare ale unui sistem
senzitiv la context extensibil i flexibil, n care se pot integra foarte uor noi componente,
lucru care faciliteaz adaptarea rapid a agenilor roboi n structura sistemului. S-a studiat
arhitectura stratificat Context Stack, care are la baz modelul folosit n construcia reelelor
de calculatoare i avantajele aduse de acesta.
Abordarea problemei centrale a lucrrii legat de adaptarea de noi componente, n caz
particular, roboi, n sistemul senzitiv la context a condus, printr-o aprofundare a
metodologiilor existente pentru crearea de baze de cunotine i crearea sistemelor multiagent, la rezolvarea ei prin folosirea metodologiilor existente cele mai potrivite pentru cazul
de fa. Astfel studiind diferite metodologii de creare a agenilor i obinnd o comparaie din
punct de vedere a standardizrii, a ntreinerii, a protocoalelor de comunicare folosite, a
documentaiei disponibile s-a concluzionat c folosirea platformei Jade cu extensia Jadex este
cea mai potrivit pentru atingerea obiectivelor propuse n scopul temei curente. Astfel s-a ales
ca paradigm de implementare programarea cu ageni, n care toate modulele componente ale
arhitecturii reprezint un agent cu diferite funcionaliti inclusiv ageni care funcioneaz ca
rol de interfa utilizator, cum este cazul agentului de monitorizare. Agenii folosii sunt ageni
de tip Ipotez-Obiectiv-Plan sau BDI (Belief-Desire-Intention), care pornind de la anumite
ipoteze, ating obiectivele setate prin executarea de planuri de execuie.
Concluzii
8.2
Direcii de dezvoltare
Dezvoltrile ulterioare ale aplicaiei pot lua diferite direcii, dar cele mai importante
vor fi subliniate n paragrafele urmtoare.
Un prim aspect este legat de implementarea unei aplicaii complete pentru case
inteligente, care implic i roboi antrenai activ n atingerea obiectivelor finale. Aceasta este o
chestiune n curs de cercetare i o perspectiv bun de dezvoltare ulterioar. Astfel sistemul ar
trebui s integreze componente noi, precum un detector a strii emoionale, care n consecin
Concluzii
BIBLIOGRAFIE
[01] K. Goldberg, S. Gentner, and C. Sutter et al., The Mercury Project: A Feasibility Study
for Internet Robotics, IEEE Robotics and Automation Magazine, vol. 7, no. 1, 2000, pp. 3540.
[02] R. Simmons, Xavier: An Autonomous Mobile Robot on the Web, Proc. IEEE/RSJ
Conf. on Intelligent Robots and Systems; Robots, Victoria, B.C. Canada, Oct. 1998, URL:
http://www.ri.cmu.edu/pub_files/pub1/simmons_reid_1999_1/simmons_reid_1999_1.pdf.
[03] P. Saucy and F. Mondada, Open Access to a Mobile Robot on the Internet, IEEE
Robotics and Automation Magazine, vol. 7, no. 1, 2000, pp. 41-47.
[04] M.R. Stein, Interactive Internet Artistry, IEEE Robotics and Automation Magazine,
vol. 7, no. 1, 2000, pp. 28-32.
[05] M. Choi, J. Hong, and H. Ju, XML-Based Network Management for IP Networks,
ETRI J., vol. 25, no. 6, Dec. 2003, pp. 445-463.
[06] Young-Guk Ha, Joo-Chan Sohn, Young-Jo Cho, and Hyunsoo Yoon, Towards a
Ubiquitous Robotic Companion: Design and Implementation of Ubiquitous Robotic Service
Framework, Sept. 15, 2005.
[07] D. Wang, X. Ma, and X. Dai, Web-Based Robotic Control System with Flexible
Framework, Proc. IEEE Intl Conf. on Robotics and Automation (ICRA 2004), New Orleans,
LA, Apr. 2004, pp. 3351 - 3356.
[08] W3C Recommendation,
http://www.w3c.org/TR/ws-arch/.
Web
Services
Architecture,
W3C,
2004,
URL:
Bibliografie
Notes in Computer Science 3118 Springer 2004, ISBN 3-540-22334-7. Paris, France, July,
2004.
[14] Kensuke Murai and Akira Okubo, Government Policy for Next Generation Robots in
Journal of the Robotics Society of Japan, Vol. 26. No.5, 2008.
[15] Ghita Kouadri Mostefaoui, Jacques Pasquier-Rocha, Patrick Brezillon Context-Aware
Computing: A Guide for the Pervasive Computing Community, Pervasive Services, ICPS
2004 IEEE/ACS International Conference, July 2004.
[16] Dey Anind K. & Gregory D. Abowd, Towards a Better Understanding of Context and
ContextAwareness, GVU Technical Report GIT-GVU-00-18, GIT, 1999.
[17] Ay Feruzan, Context Modeling and Reasoning using Ontologies, University of
Technology Berlin, Berlin , July 2007.
[18] Ronny Haryanto, Context Awareness in Smart Homes to Support Independent Living,
Master of Science in Internetworking, University of Technology, Sydney, 2005
[19] Research Center for Educational Technology, Ubiquitous Computing Where it came
from, RCET, 2006, URL: http://www.rcet.org/ubicomp/what.htm.
[20] Boehm Barry, Ubiquitous Computing, Center for Systems and Software Engineering,
University
of
Southern
California,
2007,
URL:
http://sunset.usc.edu/classes/cs599_2002/Week3_c.ppt.
[21] Tao Gua, Hung Keng Punga, Da Qing Zhangb, A service-oriented middleware for
building context-aware services, Journal of Network and Computer Applications, archive
Volume 28 , Issue 1, January 2005.
[22] Seng Loke , Context-aware pervasive systems: architectures for a new breed of
applications, CRC Press, 2006.
[23] T. Wahl: Konzeption und Realisierung einer Ontologie zur Modellierung und Ableitung
von Geschftsprozessen, TU Berlin, 2005.
[24] J. Vo: Begriffssysteme Ein Vergleich verschiedener Arten von Begriffssystemen und
Entwurf des integrierenden Datenmodells, HU, Berlin, 2004.
[25] M. Gruninger, and J. Lee: Ontology Applications and Design, in Communications of
the ACM, 2002.
[26] M. K. Smith, C. Welthy, and D. L. McGuinness: OWL Web Ontology Language
Guide, URL: http://www.w3.org/TR/owl-guide.
[27] S. Bechhofer, F. v. Harmelen, J. Hendler, I. Horrocks, et al.: OWL Web Ontology
Language Reference, URL: http://www.w3.org/TR/owl-ref.
[28] T. R. Gruber: Ontolingua: A Mechanism to Support Portable Ontologies, Stanford
University, 1992.
Bibliografie
[29] R. M. MacGregor: Inside the LOOM description classifier, in ACM SIGART Bulletin,
1991.
[30] T. Berners-Lee, J. Hendler, et al.: The Semantic Web, Scientific American, 2001.
[31] Bray, T., J. Paoli, et al.: Extensible Markup Language (XML) 1.0 (Third Edition) - W3C
Recommendation. URL: http://www.w3.org/TR/2004/RECxml-20040204, 2004.
[32] X. H. Wang, T. Gu, D. Q. Zhang, and H. K. Pung: Ontology Based Context Modeling
and Reasoning using OWL, Pervasive Computing and Communications Workshops, March
2004.
[33] Daqing Zhang, Tao Gu, Xiaohang Wang: Enabling Context-Aware Smart Home with
Semantic Web Technologies, Institute for Infocomm Research, June 2005.
[34] Daqing Zhang, Xiaohang Wang: OSGi Based Service Infrastructure for Context Aware
Connected Home. Proceeding of 1st International Conference On Smart Homes and Health
Telematics (ICOST2003), IOS Press, Paris, France, 2007.
[35] T. Gu, H. K. Pung, D. Q. Zhang, Towards an OSGi-Based Infrastructure for ContextAware Applications in Smart Homes, IEEE Pervasive Computing, Vol. 3, Issue 4, 2004.
[36] Bardram, Jakob E. The Java Context Awareness Framework (JCAF) A Service
Infrastructure and Programming Framework for ContextAware Applications,Third
International Conference on Pervasive Computing, vol. 3468 of Lecture Notes in Computer
Science, Munich, Germany, May 2005.
[37] Mayrhofer Rene, An Architecture for Context Prediction, PhD Thesis,University Linz,
Austria, 2004.
[38] Wooldridge, Michael and Nicholas R. Jennings (1995), "Agent Theories, Architectures,
and Languages:a Survey", Wooldridge and Jennings Eds., Intelligent Agents, Berlin: SpringerVerlag, 1-22.
[39] Russell, Norvig, Artificial Intelligence: a Modern Approach, Russell and Norvig, 1995.
[40] Rem Collier, Gregory OHare,Terry Lowen, Colm Rooney, Beyond Prototyping in the
Factory of Agents, 3rd Central and Eastern European Conference on Multiagent Systems
(CEEMAS'03), Lecture Notes in Computer Science (LNCS), 2691, 2003.
[41] Kavi Kumar Khedo, Context-Aware Systems for Mobile and Ubiquitous Networks,
International Conference on Systems and International Conference on Mobile
Communications and Learning Technologies, 2006.
[42] Salber, Daniel, Anind K. Dey & Gregory D. Abowd. 1999, The Context Toolkit: Aiding
then Development of ContextEnabled Applications, Pittsburgh, USA, May 1999.
Bibliografie
[43] N. Hristova, G.M.P. OHare & T. Lowen, Agent-based Ubiquitous Systems: 9 Lessons
Learnt, In Proceedings of the System Support for Ubiquitous Computing Workshop , Fifth
Annual Conference on Ubiquitous Computing (UbiComp'2003) Seattle, Washington, 2003.
[44] Strang, T. and Linnhoff-Popien, C., A Context Modeling Survey, First International
Workshop on Advanced Context Modelling, Reasoning and Management, UbiComp, 2004.
[45] Chen, Guanling, David Kotz, A Survey of Context-Aware Mobile Computing
Research, Dartmouth Computer Science, Technical Report, 2000.
[46] Thomas Strang, Claudia Linnho-Popien, Korbinian Frank, CoOL: A Context Ontology
Language to enable Contextual Interoperability, Distributed Applications and Interoperable
Systems (DAIS2003), 2003.
[47] M. K. Smith, C. Welthy, and D. L. McGuinness: OWL Web Ontology Language
Guide, URL: http://www.w3.org/TR/owl-guide.
[48] Binh An Truong, Young Koo Lee, Sung Young Lee, A Unified Context Model: Bringing
Probabilistic Models to Context Ontology, EUC Workshops, 2005.
[49] J. Pearl, "Belief Networks Revisited", Artificial intelligence in perspective, p. 49-56,
1994.
[50] Gregory D. Abowd and Anind K. Dey, "Towards a Better Understanding of Context and
Context-Awareness", Workshop on the what, who, where, when and how of context-awareness
at CHI 2000, Aprilie 2000.
[51] Corcho, O., Fernandez-Lopez, M., Gomez-Perez, A., Methodologies, tools, and
languages for building ontologies. Where is their meeting point?, Data and Knowledge
engineering, 2003.
[52] D.B. Lenat, R.V. Guha, Building Large Knowledge-Based Systems: Representation and
Inference in the Cyc Project, Addison-Wesley, Boston, 1990.
[53] A. Bernaras, I. Laresgoiti, J. Corera, Building and reusing ontologies for electrical
network applications, Proc. European Conference on Artificial Intelligence (ECAI_96),
Budapest, Hungary, 1996, pp. 298302.
[54] B. Swartout, P. Ramesh, K. Knight, T. Russ, Toward Distributed Use of Large-Scale
Ontologies, AAAI Symposium on Ontological Engineering, Stanford, 1997.
[55] M. Fernandez-Lopez, A. Gomez-Perez, A. Pazos-Sierra, J. Pazos-Sierra, Building a
chemical ontology using METHONTOLOGY and the ontology design environment, IEEE
Intelligent Systems & their applications, 1999, p. 3746.
[56] Nguyen G., Dang T.T, Hluchy L., Laclavik M., Balogh Z., Budinska I. Agent platform
evaluation and comparison, Jun 2002.
[57] FIPA standards and specification, FIPA, IEEE Computer Society Standards for Agent
Based Technologies, http://www.fipa.org/specifications/index.html.
Bibliografie
[58] FIPA-OS, Agent Platform Development Tool, IEEE Computer Society Standards for
Agent Based Technologies, http://fipa-os.sourceforge.net/.
[59] ***, JADE, Tutorial for beginners, JADE Board, http://jade.tilab.com.
[60] ***, JACK, http://www.agent-software.com/.
[61] ***, Zeus BT Intelligent Agent Research, http://www.opensource.org/.
[62] Lars Braubach, Jadex User Guide, Distributed Systems Group University of Hamburg,
Germany, http://prdownloads.sourceforge.net/jadex/userguide-0.96.pdf.
[63] Lars Braubach, Jadex Tool Guide, Distributed Systems Group University of Hamburg,
Germany, http://prdownloads.sourceforge.net/jadex/toolguide-0.96.pdf.
[64] ***, W3C Recommendation, SOAP Version 1.2 Primer, W3C, 2003, URL:
http://www.w3c.org/TR/%20soap12-part0/.
[65] N.F. Noy, R.W. Fergerson, M.A. Musen, The knowledge model of protege-2000:
combining interoperability and flexibility, 12th International Conference in Knowledge
Engineering and Knowledge Management (EKA 2000), Lecture Notes in Artificial
Intelligence, vol. 1937, Springer, Berlin, 2000, pp. 1732.
[66] J.C. Arpirez, O. Corcho, M. Fernandez-Lopez, A. Gomez-Perez, WebODE: a scalable
ontological engineering workbench, First International Conference on Knowledge Capture
(KCAP01), ACM Press, Victoria, 2001, pp.613.