changeset 13:7b39f43e4088

fix english description.
author Kazuma Takeda
date Wed, 15 Feb 2017 17:20:12 +0900
parents 10a1f30eb748
children b2f7835ac00e
files prepaper/finalPre.tex presen/slide.html presen/slide.md presen/slide.pdf.html
diffstat 4 files changed, 38 insertions(+), 496 deletions(-) [+]
line wrap: on
line diff
--- a/prepaper/finalPre.tex	Wed Feb 15 09:28:06 2017 +0900
+++ b/prepaper/finalPre.tex	Wed Feb 15 17:20:12 2017 +0900
@@ -30,22 +30,19 @@
 \twocolumn [
 \maketitle
 \begin{onecolabstract}
-There are some problems to Relational Databases and NoSQLs.
+There are some problems to Relational Database and NoSQL.
 One of them as Impedance mismatch. This problem is cased by a difference between the first normal form of database and the programs.
 There is a problem that NoSQL is unfit for parallel processing.
 
 Laboratory proposes the database Jungle that solves those problems.
-Jungle 
 Jungle does not destroy the tree structure.
 Jungle develops as a scalable database.
 
 The structure of the game like the structure of the web.
-in this thesis.
-
+This paper suggests a method to use as a database of game engine Unity.
 % way to use? how to use?
-This paper suggests a method to use as a database of game engine Unity.
 
-Jungle rewrite C\# programming language by written Java. 
+Jungle rewrite C\# programming language by written Java.  
 
 % まだかけてない...
 \end{onecolabstract}]
--- a/presen/slide.html	Wed Feb 15 09:28:06 2017 +0900
+++ b/presen/slide.html	Wed Feb 15 17:20:12 2017 +0900
@@ -86,7 +86,7 @@
 <!-- === begin markdown block ===
 
       generated by markdown/1.2.0 on Ruby 2.3.3 (2016-11-21) [x86_64-darwin16]
-                on 2017-02-13 20:40:38 +0900 with Markdown engine kramdown (1.13.1)
+                on 2017-02-15 16:56:02 +0900 with Markdown engine kramdown (1.13.1)
                   using options {}
   -->
 
