文書内容の操作に見るマークアップの効果 - 解説 -

これは、第66回デジタルドキュメント研究会での発表「文書内容の操作に見るマークアップの効果」のプレゼン資料に、当日の質疑応答などを踏まえて改訂したものです。

山口琢†1 小林龍生†2

†1株式会社ジャストシステム
†2ジャストシステムデジタル文化研究所

概要

小説や報告書といった通常の意味での文書に施す電子的なマークアプの効果を、実装システムを例題にして議論したい。われわれは、文書への電子的なマークアップが、書き手の創意工夫や、読み手の発見を促し、理解を深める助けになると考えている。これは、文書をXMLで記述することでレイアウト・組版作業を自動化し効率向上することや、商品情報データベースの拡張性を高めることなどとは別種のメリットであろう。

キーワードXML、マークアップ、タグ、文書

Consideration on the Effect of Markups in Writing, Reading and Operating Narrative Documents

YAMAGUCHI Taku†1   KOBAYASHI Tatsuo†2

†1President Office, JustSystems Corporation
†2 Justsystems Digital Culture Research Center

Abstract

This paper discusses the effects of electronic markups, made on narrative documents such as novels and historical tales, or study reports with some experimental implementations. The authors are confident that electronic markups made on documents promote creative ideas of good writers and discovery and deep understanding of readers. There are different types of merit from those of automatic layout of documents or the expandability of the product information database.

KeywordXML, markup, tag, document

1. はじめに

2年ほど前から、同じテーマで発表させてもらっている。振り返ってみて、これまでの発表では、われわれがどこにこだわっているのか、そもそもの着眼点をうまく伝えられてこなかったと思われる。そこで、今回は、われわれの着眼点に重点を置いて発表する。

われわれのテーマと取り組み

テーマ: 文書の《読み》《書き》
記述的文書、定性情報の《読み》《書き》の開拓。人々が意識的・無意識的に行っているであろう読み方、書き方をツール化。
アプローチ: 論より実装
  • まずは実装。個々にツール化。
  • 文書データフォーマットにXHTMLを採用する。
    そうすることで、みんなが書いたネット上の文書をその読み方で読めるし、その書き方で書いた文書をみんなが読める。
  • ツール実装にはxfyを採用する。
    そうすることで、そのツールは、そのツール固有の機能のみを実装すればよい。他の、文書編集の基本機能などは、既存ツールに任せられる。文書編集において、このような密接な機能分担ができる。

われわれは、通常の意味の文書に対して、新たな《読み》《書き》の可能性をひらきたいと考えている[1]。これらの文書の記述的で定性的な特徴に着目し、人々が意識的・無意識的に行っていると思われる《読み》方、《書き》方を見つけて、それを《読み》《書き》ツールとして実装しながら明らかにしていく[2] [3]というアプローチをとっている。

われわれのアプローチにおいては、XHTMLを各ツールに共通な文書データフォーマットとして採用し、ツール実装にはxfy[8]を採用している。XHTMLを文書データフォーマットに採用することで、その読み方で読める文書が、ネットに多数存在することになる。また、その書き方で書いた文書を、広く一般的に読むことができる。また、実装にxfyを採用することで、各ツールはツール固有の読み・書き機能のみを実装すれば、既存の読書・編集環境と補い合う形で、全体としての読書・編集環境を発展させていくことができる。ここに、われわれのアプローチの優位性がある。

記述的文書、定性情報の《読み》《書き》
いわゆる通常の意味の文書、帳票や定量情報よりも。これらを読むことと書くこと。
発想支援
文書の《読み》《書き》ツールに試行錯誤や発散的・収束的テイストを加える。
知識共有
《読み》方や《書き》方の一部を、人々の頭の中からICT環境に《外在化》し電子的な手段として実装すると、知識共有を促進するのではないか。

われわれのスコープは、いわゆる通常の意味での文書であり、帳票や定量情報にはあまり重きをおいていない。また、これらを単に読んで参照するだけではなく、書いて編集することも重要である。

この取り組みは発想支援にも関係している。文書の《読み》《書き》に試行錯誤や発散的・収束的思考を導入することで、新たな《読み》《書き》の可能性がひらかれるのではないか[4] [5]

