procgen  Check-in [eda537ae1e]

Overview
Comment:mroe udptaes
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: eda537ae1ec4a7c55be9b71b28be4d0d7777649d61497dbabea563d0622100ca
User & Date: lexi on 2019-03-26 03:18:28
Other Links: manifest | tags
Context
2019-03-28
05:14
add interlace.scm, update some shit check-in: 275f19cd9e user: lexi tags: trunk
2019-03-26
03:18
mroe udptaes check-in: eda537ae1e user: lexi tags: trunk
2019-03-25
23:00
re-add library code check-in: ee227e70ef user: lexi tags: trunk
Changes

Modified botsoc.scm from [ace554208b] to [670bc1717b].

     1      1   (include "lib/lisp-macro.scm")
     2      2   (include "lib/bot.scm")
            3  +(import (chicken process-context))
     3      4   
     4      5   (rule (base-ideology)
     5      6   	("liberalism")		("socialism")		("capitalism")
     6      7   	("anarchism")		("marxism")		("marxism-leninism")
     7      8   	("nazism")			("feminism")		("stalinism")
     8      9   	("democracy")		("stirnerism")		("harm reduction")
     9     10   	("egoism")			("objectivism")	("monarchism")
................................................................................
    10     11   	("tribadism")		("eugenics")		("fascism")
    11     12   	("juche")			("nationalism")	("human extinctionism")
    12     13   	("demonology")	("linguistics")		("voluntary human extinction")
    13     14   	("onanism")		("anthropology") ("authoritarianism")
    14     15   	("totalitarianism")	("social justice")	("identity politics")
    15     16   	("idpol")				("terrorism")		("islamism")
    16     17   	("hedonism")		("libertinism")		("computer science")
           18  +	("transhumanism")	("posthumanism")	("humanism")
           19  +	("humanitarianism")
    17     20   	("libertarianism");	("static typing")	("dynamic typing")
    18     21   	("neoliberalism"))
    19     22   (rule (ideology-prefix)
    20     23   	("neo-")		("social ")	("democratic ")
    21     24   	("paleo-")	("retro-")	("anarcho-")
    22     25   	("femino-")	("neo")		("anti-")
    23     26   	("sado-")	("eroto-")	("strangulo-")
................................................................................
    45     48   	("wealth")		("eugenics")		("bigotry")
    46     49   	("genocide")	("bitcoin")			("ethnic cleansing")
    47     50   	("vaccination")	("autism")			("the alt-right")
    48     51   	("authoritarianism") ("freedom of speech")
    49     52   	("tooth decay")	("neurodivergence")
    50     53   	("abortion")	("healthcare")	("the war")
    51     54   	("islamophobia") ("sexting") ; ("static typing") ("dynamic typing") 
    52         -	("heterophobia") ("heterosexuality"))
           55  +	("apotheosis") ("theodicy") ("the problem of evil")
           56  +	("heterophobia") ("heterosexuality") ("Crooked Hillary"))
    53     57   (rule (adjective)
    54     58   	("racist")		("homophobic")		("misogynist")
    55     59   	("bigoted")		("anti-" (thing))	("evil")
    56     60   	("insane")		("impossible")		("contradictory")
    57     61   	("illogical")	("revolutionary")	("self-contradictory")
    58     62   	("white")		("communist")		("socialist")
    59     63   	("marxist")		("stalinist")		("lesbian")
................................................................................
    61     65   	("religious")	("bourgeois")		("proletarian")
    62     66   	("classist")	("monarchist")		("fascist")
    63     67   	("postfurry")	("eugenicist")		("alt-right")
    64     68   	("furry")		("problematic")		("totalitarian")
    65     69   	("unlikely")	("compromised")		("authoritarian")
    66     70   	("useless")		("useful")			("neurodivergent")
    67     71   	("desirable")	("undesirable")		("dialectic")
    68         -	("undialectical")("undefined")		("imperialist")
           72  +	("undefined")	("undialectical")	("imperialist")
    69     73   	("good")		("bad")				("colonialist")
    70     74   	("acausal")		("black")			;("statically-typed")
    71     75   	("emergent")	("libertarian")		("unreconstructed")
    72     76   	("teenage")		("Lacanian")		("intersectional")
    73         -	("horny")		("thirsty"))
           77  +	("horny")		("thirsty")			("necessary")
           78  +	("forbidden")	("electronic"))
           79  +
           80  +(rule (action)
           81  +	("live") ("die") ("breathe") ("hope") ("speak freely")
           82  +	("survive" (problem)) ("kill " (group)) ("destroy " (thingss))
           83  +	("use " (thingss)) ("steal " (things)) ("murder " (group))
           84  +	("create " (thingss)) ("build " (thingss)) ("make " (things))
           85  +	("labor") ("work") ("exploit " (group)) ("produce " (things))
           86  +	("undermine " (thing)) ("overthrow " (group)) ("be free of "(thingss))
           87  +	("have " (one-of "money" "bodies" "homes" "food" (thingss)))
           88  +	("exploit " (group) " for cheap labor") ("perform sorcery")
           89  +	("perform augury") ("see the future") ("prophesy")
           90  +	("enchant " (things)) ("perform wizardry") ("engage in witchcraft")
           91  +	("have sex") ("fuck" (: ((group)))) ("own " (thingss))
           92  +	("declare war") ("deprive " (group) " of " (necessity)))
    74     93   
    75     94   (rule (trait)
    76     95   	("power") ("influence") ("wealth") ("solidarity")
    77     96   	("hope") ("conviction") ("autonomy") ("freedom")
    78     97   	("liberty") ("faith") ("humanity") ("sapience"))
    79     98   
    80     99   (rule (necessity)
    81    100   	("sex") ("water") ("food") ("money") 
    82    101   	("wealth") ("income") ("welfare") ("tea")
    83    102   	("therapy") ("pain relief") ("medical care")
    84    103   	("medicine") ("reproduction") ("hope") ("faith")
    85         -	("love"))
          104  +	("love") ("pain") ("love") ("oxygen") ("nutrition"))
    86    105   
    87    106   (rule (thing)
    88    107   	((problem)) ((necessity))	("Russia")	("Mars")
    89    108   	("activism")
    90    109   	((thing) " activism") ("anti-" (thing) " activism")
    91    110   	((adjective) " activism") ("bitcoin") ("humanity")
    92    111   	("vaccination") ("autism") ("medical care")
................................................................................
    93    112   	((adjective) " power") ((adjective) " policy")
    94    113   	((adjective) " politics")
    95    114   	("transit") ("public transit") ("public transportation")
    96    115   	("meth") ("heroin") ("dialectics") ("the dialectic")
    97    116   	("the Discourse") ("medical care") ("psychiatry")
    98    117   	("influenza") ("alien life") ("mind control")
    99    118   	("terrorism") ("identity") ("healthcare")
   100         -	 ("literature") ("grass") ("catnip")
          119  +	 ("literature") ("grass") ("catnip") ("virginity")
   101    120   	("television") ("romance") ("finance") 
   102         -	("opium") ("law") ("dating") ("online dating") ("friendship"))
          121  +	("opium") ("law") ("dating") ("online dating") ("friendship")
          122  +	("the Resistance"))
   103    123   
   104    124   (rule (things)
   105    125   	("pandas")	("lasers")	("toasters")
   106    126   	("kulaks")	("opiates") ("painkillers")
   107    127   	("teacups")	("umbrellas") ((thing) " rights")
   108         -	((adjective) " rights")
   109         -	((thing) " activists") ("anti-" (adjective) " activists")
   110         -	((ideology) " activists") ((adjective) " activists")
          128  +	((adjective) " rights") (group)
   111    129   	("humans") ("vaccines")
   112    130   	("doctors") ("drugs") ("hospitals") ("UFOs") ("aliens")
   113    131   	("flowers") ("pumpkins") ("guns") ("babies")
   114         -	("friends")
          132  +	("friends") ("bitcoins")
   115    133   	)
   116    134   (rule (thingss)
   117    135   	((thing)) ((things)))
   118    136   	
   119    137   (rule (group)
   120         -	("gays")			("whites")			("African-Americans")	
          138  +	("gays")		("whites")				("African-Americans")	
   121    139   	("the poor")	("the rich")			("Jewish people")
   122         -	("natives")		("otherkin")		("psychics")
   123         -	("furries")		("immigrants")	("trans people")
   124         -	("men")			("women")			("the bourgeoisie")
   125         -	("boys")			("girls")				("the proletariat")
   126         -	("activists")		("stirnerites")		("proletarians")
          140  +	("natives")		("otherkin")			("psychics")
          141  +	("furries")		("immigrants")			("trans people")
          142  +	("men")			("women")				("the bourgeoisie")
          143  +	("boys")		("girls")				("the proletariat")
          144  +	("activists")	("stirnerites")			("proletarians")
   127    145   	("extremists")	((thing) " extremists") ((thing) " activists")
   128         -	("addicts")		("junkies")			("tweakers")
   129         -	("potheads")	("acid heads")		("meth addicts")
   130         -	("doctors")		("gamers")			("marijuana users")
   131         -	("dentists")		("fascists")			("marijuana addicts")
   132         -	("nazis")			("wizards")			("heroin addicts")
   133         -	("hackers")		("LSD addicts")	("disabled people")
   134         -	("criminals")	("teenagers")		("the differently-abled")
   135         -	("teens")		("cissexuals") ("the working class"))
          146  +	("addicts")		("junkies")				("tweakers")
          147  +	("potheads")	("acid heads")			("meth addicts")
          148  +	("doctors")		("gamers")				("marijuana users")
          149  +	("dentists")	("fascists")			("marijuana addicts")
          150  +	("nazis")		("wizards")				("heroin addicts")
          151  +	("hackers")		("LSD addicts")			("disabled people")
          152  +	("criminals")	("teenagers")			("the differently-abled")
          153  +	("teens")		("cissexuals")			("the working class")
          154  +	("lizards")		("bureaucrats")			("politicians")
          155  +	("catholics")	("methodists")			("mormons")
          156  +	("kulaks")		("slaves")				("human trafficking vitims")
          157  +	("victims")		("crime victims")		("victims of " (problem))
          158  +	("losers")		("thieves")				("queer people")
          159  +	("queers")		("senators")			("presidents")
          160  +	("queens")		("kings")				("emperors")
          161  +	("aliens")
          162  +	((thing) " activists") ("anti-" (adjective) " activists")
          163  +	((ideology) " activists") ((adjective) " activists"))
   136    164   	
   137    165   ; utility fns
   138    166   (rule (adjfor adj con g)
   139    167   	(adj)
   140    168   	(adj con g))
   141    169   (rule (modal)
   142         -	("will") ("could") ("might") ("will likely") ("can")
   143         -	("surely will")	("undoubtedly will") ("may"))
          170  +	("will") ("could") ("might") ("will likely") ("can") ("must")
          171  +	("surely will")	("undoubtedly will") ("may") ("should"))
   144    172   	
   145    173   (rule (modal-not)
   146    174   	("will not") ("could not") ("might not") ("will likely not") ("cannot")
   147         -	("surely will not")	("undoubtedly will not") ("may not"))
          175  +	("surely will not")	("undoubtedly will not") ("may not") ("shouldn't")
          176  +	("must not") ("mustn't"))
   148    177   
   149    178   (rule (modal-rnd) ((modal)) ((modal-not)))
   150    179   
   151    180   (rule (cause-provoke)
   152    181   	("cause")		("lead to")	("provoke the development of")	
   153    182   	("provoke")	("promote")	("create"))
   154    183   (rule (causes-provokes)
................................................................................
   184    213   		(i " seeks to eradicate " (problem))
   185    214   
   186    215   		(i " is the source of " (problem))
   187    216   		(i " is the cause of " (problem))
   188    217   		(i " is the the reason for " (problem))
   189    218   		(i " is the the reason " (group) " suffer from " (problem))
   190    219   
   191         -		(i " excludes " (group))
   192    220   		((cause (group) i) " be excluded from " (thing))
   193         -		(i " dehumanizes " (group))
   194         -		(i " alienates " (group))
   195         -		(i " marginalizes " (group))
   196         -		
          221  +		(i " " (one-of "dehumanizes"
          222  +					   "alienates"
          223  +					   "marginalizes"
          224  +					   "pathologizing"
          225  +					   "ignores"
          226  +					   "harms"
          227  +					   "disenfranchises"
          228  +					   "excludes"
          229  +					   "perpetuates the alienation of"
          230  +					   "perpetuates the marginalization of"
          231  +					   "perpetuates the dehumanizationn of") " " (group))
          232  +
   197    233   		(i " pathologizes " (problem))
   198    234   		(i " pathologizes " (thingss))
   199    235   		(i " " (modal) " deny " (group) " access to " (thingss))
   200    236   	
   201         -		((group) " are " (adjective))
   202         -		((group) " are not " (adjective))
          237  +		((group) " are " (? "not ") (? "actually ") (@ (adjective)
          238  +													   (group)))
   203    239   		
   204    240   		((thing) " " (causes-provokes) " " (thingss))
   205    241   		((things) " " (cause-provoke) " " (thingss))
   206    242   		((thingss) " " (modal) " cause " (problem))
   207    243   		(i " " (causes-provokes) " " (problem))
   208    244   		(i " " (modal) " cause " (problem))
   209    245   		
................................................................................
   218    254   	
   219    255   		((problem) " " (modal-rnd) " be solved in our lifetimes")
   220    256   		
   221    257   		(i " fails to address " (problem))
   222    258   		(i " does not address " (problem))
   223    259   		(i " disregards " (problem))
   224    260   		(i " is not a solution for " (problem))
   225         -		(i " does not solve " (problem))
   226         -		(i " cannot solve " (problem))
   227         -		("basically, " (predicate-or-claim ii))
          261  +		(i " " (one-of "does not" "cannot") " "
          262  +		   			(one-of "solve"
          263  +							"deal with "
          264  +							"cope with "
          265  +							"handle "
          266  +							"offer a solution for ")
          267  +					(one-of "" "the issues posed by " "the problem of ")
          268  +					(problem))
          269  +		("basically, " (predicate-or-claim i))
   228    270   			
   229    271   	)
   230    272   (rule (predicate i)
   231         -	(i " was developed after " (ideology))
   232         -	(i " was developed before " (ideology))
   233         -	(i " was developed before " (problem) " was recognized")
   234         -	(i " was developed before " (problem) " was recognized as a problem")
   235         -	(i " was developed before the issue of " (problem) " came into focus")
   236         -	(i " developed before general awareness of " (problem))
   237         -	(i " was built on " (ideology))
   238         -	(i " was inspired by " (ideology))
   239         -	(i " was influenced by " (ideology))
   240         -	(i " is an ideological descendent of " (ideology))
   241         -	(i " is an ideological descendent of " (ideology) " and " (ideology))
   242         -	(i (one-of
   243         -		 " was developed by " " was designed by "
   244         -		 " is in the class interests of "
   245         -		 " only addresses the needs of "
   246         -		 " was developed to address the needs of "
   247         -		 " centers " " uplifts " " only liberates "
   248         -		 " centers the needs of " " only cares about "
   249         -		 " centers the struggles of "
   250         -		 " centers the struggle of ")
   251         -	   (group) (one-of "" (string-append ", not " (group))))
   252         -			 
          273  +	(i " was "  (one-of "created"
          274  +						"developed"
          275  +						"designed") " "
          276  +	   				(@ ((one-of "after"
          277  +							"before"
          278  +							"prior to"
          279  +							"at the same time as"
          280  +							"without knowledge of"
          281  +							"without awareness of"
          282  +							"concurrently with"
          283  +							"as a consequence of"
          284  +							"due to"
          285  +							"due to the failure of"
          286  +							"in response to") " " (ideology))
          287  +					   ("before " (one-of ""
          288  +										  "the issue of "
          289  +										  "the matter of ") (problem) 
          290  +											(one-of " was recognized"
          291  +													" came into focus"
          292  +													" was well-understood")
          293  +							(one-of "" " as a problem" " as an issue"
          294  +									" as a factor" " as a threat"))
          295  +					   ("prior to general awareness of "
          296  +						(@ ((problem)) ((things))))))
          297  +	(i " was " (one-of "built on"
          298  +					   "inspired by"
          299  +					   "influenced by") " " (ideology))
          300  +	(i " is an ideological descendent of " (ideology) (: (" and " (ideology))))
          301  +	(i (@
          302  +		 (" was " (one-of "developed" "designed" "created" )
          303  +		  	(@ (" by ")
          304  +			   (" for ")
          305  +			   ( (: (" by " (group)))
          306  +				(one-of " to address the needs of "
          307  +						" in the class interests of "))))
          308  +		 (" only " (one-of "centers" "uplifts" "liberates"
          309  +						   "cares about" "addresses the needs of"))
          310  +		 ((one-of " only" "") (one-of " centers " " cares about ")
          311  +							  (? "the " (one-of "needs"
          312  +												"struggles"
          313  +												"voices"
          314  +												"experiences"
          315  +												"suffering"
          316  +												"struggle") " of "))
          317  +		 (" is in the class interests of "))
          318  +	   (group) (? ", not " (group)))
          319  +
   253    320   	(i (one-of
   254    321   		 " disregards "
   255    322   		 " disregards the needs of "
   256    323   		 " cannot address the struggles of "
   257    324   		 " does not liberate " " disrespects "
   258    325   		 " disrespects the identity of "
   259    326   		 " disrespects the culture of "
................................................................................
   260    327   		 " disrespects the history of "
   261    328   		 " lacks consideration for "
   262    329   		 " does not center " " fails to center "
   263    330   		 " does not center the needs of"
   264    331   		 " fails to center the needs of ")
   265    332   	   (group))
   266    333   	("the main contradiction of " i " is " (problem))
   267         -	
          334  +
   268    335   	((group) " believe that " (pc claim i))
   269         -	((group) " have an inherent right to "
   270         -			 (one-of "be a part of " " ")
   271         -			 (one-of (thing) (problem))))
   272         -	
   273         -(rule (claim i)
   274         -	((problem) " " (modal) " inevitably arise")
   275         -	((problem) " " (modal) " still exist")
   276         -	((problem) " " (modal) " " (cause-provoke) " " (problem))
   277         -	((problem) " " (modal) " " (cause-provoke) " the defeat of " i)
   278         -	((problem) " cannot be distinguished from " i)
   279         -	(i " and " (ideology) " cannot be distinguished")
   280         -	(i " and " (ideology) " will produce the same result")
          336  +	((group) " have an inherent right to " (@ ((? "be a part of ")
          337  +											   (one-of (thing) (problem)))
          338  +											  (action)))
   281    339   
   282         -	((group) " " (modal) " be exploited")
   283         -	((group) " " (modal) " still be exploited")
   284         -	((group) " " (modal) " be exploited under " i)
   285         -	((group) " " (modal) " still be exploited under " i)
   286         -	((group) " " (modal) " face " (problem))
          340  +	((group) " " (one-of "should" "must" "have to") " be "
          341  +			 (one-of "able" "allowed" "permitted") " to " (action))
   287    342   	
   288         -	(i " " (modal) " kill " (group))
   289         -	
   290         -	((thing) " is " (adjfor (adjective) " for " (group)))
   291         -	((things) " are " (adjfor (adjective) " for " (group)))
   292         -	((thing) " is actually " (adjfor (adjective) " for " (group)))
   293         -	((things) " are actually " (adjfor (adjective) " for " (group)))
   294         -	
   295         -	((problem) " " (modal) " benefit " (group))
   296         -	((problem) " " (modal) " harm " (group))
   297         -	((problem) " " (modal) " destroy " (group))
   298         -	((problem) " " (modal) " incite " (group) " against " (group))
   299         -	((problem) " " (modal) " incite " (group) " against " (problem))
   300         -	((problem) " is unfair to " (group))
   301         -	
   302         -	((problem) " is likely to result")
   303         -	((thing) " is likely to result")
   304         -	((things) " are likely to result")
   305         -	((thing) " is likely to be involved")
   306         -	((things) " are likely to involved")
          343  +	((group) " " (modal-rnd) "  "
          344  +			 (one-of "be destroyed" "be eradicated" "be wiped out" "be obliterated"))
          345  +	)
          346  +
          347  +(rule (claim i)
          348  +	  ((problem) " " (modal) (@ (" inevitably arise")
          349  +								(" still exist")
          350  +								(" " (cause-provoke) " " (problem))
          351  +								(" " (cause-provoke) " the defeat of " i)))
          352  +	  ((problem) " cannot be distinguished from " i)
          353  +	  (i " and " (ideology) " cannot be distinguished")
          354  +	  (i " and " (ideology) " will produce the same result")
          355  +
          356  +	  ((group) " " (modal) (@ (" be exploited")
          357  +							  (" still be exploited")
          358  +							  (" be exploited under " i)
          359  +							  (" still be exploited under " i)
          360  +							  (" face " (problem))))
          361  +
          362  +	  ((group) " " (modal-rnd) " " (action))
          363  +
          364  +	  (i " " (modal) " kill " (group))
          365  +
          366  +	  ((thing) " is " (adjfor (adjective) " for " (group)))
          367  +	  ((things) " are " (adjfor (adjective) " for " (group)))
          368  +	  ((thing) " is actually " (adjfor (adjective) " for " (group)))
          369  +	  ((things) " are actually " (adjfor (adjective) " for " (group)))
          370  +
          371  +	  ((problem) " " (modal) " benefit " (group))
          372  +	  ((problem) " " (modal) " harm " (group))
          373  +	  ((problem) " " (modal) " destroy " (group))
          374  +	  ((problem) " " (modal) " incite " (group) " against " (group))
          375  +	  ((problem) " " (modal) " incite " (group) " against " (problem))
          376  +	  ((problem) " is unfair to " (group))
          377  +
          378  +	  ((problem) " is likely to result")
          379  +	  ((thing) " is likely to result")
          380  +	  ((things) " are likely to result")
          381  +	  ((thing) " is likely to be involved")
          382  +	  ((things) " are likely to involved")
          383  +
          384  +	  ((problem) " is to blame")
          385  +	  ((thing) " is to blame")
          386  +	  ((things) " are to blame")
          387  +
          388  +	  ((thing) " is harmful to " (group))
          389  +	  ((things) " are harmful to " (group))
          390  +	  ((thingss) " " (modal) " " (cause-provoke) " the oppression of " (group))
          391  +	  ((cause (group) i) " face " (problem))
          392  +	  ((cause (group) i) " suffer " (problem))
          393  +	  ((cause (group) i) " suffer from " (problem))
          394  +	  ((cause (group) i) " experience " (problem))
          395  +	  ((cause (group) i) " no longer experience " (problem))
   307    396   
   308         -	((problem) " is to blame")
   309         -	((thing) " is to blame")
   310         -	((things) " are to blame")
   311         -	
   312         -	((thing) " is harmful to " (group))
   313         -	((things) " are harmful to " (group))
   314         -	((thingss) " " (modal) " " (cause-provoke) " the oppression of " (group))
   315         -	((cause (group) i) " face " (problem))
   316         -	((cause (group) i) " suffer " (problem))
   317         -	((cause (group) i) " suffer from " (problem))
   318         -	((cause (group) i) " experience " (problem))
   319         -	((cause (group) i) " no longer experience " (problem))
   320         -	
   321         -	((cause (group) i) " suffer")
   322         -	((cause (group) i) " be marginalized")
   323         -	((cause (group) i) " become marginalized")
   324         -	((cause (group) i) " become exploited")
   325         -	((cause (group) i) " become addicted to " (thingss))
   326         -	((cause (group) i) " lose their " (trait))
   327         -	((cause (group) i) " lose their " (things))
   328         -	((cause (group) i) " " (@
   329         -		("no longer " (@ ("have ")
   330         -						 ("be able to " (@ ("get ")
   331         -										   ("get access to ")
   332         -										   ("have ")))))
   333         -		("not have "))
   334         -		 (necessity) 
   335         -		(one-of " in their lives" " anymore" " in their lives anymore" ""))
   336         -	((cause (group) i) " lose access to " (necessity))
   337         -	)
          397  +	  ((cause (group) i) " suffer")
          398  +	  ((cause (group) i) " be marginalized")
          399  +	  ((cause (group) i) " become marginalized")
          400  +	  ((cause (group) i) " become exploited")
          401  +	  ((cause (group) i) " become addicted to " (thingss))
          402  +	  ((cause (group) i) " lose their " (@ (trait) (thingss)
          403  +						   ((one-of "ability" "right") " to " (action))))
          404  +	  ((cause (group) i) " " (@
          405  +							   ("no longer " (@ ("have ")
          406  +												("be able to " (@ ("get ")
          407  +																  ("get access to ")
          408  +																  ("have ")))))
          409  +							   ("not have "))
          410  +						 (necessity) 
          411  +						 (one-of " in their lives" " anymore" " in their lives anymore" ""))
          412  +	  ((cause (group) i) " lose access to " (necessity))
          413  +	  )
   338    414   
   339    415   (rule (pc p i) ((p i)) ((predicate-or-claim (one-of "it" i))))
   340    416   (rule (statement i)
   341         -	((pc predicate i))
   342         -	((pc claim i))
   343         -	("i think " (pc claim i))
   344         -	("it is my considered opinion that " (pc claim i))
   345         -	("i think we all know that " (pc claim i))
   346         -	("nobody would deny that " (pc claim i))
   347         -	((pc predicate i) ", therefore " (pc claim i))
   348         -	((pc claim i) " because " (predicate i))
   349         -	("if " (pc predicate i) ", " (pc claim i))
   350         -	("if " (pc predicate i) ", then " (pc claim i))
   351         -	("because " (pc predicate i) ", " (pc claim i))
   352         -	("since " (pc predicate i) ", " (pc claim i))
   353         -	("as a result of " (problem) ", " (pc claim i))
   354         -	("due to " (problem) ", " (pc claim i))
   355         -	("despite what " (group) " think, " (pc claim i))
   356         -	("despite what " (group) " think about " (problem) ", " (pc claim i))
   357         -	("while " (group) " think " (pc claim i) ", the reality is that " (pc claim i))
   358         -	)
          417  +	  ((pc predicate i))
          418  +	  ((pc claim i))
          419  +	  ("i think " (pc claim i))
          420  +	  ("i strongly believe that " (pc claim i))
          421  +	  ("it is my considered opinion that " (pc claim i))
          422  +	  ("i think we all know that " (pc claim i))
          423  +	  ("nobody would deny that " (pc claim i))
          424  +	  ((pc predicate i) ", therefore " (pc claim i))
          425  +	  ((pc claim i) " because " (predicate i))
          426  +	  ("if " (pc predicate i) ", " (pc claim i))
          427  +	  ("if " (pc predicate i) ", then " (pc claim i))
          428  +	  ("because " (pc predicate i) ", " (pc claim i))
          429  +	  ("since " (pc predicate i) ", " (pc claim i))
          430  +	  ("as a result of " (problem) ", " (pc claim i))
          431  +	  ("due to " (problem) ", " (pc claim i))
          432  +	  ("despite what " (group) " think, " (pc claim i))
          433  +	  ("despite what " (group) " think about " (problem) ", " (pc claim i))
          434  +	  ("while " (group) " think " (pc claim i) ", the reality is that " (pc claim i))
          435  +	  )
   359    436   
   360    437   (rule (punct)
   361    438   	  (".")		("…")		(" —")		(",")
   362    439   	  (",")		("...")		(" -")		(" --")
   363    440   	  ("?")		("!")		("!?")		(";"))
   364    441   
   365    442   (rule (end-punct)
................................................................................
   371    448   
   372    449   (rule (checkmate-atheists i)
   373    450   	  (i (punct) " checkmate, " (atheists) (end-punct))
   374    451   	  (i (punct) " checkmate " (atheists) (end-punct))
   375    452   	  (i (punct) " checkmate" (punct) " " (atheists) (end-punct))
   376    453   	  (i (punct) " #checkmate" (atheists))
   377    454   	  (i (punct) " #CheckmateAtheists")
   378         -	  (i (punct) " #CheckmateAthiests"))
          455  +	  (i (punct) " #CheckmateAthiests")
          456  +	  (i (punct) " #ThanksObama"))
   379    457   
   380    458   (define (checkmate-athiests i)
   381         -	(if (eqv? (pseudo-random-integer 9) 0)
   382         -		(checkmate-atheists i) ; else
   383         -		i))
          459  +  (if (eqv? (pseudo-random-integer 9) 0) ;then
          460  +	  (checkmate-atheists i)
          461  +  ; else
          462  +	  i))
   384    463   
   385         -(print (checkmate-athiests (statement (ideology))))
          464  +(let* ([args (command-line-arguments)]
          465  +	   [argc (length args)])
          466  +  (if (= argc 1) ;then
          467  +	  (print (statement (car args)))
          468  +  ;else
          469  +	  (print (checkmate-athiests (statement (ideology))))))

Modified lib/bot.scm from [517500dd79] to [26ba00c622].

    45     45   	; generates a function that picks and applies one of the
    46     46   	; patterns passed to it. inner patterns can be expanded
    47     47   	; with the inner macro (@)
    48     48   	(define-macro (rule . body)
    49     49   				  (let ([decl (car body)]
    50     50   						[patterns (cdr body)])
    51     51   					`(define ,decl
    52         -					   (define-macro (@ . tree) (@rewrite-patterns tree))
           52  +					   (define-macro (@ . tree) (@rewrite-patterns tree)) ;choice point
           53  +					   (define-macro (: . tree) (@rewrite-patterns (cons (list "") tree))) ;optional choice
           54  +					   (define-macro (? . tree) (@rewrite-patterns (cons (list "") (list tree)))) ;optional - TODO: rewrite
    53     55   					   ,(@rewrite-patterns patterns))))
    54         -
           56  +	; generate simple word-banks
           57  +	(define-macro (bank . body)
           58  +				  (let ([decl (car body)]
           59  +						[patterns (cdr body)])
           60  +					`(define (,decl)
           61  +							 (one-of ,@patterns))))
    55     62   	(define (pick ar)
    56     63   		(vector-ref ar (pseudo-random-integer (vector-length ar))))