OSDN Git Service

phpを介してインターネットからページを読み込む機能を追加。
authorhikarupsp <hikarupsp@users.sourceforge.jp>
Sat, 14 Dec 2013 15:49:50 +0000 (00:49 +0900)
committerhikarupsp <hikarupsp@users.sourceforge.jp>
Sat, 14 Dec 2013 15:49:50 +0000 (00:49 +0900)
デフォルト起動モードがInternalConsoleに変更された(開発用)。
単語抽出後に単語かどうかをユーザーに対話的に問いかける機能を実装した。

17 files changed:
ai.js
aiboot.js [new file with mode: 0644]
aiext.js
aihtml.js [new file with mode: 0644]
aijobbas.js [new file with mode: 0644]
aijobs.js [new file with mode: 0644]
aimemory.js
aimemtag.js
aimtbase.js
ainet.js
ainet.php [new file with mode: 0644]
aisub.js
aithink.js
aiwrcgnz.js
header.js
index.html
memory.txt [deleted file]

diff --git a/ai.js b/ai.js
index 51857da..794b675 100644 (file)
--- a/ai.js
+++ b/ai.js
@@ -3,6 +3,8 @@
 //開発時クロスドメイン許可で起動するには、
 // /Applications/Google\ Chrome.app/ --allow-file-access-from-files --disable-web-security
 
