The first extension is partial least general generalization (plgg) and allows us to only partially generalize two literals: we can say that we want to generalize two literals or terms, but can require some arguments to be fixed, i.e., that the two literals must have unifying values at that specific argument position. Thus, partial least general generalization is a combination of unification and anti-unification.
Consider again the following literals
additive(ppn_1060, flame-retardent)and the following application:
plgg(t1,t2,additive($,_)) additive(ppn_1060, X)Here we only want to generalize over the fluent additives of identical materials: the generalization pattern additive($,_) restricts generalization to the second argument position, while the first argument, marked '$' cannot be generalized but has to be unifiable. Consequently, plgg can be regarded as a combination of anti-unification (for those argument positions marked '_') and unification (for the remaining argument positions). As unification can fail, plgg may fail too, but, of course, in the non-generalized argument positions only. Thus, the above generalization of and succeeds, but the generalization of and using the same generalized pattern fails.
We can also restrict generalization by requiring some arguments to be of a particular type. In this case we would use a type or sort identifier at the position of the meta-symbol $ in the previous example. Thus, exact match as done for $ is now replaced by sorted unification for the non-generalized argument positions.
Consider the taxonomy shown in Fig. 3. Trying to generalize and requiring the first argument of the resulting literal to be of type novodur would fail since the least general generalization of ppn_1060 and r_5320 is the type thermoplastic, which is too general, i.e. not within the required type novodur:
plgg(t2,t3,additive(novodur,_)) failHowever, if we only require the generalized material to be of type plastic, the generalization of and would succeed and result in the least generalized material type thermoplastic:
plgg(t2,t3,additive(plastic,_)) additive(thermoplastic, X)