• 検索結果がありません。

Wikiで作成するWiki編集インタフェース

N/A
N/A
Protected

Academic year: 2021

シェア "Wikiで作成するWiki編集インタフェース"

Copied!
40
0
0

読み込み中.... (全文を見る)

全文

(1)

平成19年度卒業論文

Wiki

で作成する

Wiki

編集インタフェース

情報通信工学科 情報通信システム学講座

0410033 奥村 俊也

指導教員 寺田 実 准教授

提出日 2008年 1月31日

(2)

概要

目的

Wikiは、通常、誰でも、ネットワークがあればどこからでも文書の編集ができ、グループウェ ア等、様々な用途に使用されるようになった。しかし、機能が増えると共に、編集に慣れていな いユーザが気軽に編集できず、失敗して編集してしまうとWikiのページ構造自体が無意識のうち に破壊されてしまう恐れがある。また、編集能力が高いユーザが編集する際も、些細な編集や情 報の追加だけ行いたい場合に1つのページにつき1つの大きな文書から編集しなければならない ため手間がかかってしまう。 本研究では、そのような問題点を解決する新しいWikiクローンを開発する。編集に慣れていな いユーザを区別し、通常の編集ページとは異なったインタフェースを与える。簡易編集が可能な インタフェース上では些細な編集、情報の追加等が編集に慣れていないユーザでも気軽にできる ようなシステムを開発する。

方法

本研究では、編集が煩雑になってしまうという既存Wikiの問題点を解決するために、多様な ユーザに対して適当な編集インタフェースを提供できる新しいWikiを開発する。また、その機能 から有用性の検討、今後の課題の考察などを行う。

結論

本研究で開発したWikiを試用、もしくは独自機能の説明を受けた協力者らからは、概ね便利な システムだという感想を頂いた。既存Wikiではあまりを編集を行わない人たちでも、本システム は気軽に編集することができるだろうということが分かった。しかし、まだWeb上で不特定多数 のユーザを対象に使用するWikiとしては機能が少ないことも実感した。ユーザビリティを向上さ せ、既存Wikiの長所をもっと本システムに取り込むことができれば、より有用性の高いWikiが 開発できるのではないかと考えられる。

(3)

目 次

1章 序論 5 1.1 研究の背景 . . . . 5 1.2 関連研究 - Wiki-Templates . . . . 5 1.2.1 Wiki-Templatesの目的 . . . . 5 1.2.2 Wiki-Templatesの機能 . . . . 6 1.3 関連研究 - YagiWiki . . . . 8 1.4 目的 . . . . 8 1.4.1 高自由度かつ簡易な編集 . . . . 8 1.4.2 Wikiページを編集しやすくするWikiシステムの作成 . . . . 9 第2章 提案手法 10 2.1 ユーザの分割 . . . . 10 2.2 ページ編集の分割 . . . . 11 2.3 Wiki-Templatesとの比較 . . . . 12 2.3.1 Wiki-Templatesとの比較 . . . . 12 2.3.2 実装する機能 . . . . 12 第3章 システム概要 13 3.1 ユーザ区分 . . . . 13 3.2 ページ構成 . . . . 13 3.3 ユーザ区分と編集ページの対応 . . . . 16 3.4 ファイル構成 . . . . 16 3.5 本システムの持つ機能 . . . . 17 3.5.1 閲覧ページの表示. . . . 17 3.5.2 構造編集ページの表示/編集 . . . . 18 3.5.3 内容編集ページの表示/編集 . . . . 19 3.5.4 Wikiマークアップ構文. . . . 21 3.5.5 新規ページの作成. . . . 24 3.5.6 ページの削除 . . . . 24 3.5.7 ボタンクリックでのWiki構文の簡易入力 . . . . 25 3.5.8 入力フィールドのID値 . . . . 26 3.5.9 入力フィールドのID値が削除された場合の警告 . . . . 28 3.5.10 入力フィールド付表組みの行追加リンク . . . . 29 第4章 本研究の利用場面 31

(4)

4.3 その他 . . . . 32 第5章 評価 33 5.1 評価 . . . . 33 5.1.1 評価内容. . . . 33 5.1.2 評価結果. . . . 33 5.1.3 提案された使用例. . . . 33 5.2 考察 . . . . 34 第6章 結論 35 6.1 結果 . . . . 35 6.2 今後の課題 . . . . 35 6.2.1 ユーザ登録制の導入 . . . . 35 6.2.2 構造編集ページの編集支援 . . . . 36 参考文献 39

(5)

図 目 次

1.1 学生がWikiページを編集するインタフェース . . . . 6 1.2 テンプレートの編集画面 . . . . 7 1.3 テンプレートのソースコード. . . . 7 3.1 閲覧ページ . . . . 14 3.2 内容編集ページ . . . . 15 3.3 構造編集ページ . . . . 15 3.4 ファイル構成 . . . . 16 3.5 Wiki内ページへのリンク . . . . 17 3.6 閲覧ページの表示 . . . . 18 3.7 構造編集ページへのリンク . . . . 18 3.8 構造編集ページにおける編集. . . . 19 3.9 構造編集ページの表示、編集. . . . 19 3.10 内容編集ページへのリンク . . . . 20 3.11 内容編集ページにおける編集. . . . 20 3.12 内容編集ページの表示、編集. . . . 21 3.13 内容編集時の入力フォーム . . . . 22 3.14 新規ページの作成 . . . . 24 3.15 ページの削除 . . . . 25 3.16 Wiki構文の簡易入力 . . . . 26 3.17 入力フィールドのID値と[ページ名] co.txtの対応 . . . . 27 3.18 IDが削除された場合の警告 . . . . 29 3.19 行追加リンクのクリック . . . . 30 3.20 行追加リンク . . . . 30

(6)

1

章 序論

1.1

研究の背景

Wikiシステムとは、Webブラウザからサーバ上の文書を編集するシステムである。通常、誰で も、Web環境があればどこからでも閲覧、編集が可能であり、近年それを利用して様々な用途に 使用されるようになった。複数のユーザが編集できることから共同作業で文書を作成するツール として使用されたり、どこからでも編集が可能であるという点を用いて、個人的なメモとして使 用されることも多い。 しかし、Wikiシステムの欠点として、編集が煩雑になりやすいという点があげられる。ここで、 Wiki閲覧者にはWebブラウザやインタフェースでの操作に長けた編集能力の高いユーザから、基 本的に閲覧が主でWiki編集などはあまり行わない、編集に不慣れなユーザがいることに着目する。 編集経験の少ないユーザも、特定のWikiコンテンツにおける重要な情報を所持している可能性 もあるため、編集する場合を考える。しかし、本来のWikiページの編集というものは、ページの 内容量に比例した大きさの文書を変更、加筆、削除することであり、編集に不慣れなユーザがそ のようなことを行うことは非常に難しい。もしそのようなユーザがページの編集を行って失敗し てしまった場合、そのページの構成自体が無意識のうちに破壊、改変されてしまう可能性が発生 する。よって、データ追記や変更のみの場合は、編集ユーザ側の自由度は低い方が望ましいと考 えることができる。 一方で、ページ構造の編集における自由度の高さも重要になってくる。編集能力の高いユーザ はページ構造を編集することになるが、これは、既存Wiki以上に自由度を高く保つ必要がある。

