changeset 2:031742e63cf2

add image
author tatsuki
date Wed, 09 Nov 2016 20:16:21 +0900
parents 0d653b7c0706
children 9fdb28e064df
files bbs.tex images/buildingNow.graffle images/buildingNow.pdf jungle.tex main.tex
diffstat 5 files changed, 314 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/bbs.tex	Wed Nov 09 17:34:11 2016 +0900
+++ b/bbs.tex	Wed Nov 09 20:16:21 2016 +0900
@@ -1,2 +1,7 @@
 \section{BBS}
-bbsについて書く
+BBSはJungleデータベースの木構造をブラウザ上で可視化するためのアプリケーションである。
+ブラウザ上からJungleを直感的に操作するために実装した
+フロントエンドには組み込みウェブサーバーであるJettyを使用した。
+
+
+\section{BBSを使った木の編集}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/images/buildingNow.graffle	Wed Nov 09 20:16:21 2016 +0900
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>139.16.0.171715</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2016-11-09 06:04:42 +0000</string>
+	<key>Creator</key>
+	<string>sister_clown</string>
+	<key>DisplayScale</key>
+	<string>1.000 cm = 1.000 cm</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{117, 144}, {177, 144}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'8f\'80\'94\'f5\'92\'86}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>レイヤー 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2016-11-09 06:04:46 +0000</string>
+	<key>Modifier</key>
+	<string>sister_clown</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>キャンバス 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array/>
+		<key>Frame</key>
+		<string>{{635, 232}, {693, 925}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>キャンバス 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file images/buildingNow.pdf has changed
--- a/jungle.tex	Wed Nov 09 17:34:11 2016 +0900
+++ b/jungle.tex	Wed Nov 09 20:16:21 2016 +0900
@@ -1,7 +1,63 @@
 \section{非破壊的木構造データベースJungle}
 \subsection{Jungleのデータ構造}
 Jungleは複数の木の集合からなり、木は複数のノードの集合で出来ている。
-ノードは自身の子のListと属性名と属性値の組を持つ。
+ノードは自身の子のListと属性名と属性値の組を持ち、ノードの位置はNodePathで表される。
 Jungleは非破壊的木構造であるためデータの編集は一度生成した木を上書きせず、ルートから編集を行うノードまでコピーを行い新しく木構造を構築することで行う。
 そのため、読み込みと書き込みを同時に行うことができる。
 また、本研究室で開発を行っている分散フレームワークAliceを用いて作られた分散木構造データベースJungle。Unityに対応したC\#版Jungleもある。
+
+\subsection{木の編集}
+Jungleの木の編集はJungleTreeEditorを用いて行われる。
+JungleTreeEditorには表\ref{editor}で定義されているAPIが実装されている。
+
+\begin{table}[htb]
+\begin{center}
+\caption{Editorに実装されているAPI}
+\begin{tabular}{|l|l|}        \hline
+addNewChildAt(      &pathで指定した場所にある        \\ 
+NodePath path,      &Nodeの子供のpos番目にNodeを     \\ 
+int pos)            &追加する                        \\ \hline
+deleteChildAt(      &pathで指定した場所にある        \\ 
+NodePath path,      &Nodeのpos番目の子ノードを       \\ 
+int pos)            &削除する                        \\ \hline
+putAttribute(       &pathで指定した場所にある        \\ 
+NodePath path,      &Nodeに属性名 key                \\ 
+String key,         &属性値 valueのペアで            \\ 
+ByteBuffer value)   &値を挿入する                    \\ \hline 
+deleteAttribute(    &pathで指定した場所にある        \\
+NodePath path,      &Nodeが持つ属性名keyとペアで     \\ 
+String key)         &保存されているデータを削除する  \\ \hline
+moveChild(          &pathで指定された位置にある      \\
+NodePath path       &NodeのchildNum番目の            \\
+,int childNum,      &childをmoveの方向に移動させる   \\
+String move)        &                                \\ \hline   
+pushPop()           & rootNodeの上に                 \\
+                    & Nodeを追加する                 \\ \hline
+\end{tabular}
+\label{editor}
+\end{center}
+\end{table}
+
+
+
+以下にJungleTreeEditorを使ったサンプルコードを記述する
+
+\begin{lstlisting}[frame=lrbt,numbers=left,label=editorCode]
+JungleTreeEditor editor = tree.getTreeEditor();
+DefaultNodePath root = new DefaultNodePath();
+Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0);
+if (either.isA()) {
+  throw new IllegalStateException();
+}
+editor = either.b();
+editor.success();
+\end{lstlisting}
+
+\begin{enumerate}
+\item tree.getEditor(e)木からJungleTreeEditorを取得する 
+\item 次に変更するNodeの場所を指すNodePathを作成する
+\item editor.addNewChildAtでrootの子供の0番目にNodeを追加する
+\item 
+\item 
+\item 
+\end{enumerate}
--- a/main.tex	Wed Nov 09 17:34:11 2016 +0900
+++ b/main.tex	Wed Nov 09 20:16:21 2016 +0900
@@ -35,14 +35,12 @@
 \affiliate{PROSYM}{プログラミング・シンポジウム幹事団}
 
 \author{金川 竜己}{Kanagawa Tatsuki}{IPSJ}[k158585@ie.u-ryukyu.ac.jp]
-\author{プロシン 花子}{Hiroki MIZUNO}{PROSYM}[hanako@prosym.ipsj.or.jp]
+\author{武田和馬}{Hiroki MIZUNO}{PROSYM}[hanako@prosym.ipsj.or.jp]
+\author{河野真治}{Hiroki MIZUNO}{PROSYM}[hanako@prosym.ipsj.or.jp]
 
 % はじめに
 \input{abst.tex}
 
-\begin{jkeyword}
-\end{jkeyword}
-
 \maketitle
 
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%