@@ -175,180 +175,19 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="jungleapi">JungleのAPI</h1>
-
-<p>前章ではJungleの概要を記述した。
-本章ではJungleの主なAPIについて紹介する。</p>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="jungle">Jungleの木</h1>
-
-<p>Jungleは複数の木を名前を利用して管理しており、名前により作成・編集を行う。</p>
-
-<pre lang="Java"><code>// Jungleに新しく木を生成する。木の名前が重複した場合、生成に失敗しnullを返す
-JungleTree  createNewTree(string treeName)
-
-// JungleからtreeNameと名前が一致するtreeを取得する。名前が一致するTreeがない場合取得は失敗しnullを返す
-JungleTree  getTreeByName(string treeName)
-
-</code></pre>
-
-<p>以下のコードは、Jungleの木を”TreeName”で生成し取得する。</p>
-
-<pre lang="Java"><code>JungleTree tree = jungle.createNewTree("GameTree");
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="treenode">TreeNode</h1>
-
-<p>Jungleが保持している木は、複数のノードの集合で出来ている。
-ノードは、自身の子のListと属性名と属性値の組でデータを持つ。
-ノードに対するアクセスは、TreeNodeクラスに記述されているAPIを用いて行われる。</p>
-
-<pre lang="Java"><code>// ノードの子供を扱うChildrenオブジェクトを返す
-Children getChildren()
-
-// ノードが保持しているデータを扱うAttribteオブジェクトを返す
-Attribute getAttribute()
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="childrenattribute">ChildrenとAttribute</h1>
-
-<p>Childrenクラスを利用し、ノードの子どもにアクセスする。</p>
-
-<pre lang="Java"><code>// ノードが持っている子どもの個数を返す
-int size()
-
-// ノードが持つ子どもの中から、 変数numで指定された位置にある子ノードを返す
-Either&lt;Error, TreeNode&gt; at(int num)
-</code></pre>
-
-<p>Attributeクラスを利用し、ノードの保持する値にアクセスする。</p>
-
-<pre lang="Java"><code>// ノードからKeyで管理されるValueをobject型で返す
-object get(string key)
-
-// ノードからKeyで管理されるValueをstring型で返す
-string getString(string key)
-</code></pre>
-
+<h1 id="jungledatabase">JungleのDatabase</h1>
 
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="either">Eitherクラス</h1>
-
-<p>Jungleでは例外がある場合、Eitherクラスを用いて行う。</p>
-
-<ul>
-  <li>失敗時はA</li>
-  <li>成功時はB</li>
-</ul>
-
-<p>を包んで返す。
-失敗した場合ははじめからやり直す。
-以下に例を記述する。</p>
-
-<pre lang="C"><code class="language-\#">Either&lt;Error,TreeNode&gt; either = children.at(2);
-if (either.isA()) 
-    return either.a();
-TreeNode child = either.b();
-
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="jungle-1">Jungleのサンプルコード</h1>
-
-<p>Jungleの例を記載する。</p>
-
-<p>以下のコードは、ルートノードの2番目の子どもから、属性名”name”とペアになっている属性値を取得する。</p>
-
-<pre lang="C"><code class="language-\#">JungleTree tree = jungle.getTreeByName("GameTree");
-TreeNode root = tree.getRootNode();
-Children children = root.getChildren();
-Either&lt;Error,TreeNode&gt; either = children.at(2);
-if (either.isA()) 
-    return either.a();
-TreeNode child = either.b();
-Attribute attribute = child.getAttribute();
-string value = attribute.getstring("name");
-
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="jungle-2">Jungleの木の編集</h1>
-
-<p>Jungleの木の編集はJungleTreeEditorクラスを用いて行われる。</p>
-
-<p>JungleTreeEditorクラスには編集を行うために、定義されているAPIを記述する。</p>
-
-<p>また、ノードを指定して編集を行う際にNodePathクラスを用いる。</p>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="nodepath">NodePath</h1>
-
-<p>Jungleでは、木のノードの位置をNodePathクラスを使って表す。</p>
-
-<p>NodePathクラスはルートノードからスタートし、対象のノードまでの経路を、数字を用いて指し示すことで対象のノードの場所を表す。</p>
-
-<p>また、ルートノードは例外として-1と表記される。</p>
+<p>Jungleの構造としては以下の図のようになっている。</p>
 
 <div style="text-align: center;">
- <img src="./images/NodePath.pdf" alt="message" width="400" />
+ <img src="./images/transaction.pdf" alt="message" width="700" />
 </div>
 
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-2">ノードの追加</h1>
-
-<pre lang="C"><code class="language-\#">// 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置子ノードを追加
-Either&lt;Error, JungleTreeEditor&gt; addNewChildAt( NodePath path, int pos)
-// 変数pathで指定した場所にあるノードに、属性名 変数key 属性値 変数valueのペアで値を挿入
-Either&lt;Error, JungleTreeEditor&gt; putAttribute( NodePath path, string key, object value)
-
-// 変数pathで指定した場所にあるノードが持つ、属性名 変数keyとペアで保存されているデータを削除
-Either&lt; Error, JungleTreeEditor&gt; deleteAttribute( NodePath path, string key)
-
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-3">コミット</h1>
-
-<p>編集の最後にTreeに対してコミットを行う。</p>
-
-<pre lang="C"><code class="language-\#">// 木へ行った変更をコミット。自分が編集を行っていた間に、他のJungleTreeEditorクラスによって木が更新されていた場合、コミットは失敗
-Either&lt;Error, JungleTreeEditor&gt; commit()
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-4">ゲームのデータ構造</h1>
+<h1 id="section-2">ゲームのデータ構造</h1>
 
 <p>Jungleはもともと認証管理システムやWeb向けに作られたものである。
 これらはすべて木構造をベースとしている。</p>
@@ -456,7 +295,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="either-1">Eitherのチェック</h1>
+<h1 id="either">Eitherのチェック</h1>
 
 <p>Haskellでは例外処理はモナド内部で行う設計になっている。
 Eitherもその一つである。</p>
@@ -517,7 +356,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-5">例題のゲーム</h1>
+<h1 id="section-3">例題のゲーム</h1>
 
 <p>前章ではJungle-Sharpのどのように実装したかを述べた。</p>
 
