8 Explanation System
| (require spindle/explanation) | package: spindle |
The explanation system provides detailed derivation traces and supports multiple output formats for understanding reasoning results.
8.1 Explanation Structures
procedure
(explanation-conclusion-type e) → symbol?
e : explanation?
procedure
(explanation-literal e) → literal?
e : explanation?
procedure
(explanation-proof-tree e) → (or/c proof-node? #f)
e : explanation?
8.2 Proof Trees
procedure
(proof-node-literal n) → any/c
n : proof-node?
procedure
(proof-node-derivation-type n) → symbol?
n : proof-node?
procedure
(proof-node-proof-step n) → (or/c proof-step? #f)
n : proof-node?
procedure
(proof-step-rule-label s) → string?
s : proof-step?
procedure
(proof-step-rule-type s) → symbol?
s : proof-step?
procedure
(proof-step-body-proofs s) → (listof proof-node?)
s : proof-step?
8.3 Annotations
Rules and conclusions can carry metadata annotations.
procedure
(annotations-ref a key [default]) → any/c
a : annotations? key : string? default : any/c = #f
8.4 Output Formats
8.4.1 Natural Language
procedure
(explanation->natural-language e) → string?
e : explanation?
Conclusion summary
Derivation steps with descriptions
Alternative derivations considered
Conflict resolutions
8.4.2 JSON-LD
procedure
(explanation->jsonld e) → hash?
e : explanation?
dc: —
Dublin Core (provenance) prov: —
W3C Provenance spindle: —
Spindle vocabulary
procedure
(explanation->json-string e) → string?
e : explanation?
8.4.3 GraphViz DOT
procedure
(explanation->dot e) → string?
e : explanation?
(define dot (explanation->dot my-explanation)) (display-to-file dot "proof.dot")
8.4.4 Provenance Chain
procedure
(explanation->provenance e) → string?
e : explanation?
8.5 Example
(require spindle spindle/explanation) (define-values (ast errors) (parse-dfl-string theory-text)) (define theory (ast->theory ast)) (define conclusions (reason-with-explanations theory)) (for ([c conclusions]) (when (explained-conclusion-explanation c) (displayln (explanation->natural-language (explained-conclusion-explanation c)))))