1.2

関連研究

- Wiki-Templates

前述の欠点を補うことを目的としたWikiシステムであるWiki-Templates[1]を紹介する。

1.2.1

Wiki-Templates

の目的

ハーゲン通信制大学では、Wikiシステムを使用して学生に複数の文献を要約、整理させること を行った。図書データとして存在している研究文献を予めカテゴライズして文献要約ページとし て貯蔵しておく。そして、文献要約ページを学生が閲覧し、そこで得た情報をWikiコンテンツに 入力する。(図1.1)入力する項目は、文献内で言及された問題、文献内でのその問題に対する解答 などであり、セクションが複数存在している。セクションごと指定された場所に文章を入力する が、その際に編集する文書はそのページ自体を構成しているものであるため、ページ全体が編集 できてしまう。 実験結果によると、残念ながら、このWikiシステムは役立っていると断言することはできな かったようである。というのも、学生側は提供されたシステムがどのような構造なのかを確実に 理解していなかった事に起因している。Wikiシステムには予め、そのWikiシステム専用のマー

(7)

図1.1: 学生がWikiページを編集するインタフェース クアップ言語が使われている。これは、確かにページ作成者である教師には非常に有意ではある が、編集者である学生にはより複雑なものとして見えてしまい、どの場所を編集すればいいのか が分かりにくくなってしまう。また、それによりセクション自体を誤って削除してしまう場面も 見られた。つまり、ページの構造が意図せずに変化してしまったのである。 これらの問題点を解決するためにWiki-Templatesというものが開発された。

1.2.2

Wiki-Templates

の機能

Wiki-Templatesは、2つの編集モードから成る。前述と同じ例を用いると、ページ作成側の教 師がテンプレートを作成する。これは、1セクションごとに入力フィールドを設置していき、ペー ジの構造を定めるものである。(図1.2)このテンプレートによって学生が編集するページが生成さ れる。今までの編集画面(図1.1)では1ページあたりの文書を1つのフォーム内で編集を行ってい たが、Wiki-Templatesにおける学生編集ページは、セクションに対応する与えられた入力フィー ルドに加筆するだけで内容が編集でき、作業が非常に簡単である。なお、教師がテンプレートを 作成する時に書くソースコードは図1.3のような独自言語である。 この機能によって、学生がどこを編集すればいいのかが即座に分かり、セクションが誤って削 除されてしまうようなこともなくなる。Wikiページを編集するにあたり大きな欠点であったペー ジ構造の意図しない変化を防ぐことができるのだ。

(8)

図1.2: テンプレートの編集画面

テンプレートのソースコード

³

<box>

!!Bibliographic Data

|Author: | <wikiTextInput id="author" />| |Title: | <wikiTextInput id="/pageTitle" />| |In: | <wikiTextInput id="volume" />|

|Place: | <wikiTextInput id="place" />| |Year: | <wikiTextInput id="year" />| |Pages: | <wikiTextInput id="pages" />| |URL: | <wikiTextInput id="url" />| !!Summary

|Research Questions: | <wikiTextInput lines="8" id="research Questions" />|

|Research Methods: | <wikiTextInput lines="8" id="research Methods" />|

|Results: | <wikiTextInput lines="8" id="research Results" />|

<submitButton /><cancelButton /> </box>

µ ´

(9)

1.3

関連研究

- YagiWiki

YagiWiki[2]は、Wikiのコンテンツやセクションを分割して管理、編集を行うWikiシステム である。ページの構造と内容を同時に編集することによる編集の煩雑さを解決する手法として、 YagiWikiでは内容にあたるコンテンツを細かく分割し、そのコンテンツ毎に移動をすることによ りページ構造を編集する、という方法を行っている。データ追記や変更のみを行う場合には1つ のコンテンツを新しく作成したり、細かくなっているコンテンツ内を編集するだけでよい。ペー ジ構造の編集も、コンテンツ自体を移動するという視覚的で分かりやすいインタフェースになっ ており、自由度が高い。 YagiWikiでは個人的なメモ帳や情報をまとめるサイトを主な用途として考えている。それに対 して、本研究ではローカルではなくWeb上に設置して使用することを前提として開発する。様々 なユーザが存在することを考慮すると、ページ構造の編集はより制限を加え、編集に不慣れなユー ザには編集できないようにすることでより運営の安定感を向上させるようなインタフェースを考 える。

1.4

目的

1.4.1

高自由度かつ簡易な編集

このWiki-Templatesのシステムは、編集が煩雑であることによる編集のしにくさと、誤編集に よる意図しないページ構造の変化、という既存Wikiシステムの最大の欠点を完全に解決してお り、本研究の目的に合致する。セクションごとに入力フィールドを設け、自由度を制限させるイ ンタフェースであり、編集に不慣れなユーザでも非常に容易に編集することが可能である。1セク ションごとに入力フィールドが設けられている他は閲覧時とほとんど同じであるため、ユーザが 編集した場所が即座に特定でき、編集の効率化が図れる。 そればかりでなく、編集能力が多少低くても気軽に編集できるインタフェースであることにより、 編集回数の増加によるWikiコンテンツの活発化 編集の質の向上によるWikiコンテンツ全体の内容の充実 が期待される。 しかし、Wiki-Templatesにおいて、ページ構造の編集はテンプレートを編集することで行うが、 そのページを作成する人のみが編集可能である。これではWikiシステム全体の自由度は残念なこ とに保たれていないと言える。 前述の例を挙げると、テンプレートを作成できるのはページ作成者であり、Wikiシステムの管 理人でもある教師のみである。その結果、一度データを入力した後は、一般ユーザはデータの更 新を行うことしか出来なくなってしまう。新しいセクションを追加したり、セクション内に複数の データを更に追加したり、といった追加機能が制限されてしまうことが考えられる。 それを踏まえて、本研究ではWiki-Templatesの用途を拡大する形でインタフェースを開発す る。Wikiシステム全体の自由度は保ちつつ、各々の編集ユーザに対して適当な自由度の編集イン タフェースを提供するシステムを考えていく。

(10)

1.4.2

Wiki

ページを編集しやすくする Wiki システムの作成

現在では、様々な用途に合わせて機能を拡張し多くの種類のWikiクローンと呼ばれるものが開 発されている。本研究ではWiki-Templatesのシステムを用い、かつ、ユーザの編集能力に対応し た編集が可能なWikiクローンの開発を行う。 ユーザを編集能力の高いユーザと編集に不慣れなユーザに分け、それぞれに異なるWiki編集イ ンタフェースの提供を行う。不慣れなユーザには、Wiki-Templatesで実装されたような、編集が より簡単になるインタフェースを提供し、その際に提供されるシステムは、編集能力の高いユー ザがWikiシステムを用いて作成される。 このようにして、Wiki-Templatesにおける欠点を解決する機能を実装し、どちらのユーザに対 しても満足ができる編集が可能なシステムを持ったWikiを作成する。

(11)

2

章 提案手法

2.1

ユーザの分割

