  Cause-effect relations are an important part of human knowledge. In real
life, humans often reason about complex causes linked to complex effects. By
comparison, existing formalisms for representing knowledge about causal
relations are quite limited in the kind of specifications of causes and effects
they allow. In this paper, we present the new language C-Log, which offers a
significantly more expressive representation of effects, including such
features as the creation of new objects. We show how C-Log integrates with
first-order logic, resulting in the language FO(C). We also compare FO(C) with
several related languages and paradigms, including inductive definitions,
disjunctive logic programming, business rules and extensions of Datalog.
