ドメインモデルに基づいて技術文書中の矛盾を検出する方法

自然言語処理技術の用途の一つは，自然言語で書かれた文章について推論を行うことである．自然言語処理技術を利用した推論としては，いくつかの種類のものが考えられるが，本稿では，一つの文書中（あるいは複数の文書間）の矛盾の検出を取り上げる．その理由は，文書中の矛盾の検出は，実用的に重要な課題であるにもかかわらず，実践的な研究があまり行われていないからである．文書中の矛盾を放置したままにすると重要な損害がもたらされる場合は多い．例えば，筆者が長年関わってきた人工衛星の開発においては，一つの人工衛星のために多くの人が分担して大量の技術文書（要求仕様書や設計仕様書等）を作成する．これらの文書中に矛盾がないことを人工衛星の製造の前に確認するのであるが[1]，文書中の矛盾に気付かずに人工衛星を製造してしまうと，人工衛星のテスト時に不具合が発生し，製造をやり直すことになる．人工衛星以外でも，複雑なシステムの開発においては，同様なことが発生するであろう．ところで，実際の技術文書は矛盾だらけというわけではなく，矛盾はそれほど多くはない．しかし，矛盾がなかったとしても文書中に矛盾がないことを確認する必要はある．文書中に矛盾がないことの確認を行うためには，矛盾の検出と同じ手順を実行する必要がある．従って，あらゆる技術文書に対して，矛盾の検出を実行する必要があるわけである．本稿では，技術文書のように厳密に事実を伝えるべき文書中の矛盾を検出する方法を論じる．特に，システム開発において実際に発生しやすい矛盾（特に，異なる担当者が執筆した別々の記述の間の矛盾）に焦点を当てることにする．なお，本稿の内容は，筆者の過去の研究[2]の内容を詳細化しつつ発展させたものである．