前章で述べた通り、Wikiページを編集するユーザは編集能力の高いユーザから低いユーザまで 多種多様である。本研究では、ユーザをまず以下の3段階に分割して考えた。 特定のWikiコンテンツに対し新規性のある情報を所持 かつ編集能力の高いユーザ 現在のWikiシステムにおいて最も頻繁に編集を行っていると思われるユーザ。極論を述べてし まうと、既存のWikiシステムではこのユーザ以外が編集しづらいものになっている。 情報を所持、かつ編集に不慣れなユーザ 編集しようとするが編集自体が前章で述べた通り煩雑であるため、作業を断念してしまう場合 が十分考えられる。 情報は所持していないが編集能力の高いユーザ 高い編集能力を持ってはいるが、それを用いて編集を行う機会が少ない。 情報を所持せず、かつ編集に不慣れなユーザ 編集は行えないが、上記のユーザが編集したページを閲覧するユーザであり、最も数が多いと 思われる。 この3段階のユーザごとに別の編集インタフェースを提供することを考えた。Wikiページの編 集における自由度の制限を強くすればするほど編集の煩雑さは減少するということを踏まえ、編 集ユーザのレベルによって編集インタフェースの自由度の制限を変化させる。これにより、各々の ユーザへの適当な編集インタフェースの提供が可能になり、結果として編集するユーザ層の拡大 を見込むことができる。

(12)

2.2

ページ編集の分割

どのような形で編集の自由度制限の多段化を行うかが本研究を具体化する上で非常に重要であ る。ここで、Wikiページを編集する場合には大きく分けて2種類の編集があることを考慮する。 ページ内容の加筆、変更 Wikiコンテンツ内の情報になる部分の編集。ユーザが情報を所持しており、Wikiコンテンツに その情報を加筆、変更する場合はこの編集に該当する。Wikiページを編集するというのは、一般 的にはこちらを指すことが多い。 ページ構造の編集 ページのセクション構造自体の編集。セクションの追加や情報の整理等、ページの可読性を向 上させることを主な目的とした編集であり、一般的にはページの作成者が行うことになる。 既存のWikiシステムではこのような2種類の編集を同じ入力フォームで行うために、ページ内 容の加筆、変更のみを行おうとしても誤ってページ構造を編集してしまうということが発生して しまう。 そこで、本研究ではこの2つの編集に対して別のインタフェースを提供することを考えた。ペー ジ内容の加筆、変更のみを行う場合は編集の自由度を下げ、煩雑さを除く。ページ構造を編集する 際には、1ページあたりの文書量が内容部分が別になったことで減り、編集に慣れたユーザにとっ ても、編集がより簡易になっている。 2.1で述べたユーザの分割を例にあげると、 情報を所持、かつ編集能力の高いユーザ 2つの用意されたインタフェースを編集の種類に応じて使い分けることが可能。 情報を所持、かつ編集に不慣れなユーザ 編集に不慣れであっても、ページ内容の編集だけであれば自由度が制限されているので非常に 簡単に編集作業が可能。 情報は所持していないが編集能力の高いユーザ 可読性を高めるため、ページのセクション構造のみを編集することが可能。 このように、全てのユーザが満足する編集を可能にするシステムを提案する。

(13)

2.3

Wiki-Templates

との比較

1章で述べた関連研究のWiki-Templatesとの比較を行い、本システムにおいて実装するべき機 能を考察する。

2.3.1

Wiki-Templates

との比較

Wiki-Templatesにおいて内容を編集するシステムは、本研究の目的に沿っているものである。 よって、ページ内容を編集する際はWiki-Templatesのシステムを参考にして実装を行う。 ページ構造の編集を行うシステムは、Wiki-Templatesにおける欠点として、自由度が制限され てしまうことが挙げられる。それは、ページ構造の編集はそのページを作成する人のみが編集可 能であることに起因する。それにより、ページを作成した以外の一般ユーザは、データの更新は 容易にできても、新しいデータの追記、セクションの追加などが難しくなってしまう。

2.3.2

実装する機能

これらの問題点を改善するため、本システムでは機能を変更、追加して、高自由度かつ編集の 簡単なインタフェースを作成する。 基本的にはWikiページの編集に慣れている全てのユーザがページ構造の編集を行えるようにす る。それにより、追記機能が非常に自由になるだけでなく、ページ作成ユーザ以外の編集能力の 高いユーザでも構造の編集ができ、より質の高いページになることが期待される。 ページ構造の編集には、独自言語ではなく既存のWikiマークアップ構文を用い、テンプレート 自体をWikiシステムで作成することを提案する。編集自体がWikiページを編集しているのとほ ぼ同じ感覚であるため、システムも理解しやすく、編集に慣れているユーザが編集すれば編集効 率が良くなることが考えられる。

(14)

3

章 システム概要

まずは、本システムを実装する上で考慮したユーザ、編集ページの区分に関して説明する。次 に本システムにおいて実装した機能を記述した。Wiki部分の実装にはYukiWikiMini[3]を参考に PHPを用いて開発を行った。

3.1

ユーザ区分

本研究においては、多種多様なユーザを3種類に大きく分け、ユーザ区分とする。 構造編集ユーザ ページ構造の編集が可能なユーザ。情報を所持しているかどうかに関わらず、編集能力の高い ユーザはこのユーザに属する。もちろん、情報を所持していれば内容も編集可能である。 内容編集ユーザ ページ内容の編集のみが可能なユーザ。編集には不慣れだが情報を所持しており、Wikiに情報 を提供しようとするユーザである。 閲覧ユーザ 上記のユーザが編集したページを閲覧するユーザ。

3.2

ページ構成

ユーザ区分を踏まえた上での本Wikiシステムのページの構成を説明する。本セクションでは“ ランタノイド”という名前のページを例に挙げて説明する。 “ランタノイド”ページは、Wikipedia[4]におけるランタノイドページ1を参考に簡単に作成した、 本Wiki内の1つのページ例である。元素一覧に関しては、ランタンのみを抜粋し、表組みで構成 した。 1 ランタノイド- Wikipedia, http://ja.wikipedia.org/wiki/ランタノイド

(15)

閲覧ページ 図3.1に示すような、内容を閲覧するためのページである。ページ構造格納ファイルとページ内 容格納ファイルからデータを呼び出し、ページを表示する。全てのユーザが利用可能である。 図3.1: 閲覧ページ 内容編集ページ 図3.2に示すような、ページの情報となる内容部分の編集を行うことができる。ここで編集した データはページ内容を格納ファイルに保存される。 “ランタノイド”ページにおいては、ランタノイドについての概要、元素一覧表内のデータ(原子 番号、日本語名、元素記号、原子量)がそれぞれ編集できる。 内容編集ページを用いての編集が可能なユーザは、内容編集ユーザ、構造編集ユーザである。 構造編集ページ 図3.3に示すような、ページのセクション構造自体の編集を行うことができる。ここで編集を行 うことによって、ページの構造が決定し、内容編集ページが作成される。また、データはページ 構造を格納ファイルに保存される。 “ランタノイド”ページにおいては、ランタノイドページの構造を編集することができる。現時 点では、概要と元素一覧を見出しに設定し、元素一覧は表組みを利用してデータベースのような 用途でページを作成している。 構造編集ページを用いての編集が可能なユーザは、構造編集ユーザである。

(16)

図3.2: 内容編集ページ

(17)

3.3

ユーザ区分と編集ページの対応

