書くのは1回だけにしたい

文書を書く時に、特にマニュアル類を書くときに、用語の統一や言い回しの統一が大変です。また、単純な表現上の矛盾などをチェックするのが以外に大変です。実際のシステムとマニュアルの齟齬のチェックも人手です。大抵ないがしろにされます。曰く,内賀四郎。

さらに、他国語への翻訳などが後々想定される場合などもうんざりします。
#見込みも無いのに準備だけさせるのはヤメテ

可能ならば名詞についてはHTMLのタグのように書くことができればいいな、と思うことがあります。

例:
「運転モードを変更するには、タッチスクリーン上部に表示された『運転モード』ボタンをタッチします。」

「<OperationMode>を変更するには、<TouchScreen>上部に表示された<ButtonOperationMode>を<Touch>します。」

みたいな。これならテキストエディタの置換機能だけで実現できるような気もします。しかしこれをエディタで編集するとなると、テクニカルライターの人から槍が飛んできそうです。それでもあきらめませんよ。もう1歩進めます。

例:
Description {
  Objective := Application.Change( OperationMode );
  Todo := Operator.Touch( ButtonOperation );
}

Description {
  ButtonOperation.Located( TouchScreen.Upper );
}

というような記述から、
「運転モードを変更するには、『運転モード』ボタンをタッチします。」
「『運転モード』ボタンは、タッチスクリーンの上部にあります。」
という文を生成するのはどうでしょうか。SVOで整理すればも少しマシにできるような期待を持っていたりします。

自然言語の文章を計算機に食わせるのはなかなかうまくいかないようですが、逆はそれほど難しくないような気がします。ただし生成できる文章の表現力には相当制限がかかってしまうと思います。たとえ多少冗長でも、誤解のない表現を確実に生成できる範囲に絞り込んでしまえば実用範囲のものを仕上げられるのではないか?と思ったりします。必要なのは「あいうえお作文」程度ですので・・・

記述から文章を得るには、生成ルール群だけが必要なので、言語非依存で記述を蓄積できます。文章を継続的に保守する必要がある場合は結構強力だと思うのです。しかしながら、いわゆる「電子マニュアル界隈」ではSGML/XMLでパラグラフやセクションごとに記述を分けて分散記述できる程度の仕組みを提供するに留まっているように見受けられます。

プラント運用や中規模以上の企業システムの運用マニュアルなどでは、運用上の手順変更や仕様変更の度にマニュアルと実際の齟齬を穴埋めしています。これはオペレータの負担となっています。

ここで提案する方法は、簡単な矛盾テストくらいは機械化できそうです。さらに、マニュアルへの注釈や訂正も同じ記述で放り込めるようにすれば、在アジアの現場でのノウハウを北米の現場へ反映したりするという夢のようなことも可能になるのかもしれません。

準標準言語としての英語や今後その地位を狙うと思われる中国語で一気通貫しても、自然言語を使う以上明らかな矛盾チェックや継続的な保守にまつわるコストはいつまでたっても解消できないでしょう。

マニュアルが必要でないようなシステムができればそれがベストかもしれません。状況感応型のヘルプなどへの努力も惜しむべきではないでしょう。

メモ:
OWLウェブ・オントロジー言語ガイド

MPEG-7とLinguistic DSのLinguistic DS

たまごプロジェクト:多言語間意思伝達支援システムの共同研究開発プロジェクトは廃れちゃったのか