  We examine implemented systems for ethical machine reasoning with a view to
identifying the practical challenges (as opposed to philosophical challenges)
posed by the area. We identify a need for complex ethical machine reasoning not
only to be multi-objective, proactive, and scrutable but that it must draw on
heterogeneous evidential reasoning. We also argue that, in many cases, it needs
to operate in real time and be verifiable. We propose a general architecture
involving a declarative ethical arbiter which draws upon multiple evidential
reasoners each responsible for a particular ethical feature of the system's
environment. We claim that this architecture enables some separation of
concerns among the practical challenges that ethical machine reasoning poses.
