great article and great analogies
I like it very much the interactions part
I think you can omit the characteristics all together, many programmers mistake them with state and then violate information hiding and encapsulation principles.
you can define an object by its essential interactions and it is not necessary to deal with accidental characteristics