+var DebugModeEnabled = true;
+
 function AI(messageBoxDOMObject, debugBoxDOMObject){
        //ブラウザチェック
        this.checkBrowser();
@@ -18,7 +20,7 @@ function AI(messageBoxDOMObject, debugBoxDOMObject){
        this.tickTimer = window.setInterval(function(){that.tick();}, 100);;
        this.messageBox = null;
        this.messageBoxBuffer = "";
-       this.maxMessageStringLength = 0xfffff;
+       this.maxMessageStringLength = 0xffff;
        this.debugBox = null;
        this.debugBoxBuffer = "";
        this.maxDebugStringLength = 0xffff;
@@ -40,8 +42,15 @@ function AI(messageBoxDOMObject, debugBoxDOMObject){
                this.inputProcess_InternalConsole,
                this.inputProcess_CompileELCHNOS_OSECPU,
        ];
-       this.mode = this.UUID_Mode_Standard;
-       this.processByMode = this.inputProcess_Standard;
+       if(!DebugModeEnabled){
+               this.mode = this.UUID_Mode_Standard;
+               this.processByMode = this.inputProcess_Standard;
+       } else{
+               this.mode = this.UUID_Mode_InternalConsole;
+               this.processByMode = this.inputProcess_InternalConsole;
+       }
+
+       AI_Bootstrap(this);
 
        this.debug("AI system initialized.\n");
        this.debug("To enter internal console mode,\n  type '#4ca6ed1a-e62e-470b-9d7b-e332f709e48f'.\n");
@@ -53,7 +62,7 @@ AI.prototype = {
        UUID_Mode_SaveMemory: "52360c62-6a8a-4f6e-8bdd-43381996e996",
        UUID_Mode_InternalConsole: "4ca6ed1a-e62e-470b-9d7b-e332f709e48f",
        UUID_Mode_CompileELCHNOS_OSECPU: "17ddde48-7d4c-498f-98d8-3e73f8845028",
-       sendToAI: function(str){
+       sendToAI: function(str, srctype){
                var p, strbaseindex;
                
                this.debug("**** Start inputting ****\n");
@@ -68,11 +77,11 @@ AI.prototype = {
                        if(p == -1){
                                //終端まで到達
                                //それ以前の文字列を入力
-                               this.processByMode(str.substring(strbaseindex));
+                               this.processByMode(str.substring(strbaseindex), srctype);
                                break;
                        }
                        //まずはモード変更の直前までの文字列を入力
-                       this.processByMode(str.substring(strbaseindex, p));
+                       this.processByMode(str.substring(strbaseindex, p), srctype);
                        //モード変更要求
                        this.changeMode(str.substring(p + 1, p + 1 + this.UUIDStrLen));
                }
@@ -99,11 +108,15 @@ AI.prototype = {
                }
                
        },
-       sendTextFromFileToAI: function(str, name, modDate){
+       sendTextFromFileToAI: function(str, name, modDate, srctype){
                //ファイルからの読み込み時は、読み込み終了後に読み込み以前のモードに戻る。
-               this.debug("sendTextFromFileToAI: " + modDate.toLocaleString() + " [" + name + "]\n");
+               this.debug("sendTextFromFileToAI:");
+               if(modDate){
+                       this.debug(modDate.toLocaleString());
+               }
+               this.debug(" [" + name + "]\n");
                var oldmode = this.mode;
-               this.sendToAI(str);
+               this.sendToAI(str, srctype);
                this.changeMode(oldmode);
        },
        setMessageBoxDOMObject: function(mBoxObj){
@@ -156,58 +169,77 @@ AI.prototype = {
                        this.message("System> このブラウザは記憶保存(HTML5FileAPI)に対応していません。", true);
                }
        },
-       inputProcess_Standard: function(str){
+       inputProcess_Standard: function(str, srctype){
                this.debug("**** Start Processing (Standard) ****\n");
                
                this.debug("input:[" + str + "]\n");
-               this.input.appendInput(str);
+               this.input.appendInput(str, srctype);
                this.think.inputting = true;
                
                this.debug("**** End Processing (Standard) ****\n");
        },
-       inputProcess_ReadMemory: function(str){
+       inputProcess_ReadMemory: function(str, srctype){
                this.debug("**** Start Processing (ReadMemory) ****\n");
                
                this.memory.loadMemory(str);
                
                this.debug("**** End Processing (ReadMemory) ****\n");
        },
-       inputProcess_SaveMemory: function(str){
+       inputProcess_SaveMemory: function(str, srctype){
                this.debug("**** Start Processing (SaveMemory) ****\n");
                
                this.memory.saveMemory();
                
                this.debug("**** End Processing (SaveMemory) ****\n");
        },
-       inputProcess_InternalConsole: function(str){
+       inputProcess_InternalConsole: function(str, srctype){
+               var that = this;
                this.debug("**** Start Processing (InternalConsole) ****\n");
                if(str == "exit"){
                        this.debug("Exit InternalConsole.\n");
                        this.changeMode(this.UUID_Mode_Standard);
                } else if(str == "show cwl"){
                        //show candidateWordList
-                       this.wordRecognition.sortCandidateWordListByWordCount();
-                       this.wordRecognition.computeEachWordLevel();
-                       this.wordRecognition.sortCandidateWordListByWordLevel();
                        this.wordRecognition.debugShowCandidateWordList();
+               } else if(str == "show wl"){
+                       //show wordList
+                       this.debug("wordList:" + this.memory.wordList.length + "\n" );
+                       this.memory.wordList.logEachPropertyNamed("str", function(s){ that.debug(s); });
                } else if(str.indexOf("inputFromURL ") == 0){
                        //webページを読み込む
                        //inputFromURL http://www.aozora.gr.jp/cards/000035/files/1567_14913.html
+                       //inputFromURL http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
+                       //inputFromURL http://ja.wikipedia.org/wiki/%E6%9D%B1%E4%BA%AC%E5%AD%A6%E8%8A%B8%E5%A4%A7%E5%AD%A6%E9%99%84%E5%B1%9E%E9%AB%98%E7%AD%89%E5%AD%A6%E6%A0%A1
+                       //inputFromURL http://osecpu.osask.jp/wiki/?FrontPage
+                       //inputFromURL http://osecpu.osask.jp/wiki/?impressions
                        var url = str.substring(13);
                        this.debug("[" + url + "]\n");
-                       var res = this.networkManager.sendRequestSync("GET", url, null);
-                       this.debug("[" + res + "]\n");
+                       var res = this.networkManager.sendRequestThroughPHPSync("GET", url, null);
+                       //this.debug("[" + res + "]\n");
+                       var parser = new AI_HTMLParser(this);
+                       parser.loadText(res);
+                       var mainString = parser.mainString;
+                       this.debug(mainString);
+                       console.log(parser.linkList);
+                       
+                       this.changeMode(this.UUID_Mode_Standard);
+                       this.sendTextFromFileToAI(mainString, url, null, "Web");
+                       this.changeMode(this.UUID_Mode_InternalConsole);
+                       
+               } else if(str == "savemem"){
+                       this.memory.saveMemory();
                } else{
                        this.debug("Unknown command [" + str + "].\n");
                        this.debug("Command list:\n");
                        this.debug("Implemented command list:\n");
                        this.debug("  show cwl\n");
+                       this.debug("  show wl\n");
                        this.debug("  exit\n");
                }
                
                this.debug("**** End Processing (InternalConsole) ****\n");
        },
-       inputProcess_CompileELCHNOS_OSECPU: function(str){
+       inputProcess_CompileELCHNOS_OSECPU: function(str, srctype){
                this.debug("**** Start Processing (CompileELCHNOS_OSECPU) ****\n");
                
                var cc = new ELCHNOSCompiler(this);
diff --git a/aiboot.js b/aiboot.js
new file mode 100644 (file)
index 0000000..e9242f7
--- /dev/null
+++ b/aiboot.js
@@ -0,0 +1,10 @@
+function AI_Bootstrap(env){
+       var append = function(t){ env.memory.appendMemoryTag(t); };
+       var w = function(str, uuid){ return new AI_WordTag(str, uuid); };
+       var t;
+       
+       append(w("。","b48267fb-f867-491c-a562-e5e24de389c1"));
+       
+       t = new AI_Job_Ask_isWord(env);
+       t.addJobToStack();
+}
\ No newline at end of file
index 3633696..db46dbb 100644 (file)
--- a/aiext.js
+++ b/aiext.js
@@ -92,6 +92,46 @@ Array.prototype.isIncluded = function(obj, fEqualTo){
        }
        return false;
 }
+Array.prototype.search2DLineIndex = function(column, obj, fEqualTo){
+       //与えられた配列を二次元配列として解釈し
+       //array[n][column]がobjと等価になる最初の行nを返す。
+       //fEqualToは省略可能で、評価関数fEqualTo(array[n][column], obj)を設定する。
+       //該当する行がなかった場合、戻り値はundefinedとなる。
+       if(fEqualTo == undefined){
+               for(var i = 0, iLen = this.length; i < iLen; i++){
+                       if(this[i] instanceof Array && this[i][column] == obj){
+                               return i;
+                       }
+               }
+       } else{
+               for(var i = 0, iLen = this.length; i < iLen; i++){
+                       if(this[i] instanceof Array && fEqualTo(this[i][column], obj)){
+                               return i;
+                       }
+               }
+       }
+       return undefined;
+}
+Array.prototype.search2DObject = function(searchColumn, retvColumn, obj, fEqualTo){
+       //与えられた配列を二次元配列として解釈し
+       //array[n][searchColumn]がobjと等価になる最初の行のオブジェクトarray[n][retvColumn]を返す。
+       //fEqualToは省略可能で、評価関数fEqualTo(array[n][searchColumn], obj)を設定する。
+       //該当する行がなかった場合、戻り値はundefinedとなる。
+       if(fEqualTo == undefined){
+               for(var i = 0, iLen = this.length; i < iLen; i++){
+                       if(this[i] instanceof Array && this[i][searchColumn] == obj){
+                               return this[i][retvColumn];
+                       }
+               }
+       } else{
+               for(var i = 0, iLen = this.length; i < iLen; i++){
+                       if(this[i] instanceof Array && fEqualTo(this[i][searchColumn], obj)){
+                               return this[i][retvColumn];
+                       }
+               }
+       }
+       return undefined;
+}
 Array.prototype.pushUnique = function(obj, fEqualTo){
        //値が既に存在する場合は追加しない。評価関数fEqualTo(array[i], obj)を設定することができる。
        //結果的に配列内にあるオブジェクトが返される。
@@ -123,7 +163,6 @@ Array.prototype.stableSort = function(f){
                delete this[i].__id__;
        }
 }
-
 Array.prototype.splitByArray = function(separatorList){
        //Array中の文字列をseparatorList内の文字列でそれぞれで分割し、それらの文字列が含まれた配列を返す。
        var retArray = new Array();
@@ -134,7 +173,6 @@ Array.prototype.splitByArray = function(separatorList){
        
        return retArray;
 }
-
 Array.prototype.logAsHexByte = function(){
        //十六進バイト列としてデバッグ出力する。
        var ds = "";
@@ -143,7 +181,6 @@ Array.prototype.logAsHexByte = function(){
        }
        console.log(ds);
 }
-
 Array.prototype.stringAsHexByte = function(){
        //十六進バイト列として文字列を得る
        var ds = "";
@@ -152,6 +189,20 @@ Array.prototype.stringAsHexByte = function(){
        }
        return ds;
 }
+Array.prototype.logEachPropertyNamed = function(pname, logfunc, suffix){
+       //Arrayのすべての各要素pについて、プロパティp[pname]を文字列としてlogfuncの引数に渡して呼び出す。
+       //suffixは各文字列の末尾に追加する文字列。省略時は改行文字となる。
+       //logfuncは省略時はconsole.logとなる。
+       if(logfunc === undefined){
+               logfunc = function(s){ console.log(s); };
+       }
+       if(suffix === undefined){
+               suffix = "\n";
+       }
+       for(var i = 0, iLen = this.length; i < iLen; i++){
+               logfunc(this[i][pname] + suffix);
+       }
+}
 
 //文字列関連
 String.prototype.replaceAll = function(org, dest){
diff --git a/aihtml.js b/aihtml.js
new file mode 100644 (file)
index 0000000..c9f4552
--- /dev/null
+++ b/aihtml.js
@@ -0,0 +1,124 @@
+function AI_HTMLParser(env){
+       this.env = env;
+       this.mainString = "";
+       //[[linkURL, dispString],...]
+       this.linkList = new Array();
+}
+AI_HTMLParser.prototype = {
+       keywordList0:[
+               //タグ抽出用
+               "</",
+               "<",
+               ">",
+       ],
+       keywordList1:[
+               //タグ属性抽出用
+               "\\\"",
+               "\"",
+               "'",
+               "=",
+               " ",
+       ],
+       loadText: function(src){
+               if(!src){
+                       return;
+               }
+               this.mainString = "";
+               this.linkList = new Array();
+       
+               src.replaceAll("\n", "");
+               var a = src.splitByArraySeparatorSeparatedLong(this.keywordList0);
+               var currentTag;
+               var s;
+               var mode = 0;
+               var appendDisabled = false;
+               var linkInfo = null;
+               var attr;
+               //0:何が来てもOK
+               //1:タグの中身か閉じ括弧
+               for(var i = 0, iLen = a.length; i < iLen; i++){
+                       s = a[i];
+                       if(mode == 0){
+                               if(s == "<"){
+                                       //開始タグの開始
+                                       mode = 1;
+                                       currentTag = a[i + 1].trim().split(" ")[0];
+                                       if(currentTag == "br"){
+                                               //<br />
+                                               this.mainString += "\n";
+                                               //this.env.debug("<" + currentTag + " />\n");
+                                       } else if(currentTag == "script" || currentTag == "style"){
+                                               //内部を無視するタグ
+                                               appendDisabled = true;
+                                       } else if(currentTag == "a"){
+                                               //リンク
+                                               linkInfo = ["", ""];
+                                               attr = this.getAttributesFromTagString(a[i + 1].substring(currentTag.length));
+                                               linkInfo[0] = attr.search2DObject(0, 1, "href");
+                                       } else{
+                                               //this.env.debug("<" + currentTag + ">\n");
+                                       }
+                               } else if(s == "</"){
+                                       //終了タグの開始
+                                       mode = 1;
+                                       currentTag = a[i + 1].trim().split(" ")[0];
+                                       //this.env.debug("</" + currentTag + ">\n");
+                                       if(currentTag == "script" || currentTag == "style"){
+                                               appendDisabled = false;
+                                       } else if(currentTag == "a" && linkInfo){
+                                               this.linkList.push(linkInfo);
+                                               linkInfo = null;
+                                       }
+                               } else if(!appendDisabled){
+                                       this.mainString += s;
+                                       if(linkInfo){
+                                               linkInfo[1] += s;
+                                       }
+                               }
+                       } else if(mode == 1){
+                               if(s == ">"){
+                                       mode = 0;
+                               }
+                       }
+               }
+               return this.mainString;
+       },
+       getAttributesFromTagString: function(tagStr){
+               var a = tagStr.splitByArraySeparatorSeparatedLong(this.keywordList1);
+               var s;
+               var t = [undefined, ""];
+               var mode = 0;
+               var retArray = new Array();
+               var inStringLiteral = false;
+               for(var i = 0, iLen = a.length; i < iLen; i++){
+                       s = a[i];
+                       if(s == " " || s == "\\\"" || s == "'"){
+                               if(mode == 1 && inStringLiteral){
+                                       t[1] += s;
+                               }
+                       } else if(s == "\""){
+                               inStringLiteral = !inStringLiteral;
+                               if(!inStringLiteral){
+                                       retArray.push(t);
+                                       t = [undefined, ""];
+                                       mode = 0;
+                               }
+                       } else if(s == "="){
+                               if(mode == 1 && inStringLiteral){
+                                       t[1] += s;
+                               }
+                               mode = 1;
+                       } else{
+                               if(mode == 0){
+                                       //左辺
+                                       t[0] = s;
+                               } else if(mode == 1){
+                                       //右辺
+                                       t[1] += s;
+                               }
+                       }
+               }
+               //console.log(retArray);
+               return retArray;
+       },
+}
\ No newline at end of file
diff --git a/aijobbas.js b/aijobbas.js
new file mode 100644 (file)
index 0000000..9fb7fbb
--- /dev/null
@@ -0,0 +1,21 @@
+function AI_Job(env){
+       this.env = env;
+}
+AI_Job.prototype = {
+       tick: function(){
+               //定期的に呼ばれることを期待する
+               //戻り値がundefinedで処理終了
+       },
+       input: function(s){
+               //ジョブが登録されているときに入力があると呼ばれる。
+               //戻り値がundefinedで処理終了
+       },
+       addJobToStack: function(){
+               this.env.think.jobStack.push(this);
+       },
+       /*
+       dequeueJob(): function(){
+       
+       },
+       */
+}
diff --git a/aijobs.js b/aijobs.js
new file mode 100644 (file)
index 0000000..38eacbb
--- /dev/null
+++ b/aijobs.js
@@ -0,0 +1,31 @@
+var AI_Job_Ask_isWord = function(env){
+       AI_Job_Ask_isWord.base.call(this, env);
+       this.waiting = false;
+       this.currentCandidate = null;
+}.extend(AI_Job, {
+       tick: function(){
+               //定期的に呼ばれることを期待する
+               //戻り値がundefinedで処理終了
+               if(!this.waiting && this.env.memory.candidateWordList.length > 0){
+                       this.currentCandidate = this.env.memory.candidateWordList.pop();
+                       this.env.memory.removeMemoryTagByObject(this.currentCandidate);
+                       this.env.message("「" + this.currentCandidate.str + "」は単語ですか?(y/n)\n");
+                       this.waiting = true;
+               }
+               return 0;
+       },
+       input: function(s){
+               //ジョブが登録されているときに入力があると呼ばれる。
+               //戻り値がundefinedで処理終了
+               if(this.env.input.lastSentenceSourceType != "User"){
+                       return 0;
+               }
+               if(s == "y"){
+                       this.env.memory.appendMemoryTag(new AI_WordTag(this.currentCandidate.str));
+                       this.env.message(this.env.memory.wordList.length + "個目の単語を登録しました!\n");
+               }
+               this.waiting = false;
+               this.currentCandidate = null;
+               return 0;
+       }
+});
\ No newline at end of file
index b1136d9..b3127bd 100644 (file)
@@ -5,6 +5,7 @@ function AI_Memory(env){
        this.root = new Array();
        //サブリスト
        this.candidateWordList = new Array();
+       this.wordList = new Array();
 }
 AI_Memory.prototype = {
        saveMemory: function(){
@@ -40,12 +41,15 @@ AI_Memory.prototype = {
                        q = d.type;
                        if(q == AI_MemoryTag.prototype.Type_CandidateWord){
                                t = new AI_CandidateWordTag();
+                       } else if(q == AI_MemoryTag.prototype.Type_Word){
+                               t = new AI_WordTag();
                        } else{
                                t = new AI_MemoryTag();
                        }
                        AI_MemoryTag.prototype.loadFromMemoryData.call(t, d);
                        this.appendMemoryTag(t);
                }
+               this.verifyMemoryStructure();
                this.env.debug("Memory loading done.\n" + this.root.length + " tags exist.\n");
        },
        appendMemoryTag: function(tag){
@@ -61,9 +65,54 @@ AI_Memory.prototype = {
                if(tag instanceof AI_CandidateWordTag){
                        this.candidateWordList.push(tag);
                }
+               if(tag instanceof AI_WordTag){
+                       this.wordList.push(tag);
+               }
+       },
+       /*
+       appendMemoryTagFromString: function(str){
+               //retv:isAppended
+               var d;
+               var q;
+               var t;
+               try{
+                       d = eval(str);
+               } catch(e){
+                       this.env.debug(""i + ": " + e + "\n");
+                       return false;
+               }
+               if(d === undefined){
+                       return false;
+               }
+               q = d.type;
+               if(q == AI_MemoryTag.prototype.Type_CandidateWord){
+                       t = new AI_CandidateWordTag();
+               } else{
+                       t = new AI_MemoryTag();
+               }
+               AI_MemoryTag.prototype.loadFromMemoryData.call(t, d);
+               this.appendMemoryTag(t);
        },
+       */
        removeMemoryTagByObject: function(obj){
                this.root.removeAnObject(obj);
                this.candidateWordList.removeAnObject(obj);
+               this.wordList.removeAnObject(obj);
        },
+       verifyMemoryStructure: function(){
+               //メモリ構造検査・修復
+               //単語が単語候補に残っていた場合は単語候補から削除
+               for(var i = 0, iLen = this.wordList.length; i < iLen; i++){
+                       var w = this.wordList[i].str;
+                       for(var j = 0, jLen = this.candidateWordList.length; j < jLen; j++){
+                               if(this.candidateWordList[j].str == w){
+                                       this.env.debug("Word duplicated in CWL. Remove.\n");
+                                       this.removeMemoryTagByObject(this.candidateWordList[j]);
+                                       j--;
+                                       jLen--;
+                               }
+                       }
+               }       
+               this.env.debug("Memory verifying done.\n");
+       }
 }
index 8846d53..c40e18e 100644 (file)
@@ -6,36 +6,43 @@ var AI_CandidateWordTag = function(str){
 }.extend(AI_MemoryTag, {
        parseToStringData: function(){
                //uuid:type:str:wordCount:wordLevel
-               var e = this.escapeForMemory;
+               var e = encodeURIComponent;
                var d = new Object();
-               d.s = this.str;
+               d.s = e(this.str);
                d.c = this.wordCount;
                d.l = this.wordLevel.toString();
                
                return AI_CandidateWordTag.base.prototype.parseToStringData.call(this, d);
        },
        loadFromMemoryData: function(data){
-               this.str = data.s;
+               var e = decodeURIComponent;
+               this.str = e(data.s);
                this.wordCount = data.c;
                this.wordLevel = data.l;
        },
 });
 
-var AI_WordTag = function(str){
+var AI_WordTag = function(str, uuid){
        AI_WordTag.base.call(this, AI_WordTag.base.prototype.Type_Word);
-       this.str = str;
+       if(str){
+               this.str = str;
+       }
+       if(uuid){
+               this.uuid = uuid;
+       }
        this.wordCount = 0;
 }.extend(AI_MemoryTag, {
        parseToStringData: function(){
                //uuid:type:str:wordCount:wordLevel
-               var e = this.escapeForMemory;
+               var e = encodeURIComponent;
                var d = new Object();
-               d.s = this.str;
+               d.s = e(this.str);
                d.c = this.wordCount;
-               return AI_WordTag.base.prototype.parseToStringData.call(this) + e(this.parseArrayToStringSource(d));
+               return AI_WordTag.base.prototype.parseToStringData.call(this, d);
        },
        loadFromMemoryData: function(data){
-               this.str = data.s;
+               var e = decodeURIComponent;
+               this.str = e(data.s);
                this.wordCount = data.c;
        },
 });
index 2556df4..7474039 100644 (file)
@@ -7,6 +7,7 @@ function AI_MemoryTag(typeUUIDStr){
 AI_MemoryTag.prototype = {
        Type_CandidateWord: "2fba8fc1-2b9a-46e0-8ade-455c0bd30637",
        Type_Word: "d5eef85c-a796-4d04-bb72-8d45c94c5e4f",
+       
        //http://codedehitokoto.blogspot.jp/2012/01/javascriptuuid.html
        initUUID: function(){
                if(!this.uuid){
@@ -43,12 +44,6 @@ AI_MemoryTag.prototype = {
                        }
                }
        },
-       escapeForMemory: function(str){
-               return "\"" + str.replaceAll(":", "@:").replaceAll("\"", "\\\"") + "\"";
-       },
-       unescapeForMemory: function(str){
-               return str.replaceAll("@:", ":");
-       },
        parseArrayToStringSource: function(anArray){
                if(!anArray){
                        return "null";
index a935bc8..34b09dd 100644 (file)
--- a/ainet.js
+++ b/ainet.js
@@ -1,5 +1,6 @@
 function AI_NetworkManager(env){
        this.env = env;
+       this.PHPExtPath = "./ainet.php";
 }
 AI_NetworkManager.prototype = {
        //from PCD2013GSCL
@@ -42,7 +43,12 @@ AI_NetworkManager.prototype = {
                q.open(mode, url, false);
                q.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                this.RequestObjectDisableCache(q);
-               q.send(data);
+               try {
+                       q.send(data);
+               } catch(e){
+                       this.env.debug("AI_NetworkManager:sendRequestSync:Network Error.\n");
+                       return null;
+               }
                if(q.status == 0){
                        alert("ネットワークにアクセスできません。" + q.status + ":" + q.statusText);
                }else if((200 <= q.status && q.status < 300) || (q.status == 304)){
@@ -75,4 +81,10 @@ AI_NetworkManager.prototype = {
                this.RequestObjectDisableCache(q);
                q.send(data);
        },
+       sendRequestThroughPHPSync: function(mode, url, data){
+               var sendURL = this.PHPExtPath;
+               sendURL += "?cmd=httpreq&url=";
+               sendURL += encodeURIComponent(url);
+               return this.sendRequestSync("GET", sendURL);
+       },
 }
\ No newline at end of file
diff --git a/ainet.php b/ainet.php
new file mode 100644 (file)
index 0000000..8044125
--- /dev/null
+++ b/ainet.php
@@ -0,0 +1,130 @@
+<?php
+//Args:
+//     cmd
+//     url
+
+//Retv[0]:operation exitcode
+       //ErrorCode:
+
+if(!isset($_GET['cmd'])){
+       exit("[463571]");
+}
+$cmd = $_GET['cmd'];
+
+if(strcmp($cmd, 'httpreq') == 0){
+       if(!isset($_GET['url'])){
+               exit("[571765]");
+       }
+       $url = $_GET['url'];
+       $response = sendHTTPQuery($url);
+       echo($response);
+} else{
+       exit("[571465]");
+}
+
+// from http://www.spencernetwork.org/memo/tips-3.php
+/*
+       $url     : http://から始まるURL( http://user:pass@host:port/path?query )
+       $method  : GET, POST, HEADのいずれか(デフォルトはGET)
+       $headers : 任意の追加ヘッダ
+       $post    : POSTの時に送信するデータを格納した配列("変数名"=>"値")
+       */
+function sendHTTPQuery($url, $method="GET", $headers="", $post=array(""))
+{
+       /* URLを分解 */
+       $parsedURL = parse_url($url);
+       
+       //URLの存在を確認(fsockopenのエラー抑制のため)
+       if ($parsedURL && $parsedURL['host']) {
+               $ip = getHostByName($parsedURL['host']);
+               $long = ip2long($ip);
+               
+               if ($long === false || $ip !== long2ip($long)) {
+                       //Cannot resolve domain name
+                       exit("[747332]");
+               } else {
+                       //ValidURL
+               }
+       } else {
+               //Invalid URL
+               exit("[747914]");
+       }
+       
+       if(!$parsedURL){
+               return false;
+       }
+       
+       /* クエリー */
+       if (isset($parsedURL['query'])) {
+               $parsedURL['query'] = "?".$parsedURL['query'];
+       } else {
+               $parsedURL['query'] = "";
+       }
+       
+       /* デフォルトのポートは80 */
+       if (!isset($parsedURL['port'])) $parsedURL['port'] = 80;
+       
+       /* リクエストライン */
+       $request  = $method." ".$parsedURL['path'].$parsedURL['query']." HTTP/1.0\r\n";
+       
+       /* リクエストヘッダ */
+       $request .= "Host: ".$parsedURL['host']."\r\n";
+       $request .= "User-Agent: PHP/".phpversion()."\r\n";
+       
+       /* Basic認証用のヘッダ */
+       if (isset($parsedURL['user']) && isset($parsedURL['pass'])) {
+               $request .= "Authorization: Basic ".base64_encode($parsedURL['user'].":".$parsedURL['pass'])."\r\n";
+       }
+       
+       /* 追加ヘッダ */
+       $request .= $headers;
+       
+       /* POSTの時はヘッダを追加して末尾にURLエンコードしたデータを添付 */
+       if (strtoupper($method) == "POST") {
+               while (list($name, $value) = each($post)) {
+                       $POST[] = $name."=".urlencode($value);
+               }
+               $postdata = implode("&", $POST);
+               $request .= "Content-Type: application/x-www-form-urlencoded\r\n";
+               $request .= "Content-Length: ".strlen($postdata)."\r\n";
+               $request .= "\r\n";
+               $request .= $postdata;
+       } else {
+               $request .= "\r\n";
+       }
+       
+       /* WEBサーバへ接続 */
+       $fp = fsockopen($parsedURL['host'], $parsedURL['port']);
+       
+       /* 接続に失敗した時の処理 */
+       if (!$fp) {
+               die("ERROR\n");
+       }
+       
+       /* 要求データ送信 */
+       fputs($fp, $request);
+       
+       /* 応答データ受信 */
+       $response = "";
+       while (!feof($fp)) {
+               $response .= fgets($fp, 65535);
+       }
+       
+       /* 接続を終了 */
+       fclose($fp);
+       
+       /* ヘッダ部分とボディ部分を分離 */
+       $DATA = split("\r\n\r\n", $response, 2);
+       
+       /* リクエストヘッダをコメントアウトして出力 */
+       //echo "<!--\n".$request."\n-->\n";
+       
+       /* レスポンスヘッダをコメントアウトして出力 */
+       //echo "<!--\n".$DATA[0]."\n-->\n";
+       //echo($DATA[0]);
+       
+       /* メッセージボディを出力 */
+       echo $DATA[1];
+}
+
+?>
\ No newline at end of file
index c913029..2f97345 100644 (file)
--- a/aisub.js
+++ b/aisub.js
@@ -1,5 +1,6 @@
 function AI_IOManager(env){
        this.env = env;
+       this.lastSentenceSourceType = undefined;
 }
 AI_IOManager.prototype = {
        //http://www.atmarkit.co.jp/ait/articles/1112/16/news135_2.html
@@ -30,11 +31,11 @@ AI_Input.prototype = {
                "?",
                "\n",
        ],
-       appendInput: function(input){
+       appendInput: function(input, srctype){
                //inputはStringとArrayが使用できる
                var sList = input.splitByArray(this.sentenceSeparator);
-               
-               this.sentenceList = this.sentenceList.concat(sList)
+               this.sentenceList.push([srctype]);
+               this.sentenceList = this.sentenceList.concat(sList);
        },
        getSentence: function(){
                //改行のみの文は破棄
@@ -42,8 +43,12 @@ AI_Input.prototype = {
                        if(this.sentenceList.length <= 0){
                                return undefined;
                        }
-                       var retv = this.sentenceList[0];
-                       this.sentenceList.splice(0, 1);
+                       var retv = this.sentenceList.shift();
+                       if(retv instanceof Array){
+                               //ソースタイプ変更
+                               this.lastSentenceSourceType = retv[0];
+                               continue;
+                       }
                        retv = retv.trim();
                        if(retv != ""){
                                break;
index 9d1c08a..dff916f 100644 (file)
@@ -1,26 +1,49 @@
 function AI_Think(env){
        this.env = env;
        this.inputting = false;
+       this.jobStack = new Array();
+       this.processingJob = null;
 }
 AI_Think.prototype = {
+       tickLimitMs: 100,
        tick: function(){
                //定期的に呼ばれることを期待する
                if(this.inputting){
+                       var tickStartTimeMs = new Date();
                        this.env.debug("**** Think ****\n");
                        for(var i = 0; i < 64; i++){
+                               if((new Date()) - tickStartTimeMs > this.tickLimitMs){
+                                       //CPU時間占有防止
+                                       break;
+                               }
                                //入力処理ループ
                                var s = this.env.input.getSentence();
                                if(s === undefined){
                                        this.inputting = false;
-                                       
+                                       //単語候補をソート
+                                       this.env.wordRecognition.sortCandidateWordListByWordCount();
+                                       this.env.wordRecognition.computeEachWordLevel();
+                                       this.env.wordRecognition.sortCandidateWordListByWordLevel();
                                        break;
                                }
-                               this.env.message("User> " + s + "\n", true);
+                               if(this.env.input.lastSentenceSourceType){
+                                       this.env.message(this.env.input.lastSentenceSourceType, true);
+                               } else{
+                                       this.env.message("Unknown", true);
+                               }
+                               this.env.message("> " + s + "\n", true);
+                               
+                               if(this.processingJob && this.processingJob.input(s) === undefined){
+                                       this.processingJob = null;
+                               }
+                       }
+               } else if(this.processingJob || this.jobStack.length > 0){
+                       if(!this.processingJob){
+                               this.processingJob = this.jobStack.pop();
+                       }
+                       if(this.processingJob.tick() === undefined){
+                               this.processingJob = null;
                        }
                }
        },
-       thinkMain: function(){
-               
-       },
-       
 }
index 5c6c316..6504c82 100644 (file)
@@ -23,7 +23,7 @@ AI_WordRecognition.prototype = {
                                }
                        }
                        if(cLen > 0){
-                               cList.pushUnique(new AI_CandidateWordTag(iStr.substr(0, cLen))).wordCount++;
+                               cList.pushUnique(new AI_CandidateWordTag(iStr.substr(0, cLen).trim())).wordCount++;
                        }
                }
                //フィルター
@@ -31,6 +31,7 @@ AI_WordRecognition.prototype = {
                this.filterCandidateWordList01(cList, 2);
                //追加
                this.mergeCandidateWordList(cList);
+               
        },
        appendCandidateWordList: function(strTag){
                var s = this.env.memory.candidateWordList.isIncluded(strTag, function(a, b){ return (a.str == b.str); });
@@ -47,10 +48,12 @@ AI_WordRecognition.prototype = {
                }
        },
        debugShowCandidateWordList: function(){
-               var c = this.env.memory.candidateWordList;
+               var c = (new Array()).concat(this.env.memory.candidateWordList);
+               c.reverse();
                this.env.debug("candidateWordList:" + c.length + "\n");
+               
                for(var i = 0, iLen = c.length; i < iLen; i++){
-                       this.env.debug(c[i].wordCount.toString() + " :" + c[i].wordLevel.toString() + " :" + c[i].str + "\n");
+                       this.env.debug((i + 1) + ":\t" + c[i].wordCount.toString() + ":\t" + c[i].wordLevel.toString() + ":\t" + c[i].str + "\n");
                }
                this.env.debug("candidateWordList end\n");
        },
index a197b1c..3253475 100644 (file)
--- a/header.js
+++ b/header.js
@@ -11,6 +11,10 @@ include("./aimemtag.js");
 include("./aithink.js");\r
 include("./aiwrcgnz.js");\r
 include("./ainet.js");\r
+include("./aihtml.js");\r
+include("./aiboot.js");\r
+include("./aijobbas.js");\r
+include("./aijobs.js");\r
 //ELCC\r
 include("./elcc/elcc.js");\r
 include("./elcc/elcexpr.js");\r
index 2547aaa..f161354 100644 (file)
@@ -35,7 +35,7 @@ function sendToAI(e){
        if (e.keyCode == 13){ // Enterが押された
                if(!e.shiftKey && inputBoxObj.value.replace(/\s/g, "").length > 0){
                        e.preventDefault();
-                       mainAI.sendToAI(inputBoxObj.value);
+                       mainAI.sendToAI(inputBoxObj.value, "User");
                        inputBoxObj.value = '';
                }
        }
@@ -54,7 +54,7 @@ function handleFileSelect(evt){
                var r = new FileReader();
                r.onload = (function(file){
                        return function(e){
-                               mainAI.sendTextFromFileToAI(r.result, file.name, file.lastModifiedDate);
+                               mainAI.sendTextFromFileToAI(r.result, file.name, file.lastModifiedDate, "File");
                        }
                })(f);
                r.readAsText(f);
diff --git a/memory.txt b/memory.txt
deleted file mode 100644 (file)
index 9fc205c..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-#42e11880-62b8-46ea-a1c4-481264d4440d
-var t={id:'c0c70830-9447-8c0e-c684-889e05d7a458',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'人工知能',c:3,l:1}};t;
-var t={id:'27fb9485-7f03-61a3-bdf4-f94cc93b8145',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ia',c:1,l:1}};t;
-var t={id:'7456f248-3791-d60d-cfe3-b8c8ee5e7dec',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'知能',c:3,l:1}};t;
-var t={id:'70d7466a-cff2-9bbb-0a13-2fc818af73ba',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'「人工知能」',c:1,l:0.5}};t;
-var t={id:'26e8cfb3-a2ad-c9b7-b4b8-bd0f608ec8d6',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'という',c:3,l:1}};t;
-var t={id:'b9ca9dc9-53fd-2591-3122-165ec32ffcab',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'は、',c:5,l:0.5}};t;
-var t={id:'425b5a08-e028-e359-e728-b0a354750b5b',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'「人工知能」という',c:1,l:0.3333333333333333}};t;
-var t={id:'af5b5ce3-6578-be3b-d81d-f7f6631998a2',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'いた',c:1,l:1}};t;
-var t={id:'8dae2013-81de-8bc8-0754-51d2cb139fdc',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ーチ',c:1,l:1}};t;
-var t={id:'15173a1e-27b7-a803-d3af-68dfa88b5477',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'こう',c:1,l:1}};t;
-var t={id:'35a6f56c-6493-32af-a3d0-73a488605dde',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ある',c:7,l:1}};t;
-var t={id:'b5ceb85a-f408-febf-74a8-79777c8dd512',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'プロ',c:2,l:1}};t;
-var t={id:'63286c2b-c4f1-9ef4-a38d-b415d4938d61',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'によ',c:1,l:1}};t;
-var t={id:'5bbbd723-0415-1e07-52cb-2cecba614dfd',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'li',c:2,l:1}};t;
-var t={id:'cf403bad-30bd-8832-0cb8-05e08748bbed',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'」という',c:1,l:0.5}};t;
-var t={id:'b92f890e-4e68-1a67-2afa-82661af40cff',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'され',c:5,l:1}};t;
-var t={id:'d701733f-9110-adf8-5b6b-d5fb0a9831ba',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'れる',c:1,l:1}};t;
-var t={id:'ed0fe007-5bed-115a-5b5d-69cb78182a4a',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'に人間',c:1,l:0.5}};t;
-var t={id:'a889f471-b25c-95a4-4045-31564448a50a',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'をさ',c:1,l:1}};t;
-var t={id:'9a74e30e-4387-898d-84e1-e9b2f645bec8',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'させようという',c:1,l:1}};t;
-var t={id:'4df70a09-567d-3958-40a2-e22533323b9e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ート',c:2,l:1}};t;
-var t={id:'87f89fed-356c-054a-6067-a3f94e50a659',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'システム',c:6,l:1}};t;
-var t={id:'70bcc7c5-9690-375c-8a56-da31867304a7',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'」と',c:1,l:0.5}};t;
-var t={id:'3e00b64d-ff79-b12b-2314-8b139902468e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'呼ばれる',c:1,l:0.5}};t;
-var t={id:'f052409b-ebfd-ffe7-b332-a3519f987800',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'研究',c:1,l:1}};t;
-var t={id:'395186a9-98b6-4a0f-2343-e259aab88eda',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'情報処理',c:1,l:1}};t;
-var t={id:'6f93a287-e0fa-4f99-07f1-ddab65a2df6f',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'実現',c:1,l:1}};t;
-var t={id:'99f67471-0787-a757-113c-36b563a33641',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'人間',c:1,l:1}};t;
-var t={id:'945e1aa4-0b0f-611e-52b4-4724d98d2ad2',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'の記述',c:1,l:0.5}};t;
-var t={id:'d2991942-f70d-724d-3226-1b859a18ce7c',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'り、',c:2,l:0.5}};t;
-var t={id:'442fe4e6-ea00-0623-cc9b-ef50803ace1b',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'の利',c:1,l:0.5}};t;
-var t={id:'3f9ad16d-e70c-3c6e-077f-fd480eb1f4df',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'れている',c:3,l:1}};t;
-var t={id:'90ee8c5b-020b-c4c6-6060-7aa263f285ad',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'人工',c:1,l:1}};t;
-var t={id:'c99d3799-b830-97db-125c-264bb3eeef65',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'知能の',c:1,l:0.5}};t;
-var t={id:'b89a0bdf-20e7-4476-2c83-b6f872d82954',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'の実現',c:1,l:0.5}};t;
-var t={id:'a5861b9b-8361-3ca0-1232-fdb8e108bb67',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'への',c:1,l:1}};t;
-var t={id:'69caec19-c1f9-9346-177b-43af06b20c2c',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'のアプローチと',c:1,l:0.5}};t;
-var t={id:'c3da15a4-56fc-d50d-9b59-299d21959b27',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'として',c:3,l:1}};t;
-var t={id:'2477f079-08dc-6ce3-2359-eab5ee86d6ae',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:' (',c:2,l:1}};t;
-var t={id:'a402c24a-cd79-ce2d-a847-b07d1bc5eeca',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ュー',c:2,l:1}};t;
-var t={id:'9a555724-a44a-8208-8a3d-bad57268eff9',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'など',c:2,l:1}};t;
-var t={id:'36e06d5b-a5a4-dda1-d9a7-353e59f9070a',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'よう',c:2,l:1}};t;
-var t={id:'bd10d2c3-59f1-b6b7-b91b-f9f59f8b9700',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'アプローチ',c:1,l:1}};t;
-var t={id:'5d62e62f-e868-7f9c-ec79-80c1ee5fd95d',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'るが、',c:1,l:0.5}};t;
-var t={id:'b47e2d4b-bdaf-1ecf-7430-b3b6c74c21ef',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'AI',c:9,l:1}};t;
-var t={id:'14237831-b1a8-c5e0-67bb-048415b6b538',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'記述',c:1,l:1}};t;
-var t={id:'046ee0b8-5d1d-b10b-9872-71f7d5d02b9d',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'の記',c:1,l:0.5}};t;
-var t={id:'76fa4ee7-c5dd-c39d-14fe-c6a83b89dd53',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'記号',c:1,l:1}};t;
-var t={id:'1b9d7c5f-6a91-a47d-d7cb-84f6813e765a',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'では',c:2,l:1}};t;
-var t={id:'1a538c55-1103-38bd-4ec3-1c1cdff8a56d',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:')」',c:1,l:1}};t;
-var t={id:'96654cb7-86be-fc2b-08bb-bfb8f99ea6c9',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'があ',c:2,l:1}};t;
-var t={id:'bba650c5-201f-a5bd-5581-b006acbd12c9',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'される',c:1,l:1}};t;
-var t={id:'6a7728ba-4c08-557b-9186-ebcbde249db6',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'従来',c:1,l:1}};t;
-var t={id:'f866b2db-238f-4862-5336-6dac433bc6c7',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'らの',c:1,l:1}};t;
-var t={id:'1990913b-9242-4fa9-79e7-05e599639841',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'あり、',c:1,l:0.5}};t;
-var t={id:'764313ae-7eae-076e-587c-bee8824a2e34',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'計算',c:2,l:1}};t;
-var t={id:'6859996a-0093-86e0-8582-8593adb5e589',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'知能(',c:1,l:0.5}};t;
-var t={id:'15fca266-46ee-bd9f-091c-48cb5d14a4df',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ti',c:1,l:1}};t;
-var t={id:'9ebe5c7a-851f-a9b5-cc79-42a1cd2f2091',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'al Intelligence',c:1,l:1}};t;
-var t={id:'8761f76b-c69f-3fa0-8f52-20e933944709',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'I)',c:1,l:1}};t;
-var t={id:'46d2ea39-d6ac-68ca-397b-01d61074a42e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'従来からのAI',c:1,l:0.3333333333333333}};t;
-var t={id:'71276161-5316-e1be-867e-f43f5eb531b5',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'AIは',c:1,l:0.5}};t;
-var t={id:'7838246d-0622-71d3-c70e-9c337d15f429',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'現在では',c:1,l:0.5}};t;
-var t={id:'e783c4b7-ad60-af02-9448-01f3519a8bc4',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'機械',c:1,l:1}};t;
-var t={id:'de84a8bd-d149-12bd-b34c-41a505c1a3be',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'学習と',c:1,l:0.5}};t;
-var t={id:'25178673-2b62-8e17-6a99-d29c394e9973',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'と呼ばれ',c:1,l:0.5}};t;
-var t={id:'33bfa381-ba8d-30a4-6bb8-d02737acd0ae',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'手法',c:3,l:1}};t;
-var t={id:'89b407b6-a463-34ff-3729-4278eda3aa53',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ーマ',c:1,l:1}};t;
-var t={id:'99db5b64-1242-f947-93db-411bb83bcf5d',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ている',c:3,l:1}};t;
-var t={id:'5a19bc9e-bf4c-328e-b37a-0c1c5d4ab444',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'は、記号',c:1,l:0.3333333333333333}};t;
-var t={id:'8f6ceb74-956a-2436-b871-edc77574fcce',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'記号的',c:1,l:1}};t;
-var t={id:'2f7e9007-a5d3-de6b-1a66-64fa2a8f686e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ion',c:1,l:1}};t;
-var t={id:'cf26a7e7-814f-e44f-f8da-d530670d84da',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ed',c:1,l:1}};t;
-var t={id:'2eadd375-2ce7-e46b-5089-be5154012249',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:' Artificial Intelligence',c:1,l:1}};t;
-var t={id:'62edfd1d-bfd2-eedd-24b4-f31f3db33df0',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'al Intelligence、',c:1,l:1}};t;
-var t={id:'77fbfc3e-8658-86ea-9847-d3ff8f1bad0e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'GOFAI',c:1,l:1}};t;
-var t={id:'930e68cd-7fda-7d72-8cee-e7770a8c4f4e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'AI)',c:1,l:1}};t;
-var t={id:'345ecd81-886c-6467-bdc6-14ce1b757512',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'と呼ばれる',c:1,l:0.5}};t;
-var t={id:'cc1ef0b7-27e2-25c4-da14-0d0bcfeb2d02',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'その',c:5,l:1}};t;
-var t={id:'48776873-be07-ca7e-26e8-783a5cfa6068',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'としては、',c:1,l:0.5}};t;
-var t={id:'64eba1c9-60ec-9da0-140b-d120b0443c65',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'のような',c:1,l:1}};t;
-var t={id:'694fda37-5f0d-e954-926a-7d8bfbd4f9bd',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'なもの',c:1,l:1}};t;
-var t={id:'5933dc0c-c60a-d03c-7335-24ca6438aae0',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'エキスパートシステム',c:2,l:1}};t;
-var t={id:'22e1a731-32ec-17e9-0a09-2f65489f46c7',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'能を',c:1,l:0.5}};t;
-var t={id:'ed9c9fe9-3441-2a13-6877-af638cd26280',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'する',c:5,l:1}};t;
-var t={id:'ae18e157-1d62-4dc5-d72a-4d0f33ffbdd1',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ること',c:1,l:1}};t;
-var t={id:'6b26d96e-30b8-e434-66d2-d9fa26b5c124',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'結論を',c:1,l:0.5}};t;
-var t={id:'cd4e8bf3-72e1-10fd-1a4b-80c93c5cf802',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'すること',c:1,l:1}};t;
-var t={id:'4f24fcf6-5d9c-1030-9e22-b9b818fc47e4',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ic',c:1,l:1}};t;
-var t={id:'9d0bee0a-3fe3-2503-4c5a-5532e9643b47',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:' O',c:1,l:1}};t;
-var t={id:'210644a9-888e-47e3-777e-4881275ffefe',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'fic',c:1,l:1}};t;
-var t={id:'922037cc-0aea-1e66-669e-a00853f4563e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ce',c:1,l:1}};t;
-var t={id:'28d3babc-293e-77cc-e77c-57b48725ecc9',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'パー',c:1,l:1}};t;
-var t={id:'f6d2ac30-f9ca-691c-c71f-0fd6bb79c30a',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ひとつ',c:1,l:1}};t;
-var t={id:'da168136-e7fc-5860-b1fe-fefab1e940a1',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'つの',c:1,l:1}};t;
-var t={id:'2f49fbf8-a000-e957-f796-f113a5539689',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'であ',c:1,l:1}};t;
-var t={id:'f699ee57-bf30-3c43-8ddc-90e12f866c32',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'、C',c:1,l:1}};t;
-var t={id:'e5e75628-9994-10cf-ce91-79426378810e',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'Clippy は',c:1,l:0.5}};t;
-var t={id:'2e3e247c-5be8-0d18-a5e0-3626f5453d90',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'特徴',c:1,l:1}};t;
-var t={id:'d840c8db-489b-305a-4a81-87fcb7e383a3',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'し、それ',c:1,l:0.5}};t;
-var t={id:'8f125c8d-bb1a-f05d-2eb8-6ffbc64bae0c',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'推論',c:2,l:1}};t;
-var t={id:'4076e547-fae8-cc51-0e6d-80354e33e5c7',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'(C',c:1,l:1}};t;
-var t={id:'e60fb117-2f32-6292-f209-24d46335380d',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'し、',c:1,l:0.5}};t;
-var t={id:'59cabbda-54aa-58a6-9c33-4c71f2000d7f',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'を行',c:1,l:0.5}};t;
-var t={id:'8971969a-1374-380a-669c-e2e537ca4b4c',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'い、',c:1,l:0.5}};t;
-var t={id:'83605bc6-be87-41e9-7b91-5e6b5c2ea1c8',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'、そ',c:1,l:0.5}};t;
-var t={id:'0694acd1-be81-9a66-df28-230ec7eda1e3',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'に基づ',c:1,l:0.5}};t;
-var t={id:'e6e78952-3f15-f846-09d3-bee33cff7c17',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'から',c:2,l:1}};t;
-var t={id:'6eb9069d-e3fc-52ce-75f4-ed2b66e3cf74',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'してい',c:1,l:1}};t;
-var t={id:'20b44d82-7117-4c09-c2e0-f2dda99152ad',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'計算知能',c:1,l:1}};t;
-var t={id:'e3c604c5-ecdd-04b3-915d-7893754191f7',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'学習を',c:2,l:0.5}};t;
-var t={id:'0ada9997-4ede-d030-1d1c-ac6f837fc25f',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'こと',c:1,l:1}};t;
-var t={id:'7870b05b-7b87-c544-2715-cd4952915bac',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'としている',c:1,l:1}};t;
-var t={id:'652b1ec4-387f-1af3-d4b1-ae339a40899c',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ズム',c:1,l:1}};t;
-var t={id:'76a9f563-e89c-eb86-d6cc-7f25ef0163b2',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'学習',c:1,l:1}};t;
-var t={id:'c7f6731f-a0bd-e0e0-eb90-fdd127f51639',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'経験',c:1,l:1}};t;
-var t={id:'bd3513ff-8161-0746-55c7-e4ac69b50ad1',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'に基づく',c:1,l:0.5}};t;
-var t={id:'7b00dc83-6ecd-0fde-6ca4-a649d3490994',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'く手法',c:1,l:0.5}};t;
-var t={id:'3ebd54fa-368a-558b-2547-4829aacd50aa',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'であり、',c:1,l:0.5}};t;
-var t={id:'8d780b74-09cc-17f5-d407-a030b1a2e90b',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'記号的AI、',c:1,l:0.5}};t;
-var t={id:'9fe826ae-e728-c368-e5f4-6dcd1c9104e0',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'cr',c:1,l:1}};t;
-var t={id:'cad16ec2-9a5e-f8f8-1df2-2d5d62fc204c',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ff',c:1,l:1}};t;
-var t={id:'3c68eae8-8711-f37e-64de-74c9b7984750',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'AI、',c:1,l:1}};t;
-var t={id:'aabbb042-142b-33ae-b8de-c178103360c2',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'している',c:1,l:1}};t;
-var t={id:'47405278-de6d-6e3b-7ec6-66b38a3248d2',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ネットワーク',c:1,l:1}};t;
-var t={id:'e65df4d9-c304-791e-9dfb-090888b4170a',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'認識',c:1,l:1}};t;
-var t={id:'064e8541-0662-be4b-fe24-c2e2eefaffd9',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'コネクショニズム',c:1,l:1}};t;
-var t={id:'e9545a4e-ab40-18be-a123-5c01dac916d6',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'手法であり、',c:2,l:0.3333333333333333}};t;
-var t={id:'9ff9324c-4f68-515d-51b2-888ac2ee0eba',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'スパ',c:1,l:1}};t;
-var t={id:'ad7a5f97-9e86-ff4d-77b5-f52a813b30bb',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'を適用',c:1,l:0.5}};t;
-var t={id:'d657f609-3a58-926a-e1ad-9f004b7a2609',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'して',c:2,l:1}};t;
-var t={id:'1863dd77-ea84-1fa2-8b2e-0d6f0d0c7328',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'の手法',c:1,l:0.5}};t;
-var t={id:'be83d631-b7c6-ee85-92f4-46d2eab2b10b',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ズムと',c:1,l:0.5}};t;
-var t={id:'bc34df16-f21f-8d94-8c9b-c78654d89a6a',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'れら',c:1,l:1}};t;
-var t={id:'6dff250b-292c-2590-3d3a-59a2bba2eced',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'した',c:1,l:1}};t;
-var t={id:'e4291198-dcaf-9616-dfba-b37b601656dd',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'システムを',c:1,l:0.5}};t;
-var t={id:'05c37062-3d5d-9bd3-5cc5-382ecc15a07c',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'エキスパート',c:1,l:1}};t;
-var t={id:'4673d769-82ab-7654-3023-1970d8e28220',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'の推論',c:1,l:0.5}};t;
-var t={id:'14ebd4f4-a24a-30a8-230f-911a3db71645',type:'2fba8fc1-2b9a-46e0-8ade-455c0bd30637',cDate:'Mon, 23 Sep 2013 15:28:40 GMT',data:{s:'ニューラルネットワーク',c:1,l:1}};t;