-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy path2015-pln-inference.scm
84 lines (71 loc) · 2.85 KB
/
2015-pln-inference.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
72
73
74
75
76
77
78
79
80
81
82
83
84
;; Reproduction of the 2015 inference example produced by Eddie
;; Monroe, see doc/bio_AI_nov_2015_v3.pdf.
;; 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/2015-pln-xp" 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 'subset-condition-negation)
(pln-add-rule 'subset-attraction-introduction)
(pln-add-rule 'intensional-inheritance-direct-introduction)
(pln-add-rule 'intensional-similarity-direct-introduction)
;; For now calculate the intensional inheritance between GO concepts
;; as a test.
;; Run backward chainer to produce attraction links.
(define X (Variable "$X"))
(define Y (Variable "$Y"))
(define CT (Type "ConceptNode"))
(define vardecl (VariableSet
(TypedVariable X CT)
(TypedVariable Y CT)))
(define target (Attraction X Y))
(define results-ats (pln-bc target
#:vardecl vardecl
#:maximum-iterations mi
#:complexity-penalty cp))
;; Run backward chainer to produce intensional inheritances.
;; (define target (IntensionalInheritance X Y))
(define target (IntensionalSimilarity X Y))
(define results-iis (pln-bc target
#:vardecl vardecl
#:maximum-iterations mi
#:complexity-penalty cp))
;; All results
(define results (append (cog-outgoing-set results-ats)
(cog-outgoing-set results-iis)))
;; Write results in file
(define scm-filename (string-append "results/2015-pln-xp" param-str ".scm"))
(write-atoms-to-file scm-filename results)