-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathintensional-reasoning-test.scm
71 lines (59 loc) · 2.31 KB
/
intensional-reasoning-test.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
;; Simple intensional reasoning test
;; Parameters
(define rs 0) ; Random seed
(define ss 0.001) ; Subsampled portion of the KBs
(define mi 100) ; Maximum number of iterations
(define cp 1) ; Complexity penalty
;; Load modules
(use-modules (opencog))
(use-modules (opencog exec))
(use-modules (opencog randgen))
(use-modules (opencog logger))
(use-modules (opencog ure))
(use-modules (opencog pln))
(use-modules (opencog bioscience))
(load "bio-as-utils.scm")
;; Parameters string
(define param-str (string-append
"-rs=" (number->string rs)
"-ss=" (number->string ss)
"-mi=" (number->string mi)
"-cp=" (number->string cp)))
(define log-filename
(string-append "log/intentional-reasoning-test" param-str ".log"))
;; (cog-logger-set-timestamp! #f)
;; (cog-logger-set-sync! #t)
(cog-logger-set-level! "debug")
(cog-logger-set-filename! log-filename)
;; (ure-logger-set-timestamp! #f)
;; (ure-logger-set-sync! #t)
(ure-logger-set-level! "debug")
(ure-logger-set-filename! log-filename)
;; Load kbs
(define db-lst (load-kbs (list
;; Obtained from running preprocess-kbs.scm
"results/preprocess-kbs-rs=0-ss=1-mi=12-cp=10-fra=t.scm")
#:subsmp ss))
(cog-logger-debug "(length db-lst) = ~a" (length db-lst))
;; Load PLN
(pln-load 'empty)
(pln-add-rule 'intensional-inheritance-direct-introduction)
(pln-add-rule 'intensional-similarity-direct-introduction)
(pln-add-rule 'intensional-difference-direct-introduction)
;; For now calculate the intensional inheritance between GO concepts
;; as a test.
;; Run backward chainer to produce intensional links.
(define X (Variable "$X"))
(define Y (Variable "$Y"))
;; (define target (IntensionalInheritance X Y))
;; (define target (IntensionalSimilarity X Y))
(define target (IntensionalDifference X Y))
(define results-iis (pln-bc target
#:maximum-iterations mi
#:complexity-penalty cp))
;; All results
(define results (cog-outgoing-set results-iis))
;; Write results in file
(define scm-filename
(string-append "results/intentional-reasoning-test" param-str ".scm"))
(write-atoms-to-file scm-filename results)