それぞれのユーザと編集可能ページを照らし合わせると表3.1のようになる。 閲覧ページ 内容編集ページ 構造編集ページ 構造編集ユーザ ○ ○ ○ 内容編集ユーザ ○ ○ 閲覧ユーザ ○ 表3.1: ユーザ区分と編集ページの対応

3.4

ファイル構成

ページ毎にスクリプトファイルを用意し、編集データを格納するデータファイルは.txt形式で 保存する。スクリプトファイル、データファイルの構成は、図3.4の通りである。 図3.4: ファイル構成 [ページ名].txt   ページ構造格納ファイルにあたるデータファイル。構造編集ページにて編集した場合、この データファイルが書き換わる。1ページに対して1つのtxtファイルが作成される。 [ページ名] co.txt   ページ内容格納ファイルにあたるデータファイル。内容編集ページにて編集した場合、この データファイルが書き換わる。こちらも、1ページに対して1つのtxtファイルが作成される。 display.php   閲覧ページを表示するスクリプト。2種類のデータファイルを読み込んでwebブラウザ上で 表示する。 edit.php

(18)

edit co.php   内容編集ページを表示するスクリプト。2種類のデータファイルを読み込んでwebブラウザ 上で表示する。その際、[ページ名].txtにて入力フィールドの表示が指定されていた場合 は、文書をhtmlのフォームに変換して出力する。 write.php   構造編集ページで編集した文書を[ページ名].txtへ書き出すスクリプト。また、ページを 削除する場合もこのスクリプトを使用して行う。 write co.php   内容編集ページで編集した内容を[ページ名]co.txtへ書き出すスクリプト。書き出す内容 は、入力フィールド内のデータのみである。

3.5

本システムの持つ機能

本セクションにおいても、“ランタノイド”という名前のページを例にあげて説明する。

3.5.1

閲覧ページの表示

概要 Wiki内ページである“ランタノイド”ページへのリンクをクリックすることで“ランタノイド” の閲覧ページを表示することができる。(図3.5) “ランタノイド”ページへのリンクは、構造編集 ページ、もしくは内容編集ページ内で作成することができる。 図3.5: Wiki内ページへのリンク

(19)

実装

閲覧ページは、“display.php?page=ランタノイド”を開くことで表示できる。

URLからpageの引数をランタノイドに設定し、同時にランタノイド.txt、ランタノイド co.txt を読み込む。次にランタノイド.txtを読み込み、ランタノイド co.txt内の対応したデータを適切 な場所に挿入した文書を保存する。その文書をWiki構文に従ってhtmlに変換する。(図3.6) こ のようにして閲覧ページを表示させている。 図3.6: 閲覧ページの表示

3.5.2

構造編集ページの表示/編集

概要 “ランタノイド”の閲覧ページを表示している状態で、右上にある“構造編集”のリンクをクリッ クする。他にも、“ランタノイド”ページを参照しているページの右上に“構造編集”のリンクがあ る場合はクリックすることで“ランタノイド”の構造編集ページに移動することができる。(図3.7) 図3.7: 構造編集ページへのリンク 編集を行う際は、入力フォームにWikiマークアップ構文を用いて文書を記述し、反映ボタンを クリックすることで編集が完了する。(図3.8)

(20)

図3.8: 構造編集ページにおける編集 実装 構造編集ページを表示させるには、“edit.php?page=ランタノイド”を開く。 URLからpageの引数をランタノイドに設定し、内容編集ページのレイアウトを格納するデー タファイルであるランタノイド.txtを読み込む。そして、入力フォームに読み込んだデータを出 力する。この入力フォーム上で構造編集を行う。 構造編集が終了し、反映ボタンが押されたら、編集した文書をPOSTでそのままwrite.phpに 送る。そして、write.phpにてランタノイド.txtを書き換える。 一連のファイル操作を表したものが図3.9である。 図3.9: 構造編集ページの表示、編集

3.5.3

内容編集ページの表示/編集

概要 “ランタノイド”の閲覧ページを表示している状態で、右上にある“内容編集”のリンクをクリッ クする。他にも、“ランタノイド”ページを参照しているページの右上に“内容編集”のリンクがあ る場合はクリックすることで“ランタノイド”の構造編集ページに移動することができる。(図3.10)

(21)

図3.10: 内容編集ページへのリンク 閲覧ページと同じレイアウトで、入力可能な場所には入力フィールドが設置されている。編集 を行う際は、フィールドに入力を行い、編集が終了したら、反映ボタンをクリックすることで編 集が完了する。(図3.11) 図3.11: 内容編集ページにおける編集 実装 構造編集ページを表示させるには、“edit_co.php?page=ランタノイド”を開く。

URLからpageの引数をランタノイドに設定し、同時にランタノイド.txt、ランタノイド co.txt を読み込む。ランタノイド.txtの文書を、Wiki構文に従ってhtmlに変換する。ランタノイド.txt のデータ内にある入力フィールドを設置する構文に関しては、あらかじめ個々のフィールドに設 定されているID値と呼ばれるものを、ランタノイドco.txtから読み取ったものと対照させ、そ

の入力フィールドに対応したvalue値に設定する。このようにして内容編集ページを表示させるこ

(22)

フィールドの場合には、改行が“<br />”と変換されて格納される。 一連のファイル操作を表したものが図3.12である。

図3.12: 内容編集ページの表示、編集

3.5.4

Wiki

マークアップ構文

概要

本Wiki内で使用可能なWikiマークアップ構文を説明する。既存のWikiにもある、基本的な Wikiマークアップ構文が使用可能である。基本的なWiki構文に関してはPukiWiki[5]のものを 参考にして実装した。 構造編集ページのみで使用可能    内容編集ページで使用できず、構造編集ページのみで使用可能な構文を設定した。  フォームは、内容編集時に入力フィールドを表示させるものとして作られた構文であるた め、内容編集ページでは使用できない。  表組みは少々難解なWiki構文であると考え、内容編集ユーザは編集に不慣れである、と いう前提より使用不可とした。また、表組みに関しては、共有データベースのような用途で 本Wikiを使用する場合には、構造編集時に表組みと1行フォームでページ構造を決定する ことが多くなると考えられる。その際、内容編集ページの入力フィールド内で表組みを設置 してしまうと、結果的に表組みの入れ子になってしまい、制限を大きくしてより簡単に内容 編集を可能にする、という目的に反してしまう。 1行フォーム #text(文字数) 内容編集時に編集が可能な1行フォームが作成される。(図3.13) 括弧内はフォームの 横幅であり、半角文字の数で指定することができる。本研究での独自構文である。 複数行フォーム #textarea(横幅,縦幅) 内容編集時に編集が可能な複数行フォームが作成される。(図3.13) 括弧内にて、横幅 が半角文字数、縦幅は行数でサイズを指定することができる。本研究での独自構文で ある。

(23)

図3.13: 内容編集時の入力フォーム 表組み | 文字列 | 文字列 | |で囲まれた部分が1つのセルである表が作成される。 セルの文字列の先頭に ~をつけることでヘッダ(<th>)になる。 セル内に単独で >を記述すると右のセルと連結(colspan)する。 各要素の先頭に次の記述子を指定できる。 LEFT:       左寄せ CENTER:      センタリング RIGHT:      右寄せ BGCOLOR(色):   セルの背景色 COLOR(色):    文字色 SIZE(サイズ):   文字サイズ どちらの編集においても使用可能   引用文 >文字列 >、>>、>>>の3レベルまで可能である。 番号なしリスト -文字列 -、--、---の3レベルまで可能である。 番号付きリスト +文字列

