OSDN Git Service

エッジの同期を追加。まだ不完全。
[chnosproject/AI004.git] / aiboot.js
1 function AI_Bootstrap(env){
2         var append = function(t){ env.memory.appendMemoryTag(t); t.isBootstrap = true;};
3         var w = function(str, uuid){ return new AI_WordTag(str, uuid); };
4         var p = function(pattern, uuid, func){ return new AI_PatternTag(pattern, uuid, func); };
5         var m = function(uuid, description){ return new AI_MeaningTag(uuid, description); };
6         var wid = function(str){ return env.memory.getUUIDFromWord(str); };
7         var t;
8         
9         //
10         //文字列タグ
11         //
12         append(w("。", "b48267fb-f867-491c-a562-e5e24de389c1"));
13         append(w("は", "b486d60c-9272-473b-af69-da028aebc635"));
14         append(w("単語", "8cdaa0d7-a48e-48a1-bc79-9ae5308ea096"));
15         append(w("です", "a1f3dbae-baf3-4423-86d3-d06debe33ef2"));
16         append(w("記憶", "2fbdbea7-c25d-d38e-8418-99f1be50eb91"));
17         append(w("を", "516fcf20-589d-421c-08b8-d9666f2d8c01"));
18         append(w("保存", "be1f565e-7940-1e44-1c5b-752a8b72861d"));
19         append(w("する", "2de2bbc0-0892-09b2-488d-96d6dfc841c6"));
20         
21         //
22         //意味タグ
23         //
24         append(m(env.UUID_Meaning_UndefinedString, "未定義文字列"));
25         append(m(env.UUID_Meaning_UndefinedStrings, "未定義文字列を含む複数の文字列"));
26         
27         //
28         //パターンタグ
29         //
30         
31         //単語教示
32         /*
33         append(p([
34                         env.UUID_Meaning_UndefinedString,
35                         wid("は"),
36                         wid("単語"),
37                         wid("です"),
38                         wid("。"),
39                 ], "72d5f5b2-7943-4ea0-8a91-b2c84ed856f6", 
40                 function(env, separated, UUIDList){
41                         if(UUIDList[0] == env.UUID_Meaning_UndefinedString){
42                                 env.message("「" + separated[0] + "」は単語なんですね!\n");
43                                 env.memory.appendMemoryTag(new AI_WordTag(separated[0]));
44                                 env.message(env.memory.wordList.length + "個目の単語を登録しました!\n");
45                         } else{
46                                 env.message("「" + separated[0] + "」が単語なのは知ってますよ…。\n");
47                         }
48                 }
49         ));
50         */
51         append(p(
52                 function(separated, separated_UUID){
53                         if(separated.length < 5){
54                                 return false;
55                         }
56                         var a = separated.slice(-4);
57                         
58                         return (a.join("") == "は単語です。");
59                 },
60                 "72d5f5b2-7943-4ea0-8a91-b2c84ed856f6", 
61                 function(env, separated, UUIDList){
62                         var a = separated.slice(0, -4).join("");
63                         if(env.memory.getUUIDFromWord(a) == env.UUID_Meaning_UndefinedString){
64                                 env.message("「" + a + "」は単語なんですね!\n");
65                                 env.memory.appendMemoryTag(new AI_WordTag(a));
66                                 env.message(env.memory.wordList.length + "個目の単語を登録しました!\n");
67                         } else{
68                                 env.message("「" + a + "」が単語なのは知ってますよ…。\n");
69                         }
70                 }
71         ));
72         //記憶保存
73         append(p([
74                         wid("記憶"),
75                         wid("を"),
76                         wid("保存"),
77                         wid("する"),
78                         wid("。"),
79                 ], "0101d94e-c664-44fd-9d75-669eb94e9d29", 
80                 function(env, separated, UUIDList){
81                         env.memory.saveMemory();
82                         env.message("記憶を保存したファイルを作成しました。\nDownloadsのリンクを右クリックして、名前をつけて保存してください。\n");
83                 }
84         ));
85         
86         //
87         //ジョブタグ
88         //
89         
90         t = new AI_Job_Ask_isWord(env);
91         t.addJobToStack();
92 }