Hi, I have a transformation code written in Tefkat.
Rule AgentServiceInteraction FORALL Agent ag1 { type: "Semantic Web Agent"; plays: Role role1 { type: "Domain Role"; }; applies: Plan pln { type: "Semantic Service Executor Plan"; }; },
Agent ag2 { type: "Semantic Service Matchmaker Agent"; plays: Role role2 { type: "Registry Role"; }; applies: Plan pln; }
},
MAKE JClass agJ1 FROM op1(ag1) { name: ag1.type; associatedClass: plnJ1; associatedClass: plnJ2; }, JClass plnJ1 FROM op2(pln) { name: join("_", pln.name, pln.type); }, JClass plnJ2 FROM op2(pln) { name: join("_", pln.name, "Semantic Helper Plan"); }, JClass agJ2 FROM op2(pln) { associatedClass: plnJ1; associatedClass: plnJ2; }; ;
In this rule I want to match one Sementic Web Agent and one Semantic Service Matchmaker Agent which reference the same Plan instances (Semantic Service Executor Class). I am not sure the code line (applies: Plan pln) in "Agent ag1" and the code line (applies: Plan pln) in "Agent ag2" matche the same Plan instances. Is it possible to match the Plan instances for Semantic Service Matchmaker Agent which do not reference to Semantic Web Agent? Regards,
You are right; as written, this rule will match (Semantic Web and Semantic Service Executor) Agents, ag1 and ag2, whose "applies" features reference a common Plan, pln, which is what you want.
If you want to match the other plans of ag2 that are not referred to by ag1, then you could use:
RULE AgentServiceInteraction FORALL Agent ag1 { ... }, Agent ag2 { ... } WHERE ag2.applies = otherPlan AND NOT (ag1.applies = otherPlan) MAKE ... ;
However, I'm not completely sure what you mean by "the Plan instances for Semantic Service Matchmaker Agent which do not reference to Semantic Web Agent". Do you mean: * Plan instances of the particular Semantic Service Matchmaker Agent (ag2) that are not referred to by the particular Semantic Web Agent (ag1), or * Plan instances of the particular Semantic Service Matchmaker Agent (ag2) that are not referred to by any Semantic Web Agent, or * Plan instances of any Semantic Service Matchmaker Agent that are not referred to by the particular Semantic Web Agent (ag1), or * Plan instances of any Semantic Service Matchmaker Agent that are not referred to by any Semantic Web Agent ? All of these options are possible.
hope that helps,
-David
On 1 Nov, 00:18, "Arda Goknil" <ardagok...@gmail.com> wrote:
> In this rule I want to match one Sementic Web Agent and one Semantic Service > Matchmaker Agent which reference the same Plan instances (Semantic Service > Executor Class). I am not sure the code line (applies: Plan pln) in "Agent > ag1" and the code line (applies: Plan pln) in "Agent ag2" matche the same > Plan instances. Is it possible to match the Plan instances for Semantic > Service Matchmaker Agent which do not reference to Semantic Web Agent? > Regards,
> You are right; as written, this rule will match (Semantic Web and > Semantic Service Executor) Agents, ag1 and ag2, whose "applies" > features reference a common Plan, pln, which is what you want.
> If you want to match the other plans of ag2 that are not referred to > by ag1, then you could use:
> RULE AgentServiceInteraction > FORALL Agent ag1 { ... }, > Agent ag2 { ... } > WHERE ag2.applies = otherPlan AND NOT (ag1.applies = otherPlan) > MAKE ... > ;
> However, I'm not completely sure what you mean by "the Plan instances > for Semantic Service Matchmaker Agent which do not reference to > Semantic Web Agent". Do you mean: > * Plan instances of the particular Semantic Service Matchmaker Agent > (ag2) that are not referred to by the particular Semantic Web Agent > (ag1), or > * Plan instances of the particular Semantic Service Matchmaker Agent > (ag2) that are not referred to by any Semantic Web Agent, or > * Plan instances of any Semantic Service Matchmaker Agent that are not > referred to by the particular Semantic Web Agent (ag1), or > * Plan instances of any Semantic Service Matchmaker Agent that are not > referred to by any Semantic Web Agent ? > All of these options are possible.
> hope that helps,
> -David
> On 1 Nov, 00:18, "Arda Goknil" <ardagok...@gmail.com> wrote:
> > Hi, > > I have a transformation code written in Tefkat.
> > In this rule I want to match one Sementic Web Agent and one Semantic Service > > Matchmaker Agent which reference the same Plan instances (Semantic Service > > Executor Class). I am not sure the code line (applies: Plan pln) in "Agent > > ag1" and the code line (applies: Plan pln) in "Agent ag2" matche the same > > Plan instances. Is it possible to match the Plan instances for Semantic > > Service Matchmaker Agent which do not reference to Semantic Web Agent? > > Regards,