(24)

定義文 :定義語 | 説明文 |がないと定義文表記にはならない。 見出し *文字列 *、**、***の3レベルまで可能である。 目次 #contents 見出しに基づいて目次が作成される。 水平線 ----水平線(<hr>)が表示される。 文字列の位置   行頭に次の記述子を記述することで文字列の位置を指定できる。 LEFT:       左寄せ CENTER:      センタリング RIGHT:      右寄せ 添付ファイルへのリンク #ref(添付ファイル名 or URL) 添付ファイルへのリンクが表示される。 画像ファイルの表示 #ref(画像ファイル名 or URL) 画像ファイルが表示される。対応拡張子は、jpg/jpeg/gif/pngである。 Wiki内ページへのリンク [[ページ名]] Wiki内のページへのリンクを表示する。“ページ名”のページが存在しない場合は、表 示されたリンクをクリックすることでページの作成が可能。 Wiki内ページへのリンク [[リンク文字列>ページ名]] >の前にリンクする文字列、>の後にWiki内のページ名を記述するとリンクが作成され る。“ページ名”のページが存在しない場合は、表示されたリンクをクリックすること でページの作成が可能。 URLへのリンク [[リンク名:URL]] :前にリンクする文字列、:の後にURLを記述するとリンクが作成される。 内容編集ページにてWiki内リンクを作成   内容編集ページ内の入力フィールドにおいてWiki内リンクを作成した場合でも、閲覧 ページにはリンクが表示される。これは既に存在するページへのリンク作成を意図し た機能であり、Wiki内に“ページ名”のページが存在する場合は問題ない。“ページ名” のページが存在しない場合、そのページを作成するには構造編集ページにおける編集 を行わなければならない。内容編集ユーザがリンクを作成した場合は、別のユーザが そのページの構造編集を行ってページを作成するまで待つ必要がある。 実装 閲覧ページ、内容編集ページを表示する、display.php、edit co.php内において、文書をデータ ファイルから読み込む際、Wikiマークアップ構文で記述された部分を検索し、HTML表記に置換 してから表示することによって実装を行っている。

(25)

#text(文字数)(1行フォーム) →<input type="text" size="文字数">

#textarea(横幅,縦幅)(複数行フォーム)→<textarea cols="縦幅" rows="横幅"></textarea> といったように置換を行っている。

3.5.5

新規ページの作成

概要 新規ページを作成する場合は、まず作成したいページ名をリンクにする。次にそこをクリック し、そのページ名が存在しないことを確認し(図3.14)、構造編集ページを表示させる。構造編集 ページ内で文書を入力し、反映を押すことで、新しいページを作成することができる。 図3.14: 新規ページの作成 実装 edit.php内にて、pageの引数が今までに存在しないものであれば、新しい[ページ名].txt、 [ページ名]co.txtが自動的に作成されるようになっているので、構造編集ページを表示するだけ で新規ページが作成されることになる。その状態になれば、構造編集ページ、内容編集ページで の編集が可能になり、新規ページを作成したことになる。

3.5.6

ページの削除

概要 ページの削除に関しては構造編集ページにて行う。構造編集ページを表示中、反映ボタンの下 に削除ボタンが表示されている。ここをクリックすることで、一度確認のメッセージが表示され た後、そのページが削除される。(図3.15)

(26)

図3.15: ページの削除 実装 編集を行って反映ボタンをクリックした際は引数strに編集された文書が格納されてwrite.php に送信されるのだが、削除ボタンを押した場合は引数strには何も格納されずにwrite.phpに送 信される。この違いによりwrite.php内で処理を分岐させ、ページの削除を行っている。

3.5.7

ボタンクリックでの Wiki 構文の簡易入力

概要 構造編集ページにて1行フォーム、複数フォームを設置する場合、既存のWikiにない独自構文を 使用することになる。よって、既存Wikiの編集に慣れたユーザも、本システムになれるまでは構 文を編集の度に確認することが必要になるだろうと考えられる。そこで、Wiki構文をワンクリック で入力できるインタフェースを実装した。これは、Movable Type[6]の機能を参考にしている。詳 しくは図3.16のようなものである。クリックするとそれぞれ、“#text(文字数)”、“#textarea(横 幅,縦幅)”、“[[選択した文字列]]”がフォーム内に入力される。

(27)

図3.16: Wiki構文の簡易入力

実装

実装にはJavaScriptを使用した。その際、Movable Typeのblog記事編集支援を行うJavaScript のスクリプトを参考にした。

3.5.8

入力フィールドの ID 値

概要 内容編集ページに入力フィールドを設置する場合は、構造編集ページにて、#textもしくは #textareaを記述するわけだが、この入力フィールドには、データファイルに書き込む際に1つ1 つに全て異なったIDが自動的に割り振られる。このIDによって、内容編集時の入力フィールド とランタノイド co.txtに格納されているデータとの対応を可能にしている。この機能は、本Wiki システムにおいて2種類の編集ページを実装するための独自の機能である。 構造編集時には#textarea(60,6,id=6)といったように、入力フィールドごとにID値が見えて いる状態で表示されるので、ID値を誤って削除、編集を行わないように注意して構造編集を行う 必要がある。 実装 ランタノイドco.txt内には、1行につき、入力フィールド1つ分のデータが格納されている。入 力フィールドが複数行である場合は、改行が“<br />”に変換されているので、格納データは1行 である。そして、構造編集時の入力フィールドのID値は、ランタノイド co.txtの行番号+1に対 応している。例えば、構造編集時、ある入力フィールドのID値がid=3であったとする。その場 合、その入力フィールドの内容データはランタノイド co.txtの3+1=4行目に格納されていること になる。 構造編集ページにて新たに入力フィールドが増えた場合、それには既存の入力フィールドの最 大ID値+1のID値が振られることになる。それ以降も、新しく入力フィールドを追加する度に

(28)

ランタノイド.txt ³ *概要 #textarea(60,6,id=0) *元素一覧 |~原子番号|~日本語名|~元素記号|~原子量| |#text(3,id=1)|#text(15,id=2)|#text(3,id=3)|#text(10,id=4)| µ ´ 図3.17: 入力フィールドのID値と[ページ名] co.txtの対応 次に、構造編集ページにおいての編集を考える。入力フィールドの内容が格納されたランタノイ ド co.txtのデータ数はIDの番号と合致しているため、あらかじめランタノイド co.txt内のデー タ数を取得しておく。構造編集で新たに入力フィールドが入力された場合(ID値が設定されてい ないことから判断する)、そのデータ数から1づつ増加させてIDを割り振っていく。この作業は、 write.phpに文書データが受け渡された時点で行われる。例をあげると、以下のようになる。 ランタノイドページの構造編集/編集前の状態 ³ *概要 #textarea(60,6,id=0) *元素一覧 |~原子番号|~日本語名|~元素記号|~原子量| |#text(3,id=1)|#text(15,id=2)|#text(3,id=3)|#text(10,id=4)| µ ´

(29)

