Research Article

An Improved Abstract State Machine Based Choreography Specification and Execution Algorithm for Semantic Web Services

Listing 3

Running the goal and web service rules.
(1)  runWsRules(?WS)  :-
(2)?_Temp =  setof ?ruleID  ∣
(3)?WS:WebService[wsRule(?ruleID):ForallRule ->  ?ruleBody],
(4)invoke(WEBSERVICE,  ?ruleBody),
(5)?_Temp2 = setof ?ruleID  ∣
(6)?WS:WebService[wsRule(?ruleID):ChooseRule -> ?ruleBody],
(7)invokeChoose(WEBSERVICE,?ruleBody).
-------------------------------------------------------
(8)  runGoalRules(?goal)  :-
(9)?_Temp = setof ?ruleID  ∣
(10)?goal:Goal[gRule(?ruleID):ForallRule -> ?ruleBody],
(11)invoke(GOAL,?ruleBody),
(12)?_Temp2 = setof ?ruleID  ∣
(13)?goal:Goal[gRule(?ruleID):ChooseRule -> ?ruleBody],
(14)invokeChoose(GOAL,?ruleBody).