The join example as follows so that it is compatible with the current postprocessing abilities of wrappers.
<&f(I,S) entry {<&Toid title T> <&Aoid author A> <&Aboid abstract B>}> :- <&I inspecentry {<&Toid title T> <&Aoid author A>}>@inspec AND <&S sybasentry {*Query*<&Aboid abstract B>}>@sybase. author(f(I,S), W) :- author(I, W)@inspec AND author(S, W)@sybase.
<&X ans V> :- <&X entry V>@med AND author(X,cia)@med.*Mediator Processing*
:- @med AND author(X_0, cia)@med.
}> :- }>@inspec AND }>@sybase.
author(f(I_2,S_2), W_2) :- author(I_2, W_2)@inspec AND author(S_2, W_2)@sybase.
:- @med AND author(X_0, cia)@med.
Unifiers UNIFIER USED RULE 2 USED RULE 1 MAPPING X_0 -> f(I_1,S_1) MAPPING I_2 -> I_1 MAPPING S_2 -> S_1 MAPPING W_2 -> cia DEFINITION V_0 => {}
}> :- author(I_1, cia)@inspec AND author(S_1, cia)@sybase AND }>@inspec AND }>@sybase. SITECHARGE: sybase => 0, inspec => 0,
TOP consists of 1 CONSTRUCTs TERM 0 CONSTRUCTOR PATTERN:}> JOIN on variables T_1 (clmn 2 of left op, clmn 1 of right op) OUTPUT: [I_1 Toid_1 T_1 Aoid_1 A_1 S_1 Aboid_1 B_1 ] LEFT JOIN OPERAND EXTRACT OUTPUT: [I_1 Toid_1 T_1 Aoid_1 A_1 ] on column 0 QUERY to source inspec OUTPUT: [answer ] QUERY STRING: }> :- }>@inspec AND author(I_1, cia)@inspec. RIGHT JOIN OPERAND EXTRACT OUTPUT: [S_1 T_1 Aboid_1 B_1 ] on column 0 QUERY to source sybase OUTPUT: [answer ] QUERY STRING: }> :- }>@sybase AND author(S_1, cia)@sybase.