33 lines
1.6 KiB
Org Mode
33 lines
1.6 KiB
Org Mode
:PROPERTIES:
|
||
:CREATED: [2026-06-04 Thu]
|
||
:END:
|
||
#+title: Definite Description Resolution
|
||
#+filetags: :passepartout:architecture:
|
||
|
||
When the user says "the function that validates secrets," the agent must resolve this to a specific code entity. Natural language is ambiguous — there might be multiple functions matching the description. Resolving to the wrong one causes incorrect actions.
|
||
|
||
/Principia Mathematica/'s theory of descriptions addresses this: "the current king of France is bald" — a sentence that seems to refer to something that doesn't exist. PM formalizes ~ιx(φx)~ as "the unique x such that φ holds." A statement is false (not meaningless) when there is no unique x satisfying φ.
|
||
|
||
A cognitive tool that checks descriptional uniqueness before resolution:
|
||
|
||
#+BEGIN_SRC lisp
|
||
(def-cognitive-tool :resolve-reference
|
||
(query-string &key (max-candidates 10)
|
||
(context-path *current-context*))
|
||
"Resolve a definite description to a unique referent."
|
||
(let ((candidates (search-knowledge-graph query-string
|
||
:source-path context-path
|
||
:limit max-candidates)))
|
||
(cond
|
||
((null candidates)
|
||
(values nil :no-referent query-string))
|
||
((> (length candidates) 1)
|
||
(values nil :ambiguous candidates))
|
||
(t
|
||
(values (first candidates) :unique nil)))))
|
||
#+END_SRC
|
||
|
||
~40 lines as a skill in v0.7.2. When VivaceGraph ships (v3.0.0), descriptions become native Prolog queries with uniqueness constraints.
|
||
|
||
For the philosophical foundations, see the Whitehead analysis in the Validation section below.
|