Research Article

Prefiltering Strategy to Improve Performance of Semantic Web Service Discovery

Listing 7

Critical parts of the %filter_Cap predicate.
(1) %Filter_Cap (?GoalName, ?WsName):-
          //- - - - - - - - - -Pre-Condition- - - - - - - -
(2)   ?GoalName[requestsCapability?GCap]@?GoalModule,
(3)   ?GCap ~ ?_GCapability[
(4)   hasPrecondition?GoalPre, hasPostcondition ?GoalPost]@?GoalModule,
(5)   ?WsName[hasCapability?Wcap]@?WsModule,
(6)   ?Wcap ~ ?_WSCapability[
(7)   hasPrecondition ?WsPre, hasPostcondition?WsPost]@?WsModule,
(8)   %FindGoalOrWsAtt (?GoalPre, GoalWsAttModule),
(9)   %DC (?WsPre, ?Ws_Pre_Att_Cnp),
(10)   %Check_Att_Cnp (?WsName, ?Ws_Pre_Att_Cnp, WEBSERVICE),
          //- - - - - - - - - -Post-Condition- - - - - - - -
(11)   deleteall?_A[?_B?_V]:?_C @GoalWsAttModule,
(12)   %FindGoalOrWsAtt (?WsPost,GoalWsAttModule),
(13)   %DC (?GoalPost, ?Goal_Post_Att_Cnp),
(14)   %Check_Att_Cnp (?WsName, ?Goal_Post_Att_Cnp, GOAL).