Sunteți pe pagina 1din 13

Arhitecturi orientate spre servicii

Tema: FIPA SL

Prof.Coordonator:
Sorin Ilie

Student:
Iuliana Filip

Ce inseamna FIPA?
FIPA (Foundation for Intelligent Physical Agents Fundaia pentru Ageni Fizici Inteligeni). Aceasta o organizaie membr IEEE ce promoveaz tehnologia bazat pe ageni i interoperabilitatea standardelor sale cu alte tehnologii. FIPA a fost nfiinat n anul 1996 ca o organizaie suedez specializat n producerea de specificaii pentru standardele software pentru ageni eterogeni i interactivi i sisteme bazate pe ageni. De la fondarea ei, FIPA a jucat un rol crucial n dezvoltarea de standarde pentru ageni i a promovat un numr de iniiative i evenimente care au contribuit la dezvoltarea i nelegerea tehnologiei bazate pe ageni. n plus, multe dintre ideile care au luat fiin la FIPA sunt acum n atenia noilor generaii de tehnologii Web/Internet.

FIPA este una dintre comisiile IEEE ce se ocup cu stabilirea normelor de implementare a agenilor i de comunicare dintre ageni ntr-un mediu multi-agent i importana standardelor sale este crucial pentru funcionarea eficient a agenilor, indiferent de platform sau implementare. Specificaiile FIPA - reprezint o colecie de standarde care intenioneaz s promoveze interoperabilitatea agenilor eterogeni i serviciile pe care agenii le pot reprezenta. Specificaia FIPA pentru limbajul SL (Semantic Language) definete o sintax concret pentru acest limbaj. Acesta este un limbaj definit de FIPA, care este folosit n conjunctie cu Limbajul de Comunicaie dintre Ageni al FIPA (ACL).

Primitive/ protocoale
KQML FIPA

Limbaje pentru continut


KIF Prolog Clips SQL DL FIPA-SL, FIPA-KIF

ACL
Content language Ontology

Ontologii
DAML OWL

Structura mesajului FIPA


Envelope Payload Message Message parameters Payload Content Message content Transport information Encoded message

Limbaje de continut
Orice limbaj poate fi folosit ca si Content Language, de exemplu:

KIF Prolog SQL Serialized Objects Binary Large Objects FIPA - SL FIPA - CCL FIPA - RDF FIPA - KIF

O expresie FIPA SL poate fi utilizata ca si continut al unui mesaj ACL. Pot exista 3 cazuri: (1) Propozitie:

Wff (well formed formulae) poate avea asociata o valoare de tip true intr-un context specific, cum ar fi spre exemplu confirm. Agentul I confirma agentului J ca este adevarata afirmatia balena este mamifer
(confirm :sender (agent-identifier :name i) :receiver (set (agent-identifier :name j)) :content ((este mamifer balena)) :language fipa-sl )

(2) Actiune
Se refera la ceva ce trebuie executat, de exemplu -> request.

Agentul I solicita agentului J (robot) sa livreze o cutie:

(request :sender (agent-identifier :name i) :receiver (set (agent-identifier :name j)) :content ((action (agent-identifier :name j) (deliver box017 (loc 12))) ) :protocol fipa-request :language fipa-sl :reply-with order567 )

(3) IRE (Identifying Reference Expression)


Se refera la un obiect din domeniu e.g. inform-ref. Agentul I cere agentului J sa ii spuna 'capital of Wales'.
(request :sender (agent-identifier :name i) :receiver (set(agent-identifier :name j))
:ontology world-politics

:content
((action (agent-identifier :name j) (inform-ref :sender (agent-identifier :name j) :receiver (set (agent-identifier :name i))

:language fipa-sl ) )) :reply-with query0 :language fipa-sl )

:content ((iota ?x (CapitalWales ?x)))

Operatori referentiali

Iota (iota <term> <formula>)

Operatorul iota introduce un scop pentru o expresie data (care denota un termen) in care identificatorul este definit. Exemplu: - interactiune intre agentul A si agentul B , unde agentul A are urmatoarea notiune de baza: KB={P(A), Q(1, A), Q(1, B)} (query-ref :sender (agent-identifier :name B) :receiver (set (agent-identifier :name A)) :content "((iota ?x (p ?x)))" :language fipa-sl :reply-with query1) (inform :sender (agent-identifier :name A) :receiver (set (agent-identifier :name B) :content " ((= (iota ?x (p ?x)) a)) " :language fipa-sl :in-reply-to query1) Singurul obiect care satisface propozitia P(x) este a, deci mesajul query-ref este dat de inform asa cum se poate observa.

Any (any <term> <formula>)


Operatorul any este folosit pentru a indica orice obiect satiacut de propozitia reprezentata de formula. Exemplu: Stiind ca agentul A are urmatoarea notiune de baza KB={P(A), Q(1, A), Q(1, B)}, acest exemplu arata cu success interactiunea cu agentul A .

(query-ref :sender (agent-identifier :name B) :receiver (set (agent-identifier :name A)) :content "((any (sequence ?x ?y) (q ?x ?y)))" :language fipa-sl :reply-with query1) (inform :sender (agent-identifier :name A) :receiver (set (agent-identifier :name B)) :content "((= (any (sequence ?x ?y) (q ?x ?y)) (sequence 1 a)))" :language fipa-sl :in-reply-to query1)

All (all <term> <formula>)

Operatorul all este ultilizat pentru a indica setul de obiecte care satisfac popozitia reprezentata de formula.

Presupunem ca Agentul A are urmatoarea notiune de baza KB={P(A), Q(1, A), Q(1, B)}. Acest exemplu arata o interactiune realizata cu succes intre agentul A si agentul B care indeplinesc scopul operatorului all.

(query-ref :sender (agent-identifier :name B) :receiver (set (agent-identifier :name A)) :content "((all (sequence ?x ?y) (q ?x ?y)))" :language fipa-sl :reply-with query1)
(inform :sender (agent-identifier :name A) :receiver (set (agent-identifier :name B)) :content "(( = (all (sequence ?x ?y) (q ?x ?y)) (set(sequence 1 a)(sequence 1 b))))" :language fipa-sl :in-reply-to query1)

Bibliografie:

http://www.fipa.org/specs/fipa00008/SC00008I.html http://www.loa.istc.cnr.it/FOCA-presentations/Schiemann.pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1.1921&rep=rep1&type=pdf

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1.1921&rep=rep1&type=pdf
http://www.fipa.org/specs/fipa00008/XC00008G.pdf