Rules such as Rule-Obj-Activity and Rule-HTML-Section include pyClassName as a key property. Those rule types need a second key property such as pyActivity name or pyStreamName, respectively, to distinguish one rule of the same type from another.
However not all rules require pyClassName (Applies-To) as one of their keys. Examples include Rule-File-Binary and Rule-Utility-Library.
The term "purpose" is defined in the Help text for Rule Resolution.