IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

<>
  • 特許-情報処理装置及びプログラム 図1
  • 特許-情報処理装置及びプログラム 図2
  • 特許-情報処理装置及びプログラム 図3
  • 特許-情報処理装置及びプログラム 図4
  • 特許-情報処理装置及びプログラム 図5
  • 特許-情報処理装置及びプログラム 図6
  • 特許-情報処理装置及びプログラム 図7
  • 特許-情報処理装置及びプログラム 図8
  • 特許-情報処理装置及びプログラム 図9
  • 特許-情報処理装置及びプログラム 図10
  • 特許-情報処理装置及びプログラム 図11
  • 特許-情報処理装置及びプログラム 図12
  • 特許-情報処理装置及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
   G06F 40/186 20200101AFI20240110BHJP
   G06F 40/123 20200101ALI20240110BHJP
【FI】
G06F40/186
G06F40/123
【請求項の数】 8
(21)【出願番号】P 2019218820
(22)【出願日】2019-12-03
(65)【公開番号】P2021089517
(43)【公開日】2021-06-10
【審査請求日】2022-11-22
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】山田 季史
【審査官】木村 大吾
(56)【参考文献】
【文献】特開2003-150584(JP,A)
【文献】特開2003-281119(JP,A)
【文献】特開2013-057999(JP,A)
【文献】米国特許出願公開第2016/0267723(US,A1)
【文献】米国特許出願公開第2019/0108487(US,A1)
【文献】米国特許出願公開第2016/0210224(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
プロセッサを含み、
前記プロセッサは、
部品間の関係の各々について当該関係が文書中に出現する確率を表す情報を参照し、
第1のテンプレートをコピーした部分を含む第1の文書の編集の結果に含まれる、前記編集により前記部分内に追加された部品のうち、前記情報に示される、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率、が予め定めた閾値以上である部品を、前記第1のテンプレートに追加することにより第2のテンプレートを生成する、
ことを特徴とする情報処理装置。
【請求項2】
前記第2のテンプレートには、第1のテンプレートをコピーした部分を含む第1の文書の編集の結果に含まれる、前記編集により前記部分内に追加された部品のうち、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率が予め定めた閾値未満である部品は追加されない、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記第1のテンプレートには含まれるが前記編集により前記部分内から削除された削除部品のうち、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率が予め定めた閾値未満である削除部品を、前記第2のテンプレートに含めない、
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記プロセッサは、
前記第1の文書の編集の結果に含まれる部品間の関係に応じて前記確率を表す情報を更新する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項5】
前記プロセッサは、
前記第2のテンプレートを、前記第1のテンプレートに関連付けて記憶装置に記憶させ、
ユーザに対して編集対象の文書に組み込むテンプレートの選択肢を提示する際に、前記第1のテンプレートと前記第2のテンプレートとを比較可能な態様で提示する、
ことを特徴とする請求項1~のいずれか1項に記載の情報処理装置。
【請求項6】
前記プロセッサは、
複数の部品からなる部品構造ごとに、過去に編集された文書群における当該部品構造が追加された回数を示す情報、を参照し、
前記第1の文書の編集の結果から見つけた前記部品構造のうち、前記記憶装置に記憶した当該部品構造の前記回数が所定の閾値に達したものを、新たなテンプレートとして前記記憶装置に記憶させる、
ことを特徴とする請求項に記載の情報処理装置。
【請求項7】
前記プロセッサは、
生成した前記第2のテンプレートを文書編集システムに登録するか否かをユーザに問い合わせ、前記ユーザから登録する旨の指示を受けた場合に、前記第2のテンプレートを前記文書編集システムに登録する、
請求項1~のいずれか1項に記載の情報処理装置。
【請求項8】
コンピュータが、
部品間の関係の各々について当該関係が文書中に出現する確率を表す情報を取得し、
第1のテンプレートをコピーした部分を含む第1の文書の編集の結果に含まれる、前記編集により前記部分内に追加された部品のうち、前記情報に示される、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率、が予め定めた閾値以上である部品を、前記第1のテンプレートに追加することにより第2のテンプレートを生成する、
ように機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
文書の作成を支援するためにテンプレートを用意することが行われている。ユーザは、自分が作成したい文書の種類に対応するテンプレートを選び、そのテンプレートのファイルを開き、そのテンプレートに記入を加えることにより、個別の文書を作成する。
【0003】
また、ユーザが作成した文書からテンプレートを生成する手法も知られている。例えば特許文献1には、送信済みメールファイルと、編集したメールファイルを比較し、差異がある部分の文字列を削除して、テンプレートとして保存する方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-57999号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、複数の部品を含むテンプレートを含んだ文書の編集の結果から、新たなテンプレートを生成できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
請求項1に係る発明は、プロセッサを含み、前記プロセッサは、部品間の関係の各々について当該関係が文書中に出現する確率を表す情報を参照し、第1のテンプレートをコピーした部分を含む第1の文書の編集の結果に含まれる、前記編集により前記部分内に追加された部品のうち、前記情報に示される、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率、が予め定めた閾値以上である部品を、前記第1のテンプレートに追加することにより第2のテンプレートを生成する、ことを特徴とする情報処理装置である。
【0007】
請求項2に係る発明は、前記第2のテンプレートには、第1のテンプレートをコピーした部分を含む第1の文書の編集の結果に含まれる、前記編集により前記部分内に追加された部品のうち、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率が予め定めた閾値未満である部品は追加されない、ことを特徴とする請求項1に記載の情報処理装置である。
【0008】
請求項3に係る発明は、前記プロセッサは、前記第1のテンプレートには含まれるが前記編集により前記部分内から削除された削除部品のうち、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率が予め定めた閾値未満である削除部品を、前記第2のテンプレートに含めない、ことを特徴とする請求項1又は2に記載の情報処理装置である。
【0010】
請求項に係る発明は、前記プロセッサは、前記第1の文書の編集の結果に含まれる部品間の関係に応じて前記確率を表す情報を更新する、ことを特徴とする請求項に記載の情報処理装置である。
【0011】
請求項に係る発明は、前記プロセッサは、前記第2のテンプレートを、前記第1のテンプレートに関連付けて記憶装置に記憶させ、ユーザに対して編集対象の文書に組み込むテンプレートの選択肢を提示する際に、前記第1のテンプレートと前記第2のテンプレートとを比較可能な態様で提示する、ことを特徴とする請求項1~のいずれか1項に記載の情報処理装置である。
【0012】
請求項に係る発明は、前記プロセッサは、複数の部品からなる部品構造ごとに、過去に編集された文書群における当該部品構造が追加された回数を示す情報、を参照し、前記第1の文書の編集の結果から見つけた前記部品構造のうち、前記記憶装置に記憶した当該部品構造の前記回数が所定の閾値に達したものを、新たなテンプレートとして前記記憶装置に記憶させる、ことを特徴とする請求項のいずれか1項に記載の情報処理装置である。
【0013】
請求項に係る発明は、前記プロセッサは、生成した前記第2のテンプレートを文書編集システムに登録するか否かをユーザに問い合わせ、前記ユーザから登録する旨の指示を受けた場合に、前記第2のテンプレートを前記文書編集システムに登録する、請求項1~のいずれか1項に記載の情報処理装置である。
【0014】
請求項に係る発明は、コンピュータが、部品間の関係の各々について当該関係が文書中に出現する確率を表す情報を取得し、第1のテンプレートをコピーした部分を含む第1の文書の編集の結果に含まれる、前記編集により前記部分内に追加された部品のうち、前記情報に示される、前記部分内にある前記第1のテンプレートに含まれる部品との関係が出現する確率、が予め定めた閾値以上である部品を、前記第1のテンプレートに追加することにより第2のテンプレートを生成する、ように機能させるためのプログラムである。
【発明の効果】
【0015】
請求項1又はに係る発明によれば、複数の部品を含むテンプレートを含んだ文書の編集の結果から、新たなテンプレートを生成できる。また、追加された部品のうち、統計的に文書中に出現しやすい部品間の関係に属する部品が、第2のテンプレートに含まれるようにすることができる。
【0016】
請求項2に係る発明によれば、文書の編集により追加された部品のうち、テンプレートに含まれることが許可されないものが、第2のテンプレートに含まれることをなくすことができる。
【0017】
請求項3に係る発明によれば、文書の編集により削除された部品を反映した第2のテンプレートを生成することができる。
【0019】
請求項に係る発明によれば、テンプレートを含んだ文書の編集に応じて、規定情報のうちの確率を表す情報を更新することができる。
【0020】
請求項に係る発明によれば、文書に組み込むテンプレートをユーザに選択させる際に、第1のテンプレートと、このテンプレートを元に生成された第2のテンプレートとのうちのどちらが選ぶのかの判断材料となる情報をユーザに提供することができる。
【0021】
請求項に係る発明によれば、文書の編集の結果に含まれる部分構造から、需要が見込まれるものを新たなテンプレートとして生成することができる。
【0022】
請求項に係る発明によれば、ユーザが希望しない第2のテンプレートが自動的に登録されてしまうことを防ぐことができる。
【図面の簡単な説明】
【0023】
図1】文書編集システムが提供する文書編集環境の画面を例示する図である。
図2】テンプレートの具体例と、これを組み込んだ文書の編集結果からそのテンプレートの新バージョンが生成される場合を説明するための図である。
図3】部品関連度表の例を示す図である。
図4】テンプレートの別の具体例と、これを組み込んだ文書の編集結果からそのテンプレートの新バージョンが生成されない場合を説明するための図である。
図5】テンプレートを組み込んだ文書の編集結果からそのテンプレートの新バージョンが生成される別の例を説明するための図である。
図6】文書編集システムのテンプレート管理機能が実装されるコンピュータのハードウエア構成を例示する図である。
図7】新バージョンのテンプレートの生成処理の手順を例示する図である。
図8】テンプレート候補リストを例示する図である。
図9】新規テンプレートの生成処理の手順を例示する図である。
図10】テンプレートを組み込んだ文書の編集結果から、新規のテンプレートが生成される例を説明するための図である。
図11】テンプレートリストの例を示す図である。
図12】バージョンリストの例を示す図である。
図13】ユーザが文書に組み込むテンプレートを選択する際に提示される画面であって、ユーザが選択したバージョンとこれから派生したバージョンを並べて表示する画面を例示する図である。
【発明を実施するための形態】
【0024】
<文書編集システムの例>
図1を参照して、本開示に係るテンプレートの生成又は更新のための処理が適用される文書編集環境の例を説明する。
【0025】
図1には、文書編集システムが提供する文書編集環境の画面10が例示される。画面10には、編集中の文書12が表示されている。
【0026】
編集される文書は、構造化文書である。構造化文書は、1以上の部品から構成される構造を持つ文書である。構造化文書を構成する部品は、要素とも呼ばれる。複数の部品が並列に並べられたり、ある部品の中に別の部品が含められたりすることにより、部品群のツリー構造が形成される。文書構造の単位となる部品には、例えば、箇条書き(すなわちリスト)、表、囲み枠、文字列等がある。構造化文書は、例えば、XML(eXtensible Markup Language)等のマークアップ言語等を用いて記述される。
【0027】
ユーザは、文書12内のカーソル13の位置に文字を入力することにより文書を編集する。また、ユーザは、カーソル13の位置に、箇条書きや表等の部品を入力することで、文書12内に部品を追加する。新たに追加された部品は内容を含んでいないので、ユーザは更にその部品内に文字列等の内容を入力する。例えば、文書12内に表を追加した時点では、追加された表の個々のセル内の値は空なので、ユーザは、各セルに値を入力する。
【0028】
またユーザは、文書12の中にテンプレートを追加することもできる。テンプレートは、1以上の部品からなる構造を含んでいる。テンプレート内の部品の中には、文字列等の内容を含んだものがあってもよい。
【0029】
図示例では、カーソル13の位置に対して呼び出したコンテキストメニュー14内の項目の1つに「テンプレート」を追加するコマンド16がある。ユーザがこのコマンド16を選択することにより、テンプレート一覧18が表示される。テンプレート一覧18の中には、文書編集システムに登録されている各テンプレートの名前が一覧表示されている。ユーザは、テンプレート一覧18の中から、文書12に追加するテンプレートを選択する。これにより、文書12のカーソル13の位置に、選択されたテンプレートがそのカーソル13の位置にコピーされる。すなわち、そのテンプレートと同じ内容を持つ部分が文書12内のカーソル13の位置に組み込まれる。このように文書12内に組み込まれた、選択されたテンプレートに対応する部分のことを、以下では「テンプレート部分」と呼ぶこととする。1つの文書12内に複数のテンプレート部分が含まれることもある。
【0030】
<文書編集結果に基づくテンプレートの生成>
ユーザは、編集の過程で、文書12内に追加したテンプレート部分の中に部品を追加したり、そのテンプレート部分に含まれる部品を削除したりすることがある。この実施形態の手法では、編集後のテンプレート部分に基づいて、元のテンプレートをバージョンアップしたり、新たなテンプレートを生成したりする。
【0031】
図2に例示したテンプレート20は、「TEMPLATE」という名前の部品として構成されている。部品「TEMPLATE」の開始タグ「<TEMPLATE>」内には、テンプレート20の識別情報、名前、及びバージョン番号が、それぞれID属性、NAME属性、VERSION属性として含まれている。例示したテンプレート20のIDは「0012」、名前は「××表」、バージョン番号は「1」である。テンプレート20の開始タグと終了タグ「</TEMPLATE>」との間には、「TABLE」という名前の部品が含まれている。この部品は、表を表す部品である。テンプレート20内の部品群のツリー構造では、「TEMPLATE」部品は「TABLE」部品の「親」であり、逆に「TABLE」部品は「TEMPLATE」部品の「子」である。
【0032】
このテンプレートに対応するテンプレート部分が文書12内に追加され、編集された結果が、図2に示すテンプレート部分22である。テンプレート部分22には、「TABLE」部品の後に、新たに「TITLE」という名前の部品が追加されている。この部品は、タイトル(すなわち題名)を表す部品であり、この部品の開始タグと終了タグの間には、タイトルの文字列(この例では「表1.」)が含まれている。「TITLE」部品は、「TEMPLATE」部品の「子」であり、「TABLE」部品に対しては「親」を同じくするという意味で「兄弟」の関係にある。
【0033】
図2の例では、説明を簡潔にするために省略しているが、テンプレート20内では、例えば部品「TABLE」の各行及び各列の見出しの文字列は設定されているが、各行各列の個々のセルの値は空欄となっている。ユーザは、このテンプレート20を文書12内に組み込んだ部分(すなわちテンプレート部分22)に示される表内の各セルに値を入力し、表を完成させる。また、ユーザは、その表のタイトルを示す「TITLE」部品を追加し、その部品内にタイトルの文字列を入力する。
【0034】
文書編集システムのテンプレート管理機能は、このように編集されたテンプレート部分22に基づき、元のテンプレート20の更新版であるテンプレート24を生成する。生成されるテンプレート24は、テンプレート20に対して、「TABLE」部品の次の位置に「TITLE」部品26を追加したものである。
【0035】
図2の例では、編集によりテンプレート部分22内に追加された「TITLE」部品26を、新バージョンのテンプレート24に組み込んだ。しかし、後で頻繁に利用されるものでないとテンプレートとして用意しておく意味がない。例えば、今回の文書12に固有の事情によりテンプレート部分22に追加された部品(以下「部品A」と呼ぶ)がある場合、その部品Aを含むテンプレートを新バージョンとして用意したとしても、その新バージョンは、あまり利用されないと予想される。なぜなら、その新バージョンは、一般には必要性が低い部品Aを含んでいるからである。仮に、あるユーザがその新バージョンのテンプレートを自分の文書中に組み込んだ場合、不要なその部品Aを削除するという余計な手間が掛かる。このユーザにとっては、部品Aを含まない元のバージョンのテンプレートの方が便利である。
【0036】
そこで、本実施形態のテンプレート管理機能は、編集により追加された部品(すなわち元のテンプレート20には含まれなかった部品)のうち、新バージョンのテンプレート24に含めるものを取捨選択する。この取捨選択のために、テンプレート管理機能は、図3に例示する部品関連度表を参照する。部品関連度表は、テンプレート部分22内で隣り合う2つの部品がなす関係(すなわち組合せ)の、文書群の中での出現確率の高さ、すなわち出現のしやすさ、を示す表である。出現のしやすさを考える場合の文書群の母集団は、例えば、文書編集システムを利用する組織内の文書データベースに保存されている文書群や、文書編集システムがこれまでに編集してきた文書群等である。ただし、これらはあくまで一例に過ぎない。部品関連度表は、文書編集システム内に保存されているか、又はネットワーク上のいずれかのサーバ上に、テンプレート管理機能から参照可能な状態で保存されている。
【0037】
図3に例示する部品関連度表は、テンプレート部分22内で兄弟関係で隣り合う2つの部品の関係の文書中での出現確率を、「×」、「△」、「○」、「◎」の4段階の記号で示している。図示例では、横軸の各項目に示す部品が、文書中のテンプレート部分22内において上側(すなわち文書の先頭に近い側)に位置する部品であり、縦軸の各項目に示す部品は、横軸の部品に対して兄弟関係で下側に隣り合う部品である。記号「×」は出現確率が最低の範囲内にあることを示しており、以下「△」、「○」、「◎」の順に、それら各記号が示す出現確率は高くなる。すなわち、第1の閾値<第2の閾値<第3の閾値という3つの閾値を用いた場合、「×」は出現確率が第1の閾値未満である範囲を示し、「△」は出現確率が第1の閾値以上第2閾値未満である範囲を示し、「○」は出現確率が第2の閾値以上第3閾値未満である範囲を示し、「◎」は出現確率が第3の閾値以上である範囲を示す。例えば、「×」に該当する関係はほとんど出現しない(例えば過去にほとんど例がない)ものであるのに対して、「◎」に該当する関係は非常に高い確率で出現する。例えば、「LIST」部品の直下に「NOTICE」部品が位置する兄弟関係が出現する可能性は非常に低いのに対し、「TABLE」部品の直下に「TITLE」部品が位置する兄弟関係が出現する可能性は非常に高い。
【0038】
図3に例示した部品関連度表は、兄弟関係で隣り合う部品間についてのものであるが、文書編集システムのテンプレート管理機能は、この他に親子関係で隣り合う部品間についての部品関連度表を有している。図2の例における「TEMPLATE」部品とその下にある「TABLE」部品との関係が、親子関係で隣り合う部品の例である。
【0039】
部品関連度表は、テンプレート管理機能のベンダーが自らの知見に基づいて作成してもよい。また、文書編集システムを利用する組織において用いられる文書群を調査したり、それら文書群を用いて機械学習を行ったりすることにより、過去の文書群の統計に基づいた部品関連度表を作成してもよい。また、文書編集システムにてユーザがテンプレートを利用して文書を作成するのに応じて、その文書中のテンプレート部分の変更内容に基づいて、部品関連度表を更新してもよい(後述する図7のフローチャートの例を参照)。
【0040】
テンプレート管理機能は、例えば、部品関連度表における2つの部品の関係の出現確率が所定の判定閾値以上であれば、その関係を、テンプレートに含めることが許可される関係(以下、このような関係のことを「許可される関係」とも呼ぶ)であると判定する。逆に2つの部品の関係の出現確率が所定の判定閾値未満であれば、その関係は、テンプレートに含めることが許可されない関係と判定する。編集により追加された部品とその前又は後の部品との関係が、テンプレートに含めることが許可される関係と判定される場合、テンプレート管理機能は、その追加された部品を含む新バージョンのテンプレートを生成する。
【0041】
その判定閾値と部品関連度表の組は、テンプレートに含めることが許可される部品間の関係を規定する規定情報の一例である。
【0042】
以下、図3に示す部品関連度表を用いる場合において、判定閾値を、記号「○」に対応する出現確率の範囲と記号「×」に対応する出現確率の範囲との境界値(すなわち上述の例の第2の閾値)とした場合の具体例をいくつか説明する。
【0043】
この場合、図2の例では、元々テンプレート内にあった「TABLE」部品の直後に兄弟関係で「TITLE」部品が追加されているが、この関係の出現確率は、図3の部品関連度表で「◎」であり、判定閾値より高い。このため、テンプレート中の「TABLE」部品の直後に兄弟関係の「TITLE」部品を追加することが許可され、この結果「TITLE」部品が追加された新バージョンのテンプレート24が生成される。元のテンプレート20のバージョン値が「1」であるのに対し、テンプレート24のバージョン値は「2」となっている。
【0044】
また図4に示す別の例では、元のテンプレート30は、「TEMPLATE」部品が子部品として「NOTICE」部品を含んでいる。このテンプレート30が文書に組み込まれ、ユーザの編集が加えられた結果、「NOTICE」部品の直後に「TITLE」部品が兄弟関係で追加されたテンプレート部分32ができたとする。図3の部品関連度表では、その兄弟関係の出現確率は、図3の部品関連度表で「×」であり、これは判定閾値より低い。このため、テンプレート中の「NOTICE」部品の直後に兄弟関係の「TITLE」部品を追加することは許可されない。編集後のテンプレート部分32のうち元のテンプレート30から増減した部品がその「TITLE」部品のみであれば、テンプレート部分32に基づく新バージョンのテンプレートは生成されない。
【0045】
更に、上述のテンプレート30に対して2つの部品が追加された例を図5に示す。この例では、このテンプレート30が文書に組み込まれ、ユーザの編集が加えられた結果、テンプレート部分34ができたとする。このテンプレート部分には、「NOTICE」部品の直後に「TABLE」部品が兄弟関係で追加され、「TABLE」部品の直後に「TABLE」部品の子として「FRAME」部品が追加されている。なお、図5では、煩雑さを避けるため、「FRAME」部品等の各部品の内容は省略している。図3の部品関連度表では、「NOTICE」部品の直後に「TABLE」部品が位置する兄弟関係の出現確率は、図3の部品関連度表で「○」であり、これは判定閾値より高い。このため、テンプレート中の「NOTICE」部品の直後に兄弟関係の「TABLE」部品を追加することは許可される。一方、図示を省略した親子関係についての部品関連度表では、「TABLE」部品が親であり、「FRAME」部品が子である親子関係の出現確率は「△」であったとする。この場合、その親子関係をテンプレートに含めることは許可されない。したがって、図5の例では、追加された「TABLE」部品は含むが「FRAME」部品は含まない新バージョンのテンプレート36が生成される。
【0046】
図2図4及び図5の例は、テンプレート内の既存の部品の直後に新たな部品(すなわち元のテンプレートになかった部品)が追加された場合の例であったが、テンプレート内の既存の部品の直後に新たな部品が追加された場合にも、同様の方法が適用可能である。すなわち、編集後のテンプレート部分に新たな部品がある場合、その部品とその直後に位置する既存の部品(すなわち元のテンプレートにある部品)との関係が「許可される関係」に該当するかを部品関連度表及び判定閾値に基づいて判定する。その関係が「許可される関係」に該当すると判定されれば、その新たな部品を含む新バージョンのテンプレートが生成される。その関係が「許可される関係」に該当しなければ、その新たな部品は新バージョンのテンプレートには含まれない。
【0047】
以上では、文書内のテンプレート部分内に部品を追加した場合の例であったが、テンプレート部分内から元のテンプレートに含まれる既存の部品を削除した場合にも、同様の方法が適用可能である。すなわち、編集後のテンプレート部分に、元のテンプレートにはあった部品がない場合、その部品とその直前及び直後に位置する既存の部品との関係が「許可される関係」に該当するか否かを部品関連度表及び判定閾値に基づいて判定する。その関係が「許可される関係」に該当しないと判定されれば、削除されたその部品がない新バージョンのテンプレートが生成される。その削除された部品が含まれている元のテンプレートの方が、統計的に見てあまり使われにくい部品の並びを含む特殊なもの言え、その削除された部品がないテンプレートの方が、統計的にみて利用されやすいと考えられるからである。なお、その部品とその直前又は直後に位置する既存の部品との関係が「許可される関係」に該当する場合には、削除された部品を含んでいるテンプレートの方が統計的に見て使われやすいと考えられる。このため、その場合には、その部品を削除した新バージョンのテンプレートは生成されない。
【0048】
また、図3に例示した部品関連度表は、2つの部品間の関係の出現確率を4段階に分けて表示したものであったが、これは一例にすぎない。部品関連度表は、2つの部品間の関係の出現確率を数値で示すものあってもよい。
【0049】
<ハードウエア構成の例>
以上に例示した、文書編集システムのテンプレート管理機能は、コンピュータにその機能を表すプログラムを実行させることにより実現される。このコンピュータは、文書編集システムを構成するコンピュータと同じものであってもよいし、異なるものであってもよい。
【0050】
ここで、コンピュータは、例えば、図6に示すように、ハードウエアとして、プロセッサ102、ランダムアクセスメモリ(RAM)等のメモリ(主記憶装置)104、フラッシュメモリやSSD(ソリッドステートドライブ)、HDD(ハードディスクドライブ)や等の補助記憶装置106を制御するコントローラ、各種の入出力装置108とのインタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース110等が、例えばバス112等のデータ伝送路を介して接続された回路構成を有する。文書編集システムのテンプレート管理機能(又は文書変種システムその者)の各機能の処理内容が記述されたプログラムが、ネットワーク等を経由してコンピュータにインストールされ、補助記憶装置106に保存される。補助記憶装置106に記憶されたプログラムが、プロセッサ102によりメモリ104を用いて実行されることにより、上述したテンプレート管理機能による新バージョンのテンプレート生成処理が実現される。補助記憶装置106には、部品編集システムに登録されたテンプレート群、部品関連度表、及び判定閾値等が保存されている。
【0051】
ここでプロセッサ102とは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、 ASIC:Application Specific Integrated Circuit、 FPGA:Field Programmable Gate Array、 プログラマブル論理デバイス、等)を含むものである。
【0052】
また、プロセッサ102の動作は、1つのプロセッサ102によってなすのみでなく、物理的に離れた位置に存在する複数のプロセッサ102が協働してなすものであってもよい。また、プロセッサ102の各動作は、以下の実施形態において説明する順序のみに限定されるものではなく、適宜に変更してもよい。
【0053】
<処理手順の例>
次に、図7を参照して、上述したテンプレート管理機能を具現化するためにプロセッサ102が実行する処理手順の例を説明する。図7の手順は、例えば、ユーザが文書の編集を終え、その文書をファイルシステムに保存する指示を行った際に実行される。
【0054】
この手順では、プロセッサ102は、保存指示の対象となった文書の中からテンプレート部分を抽出する(S100)。このステップS100では、プロセッサ102は、その文書から開始タグ<TEMPLATE>とその後に現れる最初の終了タグ</TEMPLATE>とで囲まれたテンプレート部分を抽出する。文書内に複数のテンプレート部分が含まれている場合には、それらテンプレート部分の各々を抽出する。
【0055】
次にプロセッサ102は、抽出したテンプレート部分毎にS102~S120の処理を行う。
【0056】
この一連の処理では、まずプロセッサ102は、抽出したテンプレート部分と、これに対応する元のテンプレートとを比較する。そして、この比較により、今回の編集(すなわちこの文書が前回ファイルシステムに保存された後、今回保存されるまでの間の編集)によりテンプレート部分に追加された部品を特定する(S102)。ステップS104では、プロセッサ102は、例えば、そのテンプレート部分の開始タグからテンプレートID、バージョン番号を読み出し、それらの組合せに該当する元のテンプレートを文書編集システム内のテンプレート群の中から検索する。検索されたテンプレートが、そのテンプレート部分に対応する元のテンプレートである。プロセッサ102は、その元のテンプレートとそのテンプレート部分とのタグ同士を比較することにより、編集で追加された部品(すなわちテンプレートには含まれないがテンプレート部分には含まれる部品)を特定する。
【0057】
次にプロセッサ102は、S102の結果、追加された部品が1以上見つかったかどうかを判定する(S104)。追加された部品が1つもなければ(すなわちS104の判定結果がNo)、プロセッサ102は、S104~S120の処理をスキップし、現在の処理対象のテンプレート部分についての処理を終了する。
【0058】
S104の判定結果がYesの場合、プロセッサ102は、特定した追加された部品を反映するよう部品関連度表を更新する(S106)。例えば、プロセッサ102は、部品関連度表において、特定した追加された部品とその直前の部品との関係に対応するセル、及びその追加された部品とその直後の部品との関係に対応するセルを特定する。そして特定したセルのそれぞれについて、そのセルが示す関係の出現回数を1増やす。この出現回数は、当該セルの出現確率の算出式(=出現回数/総数)の分子に当たる。またこのとき、プロセッサ102は、その算出式の分母に当たる総数の値も1増やす。この総数は、例えば、文書編集システムにこれまで文書保存が行われた総回数である。そしてプロセッサ102は、特定した各セルの出現確率をその算出式により再計算することにより、部品関連度表におけるそれら各セルの出現確率を更新する。テンプレート部分内に、追加された部品が複数ある場合には、それら追加された部品毎に、S106の処理が実行される。
【0059】
なお、以上に示した部品関連度表の更新処理はあくまで一例に過ぎない。例えばこの代わりに、S100でテンプレート部分を抽出する毎に、上記算出式の総数を1増やすと共に、そのテンプレート部分に現れる隣り合う部品同士の関係ごとにその関係の出現回数を1増やし、この増加後の数値に基づき各セルの出現確率を更新してもよい。
【0060】
次に、プロセッサ102は、ステップS102で特定した追加された部品(以下、追加部品と呼ぶ)毎にステップS108の処理を実行する。ステップS108では、プロセッサ102は、その追加部品とその追加部品の直前及び直後の部品との関係が、テンプレートに含まれることを「許可される関係」に該当するかどうかを、その更新後の部品関連度表に基づいて判定する。追加部品と直前の部品との関係、及び追加部品と直後の部品との関係、のうちの少なくとも一方が「許可される関係」と判定された場合、その追加部品は、新バージョンのテンプレートに追加される。逆に、追加部品と直前の部品との関係、及び追加部品と直後の部品との関係の両方が「許可される関係」でないと判定された場合には、その追加部品は新バージョンのテンプレートには組み込まれない。
【0061】
プロセッサ102は、ステップS102で特定した1以上の追加部品の中に、前後の部品との関係が「許可される関係」と判定されたものが1以上あるかどうかを判定する(S110)。この判定の結果がYesの場合、プロセッサ102は、「許可される関係」と判定された関係に係る追加部品は含むが「許可される関係」と判定されなかった関係に係る追加部品は含まない新バージョンのテンプレートを生成する(S112)。生成された新バージョンのテンプレートは、文書編集システムに登録される。生成される新バージョンのテンプレートは、旧バージョンである元のテンプレートに対して、「許可される関係」と判定された関係に係る追加部品を追加したものである。ここでプロセッサ102は、新バージョンに追加される追加部品からは、編集された文書中の、そのテンプレートに対応するテンプレート部分内のその追加部品に含まれていた内容は削除する。ただし、特定の種類の部品(例えばTITLE)については、その内容も新バージョンのテンプレートに含めるよう予め定めておいてもよい。
【0062】
なお、このように新バージョンが登録された後も旧バージョンである元のテンプレートを文書編集システム内に残しておいてもよい。新バージョンのテンプレートは、旧バージョンのテンプレートと同じテンプレートIDを持つが、バージョン番号は旧バージョンよりも大きい番号となっている。したがって、新バージョンと旧バージョンは、同じテンプレートIDを持つことにより、互いに対応付けられている。またこの代わりに、文書編集システム内の旧バージョンのテンプレートを削除し、新バージョンのテンプレートに置き換えてもよい。ステップS112の後、プロセッサ102はステップS120に進む。
【0063】
以上の例では、プロセッサ102は、ステップS112で生成した新バージョンのテンプレートを自動的に文書編集システムに登録したが、これは一例に過ぎない。この代わりに、プロセッサ102は、ユーザに提供している文書編集の画面上に新バージョンを登録するか否かの問合せ画面を表示してもよい。そしてプロセッサ102は、その問合せ画面に対してユーザから登録する旨の指示を受け取った場合に、その新バージョンを文書編集システムに登録してもよい。問合せ画面には、S112で生成した新バージョンのテンプレートを表示してもよい。問合せ画面に対して、ユーザから登録しない旨の指示を受け取った場合には、プロセッサ102は、その新バージョンのテンプレートを文書編集システムに登録しない。新バージョンのテンプレートを文書編集システムに登録した場合、プロセッサ102は、S102~S112の処理の対象のテンプレート部分の開始タグ内のバージョン番号を、その新バージョンの番号に変更してもよい。
【0064】
ステップS110の判定の結果がNoの場合、新バージョンのテンプレートに含めることが許可される追加部品は1つもないので、プロセッサ102は、新バージョンのテンプレートを生成しない。すなわちプロセッサ102は、ステップS112をスキップし、ステップS120に進む。
【0065】
S120では、プロセッサ102は、新規テンプレートの生成のための処理を行う。ここでいう新規テンプレートは、既存のテンプレートの新バージョンではなく、まったく新しいテンプレートである。今回の編集により文書に追加された一連の部品からなる構造(以下、「追加された部品構造」と呼ぶ)が、今後よく利用されると判断される場合に、その追加された部品構造を新規テンプレートとして文書編集システムに登録するのである。文書に追加された部品構造とは、その文書に追加された、互いに連続して並ぶ部品が構成する構造である。例えば、文書に追加された部品群が互いに兄弟関係で連続して並んでいる構造、文書に追加された部品の中に別の追加された部品が親子関係で含まれている構造、そのような兄弟関係の構造とそのような親子関係の構造が連続して並んでいる構造等が、追加された部品構造の例である。
【0066】
部品構造は、連続する(すなわち隣り合う)複数の部品を含むものであり、単独の部品は部品構造ではない。テンプレート部分に追加された部品が、他の追加された部品と連続していない場合、その追加された部品は、「追加された部品構造」ではない。また、部品構造は、個々の部品の内容を含まない。ただし、予め定めた特定の種類の部品(例えばTITLE)については、部品構造中の当該種類の部品にその内容も含めるようにしてもよい。
【0067】
この例では、様々なユーザによる過去の文書群の編集において、同じ部品構造が、ある閾値回数以上追加されたことを検知した場合に、その部品構造が「今後よく利用される」と判定し、その部品構造を表す新規テンプレートを生成する。
【0068】
この新規テンプレートの生成処理の管理のために、文書管理システムのテンプレート管理機能は、図8に例示するテンプレート候補リストを補助記憶装置106内に保持している。図8にテンプレート候補リストを例示する。このリストは、新規テンプレートの候補である部分構造ごとに、候補ID、構造、及び回数のデータを保持する。候補IDは、新規テンプレートの候補である当該部分構造の識別情報である。構造は、当該部品構造そのものである。回数は、様々なユーザが行った過去の文書群の編集において、当該部品構造が追加された回数である。この回数は、単純な累計回数であってもよい。また別の例として、この回数は、直近の所定長さの期間内に行われた文書群の編集において当該部品構造が追加された回数、としてもよい。この所定長さの期間内の回数が多ければ、当該部品構造に対する需要が高いといえる。
【0069】
図9を参照して、ステップS120の処理の詳細な手順を例示する。この手順では、まずプロセッサ102は、処理対象のテンプレート部分内に、今回の編集で追加された部品構造があるかどうかを判定する(S122)。そのような部品構造がない場合は、図8の処理は終了する。
【0070】
ステップS122の判定結果がYesの場合、プロセッサ102は、そのテンプレート部分から見つかった、追加された部品構造ごとに、S124~S134の処理を実行する。すなわちプロセッサ102は、テンプレート候補リスト内に、当該部分構造が登録されているかどうかを調べる(S124)。ステップS124の判定結果がNo、すなわち当該部分構造がテンプレート候補リスト内にない場合は、プロセッサ102は、その部分構造に一意なテンプレートIDを付与し、テンプレート候補リストに登録する。このとき、当該部分構造の回数は1回にセットされる。
【0071】
ステップS124の判定結果がYesの場合、プロセッサ102は、テンプレート候補リストに示される当該部分構造の回数を1増加させ、その増加後の回数が所定の閾値以上であるか否かを判定する(S126)。この判定の結果がYesの場合、その部分構造を持つテンプレートの需要が高いといえる。この場合プロセッサ102は、ユーザに提供している文書編集の画面上に、当該部分構造を新規テンプレートとして登録することを提案する提案画面を表示する(S128)。この画面には、当該部品構造(例えば各部品のタグ群の並び)を表示する。また、この提案画面には、この部品構造を新規テンプレートとして登録するか否かの指示を受け付けるためのGUI(グラフィカルユーザインタフェース)、例えば登録することを示すOKボタンと、登録しないことを示すキャンセルボタンを表示する。ユーザは、この提案画面に対し、登録するか否かの指示を入力する。プロセッサ102は、ユーザから入力された指示が、登録することを示すものか否かを判定し(S130)、登録することを示すものであれば、その部分構造を新規テンプレートとして文書編集システムに登録する(S132)。このとき、プロセッサ102は、ユーザに、その新規テンプレートの名前の入力を受け付ける。登録された新規テンプレートのバージョン番号は初期値である「1」に設定され、ユーザから受け付けた名前が「NAME」属性の値としてその新規テンプレートに組み込まれる。ステップS130の判定結果がNoの場合、プロセッサ102は、ステップS132をスキップし、当該部分構造についての処理を終了する。
【0072】
以上、テンプレート管理機能の処理手順を例示した。図10に示す例では、図4にも例示したテンプレート30が文書に組み込まれ、その組み込まれた部分がユーザの編集によりテンプレート部分38となっている。このテンプレート部分38は、「NOTICE」部品の次に2つのリスト項目部品「LI」を含むリスト部品「LIST」が追加されている。
【0073】
この例では、「NOTICE」部品とその次の「LIST」部品との兄弟関係の出現確率は「△」であり、これは上述の例の判定閾値未満なので、「LIST」部品を追加した新バージョンのテンプレートは生成されない。
【0074】
一方、追加された「LIST」部品は、内部にリスト項目部品「LI」を含んでいるので、部品構造に該当する。ここで、テンプレート候補リストから、この「LIST」部品と同じ部品構造の追加が行われた回数が閾値に達していることが分かった場合、この部品構造を示す新規テンプレートの生成がユーザに提案される。
【0075】
図9の例では、文書中のテンプレート部分に追加された部分構造のみを対象としたが、これは一例に過ぎない。この代わりに、編集された文書内の、テンプレート部分以外の部分に追加された部分構造をも、新規テンプレートの候補としてもよい。
【0076】
また、図7に示した手順は、新バージョンのテンプレートの生成において、テンプレート部分に追加された部品を考慮したものであったが、更にテンプレート部分から削除された部品(以下、削除部品と呼ぶ)を考慮に入れてもよい。削除部品、すなわち元のテンプレートには存在するが編集後のテンプレート部分には存在しない部品、がある場合、それを反映した新バージョンのテンプレートを生成するか否かを、部品関連度表等に基づいて判定してもよい。
【0077】
削除部品を考慮する例では、図7の手順は、例えば以下のように変更される。すなわち、ステップS102では、プロセッサ102は、処理対象のテンプレート部分と、これに対応する元のテンプレートとの比較により、追加部品と削除部品の両方を特定する。ステップS104では、プロセッサ102は、特定された追加部品又は削除部品が1以上あるか否かを判定する。ステップS106では、特定された削除部品と前後の部品との関係に対応する部品関連度表内のセルの出現確率を更新しなくてもよいし、その出現確率を下げるように(例えば総数のみを増やし、当該セルの出現回数は維持する等)更新してもよい。
【0078】
ステップS108では、プロセッサ102は、各削除部品についても、当該削除部品と前後の部品との関係と、部品関連度表及び判定閾値とに基づいて、その削除部品の削除を新バージョンのテンプレートに反映するか否かを判定する。例えば、プロセッサ102は、その削除部品とその前及び後の部品との2つの関係について、部品関連度表が示すその関係の出現確率が共に判定閾値以下であれば、新バージョンのテンプレートからその削除部品を削除してよいと判定する。その削除部品がないテンプレートの方が、ユーザの需要が多いと考えられるからである。
【0079】
ステップS110では、前後の部品との関係が「許可される関係」に該当する追加部品が存在すること、又は、新バージョンのテンプレートから削除してよいと判定される削除部品が存在すること、のうちの少なくとも一方が成立するか判定される。
【0080】
他のステップの処理は、上述したものと同様でよい。
【0081】
なお、削除部品の判定に用いる判定閾値は、追加部品の判定に用いる判定閾値と同じであってもよいし、異なっていてもよい。また削除部品の判定に用いる部品関連度表は、追加部品の判定に用いる部品関連度表と同じであってもよいし、異なっていてもよい。
【0082】
また図7の手順の更なる変形例として、テンプレート内に部品内容が含まれる特定の種類の部品については、対応するテンプレート部分の編集によりその部品の内容が変更された場合に、その内容変更を新バージョンのテンプレートに反映させてもよい。このような特定の種類の部品の例は、「TITLE」部品である。この変形例では、プロセッサ102は、ステップS102では、テンプレート部分内に特定の種類の部品であって、内容が変更されたものがあるかどうかを調べる。この条件に該当する部品が見つかれば、ステップS104の判定結果やYesとなり、プロセッサ102は、ステップS108及びS110をスキップし、ステップS112でその内容の変更を反映した新バージョンのテンプレートを生成する。
【0083】
次に、図11図13を参照して、文書編集システムが提供する、テンプレート利用のためのUIを例示する。
【0084】
この例では、文書編集システムのプロセッサ102は、ユーザから、文書内のカーソル位置にテンプレートを組み込む旨の指示を受けた場合、図11に例示するテンプレートリストを文書編集用の画面上に表示する。表示されるテンプレートリストには、文書編集システムに登録されている各テンプレートの情報が示される。すなわちテンプレートリストには、文書に組み込み可能なテンプレート群が選択肢として示されている。この例では、テンプレートリストには、個々のテンプレート毎に、テンプレート名、作成者、作成日、テンプレート概要、及び活用文書、の各項目が含まれる。テンプレート名は、当該テンプレートの名前である。作成者は、当該テンプレートの最初のバージョンを作成したユーザの情報(例えばユーザ名)であり、作成日は、当該テンプレートの最初のバージョンが作成された日付を示す。テンプレート概要は、そのテンプレートの利用目的等、ユーザが当該テンプレートを利用するか否かの判断の参考となる概要情報である。テンプレート概要は、例えば、当該テンプレートの作成者が入力しておく。活用文書は、当該テンプレートが組み込まれた文書の文書名のリストである。例えばテンプレート「商品機能情報」は、「A商品マニュアル」、「B商品マニュアル」、「C商品マニュアル」の3つの文書に活用されている。
【0085】
表示されたテンプレートリスト上でユーザが1つのテンプレートを選択すると、プロセッサ102は、そのテンプレートのバージョンリストを表示する。テンプレート「商品機能情報」のバージョンリストを図12に例示する。バージョンリストには、当該テンプレートのバージョン毎に、Ver(=バージョン番号)、作成者、作成日、ベースVer、活用文書、差分、の各項目を含む。作成者は、当該バージョンの作成者である。当該バージョンが元のバージョンのテンプレートを組み込んだ文書の編集結果から生成されたものである場合、当該バージョンの作成者や、その文書の編集を行ったユーザである。作成日は、当該バージョンが作成された日付である。
【0086】
ベースVerは、当該バージョンの元になったバージョンの番号であり、活用文書は、当該バージョンが組み込まれた文書の文書名であり、差分は、当該バージョンと元になったバージョンとの差である。例えば、ある文書Aにテンプレート「商品機能情報」のバージョン1が組み込まれ、編集により文書A内のそのバージョン1に対応するテンプレート部分に部品Xの追加が行われ、その結果そのテンプレートの新バージョンが生成された場合を考える。この場合、その新バージョンがそのテンプレートのバージョンリストに追加される。その新バージョンのベースVerはバージョン1であり、活用文書は文書Aであり、差分は「部品Xを追加」となる。
【0087】
ユーザは、表示されたバージョンリストの中から、編集中の文書に追加したいバージョンを選択する。プロセッサ102は、この選択に応じ、そのバージョンのテンプレートを画面に表示し、表示したそのテンプレートを文書に組み込むか否かの指示をユーザに求める。ユーザから組み込む旨の指示があった場合、プロセッサ102は、そのバージョンのテンプレートを文書に組み込む。
【0088】
ここで、ユーザがバージョンを選択した際に表示する画面に対して、選択されたバージョンだけでなく、そのバージョンを元に生成されたバージョンも併せて表示してもよい。この画面の一例を、図13に示す。
【0089】
図13に示す画面40は、図12に示すバージョンリストにおいて、ユーザがバージョン1を選択したときに表示されるものである。この画面40の左側の欄42には、選択されたバージョンの情報が表示される。また、右側の欄44には、その選択されたバージョンを元に生成されたバージョン、すなわちその選択されたバージョンをベースVerとするバージョン(以下、派生バージョンと呼ぶ)の情報が表示される。図示例は、あるテンプレートのバージョン1が選択された場合のものである。左側の欄42の表示部43には、選択されたバージョン1のテンプレートが表示される。右側の欄44の表示部48には、選択されたバージョン1の派生バージョンのリストが表示される。派生バージョンの数が多い場合は、表示部48はスクロール可能な表示形態で表示される。表示部48のリストからユーザが1つの派生バージョンを選択すると、表示部45内にその選択された派生バージョンのテンプレートが表示される。表示部45内に表示されるテンプレートのうち、右側の表示部43に表示される元のバージョンとの差分が強調表示される。図示例は、派生バージョンのうちバージョン2が選択されている場合のものである。この画面40上でユーザが左側の表示部43を選択する操作を行うと、その表示部43に表示されたテンプレートを文書に組み込むか否かの指示を受け付ける画面が表示され(図示省略)、この画面に対してユーザは指示を入力する。同様に、ユーザが右側の表示部45を選択する操作を行うと、その表示部45に表示されたテンプレートを文書に組み込むか否かの指示を受け付ける画面が表示され(図示省略)、この画面に対してユーザは指示を入力する。
【0090】
このように図13の例では、ユーザは、元のバージョンと派生バージョンのテンプレートを比較しつつ、いずれのテンプレートを文書に組み込むかを検討する。なお、図13の例では、テンプレートの元のバージョンと派生バージョンとが同一の画面(例えばウインドウ)内に並べて表示されるが、このような表示態様は一例に過ぎない。元のバージョンと派生バージョンとの表示には、それら両者の比較が可能な表示態様であれば、どのような表示態様を用いてもよい。
【0091】
そして、プロセッサ102は、第1のテンプレートを組み込んだ文書の編集結果に基づいて生成したそのテンプレートの新バージョンである第2のテンプレートを、第1のテンプレートの派生バージョンとして文書編集システムに登録する。
【0092】
図11図13を参照して説明した例は、文書の編集結果に基づいて生成された新バージョンのテンプレートと共に、その新バージョンの元になったバージョンのテンプレートを文書編集システム内に残す場合の例である。
【0093】
以上に例示した実施形態及び変形例はあくまで例示的なものにすぎない。
【符号の説明】
【0094】
10 画面、12 文書、13 カーソル、14 コンテキストメニュー、18 テンプレート一覧、20,24 テンプレート、22 テンプレート部分、102 プロセッサ、104 メモリ(主記憶装置)、106 補助記憶装置、108 入出力装置、110 ネットワークインタフェース、112 バス。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13