この取り組みは知識共有にも関係している。《読み》方や《書き》方の一部を、人々の頭の中からICT環境に《外在化》し電子的な手段として実装すると、知識共有を促進するのではないか[5] [6]

この報告の構成

この報告では、XMLの観点から、われわれの取り組みの着眼点について詳しく論じて、課題とアプローチを簡単に紹介し、実装例にて再び着眼点を具体例で論じる。

われわれは、文書を、要素の入れ子(木構造)として構造化することが、文書の新たな《読み》《書き》の可能性をひらくために有効であると考えている。そこで、われわれが文書データの記述に採用しているXHTMLはXMLであり、《読み》《書き》ツールの実装に採用しているxfy[8]は、XMLベースのメタ文書エディタである。

2. マークアップと通常の意味での文書

われわれの着眼点は次の2つである:

通常の意味での文書 & 《読み》《書き》
文書の記述性、定性性、およびその《読み》《書き》
意味与奪型の機能
マークアップそのものに基づく機能

まず、意味与奪型から説明しよう。

2.1 XMLとマークアップ

XML[7]では文書をテキストで表現し、ある一部分を開始タグと終了タグで囲むことで、その部分が文書の中で意味を持つ要素であることを示す。このように文書全体の一部分を区切ってマークをつけることをマークアップ(markup)[7] [10]と呼ぶ。XMLでは、タグによってマークアップを示す。マークアップはXML以前から電子組版システムなどで利用されてきた。HTMLも文書をマークアップで表現する。

2.4 Character Data and Markup

Text consists of intermingled character data and markup. [Definition: Markup takes the form of start-tags, end-tags, empty-element tags, entity references, character references, comments, CDATA section delimiters, document type declarations, processing instructions, XML declarations, text declarations, and any white space that is at the top level of the document entity (that is, outside the document element and not inside any other markup).]

Extensible Markup Language (XML) 1.1 (Second Edition)[7]

マークアップ利用のアプローチ

意味駆動型

マークアップの意味や構造を具体的かつ厳密に設計し、意味に従って処理させる従来のアプローチ

  • 正確、高速、大量、自動的にプログラムで処理
  • 意味や構造を標準化して、システム間で相互運用
意味与奪型

または「区切りそのもの利用」。われわれの着眼点、アプローチ

  • または「区切りそのもの利用」
  • マークアップから意味を剥奪した区切りそのものをベースにすることで、対話的な編集の操作性、創造性を高め、深い読みをもたらす。
  • このような視点での技術開発が、これまで不足していたのではないか。

このようなマークアップの意味や構造を具体的かつ厳密に設計して、データをマークアップで記述して、正確に、高速で、大量に、かつ自動的にプログラムで処理しようとする取り組みは、従来から行われてきた。また、そのような意味や構造を標準化して、システム間で相互運用を可能とする取り組みも、やはり従来から様々に行われている。XMLは、このようなデータ記述形式として定着している。

このようなアプローチを意味駆動型とわれわれは呼ぶ。

これに対しわれわれは、文書の区切りそのものが、対話的な編集の操作性を高める点に着目している。マークアップが抽象的であっても、あるいはシステムがマークアップの具体的な意味に踏み込んだ機能を持たなくても、そのマークアップを役立てることができると考えている。このような視点での技術開発が、これまで不足していたのではないだろうか。

このようなアプローチを意味与奪型とわれわれは呼ぶ。

両者の取り組みは、相互に補い合うものである。なぜなら、文書のどの部分をマークアップするかということは、そのマークアップにどのような意味を持たせるかということと不可分だからである。無意味で一貫性を欠いたマークアップでは、利用者に効果的な編集機能を提供することはできない。

以降、この報告では、文書の区切りそのものを、《マークアップそのもの》と呼ぶことにする。

マークアップとその意味

マークアップの意味に基づいて処理するのと区別して、マークアップそのものが役立つとはどういうことか。HTMLと対比することでXMLを導入する場合を例に、この着眼点を説明しよう。

XMLを学び始めたとき、HTMLと対比して、図1のようにXMLの特長を理解した覚えはないだろうか?あるいは、HTMLからXHTMLへの移行に際して、文書の構造を記述する意味マークアップの特長を、このように理解したであろう。