ランタノイド co.txt内のデータは5個であったとする。ここに、 *物性 #textarea(60,6) を加え編集を行うと、新しいID値として5が提供され、そのID番号が自動的に、ID値が設定さ れていない#textarea(60,6)に振り分けられる。この場合は、#textarea(60,6,id=6)と自動的 に書き換えられてwrite.phpに転送され、ランタノイド.txtが編集される。 以上より、入力フィールドが多くなればそれだけランタノイド co.txtの行数は増加する。ある 入力フィールドが削除された場合でも、そのページ内で削除されたフィールドと同じID値が別の 入力フィールドに割り振られることはない。つまり、入力フィールドが削除されたとしても、ラ ンタノイド co.txt内の内容データは存在したままである。構造編集ページにて、既に設定された IDを編集、削除してしまうと内容データと入力フィールドの対応が崩れてしまい、ページ内容が 正しく表示されない。

3.5.9

入力フィールドの ID 値が削除された場合の警告

概要 入力フィールドには自動的にID値が割り振られ、構造編集時にはIDが見えている状態で表示 される。ここでid=ID値の部分を編集、削除してしまった場合は内容データを格納しているラン タノイド co.txt内のデータと入力フィールドの対応が変化してしまい、内容編集ページ、閲覧編 集ページを表示する際に意図されないデータが現れてしまう。 それを防ぐため、id=ID値の部分を削除したり変更したりした場合はwrite.phpにおいて警告を 出す形にしている。(図3.18) 間違えて削除してしまった場合は編集し直すボタンを押すことで、 直前の文書が入力フォームに入った状態の構造編集ページが再び表示される。これは、編集する 前のページ構造に戻してしまうと、もし比較的大きな編集を行っていた際に誤ってID値を削除し てしまった場合には、その時の編集が無駄になってしまうだろうということを考慮しての実装で ある。 実装 write.php上で、ランタノイド.txtに書き込む前に、編集した文書と、現段階でのランタノイ ド.txt、いわゆる編集前の文書を比較する。どちらに関してもID値が明記された場所を検索し、 発見されたID値の比較を行う。確認できたID値が減っていた場合は、図3.18のようにそのID 値を表示する。 “編集し直す”ボタンをクリックした場合は、編集した文書を引数strに設定した状態で再び edit.phpに送信する。“そのまま保存する”ボタンをクリックした場合は、通常のwrite.phpと同じ ようにランタノイド.txtに書き込みを行う。

(30)

図3.18: IDが削除された場合の警告

3.5.10

入力フィールド付表組みの行追加リンク

概要 共有データベースのような用途で本Wikiを使用する場合は、構造編集にて入力フィールド付の 表組みを作成することが予想される。したがって、内容編集ページにて内容を追記する際には、入 力フィールドと共に表組みの行を追加する必要がある。そこで、内容編集ページにて行が追加され るインタフェースがあれば便利であるという本研究における独自のアイデアの元、実装を行った。 内容編集時、入力フィールドが存在する表組みには行追加リンクが表示される。そのリンクを クリックする度に、入力フィールドと共に表組みの行が追加されて表示される。(図3.19) 新しく 追加された入力フィールドに入力を行い、編集を行うことで、内容の追記が可能になっている。 実装 内容編集ページを表示する際にページ構造が格納されたランタノイド.txtを読み込むが、読み 込むと同時にセル内に入力フィールドがある表組みを検索する。そして、その表に独自のIDを自 動的に指定する。次に表の末尾に行追加リンクを追記し、webブラウザに表示する。 実際に行を追加するには、表組み自体を変更しなければならないので、内容編集ページのレイ アウトを格納するランタノイド.txtを編集する必要がある。行追加リンクをクリックした場合、ま

ずはedit co.phpにその表のIDを送信する。そして、ランタノイド.txt内で、IDを用いて行を追

加する表組みを特定し、その表の末尾の行を複製する。その文書を再びランタノイド.txtに格納

する。その後にedit co.phpを開くことでランタノイド.txtが読み込まれ、行の追加が反映される という結果が得られる。

(31)

図3.19: 行追加リンクのクリック

(32)

4

章 本研究の利用場面

現在、オーソドックスなWikiシステムに様々な機能を付加したWikiクローンが数多く開発、公 開されている。代表的なものに前章に出てきたYukiWiki、PukiWikiの他に、FreeStyleWiki[7]、 MediaWiki[8]などが挙げられる。FreeStyleWiki は個人サイトなどで使用されることが多く、Me-diaWikiはWikipedia[4]において使用されているWikiである。このように、ユーザは非常に様々 な用途でWikiを活用しているのである。そして、新しくWikiクローンを開発するということは、 特定のユーザが希望する用途で使用するための機能を持ったものであることが重要である。もち

ろん、機能に関しては、その特定のユーザが今まで使用していたWiki以上に高性能である必要が

ある。その条件を満たして初めて、ユーザは新しいWikiクローンを使用する。

本研究においてもWikiクローンを作成するという目的上、そのWikiクローンが今までのWiki に替わるものでなければならない。このセクションでは、どのような用途で使用するために便利 なものであるかを説明する。

4.1

共有データベース

内容編集を行う際には、入力フィールド以外は閲覧時と同じように表示される。また、入力フィー ルドは全て同一ページに表示され、それぞれの大きさは自由に変更することができる。これによ り、多人数や不特定多数で情報を共有できるデータベースとして使用することが可能である。 Wikiを用いてデータベースを構築することを支援するシステムとして、PukiWikiのプラグイ ンでareaedit.inc.php[9]というものがある。これは、Wikiページを編集する際に指定した場所の 内容のみを編集することができる機能をPukiWiki上で実装するものである。内容の編集を行う場 合は、1つの内容につきページを切り替えて、1つずつ編集する。 一方、本研究では、内容編集モードでは入力フィールドが全て表示されているので、一度にた くさんの情報を修正、変更をすることができる。また、内容編集ページは、閲覧ページのページ 構造と同じなため、どの場所を編集しているかを瞬時に知ることができ、利便性が高い。 新しいページも構造編集ページから既存のWikiで編集を行うように非常に簡単に作成すること ができる。それに加え、Wikiの特徴である情報の共有も可能である。内容の編集は不特定多数の ユーザが行うことになるが、編集には自由度が制限されているので簡単、気軽に編集ができる。そ の結果、様々なユーザからの投稿により情報量の多いデータベースの構築が可能になるだろう。

4.2

情報整理サイト

内容編集時の入力フィールドは、構造を編集する際に指定して設置することができる。もちろ ん、内容編集をされたくないセクションに関しては、構造編集時に入力フィールドを設けず、直 接構造編集時に内容を記載すれば良い。

(33)

これにより、情報を一般ユーザから募集したり、その情報を整理したりするサイトを運営する ことができる。情報提供のみをWikiシステムで募る場合など、入力フィールドが制限されたペー ジを作成すれば、ページ構造が間違って変化してしまう心配もない。集まった情報を構造編集に て好きなようにまとめることも可能である。

4.3

その他

本研究のWikiのシステムは、既存のWikiではあまり投稿を行ってはいないが有益な情報を所 持している、というユーザを第一に考慮に入れたものを考えた。そのため、自由度に制限を加え た編集モードを加えることで気軽に内容のみの編集ができることが最大の着目点である。よって、 使用対象となるユーザ層が広くなることが考えられるような用途を考えることで、本システムを 最大限に使用することが可能である。

(34)

