Getting Started with Rule-based Programming



I'm curious with learning rule-based programming in Maxima and I was looking for some help.  First let me say that I don't know much about rule-based programming.  I've checked the Maxima manual and the forums and while I find clues, I don't see a way to get started. My ultimate goal is to implement abstract rules for vectors, tensors, differential forms, and geometric algebra but I would settle initially for implementing the rules for quaternions.  Is this a feasible thing to do in Maxima?  If so, how does one start and what sources can one use to learn?

Thanks,
Conrad