意味マークアップの理解
意味マークアップの特長
HTML XML
B要素などは、個々の要素の表示を指定することで、ブラウザウィンドウの幅などに応じて、文書全体を自動レイアウトできる。 自動処理の範囲 個々の要素の意味を指定することで、自動レイアウトだけでなく様々な目的に応じて、文書を機械的に自動処理することが可能である。
あらかじめ決められたタグしか用いることはできない。 マークアップの拡張性 新たなタグを導入して、本来記述したかった意味や構造を表現できる。
危険な理解
その内容の意味を表現するタグをつけて、その意味に基づいて自動機械処理するのでなければ、文章をマークアップすることにさしたる効果はない。
意味マークアップの特長: 日時と表の例
HTMLの場合 XMLの場合
<table>
 <tbody>
  <tr>
   <td>タイトル</td>
   <td>日時</td>
   <td>場所</td>
  </tr>
  <tr>
   <td>第66回DD研</td>
   <td>2008年6月6日</td>
   <td>大森ベルポート</td>
  </tr>
 </tbody>
</table>
ソース
<event>
 <summary>第66回DD研</summary>
 <dateTime>2008-06-06</dateTime>
 <location>大森ベルポート</location>
</event>

できない、あるいは貧弱。

「2008年6月6日」が日時であることは、これを見た人間には分かるが、この情報を処理するプログラムには分からない。

内容の意味に基づいた自動機械処理

できる。

「2008-06-06」が日時であることは、dateTimeという名前のタグによって示され、プログラムはこれを日時として処理することができる。

ブラウザでそのまま表示できる。

例えば:

タイトル 日時 場所
第66回DD研 2008年6月6日 大森ベルポート
人間用に表示

様々に変換・加工して表示できる。

例えば:

  • HTMLと同じ表形式に表示
    タイトル 日時 場所
    第66回DD研 2008年6月6日 大森ベルポート
  • カレンダー上にマップして表示
    1 2 3 4 5 6 7
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30

図1 HTMLと対比してXMLのメリットを理解する例

このような理解そのものは正しい。しかし、このように理解したときに、併せて次のように思い込んでいないだろうか。

われわれの着眼点は、しばしばこのようにして見過ごされがちである。すなわち、われわれは、そのようなマークアップでも効果があると考えている。その意味に特化した機能がシステムに実装されていなくても、利用者が意味を了解できるのであれば、そのマークアップに基づく効果的な機能を提供するシステムがありうると考えているのである。

マークアップを利用する機能

マークアップに基づく効果的な機能の例をあげよう。ここでは、身近な例をあげるために、XMLにこだわらず、従来からあるエディタ、ワープロやアイデアプロセッサーで実現されている機能を見る。

シングル・ダブルクリックで選択・編集
特定の箇所でシングルまたはダブルクリックするだけで、単語、行または段落を選択できる。そして、それらをドラッグ&ドロップでコピーや移動できる。
表の行・列・セルの編集
行・列・セルを簡単なマウスクリックで選択し、その単位で追加・削除・移動できる。
アウトライン編集
章・節を簡単なマウスクリックで選択し、その単位で追加・削除・移動できる。

これら機能の便利さは、次のような効果からもたらされると考えられる。

小さな・簡単な操作で大域的・複雑な編集

小さな・簡単な操作で、文書の内容を大域的・複雑に書き換えることができる。

試行錯誤が容易
大域的・複雑な編集も小さな・簡単な操作で行えるので、文書内容編集の試行錯誤が操作的にも心理的にも容易になる。

ここで留意すべきは、これら効果は、マークアップの意味に基づくというよりも、「そのように区切られている」というマークアップそのものに由来する、ということである。

すなわち、利用者は章をその意味に基づいて移動するが、その操作を支援するワープロがその章の意味を知っているわけではない。

図1の表を図2のように、含まれるイベントを増やして少し複雑にしてみよう。

タイトル 第66回DD研

第67回DD研

第68回DD研

日時 2008年6月6日

2008年7月24日(木)、25日(金)

9月26日

場所 大森ベルポート

北海道大学

大森ベルポート

↓ 日時を選択

タイトル 第66回DD研

