  The behavior of self-driving cars must be compatible with an enormous set of
conflicting and ambiguous objectives, from law, from ethics, from the local
culture, and so on. This paper describes a new way to conveniently define the
desired behavior for autonomous agents, which we use on the self-driving cars
developed at nuTonomy. We define a "rulebook" as a pre-ordered set of "rules",
each akin to a violation metric on the possible outcomes ("realizations"). The
rules are partially ordered by priority. The semantics of a rulebook imposes a
pre-order on the set of realizations. We study the compositional properties of
the rulebooks, and we derive which operations we can allow on the rulebooks to
preserve previously-introduced constraints. While we demonstrate the
application of these techniques in the self-driving domain, the methods are
domain-independent.
