コンピュータサイエンスと人工知能におけるCycLは、ダグラス・レナットのCyc人工知能プロジェクトで使用されるオントロジー言語です。ラマナサン・V・グハは、この言語の初期バージョンの設計に尽力しました。CycLに近い派生言語としてMELDが存在します。[1]
CycLのオリジナル版はフレーム言語でしたが、最新バージョンはフレーム言語ではありません。むしろ、古典的な一階述語論理に基づく宣言型言語であり、様相論理演算子と高階論理量化のための拡張が施されています。
CycLは、 Cycorpから入手可能なCyc Knowledge Baseに格納された知識を表現するために使用されます。OpenCycシステムと共にリリースされたCycLで記述されたソースコードは、セマンティックウェブのサポートにおける有用性を高めるため、フリーのオープンソースソフトウェアとしてライセンスされています。
CyclL の基本的な考え方は次のとおりです。
Cycにおける概念名は定数と呼ばれます。定数は「#$」で始まり、大文字と小文字が区別されます。以下の定数があります。
最も重要な述語は#$isaと#$genlsです。前者(#$isa)は、ある項目が何らかのコレクションのインスタンスであること(つまり、特殊化)を記述し、後者(#$genls)は、あるコレクションが別のコレクションのサブコレクションであること(つまり、一般化)を記述します。概念に関する事実は、特定のCycL文を用いて表明されます。述語は、括弧内に引数の前に記述されます。
例えば:
「ビル・クリントンはアメリカ大統領のコレクションに属している」
「すべての木は植物です」。
「パリはフランスの首都です。」
文には変数、つまり「?」で始まる文字列を含めることもできます。#$isa述語に関する重要な規則の1つは次のとおりです。
(#$は
(#$と
(#$isa ?OBJ ?サブセット)
(#$genls ?サブセット ?スーパーセット))
(#$isa ?OBJ ?スーパーセット))
「OBJ がコレクション SUBSET のインスタンスであり、SUBSET が SUPERSET のサブコレクションである場合、OBJ はコレクション SUPERSET のインスタンスである」という解釈になります。
もう 1 つのより複雑な例は、特定の個人ではなく、グループまたはカテゴリに関するルールを表現する例です。
(#$relationAllExists #$biologicalMother #$ChordataPhylum #$FemaleAnimal)
これは、コレクション #$ChordataPhylum のすべてのインスタンス (つまり、すべての脊索動物) に対して、その母親 (述語 #$biologicalMother によって記述される) である雌の動物 (#$FemaleAnimal のインスタンス) が存在することを意味します。
(あるいは、より自由な言い方をすれば、ある動物に背骨がある場合、その動物からその動物の「生物学的な母親」という概念がリンクしていることになります。生物学的な母親の「空欄を埋める」ものも、メスの動物として分類できるものでなければなりません。)
知識ベースは、ミクロセオリー(Mt)に分割されます。ミクロセオリーは、典型的には特定の知識領域に関連する概念と事実の集合です。知識ベース全体とは異なり、各ミクロセオリーは矛盾がないことが必要です。各ミクロセオリーには、規則的な定数である名前が付けられます。ミクロセオリー定数には、慣例的に文字列「Mt」が含まれます。例えば、数学的知識を含むミクロセオリーは#$MathMtです。ミクロセオリーは互いに継承することができ、階層構造で構成されます。
#$MathMt の 1 つの専門分野は、幾何学に関するミクロ理論である #$GeometryGMt です。