第67回DD研

第68回DD研

日時 2008年6月6日

2008年7月24日(木)、25日(金)

9月26日

場所 大森ベルポート

北海道大学

大森ベルポート

↓ 日時を一括削除

タイトル 第66回DD研

第67回DD研

第68回DD研

場所 大森ベルポート

北海道大学

大森ベルポート

図2 複数のイベントを含む表

図2で、表編集機能を実装したエディタであれば、2番目の行を選択して、複数のイベント情報から日時部分を一括して削除することができる。このとき、2行目が日時であることを知っているのは利用者であって、エディタではない。それにもかかわらず、簡単な操作で日時を削除することができる。

大域的編集

ここで、前節で述べた大域的編集を定義しておこう。

不連続な対象
編集の対象が不連続である。コピー・移動元とコピー・移動先が連続していない、など。
一括操作

大きな対象や複数の対象を1回の操作で編集する。特に、不連続な対象。

  • 章・節の段落を一括で移動するアウトライン編集
  • 内容を表に整理すると、行・列操作によって、段落や章の操作以上に複雑な編集が行える。

文書中の互いに関係する部分は、必ずしも連続して配置されていない。これは、文書がレイアウトされたページ上だけでなく、ソースデータ構造上も、である。このために、大域的編集が必要となる。

マークアップそのもの

マークアップそのものと呼んでいるものは、その意味と独立ではない。例えば図1のHTMLの表を図3のように、table、trなど全てのタグ、すなわちマークアップの名前を、同じacbに書き換えたらどうか?これでは、これを表として、行・列・セルの編集機能を利用者に提供するには、多少込み入った処理とUIを伴うことになるだろう。

<acb>
 <acb>
  <acb>
   <acb>タイトル</acb>
   <acb>第66回DD研</acb>
  </acb>
  <acb>
   <acb>日時</acb>
   <acb>2008年6月6日</acb>
  </acb>
  <acb>
   <acb>場所</acb>
   <acb>大森ベルポート</acb>
  </acb>
 </acb>
</acb>

図3 意味を大幅に捨象したマークアップ

すなわち、われわれがこの報告で《マークアップそのもの》と呼ぶのは、次のようなものである:

ここで、かなり抽象的な意味と言っているのは、例えば、次のようなものである:

入れ子(木構造)マークアップの特徴

マークアップそのものと呼んでいるものは、その意味と独立ではないが、別の概念である。最後にそれを示そう。

XMLのマークアップは、入れ子構造になっているため、要素の部分的なオーバーラップを表現できない。図4では、虹の七色について、小林が暖かい色の範囲を、山口が冷たい色の範囲をマークアップしている。緑色が両方に含まれているが、XMLではこのようなオーバーラップは許されない。

<暖 by="小林">赤、橙、黄、<冷 by="山口"></暖>、青</冷>、藍、紫

暖要素冷要素がオーバーラップしている。「緑」が両方に含まれているが、「赤」は暖要素のみ、「藍」は冷要素のみに含まれている。

図4 部分的にオーバーラップする要素

すなわち、どのように区切るかということと、その区切りにどんな名前を付けるのか、どんな意味があるのかとは、別の概念である。

どのような区切りを許すかは、われわれが着目するような処理系の機能やわかりやすさに影響する。例えば、表でセルの結合が可能なエディターの場合、そのような表で行・列の削除や移動したときの振る舞いに、違和感を覚えたことのある利用者は多いだろう。

2.2 通常の意味での文書

続いて、通常の意味での文書を説明する。

XMLでは、電子商取引の請求書も文書(XML document)である[7] 

2 Documents

[Definition:  A data object is an XML document if it is well-formed, as defined in this specification. In addition, the XML document isvalid if it meets certain further constraints.]

Extensible Markup Language (XML) 1.1 (Second Edition)[7]

小説や報告書などを「通常の意味での文書」と呼んで識別するとき、われわれは次の特徴に着目している。

《読み》《書き》の試行錯誤

文書を書くときも、読むときも試行錯誤する。試行錯誤を非効率で悪いこととは見なさず、むしろ肯定的。

  • 文書の《読み》《書き》は人間の行為である。
  • 時間経過を伴う過程であって、一瞬で自動的に完了することを積極的に想定しない。
