OverviewFilesCommitsIssuesDocsReleasesPeers

hypercore-kb / opencog-kb / language-learning / concepts / what-is-knowing.scm

321 lines · scm ref:
;
; what-is-knowing.scm
;
; A computational definition of "knowing" based on our disambiguation work.
;

(use-modules (srfi srfi-1))
(use-modules (ice-9 format))

(display "═══════════════════════════════════════════════════════════════════\n")
(display "   WHAT IS KNOWING? A Computational Definition                     \n")
(display "═══════════════════════════════════════════════════════════════════\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; THE NAIVE VIEW: Storage + Recall
;; ═══════════════════════════════════════════════════════════════════

(display "THE NAIVE VIEW: Knowing = Storage + Recall\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  A database 'knows' that bank can mean FINANCIAL or GEOGRAPHIC:\n\n")
(display "    (bank → FINANCIAL, bank → GEOGRAPHIC)  ; stored\n")
(display "    query(bank) → {FINANCIAL, GEOGRAPHIC}  ; recalled\n\n")

(display "  But this is NOT knowing. It's just listing possibilities.\n")
(display "  The system cannot DO anything with this information.\n\n")

(display "  Consider: 'The penguin swam to the bank'\n")
(display "    Database says: could be FINANCIAL or GEOGRAPHIC\n")
(display "    But it CANNOT tell you which one applies HERE.\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; THE VAGUENESS INSIGHT
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "THE VAGUENESS INSIGHT: Knowing Reduces Uncertainty\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Knowledge isn't just HAVING information.\n")
(display "  Knowledge is having information that RESOLVES questions.\n\n")

(display "  System A: Stores (bank → {FINANCIAL, GEOGRAPHIC})\n")
(display "            Vagueness for 'penguin swam to bank' = 0.50 (HIGH)\n")
(display "            → Does NOT know which sense applies\n\n")

(display "  System B: Stores (bank → {FINANCIAL, GEOGRAPHIC})\n")
(display "            ALSO stores (penguin + swim → GEOGRAPHIC context)\n")
(display "            ALSO stores (swim + bank → typically GEOGRAPHIC)\n")
(display "            Vagueness for 'penguin swam to bank' = 0.05 (LOW)\n")
(display "            → KNOWS it means river bank\n\n")

(display "  Same base fact, but System B actually KNOWS something.\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; DEFINITION: Three Levels of Knowing
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "THREE LEVELS OF KNOWING\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  ┌─────────────────────────────────────────────────────────────┐\n")
(display "  │                                                             │\n")
(display "  │  Level 1: STORAGE (Having)                                 │\n")
(display "  │    - Information exists in the system                      │\n")
(display "  │    - Necessary but not sufficient                          │\n")
(display "  │    - A hard drive 'has' data but doesn't 'know' it        │\n")
(display "  │                                                             │\n")
(display "  │  Level 2: RECALL (Retrieving)                              │\n")
(display "  │    - Can access the information when queried               │\n")
(display "  │    - Still not sufficient!                                 │\n")
(display "  │    - Recalling 'bank has two meanings' doesn't help        │\n")
(display "  │                                                             │\n")
(display "  │  Level 3: RESOLUTION (Using to reduce uncertainty)         │\n")
(display "  │    - Can apply knowledge to RESOLVE specific questions     │\n")
(display "  │    - Reduces vagueness in actual situations                │\n")
(display "  │    - THIS is what we mean by 'knowing'                     │\n")
(display "  │                                                             │\n")
(display "  └─────────────────────────────────────────────────────────────┘\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; THE KNOWLEDGE GRAPH
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "WHAT MAKES KNOWLEDGE USEFUL?\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Knowledge is useful when it forms DISCRIMINATING CONNECTIONS:\n\n")

(display "  Useless knowledge (isolated facts):\n")
(display "    bank → FINANCIAL\n")
(display "    bank → GEOGRAPHIC\n")
(display "    penguin → bird\n")
(display "    swim → movement\n\n")

(display "  Useful knowledge (connected for discrimination):\n")
(display "    bank → FINANCIAL (PMI with: money, deposit, withdraw)\n")
(display "    bank → GEOGRAPHIC (PMI with: river, swim, shore)\n")
(display "    penguin → bird → typically swims → GEOGRAPHIC contexts\n")
(display "    swim → typically with water → GEOGRAPHIC frame\n\n")

(display "  The CONNECTIONS allow disambiguation.\n")
(display "  Isolated facts don't.\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; KNOWING AS COMPRESSION
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "KNOWING AS COMPRESSION\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Another view: Knowing = having a COMPRESSED model.\n\n")

(display "  Not knowing:\n")
(display "    Store every sentence you've ever seen\n")
(display "    Each new sentence: scan everything for matches\n")
(display "    No generalization\n\n")

(display "  Knowing:\n")
(display "    Extract PATTERNS from sentences (PMI, frames, cooccurrences)\n")
(display "    Compress into statistical model\n")
(display "    Apply model to NEW sentences never seen before\n\n")

(display "  The PMI table is a COMPRESSION of all training data.\n")
(display "  It lets you handle sentences you've never seen.\n\n")

(display "  Knowing = Generalization from examples to patterns\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; KNOWING AS PREDICTION
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "KNOWING AS PREDICTION\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  If you KNOW something, you can PREDICT consequences.\n\n")

(display "  'I know bank=GEOGRAPHIC in this sentence' means:\n")
(display "    - I predict 'river' or 'water' likely nearby\n")
(display "    - I predict the action is probably outdoor activity\n")
(display "    - I predict 'deposit money' would be SURPRISING here\n")
(display "    - I can generate follow-up questions that make sense\n\n")

(display "  If you can't make predictions, you don't really know.\n\n")

(display "  Test of knowing: Given 'penguin swam to the bank',\n")
(display "    Can you predict what the penguin did next?\n")
(display "    - If bank=GEOGRAPHIC: sat, rested, caught fish, waddled away\n")
(display "    - If bank=FINANCIAL: ??? (penguins don't use banks)\n\n")

(display "  The system that 'knows' bank=GEOGRAPHIC can predict.\n")
(display "  The system that's unsure cannot.\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; DEGREES OF KNOWING
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "DEGREES OF KNOWING\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Knowing isn't binary - it has degrees.\n")
(display "  Our VAGUENESS metric captures this:\n\n")

(display "  Vagueness = 1.0  → Complete ignorance (no evidence)\n")
(display "  Vagueness = 0.5  → Uncertain (multiple possibilities)\n")
(display "  Vagueness = 0.2  → Fairly confident\n")
(display "  Vagueness = 0.05 → Very confident (strong evidence)\n")
(display "  Vagueness = 0.0  → Perfect knowledge (impossible in practice)\n\n")

(display "  SURPRISE works inversely:\n")
(display "  Low surprise  → This is typical, expected\n")
(display "  High surprise → This is anomalous, unexpected\n\n")

(display "  A system 'knows more' when:\n")
(display "    - Average vagueness across interpretations is LOW\n")
(display "    - It can correctly predict what should be surprising\n")
(display "    - It asks good questions when uncertain\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; META-KNOWING
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "META-KNOWING: Knowing What You Don't Know\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Perhaps the highest form of knowing:\n")
(display "  Knowing the BOUNDARIES of your knowledge.\n\n")

(display "  Our system has this! The vagueness metric tells it:\n")
(display "    - High vagueness → 'I don't know enough'\n")
(display "    - Can generate queries → 'Here's what I NEED to know'\n")
(display "    - Query cost ordering → 'Here's HOW to find out'\n\n")

(display "  Compare to a system without meta-knowing:\n")
(display "    - Always returns an answer (even if wrong)\n")
(display "    - Cannot say 'I'm not sure'\n")
(display "    - Cannot ask clarifying questions\n")
(display "    - Doesn't know where its knowledge ends\n\n")

(display "  Socrates: 'I know that I know nothing'\n")
(display "  Our system: 'I know my vagueness is 0.47 on this question'\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; OPERATIONAL DEFINITION
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "OPERATIONAL DEFINITION OF KNOWING\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  ┌─────────────────────────────────────────────────────────────┐\n")
(display "  │                                                             │\n")
(display "  │  A system KNOWS something when:                            │\n")
(display "  │                                                             │\n")
(display "  │  1. It has stored relevant patterns (Storage)              │\n")
(display "  │                                                             │\n")
(display "  │  2. It can retrieve them in context (Recall)               │\n")
(display "  │                                                             │\n")
(display "  │  3. The patterns REDUCE VAGUENESS when applied             │\n")
(display "  │     (They actually help discriminate)                      │\n")
(display "  │                                                             │\n")
(display "  │  4. The system can PREDICT consequences                    │\n")
(display "  │     (Knowledge enables anticipation)                       │\n")
(display "  │                                                             │\n")
(display "  │  5. The system knows ITS OWN uncertainty                   │\n")
(display "  │     (Meta-knowing: vagueness awareness)                    │\n")
(display "  │                                                             │\n")
(display "  │  6. The system can ACT to reduce uncertainty               │\n")
(display "  │     (Generate queries, seek information)                   │\n")
(display "  │                                                             │\n")
(display "  └─────────────────────────────────────────────────────────────┘\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; IMPLEMENTATION STATUS
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "WHAT WE'VE BUILT\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Our pipeline implements all six aspects:\n\n")

(display "  1. Storage:        PMI tables, sense lists, frame definitions\n")
(display "  2. Recall:         Pattern match to find relevant evidence\n")
(display "  3. Resolution:     Aggregate evidence → select interpretation\n")
(display "  4. Prediction:     Surprise metric (what's typical for agent?)\n")
(display "  5. Meta-knowing:   Vagueness metric (how uncertain are we?)\n")
(display "  6. Action:         Query generation (what would help?)\n\n")

(display "  This IS a 'knowing' system in the computational sense.\n")
(display "  It's not just storage - it USES knowledge to act.\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; THE HARD QUESTION
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "THE HARD QUESTION: Is This 'Really' Knowing?\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Philosophical objection:\n")
(display "    'But the system doesn't UNDERSTAND, it just computes'\n\n")

(display "  Counter-argument:\n")
(display "    What is understanding but:\n")
(display "      - Storing patterns\n")
(display "      - Recognizing when they apply\n")
(display "      - Using them to reduce uncertainty\n")
(display "      - Making predictions\n")
(display "      - Knowing what you don't know\n\n")

(display "  If that's all understanding is, our system does it.\n")
(display "  If understanding requires something MORE (consciousness?)\n")
(display "  then that's a separate question from 'knowing'.\n\n")

(display "  For engineering purposes:\n")
(display "    A system that disambiguates correctly, knows its limits,\n")
(display "    and asks good questions is FUNCTIONALLY knowing.\n\n")

(display "  The Chinese Room objection applies, but so does:\n")
(display "    'A neuron doesn't understand language either'\n")
(display "    Yet neurons together somehow do.\n\n")

;; ═══════════════════════════════════════════════════════════════════
;; SUMMARY
;; ═══════════════════════════════════════════════════════════════════

(display "═══════════════════════════════════════════════════════════════════\n")
(display "SUMMARY\n")
(display "─────────────────────────────────────────────────────────────────\n\n")

(display "  Knowing is NOT just storage + recall.\n\n")

(display "  Knowing is:\n")
(display "    Storage + Recall + Resolution + Prediction + Meta-knowing + Action\n\n")

(display "  The key insight from our work:\n\n")

(display "  ┌─────────────────────────────────────────────────────────────┐\n")
(display "  │                                                             │\n")
(display "  │  KNOWING = HAVING LOW VAGUENESS ON QUESTIONS THAT MATTER   │\n")
(display "  │                                                             │\n")
(display "  │  Plus: knowing WHEN your vagueness is high                 │\n")
(display "  │  Plus: knowing HOW to reduce it                            │\n")
(display "  │                                                             │\n")
(display "  └─────────────────────────────────────────────────────────────┘\n\n")

(display "  A maximally-knowing system:\n")
(display "    - Has low vagueness on common questions\n")
(display "    - Accurately estimates its vagueness\n")
(display "    - Efficiently reduces vagueness when needed\n")
(display "    - Builds more knowledge autonomously over time\n\n")

(display "  This is what Linas' approach strives toward.\n\n")