A method of maintaining an aircraft that includes aircraft systems configured to report faults to an onboard reasoner, the method comprising: accessing diagnostic data received from an onboard computer of the aircraft that includes the onboard reasoner, the diagnostic data including a plurality of fault reports of failed tests (306A, 306B) reported by respective ones of the aircraft systems, and a plurality of diagnosed failure modes of at least some of the aircraft systems that caused the failed tests; the method further being characterised by the steps of: building, using an off-board reasoner of an off-board computer, an off-board diagnostic causal model that describes causal relationships between the failed tests and the plurality of diagnosed failure modes, the off-board diagnostic causal model built using a graph-theoretic machine learning algorithm trained using historical diagnostic data; comparing, using the off-board reasoner, the diagnostic data to the off-board diagnostic causal model; and based thereon, determining, using the off-board reasoner, a new causal relationship in the causal relationships described by the off-board diagnostic causal model that is new relative to the known causal relationships; and updating, using the off-board reasoner, the onboard diagnostic causal model to further describe the new causal relationship, including producing an updated onboard diagnostic causal model, and uploading the updated onboard diagnostic causal model to the onboard computer using a loadable software airplane part upload tool set, wherein the off-board diagnostic causal model is represented by a graph that includes nodes (402, 404) connected by edges, the nodes representing the failed tests and the plurality of diagnosed failure modes, and the edges indicating the known causal relationships between the failed tests and the plurality of diagnosed failure modes. accessing diagnostic data received from an onboard computer of the aircraft that includes the onboard reasoner, the diagnostic data including a plurality of fault reports of failed tests (306A, 306B) reported by respective ones of the aircraft systems, and a plurality of diagnosed failure modes of at least some of the aircraft systems that caused the failed tests; the method further being characterised by the steps of: building, using an off-board reasoner of an off-board computer, an off-board diagnostic causal model that describes causal relationships between the failed tests and the plurality of diagnosed failure modes, the off-board diagnostic causal model built using a graph-theoretic machine learning algorithm trained using historical diagnostic data; comparing, using the off-board reasoner, the diagnostic data to the off-board diagnostic causal model; and based thereon, determining, using the off-board reasoner, a new causal relationship in the causal relationships described by the off-board diagnostic causal model that is new relative to the known causal relationships; and updating, using the off-board reasoner, the onboard diagnostic causal model to further describe the new causal relationship, including producing an updated onboard diagnostic causal model, and uploading the updated onboard diagnostic causal model to the onboard computer using a loadable software airplane part upload tool set,