@@ -537,17 +376,17 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-6">ゲームデータの種類</h1>
+<h1 id="section-4">ゲームデータの種類</h1>
 
 <p>ゲームのデータにはいくつかの種類が考えられる。</p>
 
-<h2 id="section-7">オブジェクトが単体で持つデータ</h2>
+<h2 id="section-5">オブジェクトが単体で持つデータ</h2>
 
 <p>シーン内に存在するオブジェクトが持つパラメータ。</p>
 
 <p>例えば、プレイヤーのHPや経験値、位置座標などを示す。</p>
 
-<h2 id="section-8">オブジェクト1つで複数持つデータ</h2>
+<h2 id="section-6">オブジェクト1つで複数持つデータ</h2>
 
 <p>プレイヤーが持つアイテムデータなどを示す。</p>
 
@@ -561,7 +400,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-9">データのデータ設計</h1>
+<h1 id="section-7">データのデータ設計</h1>
 
 <p>Jungleには複数の木を持つことができる。</p>
 
@@ -599,7 +438,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="jungle-3">Jungleの改良</h1>
+<h1 id="jungle">Jungleの改良</h1>
 
 <p>前章では例題となるゲームを作成した。
 その上でJungleではデータ型について問題となった。</p>
@@ -629,7 +468,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-10">データを取り出す</h1>
+<h1 id="section-8">データを取り出す</h1>
 
 <p>データを取り出すにはGenericで型を指定する、もしくはas演算子を用いてキャストを行う。
 以下に取り出す例を記述する。</p>
@@ -647,7 +486,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-11">まとめ</h1>
+<h1 id="section-9">まとめ</h1>
 
 <p>本研究の流れは</p>
 
@@ -657,9 +496,9 @@
   <li>問題点の改良</li>
 </ul>
 
-<p>となった。</p>
+<p>である。</p>
 
-<p>Jungle-Sharpの実装ではそれほど難しくはなかった。
+<p>Jungle-Sharpの実装ではJavaと比較的似ている言語であるため、移行する方法を確立した。
 C#版のJungleではJavaに劣らない、もしくはそれ以上のパフォーマンスを出すことが出来た。</p>
 
 <p>実際のゲームに合わせたJungleの拡張を行った。</p>
--- a/presen/slide.md	Wed Feb 15 09:28:06 2017 +0900
+++ b/presen/slide.md	Wed Feb 15 17:20:12 2017 +0900
@@ -67,147 +67,14 @@
 Jungleはcommit logを持ち、それを他のノードやディスクに転送することにより、
 分散構成と永続性を実現する。
 
