OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-generate / examples / dict-mixed.scm

114 lines · scm ref:
;
; dict-mixed.scm
;
; This demo shows a more complex grammar, which generates a graph
; containing trees and multiple cycles. In this case, both cycles
; are triangles, sharing a common edge (the edge between the wall
; and the head-verb.)
;
;
;        +---------------------------Xp--------------+
;        +--------------------WV---------------+     |
;        |            +------------S-----------+     |
;        |            +------MXs------+        |     |
;        |            |  +------Xd----+        |     |
;        +-----W------+  | +---Ds-----+        |     |
;        |      +--D--+  | |    +--A--+-Xc-+   +--Xf-+
;        |      |     |  | |    |     |    |   |     |
;    LEFT-WALL the   dog , a black   lab   , barked  .
;
; The other sentences swap "dog/cat" "black/white", "barked/purred".
;
(use-modules (srfi srfi-1))
(use-modules (opencog))

(define dict-mixed (Concept "dict-mixed"))

(for-each
	(lambda (sect) (Member sect dict-mixed))
	(list

		(Section
			(Concept "LEFT-WALL")
			(ConnectorSeq
				(Connector (Concept "Xp") (ConnectorDir "+"))
				(Connector (Concept "WV") (ConnectorDir "+"))
				(Connector (Concept "W") (ConnectorDir "+"))))

		(Section
			(Concept "the")
			(ConnectorSeq
				(Connector (Concept "D") (ConnectorDir "+"))))

		(Section
			(Concept "a")
			(ConnectorSeq
				(Connector (Concept "Ds") (ConnectorDir "+"))))

		(Section
			(Concept "dog")
			(ConnectorSeq
				(Connector (Concept "W") (ConnectorDir "-"))
				(Connector (Concept "D") (ConnectorDir "-"))
				(Connector (Concept "MXs") (ConnectorDir "+"))
				(Connector (Concept "S") (ConnectorDir "+"))))

		(Section
			(Concept "cat")
			(ConnectorSeq
				(Connector (Concept "W") (ConnectorDir "-"))
				(Connector (Concept "D") (ConnectorDir "-"))
				(Connector (Concept "MXs") (ConnectorDir "+"))
				(Connector (Concept "S") (ConnectorDir "+"))))

		(Section
			(Concept ",")
			(ConnectorSeq
				(Connector (Concept "Xd") (ConnectorDir "+"))))

		(Section
			(Concept ",")
			(ConnectorSeq
				(Connector (Concept "Xc") (ConnectorDir "-"))))

		(Section
			(Concept ".")
			(ConnectorSeq
				(Connector (Concept "Xp") (ConnectorDir "-"))
				(Connector (Concept "Xf") (ConnectorDir "-"))))

		(Section
			(Concept "black")
			(ConnectorSeq
				(Connector (Concept "A") (ConnectorDir "+"))))

		(Section
			(Concept "white")
			(ConnectorSeq
				(Connector (Concept "A") (ConnectorDir "+"))))

		(Section
			(Concept "lab")
			(ConnectorSeq
				(Connector (Concept "A") (ConnectorDir "-"))
				(Connector (Concept "Ds") (ConnectorDir "-"))
				(Connector (Concept "Xd") (ConnectorDir "-"))
				(Connector (Concept "MXs") (ConnectorDir "-"))
				(Connector (Concept "Xc") (ConnectorDir "+"))))

		(Section
			(Concept "barked")
			(ConnectorSeq
				(Connector (Concept "WV") (ConnectorDir "-"))
				(Connector (Concept "S") (ConnectorDir "-"))
				(Connector (Concept "Xf") (ConnectorDir "+"))))

		(Section
			(Concept "purred")
			(ConnectorSeq
				(Connector (Concept "WV") (ConnectorDir "-"))
				(Connector (Concept "S") (ConnectorDir "-"))
				(Connector (Concept "Xf") (ConnectorDir "+"))))

)) ; End of the for-each loop.