Objective-C protocol names throughout history seem to fall into three distinct conventions:
- some are named after what a conforming object provides. Thus we have DBProperties,DBEntities,DBTypesand the like in Database Kit.
- others are named after what the object is doing. Thus we have NSCoding,NSLocking,IXCursorPositioningetc.
- still others are named after what the conforming object is. NSTableViewDataSource,NSDraggingInfoetc.
I think I prefer the second one. It emphasises the dynamic message-sending nature of the language: “because you’re sending messages from this protocol, I’ll act like this”.
 
			