5

章 評価

5.1

評価

5.1.1

評価内容

本研究は、現在既に様々な用途で使用されているWikiページの編集を、より簡単に、利便性を 高くしようというものである。日常的に編集していたり、逆にWikiページは閲覧しかしたことが なかったりと、それまでのWikiシステムとの触れ方にもユーザによって大きな違いがあるため、 本Wikiシステムを使用した感覚もそれによって大きな違いが生じると考えられる。その結果、本 システムで定量的な評価を行うことは難しい。そこで、自分で使うことを始め、研究室の同僚や 知人数名に、本Wikiシステムが設置されている場所を伝え、独自機能や特徴などを説明を行った 上で試用してもらった。また、本システムの有用性をより高める利用方法や、機能の追加等の案 を集め、議論した。

5.1.2

評価結果

実際に使用してみた結果、本研究の目的である、全てのユーザが簡単、気軽に編集が可能なイ ンターフェースを開発する、という点に関しては、想定通りに編集ができることが分かった。ほ とんどの編集を内容編集ページにて行い、閲覧ページと全く同じレイアウトで編集できることで、 気軽さを感じることができた。また、行追加リンクをクリックするだけで新しいフォームが作成 されるので、新しく自分の意見を書き込む際にも役立った。

5.1.3

提案された使用例

より有用性を得られる本システムの用法もいくつか意見として頂いたので、それについて検討 した結果を述べる。 書誌情報 Wikiシステムの利点を活かして、利用者がいつでも閲覧、編集が可能な書誌情報をまとめた Wikiページ、という意見を頂いた。例えば、論文リストを作成すると考える。 1つの論文に対して1つのページを作成し、タイトル、作者、出典、要旨等を編集可能な内容編 集ページをあらかじめ決定しておく。そうすれば、自分が触れたり読んだりした論文のページを 作成しそこを編集するだけで、利用者が閲覧可能な論文要約ページが完成する。 また、論文にも様々な種類のものがあるため、論文によって、セクションと内容を書く入力フィー ルドが増えたりといったページ構造多少の変化が考えられる。その際には、編集能力の高いユー ザがページ構造編集を行うことによって、より閲覧しやすいページにすることが可能である。し

(35)

かも、今までと構造をほとんど変更しない場合には、構造編集ページ時の文書をコピーして利用 することで簡単に新しいページを作成することができる。 更に、表組みを利用した入力フィールドを構造編集ページ時に設置しておき、それをコメント 入力欄と設定しておけば、コメント入力を行いたい場合は、内容編集ページにて行追加を行って 入力フィールドを追加した上でそこにコメントを入力して反映させればよい。 また、Wikiシステムを利用していることによって、別の読者がその論文を読んだ場合に、気軽 にその内容を追記、編集することができる。これに関しても、コメントを残したりすることによっ て、最初に読んだ読者ともコミュニケーションを図ることができる。 特に同じ研究室内では他の学生が似たような研究を行っていることも珍しくない。このような 論文リストを作成しておけば、他の学生に向けて論文の情報を与えることができるし、コメント を用いての情報のやり取りを行うことができる。 名簿/住所録 簡易データベースとして、名簿や住所録を作成したらどうか、という意見を頂いた。 まずは構造編集ページにて項目を考えて表組みを作成する。あとは内容編集ページで編集を行 えば良い。データの追加も、内容編集ページで行の追加を行えば良いので簡単である。それだけ の操作で閲覧ページにて完成された名簿や住所録を作成することが可能である。構造編集ページ をほとんど触れることなく運営ができるので、運営者側も編集者側も非常に気軽に設置すること ができる。

5.2

考察

本Wikiシステムの目的は、ユーザによって異なる編集インタフェースを提供し、より簡単に、 より気軽に編集を行うことを可能にするシステムが完成したため、達成できたと考えられる。今 まで失敗を恐れてWikiページの編集を行っていなかった人たちからも、これならば気軽に編集で きるだろう。 しかし、実際にこのWikiシステムを自分が運営、設置するかということに関してはあまり好感 触を得られないように思った。これは、編集インタフェースをWikiシステムに実装するという過 程で想像以上に時間がかかり、その結果、Wikiシステムの完成が予定より遅れてしまったことに 問題がある。 試用する期間が非常に短く、改善すべき点を意見として頂きその解決策を機能として追加する、 というプロセスを踏むことがほとんどできなかったことが大きな原因である。 一方、前述した例のように、今までのWikiシステムではできなかった様々な用途の案を多数頂 くことができた。これは、不満があった点に対して新しい機能を追加することによって改善すれ ば、気軽な編集による更なるWikiページの活性化やWikiシステムの新しい使用方法の提案につ ながるのでは、とも考えられる。 これからは、それらの寄せられた不満点や改善点に関して吟味し、改良を加えていく必要がある。

(36)

6

章 結論

6.1

結果

本研究では、既存Wikiシステムが持つ編集の煩雑さ、それに伴い一部ユーザのみが利用者になっ てしまうという問題点に対して、全てのユーザに対してより簡単でより気軽な編集インタフェー スの提供を目的として、それを実現するWikiシステムの開発を行った。 その結果、実際に気軽に編集することができ有用性を強く感じることができた。その上で、よ りこのシステムを活用できる用途案や、現時点での不満点に対しての解決策に関する機能の追加、 改良を行えば、ユーザの利便性をより一層考えたWikiシステムになる可能性を持ち合わせている ことを確認することができた。

6.2

今後の課題

6.2.1

ユーザ登録制の導入

現段階では、編集に不慣れなユーザが構造編集ページで編集することも可能である。構造編集 ページでの編集は既存のWikiシステムとほとんど変わらないため、自由度は非常に高いのだが、 編集を誤ってしまうと今まで同様ページ構造が意図せずに破壊されてしまう。 その為、構造編集ページにて編集を行う際はユーザ登録を必須とし、登録されたユーザのみが 構造編集を可能にするシステムを考えた。これにより、ユーザ区分をよりはっきりとさせたもの になり、そのユーザにより適したインタフェースの提供につながる。 それに伴い、内容編集ページにおいてページ構造を多少編集できる機能を追加する必要が出て くる。現時点で内容編集ページ上でページ構造を編集できる機能として、行追加リンクがあるが、 それ以外にも考えられる機能はいくつか存在する。 新規ページ作成支援 内容編集しかできないユーザが新規ページを作成したい場面も考えられる。その際、ページ構 造やWikiページ全体の構造を壊さず、より簡単に新規ページが作成できる機能が必要である。 この解決策として、今までに存在するWikiページの構造編集時の文書のみをそのまま新しい ページに複製し、それを新規ページとする、という機能を考えた。既に存在するページを元とす るので、構造を壊さずに、クリック一つで新規ページを作ることが可能である。 しかし、ページをそのまま複製した場合でも、セクション名など、どこかは修正しなければな らない場所が出てくる可能性が高い。そこで、複製して新規ページを作成する際には、修正する 必要があると考えられるセクション名を編集できる入力フィールドを用意することができれば有 用性は高いと考えた。

(37)

