OverviewFilesCommitsIssuesDocsReleasesPeers

hypercore-kb / opencog-kb / language-learning / mvp / quick-start.scm

51 lines · scm ref:
; quick-start.scm - Fast interactive startup for CogServer experiments
; Usage: guile -l quick-start.scm

(use-modules (ice-9 format))
(use-modules (opencog) (opencog exec) (opencog persist) (opencog persist-rocks))
(use-modules (opencog lg))
(use-modules (opencog matrix))

;; Inject ParseNode/SentenceNode into (opencog lg) before loading learn
(define (ParseNode name) (Anchor (string-append "parse:" name)))
(define (SentenceNode name) (Anchor (string-append "sentence:" name)))
(module-define! (resolve-module '(opencog lg)) 'ParseNode ParseNode)
(module-define! (resolve-module '(opencog lg)) 'SentenceNode SentenceNode)

(use-modules (opencog learn))

(display "=== Modules loaded ===\n")

;; Open RocksDB
(define *storage* (RocksStorageNode "rocks://data/pairs.rdb"))
(cog-open *storage*)
(display "=== RocksDB connected ===\n")

;; Create matrix API
(define ala (make-any-link-api))
(define aca (add-count-api ala))
(define *pair-api* (add-pair-stars aca))
(display "=== Matrix API ready ===\n")

;; Load pairs from RocksDB (fast part - ~80 sec)
(display "Loading pairs from RocksDB...\n")
(define load-start (current-time))
(*pair-api* 'fetch-pairs)
(format #t "=== Pairs loaded in ~a seconds ===\n" (- (current-time) load-start))

;; Status helper
(define (status)
  (format #t "Atoms in AtomSpace: ~a\n" (cog-count-atoms 'Atom))
  (format #t "Nodes: ~a  Links: ~a\n"
          (cog-count-atoms 'Node) (cog-count-atoms 'Link)))

(display "\n=== READY FOR EXPERIMENTS ===\n")
(display "Available:\n")
(display "  *pair-api*   - matrix API for word pairs\n")
(display "  *storage*    - RocksDB connection\n")
(display "  (status)     - show atom counts\n")
(display "  (batch-all-pair-mi *pair-api*)  - compute MI\n")
(display "  (make-block-mpg-pipe-observer)  - create MST parser\n")
(newline)
(status)