Rulecode is 1 (Status = foundational) selectfunctionalgroups(set1//protein/function, X) AND selectproteingroups(set1//protein/name, set1//protein/function, X, Y) AND expandfunctionalgroupings(set1//protein/name, set1//protein/function, Y, U) AND getleastupperbounds(Y, U, Z) AND getkeywordgroups(Z, W) AND getnumberoffunctionalgroups(Y, V) IMPLIES Initialize(biofusionanalysis) AND RepeatAddNode(functionalgroup, V, biofusionanalysis) AND RepeatAddNode(selectedproteins, 1, biofusionanalysis/functionalgroup) AND RepeatAddText(Y, biofusionanalysis/functionalgroup/selectedproteins) AND RepeatAddNode(commonfunction, 1, biofusionanalysis/functionalgroup) AND RepeatAddText(Z, biofusionanalysis/functionalgroup/commonfunction) AND RepeatAddNode(keywords, 1, biofusionanalysis/functionalgroup) AND RepeatAddAtomicTrees(W, keyword, biofusionanalysis/functionalgroup/keywords) Rulecode is 2 (Status = optional) cannotfindsemanticgeneralization(set1//protein/name, set1//protein/function, X) IMPLIES AddText(X, biofusionAnalysis/commonfunction) END OF RULES