内容を編集、追記することが多いWikiページの編集に関しては、新規ページを作成する際も、 既にあるページを元としてページを構成することができれば非常に便利ではないだろうか。 セクション追加機能 内容を追加する際、追加する情報がそのページ内のどのセクションにも属さない場合が考えら れる。セクション追加機能があれば、新しいセクションを作成し、ページ内容編集ページにて、生 成された入力フィールドに追加したい情報を記述することができる。 セクションを追加する際に決定する必要があるのは、セクション名、追加する場所、入力フィー ルドの大きさなどである。既にあるセクションの末尾にセクション追加リンクを作成し、専用の ページ内にてセクション名、入力フィールドの大きさを指定して反映することで、その場所に新 しいセクションを作成することが可能である機能を考えた。実装すれば、より情報の充実した活 発なWikiになることが考えられる。

6.2.2

構造編集ページの編集支援

現時点で、構造編集ページにおけるユーザビリティの向上を図る機能として、ボタンクリック でのWiki構文の簡易入力、入力フィールドのID値が削除された場合の警告の2種類をあげた。 しかし、それでも既存Wikiシステムにおける編集と本研究での構造編集はほとんど同じである。 これを改善する機能が必要であると考えた。 構造編集のインタラクティブ化 構造編集ページにおいても、内容編集ページと同様に、例えばドラッグ、ドロップを用いてページ の構造を編集できるシステムが考えられる。表示上は内容編集ページと同じものだが、入力フィー ルドや各々のWiki構文で生成されるオブジェクトをドラッグ、ドロップで配置でき、視覚的にペー ジ構造を編集することができる機能が実装できれば、非常に有用ではないだろうか。 これを考える上で参考になるのが、Mac OS X向けのソフトウェア開発アプリケーションであ

るInterface Builder[10]である。これは、主にGUIパーツのコンポーネントをマウスにより配置 することができるツールである。ソフトウェアの画面に必要な部品を配置することにより、ソフ トウェアの容易に画面設計を行うことができる。 しかし、構造編集のインタラクティブ化は、使用言語やシステム自体を変更しなければならな い可能性があるため、実現できないことも考えられる。従って、その他の編集支援も考えてみる ことにする。 入力フィールドの内容を表示 内容編集時の入力フィールドの数が増加すれば、それだけ構造編集ページでの文書が複雑なも のとなる。例えば、ある入力フィールドを削除したり移動したりする場合に、その入力フィール ドを特定することが必要になる。しかし、#textや#textareaが文書内に多数存在している状態 であるため、特定は非常に煩雑な作業になってしまう。

(38)

がどこに存在する何を表記するものなのかを特定することが即座にでき、結果的に入力フォーム の削除、移動を支援することができると考えられる。 入力フィールドのidを非表示 構造編集ページの編集を煩雑にしている一つの原因として、入力フィールド毎に設定されるID 値がある。これはデータファイルの内容との対応の為に使用しているが、それによって、ID値を 削除したり、変更したりしてしまうとページ構造が壊れてしまう可能性が発生する。 このidを非表示にすることができればID値を編集することができなくなるため、安心して構 造編集を行うことができると考えられる。また、ID値が削除された場合の警告機能の必要が無く なり、ユーザ側の操作を減らすことができる。 非表示にするシステムはまだ具体的には考えてないが、実装できれば構造編集ユーザもより気 軽に編集できる実用的なWikiシステムになるだろう。

(39)

謝辞

本研究は、電気通信大学情報通信工学科情報通信システム学講座寺田研究室において、寺田 実 准教授の御指導の下で卒業研究として行われました。寺田 実 准教授には、研究全般に渡って適切 な御意見と御指導を何度となくいただき、様々な面で御助力をいただきました。心からお礼を申 し上げます。 東京大学情報基盤センターの 丸山 一貴 助教には、研究室輪講等で様々なご意見を賜り、本当 にありがとうございました。 博士課程一年の 高須賀 清隆 さん、修士課程二年の 柏村 俊太朗 さん、鶴原 翔夢 さん、八木原 勇太 さん、修士課程一年の 安齋 嶺 さん、学部四年生の 梅林 靖弘 くん、奥村 祐気 くん、平山 慧 くん、 中村 智行 くんには、研究について多くの助言、協力をしていただき、大変感謝します。 開発したシステムの試用、アイディアの拡張に御協力いただいた、学部三年生の寺田研仮配属 の皆さん、家族を始めとした知人の皆様にも、感謝の意を表させていただきます。

(40)

参考文献

[1] A. Haake, S. Lukosch, and T. Schummer. ”Wiki-Templates Adding Structure Support to Wikis On Demand”, Proceedings of the 2005 international symposium on Wikis, November 1, 2005, pp.41-51. [2] 八木原 勇太,寺田 実.”YagiWiki : コンテンツの作成・整理が簡単に行えるWikiの作成”,第 49回 プログラミング・シンポジウム 報告集, pp.41-48. [3] YukiWikiMini http://www.hyuki.com/yukiwiki/#YukiWikiMini . [4] Wikipedia http://www.wikipedia.org/. [5] PukiWiki http://pukiwiki.sourceforge.jp/ . [6] Six Apart - Movable Type

http://www.sixapart.jp/movabletype/ . [7] FreeStyleWiki http://fswiki.org/ . [8] MediaWiki/ja http://www.mediawiki.org/wiki/MediaWiki/ja . [9] 自作プラグイン/areaedit.inc.php - PukiWiki-official http://pukiwiki.sourceforge.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82 %B0%E3%82%A4%E3%83%B3%2Fareaedit.inc.php . [10] Interface Builder http://developer.apple.com/tools/interfacebuilder.html .

図 1.1: 学生が Wiki ページを編集するインタフェース クアップ言語が使われている。これは、確かにページ作成者である教師には非常に有意ではある が、編集者である学生にはより複雑なものとして見えてしまい、どの場所を編集すればいいのか が分かりにくくなってしまう。また、それによりセクション自体を誤って削除してしまう場面も 見られた。つまり、ページの構造が意図せずに変化してしまったのである。 これらの問題点を解決するために Wiki-Templates というものが開発された。 1.2.2 Wiki-Te
図 1.3: テンプレートのソースコード
図 3.3: 構造編集ページ
図 3.8: 構造編集ページにおける編集 実装 構造編集ページを表示させるには、“edit.php?page=ランタノイド”を開く。 URL から page の引数をランタノイドに設定し、内容編集ページのレイアウトを格納するデー タファイルであるランタノイド.txt を読み込む。そして、入力フォームに読み込んだデータを出 力する。この入力フォーム上で構造編集を行う。 構造編集が終了し、反映ボタンが押されたら、編集した文書を POST でそのまま write.php に 送る。そして、write.php にて
+7

参照

関連したドキュメント

操作は前章と同じです。但し中継子機の ACSH は、親機では無く中継器が送信する電波を受信します。本機を 前章①の操作で

荒天の際に係留する場合は、1つのビットに 2 本(可能であれば 3

モノづくり,特に機械を設計して製作するためには時

2) ‘disorder’が「ordinary ではない / 不調 」を意味するのに対して、‘disability’には「able ではない」すなわち

改良機を⾃⾛で移動 し事前に作成した墨 とロッドの中⼼を合 わせ,ロッドを垂直 にセットする。. 改良機のロッド先端

わずかでもお金を入れてくれる人を見て共感してくれる人がいることを知り嬉 しくなりました。皆様の善意の募金が少しずつ集まり 2017 年 11 月末までの 6