120 likes | 238 Views
The Semantic Web Week 20: Agents that can plan and learn. Module Website: http://scom.hud.ac.uk/scomtlm/chs2533 Practical this week:. Today. Relationship between Generative Planning and OWL-S More on reasoning with actions Rest of Course:
E N D
The Semantic WebWeek 20: Agents that can plan and learn.. Module Website: http://scom.hud.ac.uk/scomtlm/chs2533 Practical this week:
Today • Relationship between Generative Planning and OWL-S • More on reasoning with actions Rest of Course: Weeks 21 - 23 SW Applications and current activity: European Projects + Information Management
Recall OWL-S – upper level ontology OWL-S is a language for describing web services. It is built from DAML-S and is written in OWL. There are 3 parts to a web service specification: Service supports presents describedby ServiceProfile ServiceModel ServiceGrounding
OWL-S • The Service Model contains a model of the PROCESS of the Service – and a concrete definition of Inputs, Outputs, Preconditions, Effects op( getMoney(Bank,20), [ ], [ssc(Bank, [ have_password(Bank,P), balance(Bank,A), ge(A,20), is(AZ,A-20) ], [have_password(Bank,P), balance(Bank,AZ) ] ), ssc(M, [haveresource(M,Y), is(YZ,Y+20) ],[haveresource(M,YZ)] ) ], [ ]). Input Bank = ebank Preconditions= have_password(ebank,P), balance(ebank,A), haveresource(M,Y), ge(A,20), is(AZ,A-20) is(YZ,Y+20) Effects/Outputs = have_password(Bank,P), balance(Bank,AZ), haveresource(M,YZ) ¬ balance(ebank,A), ¬haveresource(M,Y),
Planning program example GOALS task2 :- startOCL([ se(ticket,[have_ticket(ticket,apollo,cats)]), se(dvd2, [have_dvd(dvd2,amazon,terminator)]), se(dvd1, [have_dvd(dvd1,amazon,star_wars)]) ], [ ss(ebank, [have_password(ebank,abcd),balance(ebank,100)]), ss(money, [haveresource(money,10)]), ss(service,[logged_off]), ss(apollo, [service(apollo),freeseat(apollo,cats),seat_price(apollo,25)]), ss(amazon, [ service(amazon), dvd_price(amazon,terminator,10), instock(amazon, terminator), instock(amazon, star_wars), dvd_price(amazon,star_wars,15)]), ss(dvd1, [have_no_dvd(amazon,star_wars)] ), ss(dvd2, [have_no_dvd(amazon,terminator)] ), ss(ticket, [have_no_ticket(apollo,cats)]) ] ). “STATIC” KNOWLEDGE
Operator Schema op( buy_dvd(DVD,Seller,Prod,Price), [se(Seller, [instock(Seller,Prod),dvd_price(Seller,Prod,Price)]), se(S,[logged_on(S,Seller)] ], [ssc(M, [haveresource(M,Y), ge(Y, Price), is(YX,Y-Price)],[haveresource(M,YX)]), ssc(DVD, [have_no_dvd(Seller,Prod)],[have_dvd(DVD,Seller,Prod)]) ], [ ]). op( book_theatre_seat(Ticket,Seller,Prod), [se(Seller,[freeseat(Seller,Prod),seat_price(Seller,X)]), se(S,[logged_on(S,Seller)]) ], [ssc(Money, [haveresource(Money,Y), ge(Y, X), is(YX,Y-X)],[haveresource(Money,YX)]), ssc(Ticket, [have_no_ticket(Seller,Prod)],[have_ticket(Ticket,Seller,Prod)]) ], [ ]). op( getMoney(Bank,20), [ ], [ssc(Bank, [ have_password(Bank,P), balance(Bank,A), ge(A,20), is(AZ,A-20) ], [have_password(Bank,P), balance(Bank,AZ) ] ), ssc(M, [haveresource(M,Y), is(YZ,Y+20) ],[haveresource(M,YZ)] ) ], [ ]). op( logon(Seller), [se(money,[haveresource(money,R),gt(R,0)]), se(Seller,[service(Seller)]) ], [ssc(service, [logged_off],[logged_on(service,Seller)]) ], [ ]). op(logoff(Seller), [ ], [ssc(service, [logged_on(service,Seller)],[ logged_off ]) ], [ ]). Dynamic Knowledge
Execution Example | ?- task2. .................. goal [se(ticket,[have_ticket(ticket,apollo,cats)]), se(dvd2,[have_dvd(dvd2,amazon,terminator)]), se(dvd1,[have_dvd(dvd1,amazon,star_wars)])] achieved by sequence [getMoney(ebank,20),getMoney(ebank,20), logon(apollo),book_theatre_seat(ticket,apollo,cats),logoff(apollo), logon(amazon),buy_dvd(dvd2,amazon,terminator,10),buy_dvd(dvd1,amazon,star_wars,15)] 699 nodes generated 4.51 seconds of cpu 154.9889135254989 nodes search per second new state is [ss(dvd1,[have_dvd(dvd1,amazon,star_wars)]),ss(money,[haveresource(money,0)]),ss(dvd2,[have_dvd(dvd2,amazon,terminator)]),ss(service,[logged_on(service,amazon)]),ss(ticket,[have_ticket(ticket,apollo,cats)]),ss(ebank,[have_password(ebank,abcd),balance(ebank,60)]),ss(apollo,[service(apollo),freeseat(apollo,cats),seat_price(apollo,25)]),ss(amazon,[service(amazon),dvd_price(amazon,terminator,10),instock(amazon,terminator),instock(amazon,star_wars),dvd_price(amazon,star_wars,15)])]
Planning Algorithm Nodes = (State, Sequence of actions that got to State) 1. Store the first node (initial state + empty solution) Repeat 2. pick a node (State, Sequence) 3. pick an action and parameter grounding - ‘A' - that can be applied to State 4. apply A to State to get State' 5. store new node (State', Sequence + A) 6. if possible, backtrack to 3. and make a different choice. Until a node (State, Sequence) has been asserted such that State contains the goal literals
Applying Planning Actions.. 4. apply A to State to get State‘ …. A = getMoney(ebank,20) op( getMoney(Bank,20), [ ], [ssc(Bank, [ have_password(Bank,P), balance(Bank,A), ge(A,20), is(AZ,A-20) ], [have_password(Bank,P), balance(Bank,AZ) ] ), ssc(M, [haveresource(M,Y), is(YZ,Y+20) ],[haveresource(M,YZ)] ) ], [ ]). Parameter “Bank” => constant “ebank” getMoney(ebank,20) = Precondition = have_password(ebank,P), balance(ebank,A), ge(A,20), is(AZ,A-20) , haveresource(M,Y), is(YZ,Y+20) Post condition = have_password(ebank,P), balance(ebank,AZ), haveresource(M,YZ)
Planning Algorithm: applying actions 4. apply A to State to get State‘ …. EXAMPLE State = [ ss(ebank, [have_password(ebank,abcd), balance(ebank,100)]), ss(money, [haveresource(money,10)]), ss(service,[logged_off]), …. ETC] ). getMoney(ebank,20) = Precondition = have_password(ebank,P), balance(ebank,A), ge(A,20), is(AZ,A-20) , haveresource(M,Y), is(YZ,Y+20) Post condition = have_password(ebank,P), balance(ebank,AZ), haveresource(M,YZ) Apply A: 1. Are the precondition’s achieved? Yes, with P =“abcd”, A=100, AZ = 80, M = money, Y = 10, YZ = 30 2. Apply Post Conditions State’ = [ ss(ebank, [have_password(ebank,abcd), balance(ebank,80)]), ss(money, [haveresource(money,30)]), ss(service,[logged_off]), …. ETC] ).
Example Agent Architecture WEB ENVIRONMENT Failure Plan Execution Feedback Agent Static Knowledge Base Learning Component Generative PLANNER High Level Requests Dynamic Knowledge Base Response USER
Summary • Agents have to have a degree of autonomy to make them useful. They need to be able to reason with actions, time, events, resources. • Web Agents will be able to effect things by using Web Services (collect information, supply information, buy goods, organise transactions..) • Planning algorithms are useful to allow agents to make plans that achieve goals