-# JungleのAPI
-
-前章ではJungleの概要を記述した。
-本章ではJungleの主なAPIについて紹介する。
-
-
-# Jungleの木
-
-Jungleは複数の木を名前を利用して管理しており、名前により作成・編集を行う。
-
-``` Java
-// Jungleに新しく木を生成する。木の名前が重複した場合、生成に失敗しnullを返す
-JungleTree  createNewTree(string treeName)
-
-// JungleからtreeNameと名前が一致するtreeを取得する。名前が一致するTreeがない場合取得は失敗しnullを返す
-JungleTree  getTreeByName(string treeName)
-
-```
-
-以下のコードは、Jungleの木を"TreeName"で生成し取得する。
-
-``` Java
-JungleTree tree = jungle.createNewTree("GameTree");
-```
-
-# TreeNode
-
-Jungleが保持している木は、複数のノードの集合で出来ている。
-ノードは、自身の子のListと属性名と属性値の組でデータを持つ。
-ノードに対するアクセスは、TreeNodeクラスに記述されているAPIを用いて行われる。
-
-``` Java
-// ノードの子供を扱うChildrenオブジェクトを返す
-Children getChildren()
-
-// ノードが保持しているデータを扱うAttribteオブジェクトを返す
-Attribute getAttribute()
-```
-
-# ChildrenとAttribute
-
-Childrenクラスを利用し、ノードの子どもにアクセスする。
-
-``` Java
-// ノードが持っている子どもの個数を返す
-int size()
-
-// ノードが持つ子どもの中から、 変数numで指定された位置にある子ノードを返す
-Either<Error, TreeNode> at(int num)
-```
-
-Attributeクラスを利用し、ノードの保持する値にアクセスする。
-
-``` Java
-// ノードからKeyで管理されるValueをobject型で返す
-object get(string key)
+# JungleのDatabase
 
-// ノードからKeyで管理されるValueをstring型で返す
-string getString(string key)
-```
-
-# Eitherクラス
-
-Jungleでは例外がある場合、Eitherクラスを用いて行う。
-
-- 失敗時はA
-- 成功時はB
-
-を包んで返す。
-失敗した場合ははじめからやり直す。
-以下に例を記述する。
-
-``` C\#
-Either<Error,TreeNode> either = children.at(2);
-if (either.isA()) 
-    return either.a();
-TreeNode child = either.b();
-
-```
-
-# Jungleのサンプルコード
-
-Jungleの例を記載する。
-
-以下のコードは、ルートノードの2番目の子どもから、属性名"name"とペアになっている属性値を取得する。
-
-``` C\#
-JungleTree tree = jungle.getTreeByName("GameTree");
-TreeNode root = tree.getRootNode();
-Children children = root.getChildren();
-Either<Error,TreeNode> either = children.at(2);
-if (either.isA()) 
-    return either.a();
-TreeNode child = either.b();
-Attribute attribute = child.getAttribute();
-string value = attribute.getstring("name");
-
-```
-
-# Jungleの木の編集
-
-Jungleの木の編集はJungleTreeEditorクラスを用いて行われる。
-
-JungleTreeEditorクラスには編集を行うために、定義されているAPIを記述する。
-
-また、ノードを指定して編集を行う際にNodePathクラスを用いる。
-
-# NodePath
-
-Jungleでは、木のノードの位置をNodePathクラスを使って表す。
-
-NodePathクラスはルートノードからスタートし、対象のノードまでの経路を、数字を用いて指し示すことで対象のノードの場所を表す。
-
-また、ルートノードは例外として-1と表記される。
+Jungleの構造としては以下の図のようになっている。
 
 <div style="text-align: center;">
- <img src="./images/NodePath.pdf" alt="message" width="400">
+ <img src="./images/transaction.pdf" alt="message" width="700">
 </div>
 
-# ノードの追加
-
-``` C\#
-// 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置子ノードを追加
-Either<Error, JungleTreeEditor> addNewChildAt( NodePath path, int pos)
-// 変数pathで指定した場所にあるノードに、属性名 変数key 属性値 変数valueのペアで値を挿入
-Either<Error, JungleTreeEditor> putAttribute( NodePath path, string key, object value)
-
-// 変数pathで指定した場所にあるノードが持つ、属性名 変数keyとペアで保存されているデータを削除
-Either< Error, JungleTreeEditor> deleteAttribute( NodePath path, string key)
-
-```
-
-# コミット
-
-編集の最後にTreeに対してコミットを行う。
-
-``` C\#
-// 木へ行った変更をコミット。自分が編集を行っていた間に、他のJungleTreeEditorクラスによって木が更新されていた場合、コミットは失敗
-Either<Error, JungleTreeEditor> commit()
-```
-
 # ゲームのデータ構造
 
 Jungleはもともと認証管理システムやWeb向けに作られたものである。
--- a/presen/slide.pdf.html	Wed Feb 15 09:28:06 2017 +0900
+++ b/presen/slide.pdf.html	Wed Feb 15 17:20:12 2017 +0900
@@ -70,7 +70,7 @@
 <!-- === begin markdown block ===
 
       generated by markdown/1.2.0 on Ruby 2.3.3 (2016-11-21) [x86_64-darwin16]
-                on 2017-02-13 20:40:38 +0900 with Markdown engine kramdown (1.13.1)
+                on 2017-02-15 16:56:02 +0900 with Markdown engine kramdown (1.13.1)
                   using options {}
   -->
 
