OverviewFilesCommitsIssuesDocsReleasesPeers

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

741 lines · scm ref:
;
; connector-data.scm
; Populate the AtomSpace with assorted test data.

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

(define tvkeystr "*-TruthValueKey-*")

(define (cog-count ATOM)
	(cog-value-ref (cog-value ATOM (Predicate tvkeystr)) 2))

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

(define cnt-e-abc 13)
(define cnt-e-dgh 61)
(define cnt-e-klm 44)
(define cnt-j-abc 31)
(define cnt-j-dgh 16)

(define (setup-e-j-sections)
	(define tvkey (PredicateNode tvkeystr))
	(cog-set-value!
		(Section
			(Word "e")
			(ConnectorSeq
				(Connector (Word "a") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "c") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-e-abc))
	(cog-set-value!
		(Section
			(Word "e")
			(ConnectorSeq
				(Connector (Word "d") (ConnectorDir "-"))
				(Connector (Word "g") (ConnectorDir "-"))
				(Connector (Word "h") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-e-dgh))
	(cog-set-value!
		(Section
			(Word "e")
			(ConnectorSeq
				(Connector (Word "k") (ConnectorDir "-"))
				(Connector (Word "l") (ConnectorDir "+"))
				(Connector (Word "m") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-e-klm))

	; Similar to above.
	(cog-set-value!
		(Section
			(Word "j")
			(ConnectorSeq
				(Connector (Word "a") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "c") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-j-abc))
	(cog-set-value!
		(Section
			(Word "j")
			(ConnectorSeq
				(Connector (Word "d") (ConnectorDir "-"))
				(Connector (Word "g") (ConnectorDir "-"))
				(Connector (Word "h") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-j-dgh))
	; (Section k l m) intintionally absent.

	*unspecified*
)

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

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

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

	(set! xes-b-ej-avc
	(CrossSection
		(Word "b")
		(Shape
			WC-EJ
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "c") (ConnectorDir "+")))))
	(set! xes-k-ej-vlm
	(CrossSection
		(Word "k")
		(Shape
			WC-EJ
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (Word "m") (ConnectorDir "+")))))
	(set! xes-k-e-vlm
	(CrossSection
		(Word "k")
		(Shape
			(Word "e")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "+"))
			(Connector (Word "m") (ConnectorDir "+")))))
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Define sections on a third word, that can be merged into above.

(define cnt-f-abc 19)
(define cnt-f-dgh 36)
(define cnt-f-klm 34)

(define (setup-f-sections)
	(define tvkey (PredicateNode tvkeystr))
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "a") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "c") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-abc))
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "d") (ConnectorDir "-"))
				(Connector (Word "g") (ConnectorDir "-"))
				(Connector (Word "h") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-dgh))
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "k") (ConnectorDir "-"))
				(Connector (Word "l") (ConnectorDir "+"))
				(Connector (Word "m") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-klm))

	*unspecified*
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Additional j sections, having e as connector.

(define cnt-j-abe 21)
(define cnt-j-egh 17)

