Abduction in AGISystem2 is reverse geometric search. Given an observation (effect), the system finds concepts that could explain it by searching backwards through relations. Instead of "X causes what?", abduction answers "what causes X?".

Deduction (forward) Fire CAUSES Smoke "Fire causes smoke" Abduction (backward) ? CAUSES Smoke "What causes smoke?" Abduction Process 1. Encode observation v(Smoke) + π⁻¹(CAUSES) 2. LSH candidate search Find nearby concepts 3. Rank by distance Fire: 0.12, Volcano: 0.45... Result: Fire (0.92 confidence) Volcano (0.45 confidence) Inverse Permutation Forward: encode(Fire, CAUSES, Smoke) = v(Fire) + π(v(Smoke)) Abduction: Find X where v(X) ≈ queryVec - π⁻¹(v(Smoke)) The inverse permutation π⁻¹ reverses the CAUSES encoding, letting us search for potential causes rather than effects.

Abduction reverses the direction of inference. Instead of finding effects (deduction), it finds causes. The system uses the inverse permutation to encode the query backwards, then searches for concepts that match the reversed pattern.

How It Works

The Reasoner handles abductive queries by:

  1. Apply inverse permutation – For "? CAUSES Smoke", use π⁻¹(CAUSES) to reverse the relation encoding
  2. Build search vector – Create a query vector from the observation using the inverted permutation
  3. LSH retrieval – Use LSH to find candidate concepts near the query vector
  4. Rank by distance – Score candidates by masked L1 distance

Example Queries

# What causes smoke?
ASK "? CAUSES Smoke"
# → Fire (0.92), Volcano (0.45), Engine (0.38)

# What is located in France?
ASK "? LOCATED_IN France"
# → Paris (0.95), Lyon (0.88), Marseille (0.85)

# What treats headache?
ASK "? TREATS Headache"
# → Aspirin (0.91), Ibuprofen (0.87), Rest (0.65)

Comparison with Deduction

AspectDeductionAbduction
Direction Premise → Conclusion Observation → Explanation
Question "Does X follow from Y?" "What explains Y?"
Permutation Forward π Inverse π⁻¹
Certainty Guaranteed Probabilistic (multiple candidates)

Use Cases

Related Documentation