マークアップが未定、不定
文書を構成する要素の区切りや意味が未定不定、または隠蔽されている。試行錯誤して書きながら、あるいは読みながら、これらが確定していく。

われわれは、このような通常の意味の文書を記述的文書、定性情報、あるいは自然文と呼ぶことがある。

記述的文書

規範的(prescriptive)
事前に正しい用法が定義されたマークアップがあり、それを使って記述できることを前提とした文書が規範的文書である。帳票などがこれに該当する。
記述的(descriptive)
そのようなマークアップの事前定義を前提としないものを、記述的文書と呼ぶ。

記述的(narrative)とは、規範的(prescriptive)と対になる概念である。事前に正しい用法が定義されたマークアップがあり、それを使って記述できることを前提とした文書が規範的文書である。帳票などがこれに該当する。これに対し、そのようなマークアップの事前定義を前提としないものを、記述的文書と呼ぶ。

正確には、記述的部分と規範的部分は1つの文書で混在する。記述的文書という文書の種類があるというより、文書には記述的な部分、記述的な作成・利用局面や記述的な内容レベルがあると考えるのが適切であろう。

帳票でも、例えば、購買の「申請理由」欄の内容は記述的であろう。申請が、「金額」によって機械的に認可されることもあれば、「申請理由」によって判断されることもある。「申請理由」による判断は、そのときどきの経営状態などによって行われ、審査するものが読み取る内容は規範的とは言い難い。このため、申請者は「申請理由」を記述するときに試行錯誤することになる。

推理小説にも規範的な情報が含まれる。本の流通局面を考えれば、「書名」、「著者」や「ISBN」などの書誌情報は、正確な使用が求められるし、それによって、大量の在庫から瞬時に本を探し出すことができ、注文した本が正しく届く。

また、小説においても「段落」や「見出し」といったマークアップは規範性が高い。しかし、「真犯人」や「正義」というマークアップの付いた推理小説は希であろう。それでも、作者や読者は「真犯人」や「正義」を巡って情報処理しているはずである。

定性情報

定量・コード化情報
対象の量的な側面に着目し、尺度を設定して、その数値を用いて記述され、分析される情報。ここでは、数値でなくても、あらかじめ用意された分類にあてはめるという意味でコード化と併せて整理する。
定性情報
数値化、コード化されない、するのがふさわしくない情報。

定性情報とは、定量・コード化情報と対になる概念である。一般的には、定量情報とは、対象の量的な側面に着目し、尺度を設定して、その数値を用いて対象を記述し分析するものである。ここでは、数値でなくても、あらかじめ用意された分類にあてはめるコード化と併せて、定量・コード化された情報と対になる概念として、定性情報を考える。すなわち、われわれが着目する点は、記述的・規範的と同様である。

2.3 まとめ

われわれの2つの着眼点は、次のように関係している:

「通常の意味での文書」へのアプローチ
  意味駆動型 意味与奪型
区切りそのもの利用型
《読み》《書き》の試行錯誤
マークアップが未定、不定

x

意味駆動型のアプローチと根本的に合わない

すなわち、通常の意味での文書には、意味与奪型のアプローチが向いている。

3. 課題

以上の着眼点から、われわれの課題は、記述的文書に対する意味与奪型の文書編集・読解機能を発見することである。

これによって、利用者には次のようなメリットがあるだろう:

このような文書編集機能が効果を発揮するのは、試行錯誤の場面であろう。文書の内容を試行錯誤しながら書いている段階では、各要素の意味は不確定である。本質的に、十分な意味づけができない要素を編集する場面でこそ、われわれの着眼点が生きるはずだ。

4. アプローチ

上記の課題を達成するため、われわれは次のアプローチをとることとした:

5. 実装例

そのようにして開発した文書編集プログラムの例を紹介する。

STORYWRITER

STORYWRITER[2] [9]は、多色マーカーツールである。文書の読者は、自由にマーカーを追加することができる。また、マークを手掛かりにして文書の部分を 並べ替えることができ、文書を読み解く助けにすることができる。さらに、マークを手掛かりにして、文書を編集することができる。

機能

