Manners refers to the problem of finding an acceptable seating arrangement for guests at a dinner party. The solution to this problem should ensure that each guest is seated next to someone of the opposite sex who shares at least one hobby (Brant et al., 1991). To compare the performances of various rule engines, the Manners rule set (Miranker, 1991) are translated into rule languages of the respective rule engines. Our comparisons are based on four equally spaced data sets, i.e., 16, 32, 64 and 128. These data sets refers to the number of invited guests. Each data set has a uniform distribution of hobbies from a minimum of two to a maximum of five per guest.
Manners was the 'classic' benchmark test, stressing the agenda and also generating a lot of full cross-products. Many vendors have in recent years optimised their engines for the Manners benchmarks, so this test is no longer as good for comparing different rule engines, although it still can be used to compare improvements in different versions of a single vendors product. It's for this reason that we now consider WaltzDB the best test for side-by-side comparisons of rule engine performance.
Full cross products in this case refers to the beta nodes of a Rete network (Forgy, 1982) that compare the facts from both of their inputs. All partial matches will be propagated down the network and in Manners' case, many of these partial matches will not result in complete matches. So, one easy way to optimize Manners is to avoid full cross products by putting a negated statement using the "not" keyword in one of the rules. This highlights the importance of a good rule design.