Mercurial > hg > Papers > 2016 > tatsuki-prosym
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>
--- 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%