How Rules Represent Causal Knowledge: Causal Modeling with Abductive Logic Programs