読者がマーカーを追加すると、それに応じて、STORYWRITERは、class属性の値を新規に用意する。読者が文書の部分をマークすると、STORYWRITERは、その部分をem要素で囲い、そのマーカーに対応するclass属性値を設定する。

図5 マーカーはクラス属性で区別される

図5では、読者が"殺人"とマークした部分に、"cc88"というclass属性値が設定されている。em要素とは、HTMLで強調を表す要素である。

STORYWRITERのCrossビューでは、同じclassのem要素が、表の同じ行に抜き書きされる。

図6 STORYWRITERのクロスビュー

図6では、class属性値が"cc011"であるem要素を抜き出して、表の同じ行に配置している。ここで、class属性値が"cc011"であるem要素は、UI上は"視線"というマーカーに対応している。

すなわち、こことここは同じ意味だということだけを前提に、役に立つ文書操作機能を提供できた。それぞれの括りの意味は、ユーザーだけが知っている。それでも、利用者に便宜を提供することができている。

開発経緯

STORYWRITERの開発当初は、"When"や"Where"といった特別な値がclass属性値として設定されていた。すなわち、時間や場所は普遍的で客観的だからビルトインマーカーとして用意して良いだろうと考えていた。

しかし、素材とした「藪の中」では、"午少し過ぎ"や"その内にやっと気がついて見ると"など、幅のある時刻や主観的な時間経過の記述がある。また、この物語そのものが、登場人物の供述の食い違いをポイントとする平行物語であり、それぞれの主観的な主張にこそ物語の本質があり、《読み》の面白さがある。客観的な時間を特別扱いしたところで、この《読み》に対して、さして寄与するところはないのではないか。スケジューラーのような便利さを実現できないであろう。むしろ、システムが複雑になるデメリットが大きいと考えた。

SayYes!

6. 考察

意味与奪型の機能 ?= 意味というものを、全く剥奪する機能

段落(Paragraph)という意味

段落(paragraph)
ある一つの主題に関する文の集まり。主題に無関係な内容の文は、同じ段落には入れない。
リスト(list)
互いに関係のある項目の集まり。項目は単語だったり文だったりする。

CSVの快適さ

意味マークアップの理解
意味マークアップの特徴

CSV

XML
個々のデータに意味付けがなされていない。データの意味 個々のデータに意味付けがされている。
危険な理解
データに意味づけされていないことは悪いことだ。

関心の分離

  意味駆動型 意味与奪型
関心の対象を記述する語彙 関心の対象を記述する語彙に、システムが駆動される。

関心の対象を記述する語彙に対して、システムは中立。

関心の対象の語彙は利用者が理解している。あるいは発明、発見する。

その他の語彙

システムが利用する

文書操作の方法としてシステムが提供し、利用者が関心対象を操作するために利用する
語彙を定義する時期 システム設計時 システム利用時
語彙を定義する人 システムの設計者 システムの利用者

所望のレイアウトを得る試行錯誤

WYSIWYGの長所は、所望のレイアウトを得るための試行錯誤を容易にしたことにある。

《マークアップ》そのものを手掛かりにする機能が容易にする試行錯誤は、所望の印刷レイアウトを得るための試行錯誤だけでなく、所望の文書の内容を得るための試行錯誤である。

所望のレイアウトは、書き手が意図する文書の構成と密接に関連していると考えられる。したがって、これらを得るための試行錯誤も密接に関連しており、WYSIWYG機能の発展は、間接的に、文書内容編集の試行錯誤機能の発展でもあった。

マークアップと指示語

《マークアップそのもの》の効果は、自然言語における指示語、日本語の「こそあど」ことばの効果に似ている。すなわち、指示語は次のような特徴をもち:

そして、次のような効果を持つ:

われわれがやろうとしていることは、指示語の働きを、電子的・定性的な情報交換、情報利用に持ち込み、その品質を高めて効率を向上し、記録に残すものなのかもしれない。

7. まとめ

この報告では、マークアップそのものに着目するという、われわれの取り組みの特徴を論じ、実装例を示した。

実装例を見て、「なるほど。そういうことなら、こういうのもアリではないか?」と思ってもらえれば幸いである。われわれは、もっと多くの、このような実装がありうると考えている。

文献