知識表現
計算機科学、特に人工知能においては、情報の構造を表現する方法がいくつも考案されてきた。
知識表現(Knowledge Representation、KRと略記される)という用語は、コンピュータでの処理で使用する表現に対して使うのが一般的である。また、明確な事物(例:象というクラスや象の個体クライド)についての表現を意味することもあるし、そういった事物についての表明または主張(例:クライドは象である、すべての象は灰色である)の表現を意味することもある。知識をそのような明確な表現にすることで、コンピュータは既存の知識から結論を導くことができる(例:クライドは灰色である)。
多くの知識表現手法は1970年代から1980年代初頭に試みられたもので、ヒューリスティックによる質疑応答、ニューラルネットワーク、自動定理証明、エキスパートシステムなどがある。これらはある程度の成功を収めてきた。チェスのようなゲームと同様、医療診断も主要な応用分野であった(例えばMycin)。
1980年代に、形式的なコンピュータ知識表現言語とシステムが生まれた。主要なプロジェクトは、一般知識の広い領域を符号化することを試みた。例えば、Cycプロジェクトは巨大な百科辞典を作ろうとするもので、情報自身を符号化するのではなく、読者が百科事典を理解するのに必要であろう情報(単純な物理学、時間の観念、因果律、動機付けなどの常識的な事物とそのクラス)を符号化する。
CycLを初めとして、様々なオントロジー言語が開発されてきた。多くは宣言型言語であり、フレーム言語に分類されるものと一階述語論理に基づくものがある。そのような言語の多くは上位のオントロジーを一般概念を使って定義するだけであり、領域固有の概念は言語定義の一部には含まれない。英語の全ての工学的語彙を含むオントロジー言語の例として Gellish English がある。