%
% dict-pair: AtomSpace-backed dictionary for MST/MPG parsing
%
% Uses word-pairs stored in RocksDB with BondNode "ANY" edges
% and precomputed MI values from Phase 1/2.
%
#define dictionary-lang en;
#define dictionary-locale en_US.UTF-8;
#define dictionary-version-number 5.12.4;
% Never use LG built-in capitalization
#define disable-downcasing true;
% -----------------------
% Storage configuration: No storage-node defined here
% We rely on the AtomSpace passed to LgParseLink
% (If you need standalone dictionary, uncomment below)
% #define storage-node "(RocksStorageNode \"rocks:///storage/projects/code/hypercore-kb/opencog-kb/language-learning/mvp/data/pairs.rdb\")";
% -----------------------
% Data structure: Pure word-pair based (MST/MPG parsing)
% Disable sections since we only have pairs
#define enable-sections 0;
% Don't use extra pairs on sections (no sections)
#define extra-pairs 0;
#define extra-any 0;
% Create disjuncts from word-pairs only (MST/MPG mode)
% Up to 4 connectors per disjunct
#define pair-disjuncts 4;
% Allow ANY links as fallback for unlinkable words
#define pair-with-any 1;
% Backup: pure ANY disjuncts if nothing else works
#define any-disjuncts 1;
% Enable unknown word handling
#define enable-unknown-word 1;
% -----------------------
% Word-pair configuration
% Our pairs use BondNode "ANY" as the predicate
#define pair-predicate "(BondNode "ANY")";
% MI values are stored at this key (from batch-all-pair-mi)
#define pair-key "(Predicate "*-Mutual Info Key-*")";
#define pair-index 1;
% Accept pairs with MI >= 0 (be lenient for testing)
#define pair-cutoff 0.0;
#define pair-default 1.0;
% Cost mapping: Higher MI = lower cost (better)
% Maps MI [0,12] to cost [3,-3]
#define pair-scale -0.5;
#define pair-offset 3.0;
% ANY link cost (high to discourage random linking)
#define any-default 2.6;
% -----------------------
% Disjunct limits
#define max-disjunct-cost 3.0;
#define max-disjuncts 75000;
% Bogus entry to satisfy parser requirements
foo: UNITS+;