(define (setup-j-extra)
	(define tvkey (PredicateNode tvkeystr))

	; Some j sections having "e" as a connector.
	(cog-set-value!
		(Section
			(Word "j")
			(ConnectorSeq
				(Connector (Word "a") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-j-abe))
	(cog-set-value!
		(Section
			(Word "j")
			(ConnectorSeq
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "g") (ConnectorDir "-"))
				(Connector (Word "h") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-j-egh))

	*unspecified*
)

(define sec-j-abe #f)
(define sec-j-egh #f)
(define sec-ej-abv #f)
(define sec-ej-vgh #f)

(define xes-e-j-abv #f)
(define xes-e-j-vgh #f)
(define xes-ej-ej-abv #f)
(define xes-ej-ej-vgh #f)

(define (expected-j-extra-sections WC-EJ)
	(set! sec-j-abe
	(Section
		(Word "j")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "+")))))
	(set! sec-j-egh
	(Section
		(Word "j")
		(ConnectorSeq
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! sec-ej-abv
	(Section
		WC-EJ
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "+")))))
	(set! sec-ej-vgh
	(Section
		WC-EJ
		(ConnectorSeq
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

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

	(set! xes-e-j-vgh
	(CrossSection
		(Word "e")
		(Shape
			(Word "j")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

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

	(set! xes-ej-ej-vgh
	(CrossSection
		WC-EJ
		(Shape
			WC-EJ
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Additional e sections, having e as connector.

(define cnt-e-abe 11)
(define cnt-e-abj 9)

(define (setup-e-extra)
	(define tvkey (PredicateNode tvkeystr))

	; Some e sections having "e" as a connector.
	(cog-set-value!
		(Section
			(Word "e")
			(ConnectorSeq
				(Connector (Word "a") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-e-abe))

	(cog-set-value!
		(Section
			(Word "e")
			(ConnectorSeq
				(Connector (Word "a") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "j") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-e-abj))

	*unspecified*
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Define two more sections that get split indirectly.

(define cnt-a-kle 23)
(define cnt-f-kle 17)

(define (setup-indirect-sections)
	(define tvkey (PredicateNode tvkeystr))
	(cog-set-value!
		(Section
			(Word "a")
			(ConnectorSeq
				(Connector (Word "k") (ConnectorDir "-"))
				(Connector (Word "l") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-a-kle))
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "k") (ConnectorDir "-"))
				(Connector (Word "l") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-kle))
)

(define sec-a-kle #f)
(define sec-f-kle #f)
(define sec-a-klv #f)
(define sec-f-klv #f)

(define (expected-indirect-sections WC-EJ)
	(set! sec-a-kle
	(Section
		(Word "a")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "+")))))
	(set! sec-f-kle
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "+")))))
	(set! sec-a-klv
	(Section
		(Word "a")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "+")))))
	(set! sec-f-klv
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "k") (ConnectorDir "-"))
			(Connector (Word "l") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "+")))))
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Additional f sections, having e as connector.
; Just like the additional j sections above.

(define cnt-f-abe 31)
(define cnt-f-egh 25)

(define (setup-f-extra)
	(define tvkey (PredicateNode tvkeystr))

	; Some j sections having "e" as a connector.
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "a") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-abe))
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "g") (ConnectorDir "-"))
				(Connector (Word "h") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-egh))

	*unspecified*
)

(define sec-f-abe #f)
(define sec-f-egh #f)
(define sec-f-abej #f)
(define sec-f-ejgh #f)

(define xes-e-f-abv #f)
(define xes-e-f-vgh #f)
(define xes-ej-f-abv #f)
(define xes-ej-f-vgh #f)

(define xes-ejf-ejf-abv #f)
(define xes-ejf-ejf-vgh #f)

(define (expected-f-extra-sections WC-EJ)
	(set! sec-f-abe
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "+")))))
	(set! sec-f-egh
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! sec-f-abej
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "+")))))
	(set! sec-f-ejgh
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

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

	(set! xes-e-f-vgh
	(CrossSection
		(Word "e")
		(Shape
			(Word "f")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! xes-ej-f-abv
	(CrossSection
		WC-EJ
		(Shape
			(Word "f")
			(Connector (Word "a") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))

	(set! xes-ej-f-vgh
	(CrossSection
		WC-EJ
		(Shape
			(Word "f")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "g") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Even more j sections, having multiple e connectors.

(define cnt-j-ebe 11)
(define cnt-j-eeh 19)

(define (setup-j-double-e)
	(define tvkey (PredicateNode tvkeystr))

	; Some j sections having "e" as a connector.
	(cog-set-value!
		(Section
			(Word "j")
			(ConnectorSeq
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-j-ebe))
	(cog-set-value!
		(Section
			(Word "j")
			(ConnectorSeq
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "h") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-j-eeh))

	*unspecified*
)

(define sec-j-ebe #f)
(define sec-j-eeh #f)
(define sec-ej-vbv #f)
(define sec-ej-vvh #f)

(define xes-e-j-ebv #f)
(define xes-e-j-veh #f)
(define xes-ej-ej-ebv #f)
(define xes-ej-ej-veh #f)

(define (expected-j-double-e WC-EJ)
	(set! sec-j-ebe
	(Section
		(Word "j")
		(ConnectorSeq
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "+")))))
	(set! sec-j-eeh
	(Section
		(Word "j")
		(ConnectorSeq
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! sec-ej-vbv
	(Section
		WC-EJ
		(ConnectorSeq
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "+")))))
	(set! sec-ej-vvh
	(Section
		WC-EJ
		(ConnectorSeq
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

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

	(set! xes-e-j-veh
	(CrossSection
		(Word "e")
		(Shape
			(Word "j")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! xes-ej-ej-ebv
	(CrossSection
		WC-EJ
		(Shape
			WC-EJ
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))

	(set! xes-ej-ej-veh
	(CrossSection
		WC-EJ
		(Shape
			WC-EJ
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))
)

; ---------------------------------------------------------------
; ---------------------------------------------------------------
; ---------------------------------------------------------------
; Even more f sections, having multiple e connectors.

(define cnt-f-ebe 34)
(define cnt-f-eeh 39)

(define (setup-f-double-e)
	(define tvkey (PredicateNode tvkeystr))

	; Some f sections having "e" as a connector.
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "b") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-ebe))
	(cog-set-value!
		(Section
			(Word "f")
			(ConnectorSeq
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "e") (ConnectorDir "-"))
				(Connector (Word "h") (ConnectorDir "+"))))
		tvkey
		(FloatValue 1 0 cnt-f-eeh))

	*unspecified*
)

(define sec-f-ebe #f)
(define sec-f-eeh #f)
(define sec-f-ejbej #f)
(define sec-f-ejejh #f)

(define xes-e-f-ebv #f)
(define xes-e-f-veh #f)
(define xes-ej-f-ejbv #f)
(define xes-ej-f-vejh #f)

(define xes-ejf-ejf-ejbv #f)
(define xes-ejf-ejf-vejh #f)

(define (expected-f-double-e WC-EJ)
	(set! sec-f-ebe
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "+")))))
	(set! sec-f-eeh
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! sec-f-ejbej
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "+")))))
	(set! sec-f-ejejh
	(Section
		(Word "f")
		(ConnectorSeq
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! xes-e-f-ebv
	(CrossSection
		(Word "e")
		(Shape
			(Word "f")
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))

	(set! xes-e-f-veh
	(CrossSection
		(Word "e")
		(Shape
			(Word "f")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector (Word "e") (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))

	(set! xes-ej-f-ejbv
	(CrossSection
		WC-EJ
		(Shape
			(Word "f")
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "b") (ConnectorDir "-"))
			(Connector (VariableNode "$connector-word") (ConnectorDir "+")))))

	(set! xes-ej-f-vejh
	(CrossSection
		WC-EJ
		(Shape
			(Word "f")
			(Connector (VariableNode "$connector-word") (ConnectorDir "-"))
			(Connector WC-EJ (ConnectorDir "-"))
			(Connector (Word "h") (ConnectorDir "+")))))
)

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