@@ -159,180 +159,19 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="jungleapi">JungleのAPI</h1>
-
-<p>前章ではJungleの概要を記述した。
-本章ではJungleの主なAPIについて紹介する。</p>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="jungle">Jungleの木</h1>
-
-<p>Jungleは複数の木を名前を利用して管理しており、名前により作成・編集を行う。</p>
-
-<pre lang="Java"><code>// Jungleに新しく木を生成する。木の名前が重複した場合、生成に失敗しnullを返す
-JungleTree  createNewTree(string treeName)
-
-// JungleからtreeNameと名前が一致するtreeを取得する。名前が一致するTreeがない場合取得は失敗しnullを返す
-JungleTree  getTreeByName(string treeName)
-
-</code></pre>
-
-<p>以下のコードは、Jungleの木を”TreeName”で生成し取得する。</p>
-
-<pre lang="Java"><code>JungleTree tree = jungle.createNewTree("GameTree");
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="treenode">TreeNode</h1>
-
-<p>Jungleが保持している木は、複数のノードの集合で出来ている。
-ノードは、自身の子のListと属性名と属性値の組でデータを持つ。
-ノードに対するアクセスは、TreeNodeクラスに記述されているAPIを用いて行われる。</p>
-
-<pre lang="Java"><code>// ノードの子供を扱うChildrenオブジェクトを返す
-Children getChildren()
-
-// ノードが保持しているデータを扱うAttribteオブジェクトを返す
-Attribute getAttribute()
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="childrenattribute">ChildrenとAttribute</h1>
-
-<p>Childrenクラスを利用し、ノードの子どもにアクセスする。</p>
-
-<pre lang="Java"><code>// ノードが持っている子どもの個数を返す
-int size()
-
-// ノードが持つ子どもの中から、 変数numで指定された位置にある子ノードを返す
-Either&lt;Error, TreeNode&gt; at(int num)
-</code></pre>
-
-<p>Attributeクラスを利用し、ノードの保持する値にアクセスする。</p>
-
-<pre lang="Java"><code>// ノードからKeyで管理されるValueをobject型で返す
-object get(string key)
-
-// ノードからKeyで管理されるValueをstring型で返す
-string getString(string key)
-</code></pre>
-
+<h1 id="jungledatabase">JungleのDatabase</h1>
 
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="either">Eitherクラス</h1>
-
-<p>Jungleでは例外がある場合、Eitherクラスを用いて行う。</p>
-
-<ul>
-  <li>失敗時はA</li>
-  <li>成功時はB</li>
-</ul>
-
-<p>を包んで返す。
-失敗した場合ははじめからやり直す。
-以下に例を記述する。</p>
-
-<pre lang="C"><code class="language-\#">Either&lt;Error,TreeNode&gt; either = children.at(2);
-if (either.isA()) 
-    return either.a();
-TreeNode child = either.b();
-
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="jungle-1">Jungleのサンプルコード</h1>
-
-<p>Jungleの例を記載する。</p>
-
-<p>以下のコードは、ルートノードの2番目の子どもから、属性名”name”とペアになっている属性値を取得する。</p>
-
-<pre lang="C"><code class="language-\#">JungleTree tree = jungle.getTreeByName("GameTree");
-TreeNode root = tree.getRootNode();
-Children children = root.getChildren();
-Either&lt;Error,TreeNode&gt; either = children.at(2);
-if (either.isA()) 
-    return either.a();
-TreeNode child = either.b();
-Attribute attribute = child.getAttribute();
-string value = attribute.getstring("name");
-
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="jungle-2">Jungleの木の編集</h1>
-
-<p>Jungleの木の編集はJungleTreeEditorクラスを用いて行われる。</p>
-
-<p>JungleTreeEditorクラスには編集を行うために、定義されているAPIを記述する。</p>
-
-<p>また、ノードを指定して編集を行う際にNodePathクラスを用いる。</p>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="nodepath">NodePath</h1>
-
-<p>Jungleでは、木のノードの位置をNodePathクラスを使って表す。</p>
-
-<p>NodePathクラスはルートノードからスタートし、対象のノードまでの経路を、数字を用いて指し示すことで対象のノードの場所を表す。</p>
-
-<p>また、ルートノードは例外として-1と表記される。</p>
+<p>Jungleの構造としては以下の図のようになっている。</p>
 
 <div style="text-align: center;">
