OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-learn / tests / merge / class-data.scm

264 lines · scm ref:
;
; class-data.scm
; Populate the AtomSpace with multiple clusters.

(use-modules (opencog) (opencog lg))

; ---------------------------------------------------------------
; Define sections on two WordClasses, that should be mergeable.

(define cnt-ej-abc 13)
(define cnt-ej-klm 44)
(define cnt-rs-abc 25)
(define cnt-rs-dgh 61)

(define mem-e-ej 10)
(define mem-j-ej 11)
(define mem-r-rs 12)
(define mem-s-rs 13)

(define (setup-ej-sections)
	(Section (ctv 1 0 cnt-ej-abc)
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (Word "c") (ConnectorDir "+"))))
	(Section (ctv 1 0 cnt-ej-klm)
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (Word "m") (ConnectorDir "+"))))

	(Member (Word "e") (WordClass "e j") (ctv 1 0 mem-e-ej))
	(Member (Word "j") (WordClass "e j") (ctv 1 0 mem-j-ej))

	; Similar to above.
	(Section (ctv 1 0 cnt-rs-abc)
		(WordClass "r s")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (Word "c") (ConnectorDir "+"))))
	(Section (ctv 1 0 cnt-rs-dgh)
		(WordClass "r s")
		(ConnectorSeq
			(Connector (Word "d") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+"))))
	; (Section k l m) intintionally absent.

	(Member (Word "r") (WordClass "r s") (ctv 1 0 mem-r-rs))
	(Member (Word "s") (WordClass "r s") (ctv 1 0 mem-s-rs))

	*unspecified*
)

; Expected results from the above.
(define sec-ej-abc #f)
(define sec-ej-dgh #f)
(define sec-ej-klm #f)

(define xes-b-ej-avc #f)
(define xes-k-ej-vlm #f)
(define xes-d-ej-vgh #f)

(define (expected-ej-sections)
	(set! sec-ej-abc
	(Section
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (Word "c") (ConnectorDir "+")))))
	(set! sec-ej-dgh
	(Section
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "d") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))
	(set! sec-ej-klm
	(Section
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (Word "m") (ConnectorDir "+")))))

	(set! xes-b-ej-avc
	(CrossSection
		(Word "b")
		(Shape
			(WordClass "e j")
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "c") (ConnectorDir "+")))))
	(set! xes-k-ej-vlm
	(CrossSection
		(Word "k")
		(Shape
			(WordClass "e j")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (Word "m") (ConnectorDir "+")))))
	(set! xes-d-ej-vgh
	(CrossSection
		(Word "d")
		(Shape
			(WordClass "e j")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Additional ej sections, having rs as connector.

(define cnt-rs-abej 16)
(define cnt-ej-klrs 21)

(define (setup-ej-extra)

	; Some sections with classes as connectors
	(Section (ctv 1 0 cnt-rs-abej)
		(WordClass "r s")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (WordClass "e j") (ConnectorDir "+"))))
	(Section (ctv 1 0 cnt-ej-klrs)
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (WordClass "r s") (ConnectorDir "+"))))

	*unspecified*
)

(define sec-ej-abej #f)
(define sec-ej-klej #f)

(define xes-ej-ej-abv #f)
(define xes-ej-ej-klv #f)

(define (expected-ej-extra-sections)
	(set! sec-ej-abej
	(Section
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (WordClass "e j") (ConnectorDir "+")))))
	(set! sec-ej-klej
	(Section
		(WordClass "e j")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (WordClass "e j") (ConnectorDir "+")))))

	(set! xes-ej-ej-abv
	(CrossSection
		(WordClass "e j")
		(Shape
			(WordClass "e j")
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))

	(set! xes-ej-ej-klv
	(CrossSection
		(WordClass "e j")
		(Shape
			(WordClass "e j")
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Additional f and g sections, having rs as connector.

(define cnt-f-klrs 20)
(define cnt-g-klrs 9)
(define cnt-g-klej 8)

(define (setup-fg-extra)

	; Some f sections having "rs" as a connector.
	(Section (ctv 1 0 cnt-f-klrs)
		(Word "f")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (WordClass "r s") (ConnectorDir "+"))))

	(Section (ctv 1 0 cnt-g-klrs)
		(Word "g")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (WordClass "r s") (ConnectorDir "+"))))

	(Section (ctv 1 0 cnt-g-klej)
		(Word "g")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (WordClass "e j") (ConnectorDir "+"))))

	*unspecified*
)

(define sec-f-klej #f)
(define sec-g-klej #f)

(define xes-ej-f-klv #f)
(define xes-ej-g-klv #f)

(define (expected-fg-extra-sections)
	(set! sec-f-klej
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (WordClass "e j") (ConnectorDir "+")))))
	(set! sec-g-klej
	(Section
		(Word "g")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (WordClass "e j") (ConnectorDir "+")))))
	(set! xes-ej-f-klv
	(CrossSection
		(WordClass "e j")
		(Shape
			(Word "f")
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))
	(set! xes-ej-g-klv
	(CrossSection
		(WordClass "e j")
		(Shape
			(Word "g")
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))

)

; ---------------------------------------------------------------
(opencog-test-end)
; ---------------------------------------------------------------
; ---------------------------------------------------------------