コンピュータ科学において、知識ベース(KB )とは、知識表現言語で記述された文の集合であり、新しい文を記述したり、既知の事柄について質問したりするためのインターフェースを備え、これらのインターフェースのいずれも推論を使用する可能性がある。[ 1 ]これは、コンピュータシステムで使用される複雑な構造化データを格納するために使用される技術である。この用語の最初の使用は、最初の知識ベースシステムであったエキスパートシステムに関連していた。
知識ベースという用語は元々、エキスパートシステムの2つのサブシステムのうちの1つを説明するために使われていました。知識ベースシステムは、世界に関する事実を表す知識ベースと、それらの事実について推論して新しい事実を推論したり矛盾点を強調したりする方法で構成されています。[ 2 ]
知識ベースという用語は、この形態の知識貯蔵を、より一般的で広く使われているデータベースという用語と区別するために造語された。1970年代には、ほぼすべての大規模な経営情報システムが、何らかの階層型またはリレーショナルなデータベースにデータを格納していた。情報技術の歴史において、この時点では、データベースと知識ベースの区別は明確かつ曖昧さのないものであった。
データベースには以下の特性がありました。
初期の知識ベースシステムは、データベースの要件とは正反対のデータ要件を必要としていました。エキスパートシステムには構造化データが必要です。単に数値や文字列を含むテーブルではなく、他のオブジェクトへのポインタ、さらにそのオブジェクトが持つポインタなどが必要です。知識ベースの理想的な表現は、クラス、サブクラス、インスタンスを持つオブジェクトモデル(人工知能の文献ではオントロジーと呼ばれることが多い)です。
初期のエキスパートシステムでは、複数のユーザーや、データにトランザクション特性を要求することに伴う複雑さはほとんど必要とされませんでした。初期のエキスパートシステムのデータは、医療診断、分子の設計、緊急事態への対応など、特定の答えに到達するために使用されました。[ 2 ]問題の解決策がわかれば、大量のデータを永続メモリに保存するという重要な要求はありませんでした。より正確に言えば、利用可能な技術を考慮すると、研究者たちは妥協してこれらの機能を省略しました。なぜなら、それらは期待できる範囲を超えており、それらがなくても非自明な問題に対する有用な解決策を開発できると認識していたからです。最初から、より洞察力のある研究者たちは、知識を保存、分析、再利用できることの潜在的な利点を認識していました。たとえば、Cordell Greenらによる知識ベースソフトウェアアシスタントプログラムの初期の研究におけるコーポレートメモリの議論を参照してください。[ 3 ]
知識ベースは、従来のデータベースと比べて、データ量の要件も異なっていました。知識ベースは、世界に関する事実を知る必要がありました。たとえば、「すべての人間は死ぬ」という記述を表現するために、データベースは通常、この一般的な知識を表現することはできませんが、代わりに、特定の人間に関する情報を表す何千ものテーブルに関する情報を格納する必要があります。すべての人間は死ぬということを表現し、特定の人間について、その人が死ぬということを推論できるのは、知識ベースの仕事です。ジョージ、メアリー、サム、ジェナ、マイク、...、その他何十万人もの顧客が、特定の年齢、性別、住所などを持つ人間であることを表現するのは、データベースの仕事です。[ 4 ] [ 5 ]
エキスパートシステムがプロトタイプから企業環境に導入されるシステムへと移行するにつれ、そのデータストレージの要件は、トランザクションをサポートする複数の分散ユーザー向けの標準データベースの要件と急速に重複し始めた。当初、需要は2つの異なる、しかし競合する市場で見られた。AIとオブジェクト指向のコミュニティからは、Versantのようなオブジェクト指向データベースが登場した。これらは、オブジェクト指向機能をサポートするだけでなく、標準データベースサービスもサポートするようにゼロから設計されたシステムだった。一方、Oracleのような大手データベースベンダーは、クラスとサブクラスの関係やルールwikiといった知識ベースの要件をサポートする機能を製品に追加した。
あらゆる情報ハブと同様に、ナレッジベースにはさまざまな種類のコンテンツが格納され、それぞれ異なるユーザー層にサービスを提供し、異なる目的を持つことができます。そこで、ナレッジベースの種類をより深く理解するために、目的とコンテンツという2つの異なる視点から考察してみましょう。
内部知識ベースと外部知識ベース ここでは、情報ハブを外部と内部という2つの主要な目的に分けることができます。
知識ベースという用語の次の進化は、インターネットの登場でした。インターネットの普及に伴い、ドキュメント、ハイパーテキスト、マルチメディアのサポートは、あらゆる企業データベースにとって不可欠なものとなりました。コンピュータのメモリ上に主に存在する大規模なデータテーブルや比較的小さなオブジェクトをサポートするだけではもはや十分ではありませんでした。企業ウェブサイトをサポートするには、ドキュメントの永続性とトランザクション処理が必要でした。これにより、Webコンテンツ管理と呼ばれる全く新しい分野が誕生しました。
ドキュメントサポートのもう 1 つの推進力は、 HCL Notes (旧 Lotus Notes)などの知識管理ベンダーの台頭でした。知識管理は実際にはインターネットより前に存在していましたが、インターネットによって 2 つの分野の間には大きな相乗効果が生まれました。知識管理製品は、リポジトリを説明するために知識ベースという用語を採用しましたが、その意味には大きな違いがありました。以前の知識ベース システムの場合、知識は主に自動化されたシステムの使用を目的としており、世界について推論し結論を導き出すために使用されていました。知識管理製品の場合、知識は主に人間を対象としており、たとえばマニュアル、手順、ポリシー、ベスト プラクティス、再利用可能な設計やコードなどのリポジトリとして機能します。どちらの場合も、システムの用途と種類の区別は明確に定義されていませんでした。テクノロジーがスケールアップするにつれて、自動推論を実行するエキスパート システムという意味での知識ベースと、人間が活用できるドキュメントやメディアの形で知識を提供する知識管理という意味での知識ベースと、本当に明確に分類できるシステムを見つけることは稀になりました。[ 7 ]
知識ベースは、医学部で学んだことであり、事実、述語、信念から構成されています。