- <img src="./images/NodePath.pdf" alt="message" width="400" />
+ <img src="./images/transaction.pdf" alt="message" width="700" />
 </div>
 
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-2">ノードの追加</h1>
-
-<pre lang="C"><code class="language-\#">// 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置子ノードを追加
-Either&lt;Error, JungleTreeEditor&gt; addNewChildAt( NodePath path, int pos)
-// 変数pathで指定した場所にあるノードに、属性名 変数key 属性値 変数valueのペアで値を挿入
-Either&lt;Error, JungleTreeEditor&gt; putAttribute( NodePath path, string key, object value)
-
-// 変数pathで指定した場所にあるノードが持つ、属性名 変数keyとペアで保存されているデータを削除
-Either&lt; Error, JungleTreeEditor&gt; deleteAttribute( NodePath path, string key)
-
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-3">コミット</h1>
-
-<p>編集の最後にTreeに対してコミットを行う。</p>
-
-<pre lang="C"><code class="language-\#">// 木へ行った変更をコミット。自分が編集を行っていた間に、他のJungleTreeEditorクラスによって木が更新されていた場合、コミットは失敗
-Either&lt;Error, JungleTreeEditor&gt; commit()
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-4">ゲームのデータ構造</h1>
+<h1 id="section-2">ゲームのデータ構造</h1>
 
 <p>Jungleはもともと認証管理システムやWeb向けに作られたものである。
 これらはすべて木構造をベースとしている。</p>
@@ -440,7 +279,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="either-1">Eitherのチェック</h1>
+<h1 id="either">Eitherのチェック</h1>
 
 <p>Haskellでは例外処理はモナド内部で行う設計になっている。
 Eitherもその一つである。</p>
@@ -501,7 +340,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-5">例題のゲーム</h1>
+<h1 id="section-3">例題のゲーム</h1>
 
 <p>前章ではJungle-Sharpのどのように実装したかを述べた。</p>
 
@@ -521,17 +360,17 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-6">ゲームデータの種類</h1>
+<h1 id="section-4">ゲームデータの種類</h1>
 
 <p>ゲームのデータにはいくつかの種類が考えられる。</p>
 
-<h2 id="section-7">オブジェクトが単体で持つデータ</h2>
+<h2 id="section-5">オブジェクトが単体で持つデータ</h2>
 
 <p>シーン内に存在するオブジェクトが持つパラメータ。</p>
 
 <p>例えば、プレイヤーのHPや経験値、位置座標などを示す。</p>
 
-<h2 id="section-8">オブジェクト1つで複数持つデータ</h2>
+<h2 id="section-6">オブジェクト1つで複数持つデータ</h2>
 
 <p>プレイヤーが持つアイテムデータなどを示す。</p>
 
@@ -545,7 +384,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-9">データのデータ設計</h1>
+<h1 id="section-7">データのデータ設計</h1>
 
 <p>Jungleには複数の木を持つことができる。</p>
 
@@ -583,7 +422,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="jungle-3">Jungleの改良</h1>
+<h1 id="jungle">Jungleの改良</h1>
 
 <p>前章では例題となるゲームを作成した。
 その上でJungleではデータ型について問題となった。</p>
@@ -613,7 +452,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-10">データを取り出す</h1>
+<h1 id="section-8">データを取り出す</h1>
 
 <p>データを取り出すにはGenericで型を指定する、もしくはas演算子を用いてキャストを行う。
 以下に取り出す例を記述する。</p>
@@ -631,7 +470,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-11">まとめ</h1>
+<h1 id="section-9">まとめ</h1>
 
 <p>本研究の流れは</p>
 
@@ -641,9 +480,9 @@
   <li>問題点の改良</li>
 </ul>
 
-<p>となった。</p>
+<p>である。</p>
 
-<p>Jungle-Sharpの実装ではそれほど難しくはなかった。
+<p>Jungle-Sharpの実装ではJavaと比較的似ている言語であるため、移行する方法を確立した。
 C#版のJungleではJavaに劣らない、もしくはそれ以上のパフォーマンスを出すことが出来た。</p>
 
 <p>実際のゲームに合わせたJungleの拡張を行った。</p>