知識表現(ちしきひょうげん)は、図書分類および情報システムでの概念の処理に必要とされる。人工知能において、適切な「知識表現」を用いることで問題解決を単純化することができる。知識をひとつの方法で表現すれば解決策は単純化されるが、不適切な表現を選択すると解決策は難しくなるか不明瞭になる。 人工知能の場の中で、問題解決は「知識表現」の適切な選択によって簡素化されることができる。例えば、長除法をアラビア数字とローマ数字で行った場合、一方はもう一方よりもずっと単純である。また、すべての目的に対応できる表現やあらゆる問題に対応できる表現は存在しない。
知識表現(Knowledge Representation、KRと略記される)という用語は、コンピュータでの処理で使用する表現に対して使うのが一般的である。また、明確な事物(例:象というクラスや象の個体クライド)についての表現を意味することもあるし、そういった事物についての表明または主張(例:クライドは象である、すべての象は灰色である)の表現を意味することもある。知識をそのような明確な表現にすることで、コンピュータは既存の知識から結論を導くことができる(例:クライドは灰色である)。
多くの知識表現手法は1970年代から1980年代初頭に試みられたもので、ヒューリスティックによる質疑応答、ニューラルネットワーク、自動定理証明、エキスパートシステムなどがある。これらはある程度の成功を収めてきた。チェスのようなゲームと同様、医療診断も主要な応用分野であった(例えばMycin)。
1980年代に、形式的なコンピュータ知識表現言語とシステムが生まれた。主要なプロジェクトは、一般知識の広い領域を符号化することを試みた。例えば、Cycプロジェクトは巨大な百科辞典を作ろうとするもので、情報自身を符号化するのではなく、読者が百科事典を理解するのに必要であろう情報(単純な物理学、時間の観念、因果律、動機付けなどの常識的な事物とそのクラス)を符号化する。Cycプロジェクトは Cycorp社が管理していて、そのデータの大部分は無料で利用可能となっている。
そのような作業を通して、知識表現の難しさがより高く評価されるようになった。それと並行するように計算機言語学ではさらに大きな言語情報のデータベースが構築されつつあり、コンピュータの性能と容量が増大することでさらに深い知識表現が現実のものとなってきた。
化学物質過敏症
特定疾患
オーケストラ
バーベキュー
スキンケア
学童保育所
衛生
合気道
ホスピス
試写会
材料科学
システム工学
哺乳類
クリスマス
遺伝子疾患
食品添加物
ボクシング
履歴書
バレーボール
労働組合
知識表現を指向したいくつかのプログラミング言語が開発されている。1972年にPrologが開発されたが、一般化したのはもっと後のことである。提案と基本のロジックを表していて、終結を既知の前提から引き出すことができる。命題論理と基本的な論理を表現することができ、既知の前提から結論を導くことができる。KL-One (1980年代)は知識表現自体に特に力を入れたものである。
電子文書の世界では、言語は文書の構造を明確に表現するために開発されている。例えば、SGMLや後のXMLなどがある。これらは情報検索とデータマイニングに役立っていて、近年では知識表現とも関連するようになってきた。ウェブ社会ではセマンティックウェブへの関心が高まっている。XMLベースの知識表現言語としてRDF、トピックマップなどがあり、ウェブシステム上で知識表現情報を利用可能とすることができる。