Activity

  Jad Elmourad addressed criticism #5526.

This approach leads to wrong results when more variations are given for the true explanation:

plaintext
➜ hard-to-vary git:(master) python3 htv.py
Hard-to-Vary Explanation Comparator
-----------------------------------
What question are you trying to answer?
> Why are there seasons?
Enter explanations one at a time.
Press Enter on an empty line when you're done.
Explanation 1: Because god did it.
Explanation 2: Because of axial tilt.
Explanation 3:
============================================================
Explanation:
Because god did it.
Enter variations of this explanation that would still work to explain the same thing.
Press Enter on an empty line when you're done.
Variation 1: Because angels did it.
Variation 2: Because satan did it.
Variation 3: Because Buddha did it.
Variation 4:
============================================================
Explanation:
Because of axial tilt.
Enter variations of this explanation that would still work to explain the same thing.
Press Enter on an empty line when you're done.
Variation 1: Because of axial tilt for earth.
Variation 2: Because of axial tilt for Mars.
Variation 3: Because of axial tilt for Saturn.
Variation 4: Because of axial tilt for Neptune.
Variation 5: Because of axial tilt for Uranus.
Variation 6:
============================================================
Question:
Why are there seasons?
============================================================
HARDNESS-TO-VARY RANKING
============================================================
Rank 1
Explanation: Because god did it.
Working variations submitted: 3 variations
Rank 2
Explanation: Because of axial tilt.
Working variations submitted: 5 variations
Fewer working variations = harder to vary.
Result:
"Because god did it." is harder to vary than "Because of axial tilt.".
#5526​·​Dennis HackethalOP, about 21 hours ago

The program is operating on the user's current understanding of the explanation.
The seasons example in my submission is intentionally a toy example to demonstrate how the program works. In a proper use of the program, both the problem/question and the proposed explanations would include the relevant context needed to understand what is actually being explained and how the explanation works.
For example, “Earth's seasons are caused by axial tilt” is obviously not the full explanation. Someone who properly understands the explanation knows that Earth's tilt matters in relation to the Sun, Earth's orbit, the changing angle and duration of incoming sunlight, the resulting heating, and so on. These parts are connected and constrain each other.
So if the problem is to explain Earth's seasons, I wouldn't accept replacing Earth with Mars, Saturn, Neptune, etc. as working variations of that explanation. Once the relevant context is included, changing the planet changes other parts of the explanatory relationship and no longer explains the original phenomenon.
On the other hand, if a user genuinely understands “because of axial tilt” in such a shallow way that they think Earth can simply be replaced with any other planet while the explanation of Earth's seasons remains intact, then yes: according to their current understanding, the explanation really is easy to vary. The program is correctly reflecting the explanatory knowledge they've supplied to it.
This is why different users can get different results. Someone with a shallow understanding of an explanation may think many of its details can be changed independently. Someone who understands more of the explanatory structure may understand why those same changes break it. Conversely, an expert may also know genuine working variations that a novice would never think of.
So I don't expect the program to produce a context-independent ranking from a few isolated English sentences. The question and explanations are inputs supplied and understood by the user, and the HTV comparison is relative to that current understanding.