CycL
コンピューターサイエンスと人工知能のCycLは、Doug LenatのCyc人工知能プロジェクトで使用されるオントロジー言語です。 Ramanathan V. Guhaは、言語の初期バージョンの設計に貢献しました。 MELDとして知られるCycLの密接な変種があります。
CycLの元のバージョンはフレーム言語でしたが、最新バージョンはそうではありません。むしろ、モーダル演算子の拡張と高次数量化を備えた、古典的な1次論理に基づく宣言型言語です。
CycLは、Cycorpから入手可能なCyc Knowledge Baseに保存されている知識を表すために使用されます。 OpenCycシステムとともにリリースされたCycLで記述されたソースコードは、セマンティックWebのサポートにおける有用性を高めるために、オープンソースとしてライセンスされています。
基本的な考え方
CycLにはいくつかの基本的なアイデアがあります。
- 表される概念の情報を参照するために使用される定数の命名。
- 定数を一般化/特殊化階層(通常は分類と呼ばれる)にグループ化します。
- 概念に関する推論をサポートする一般的な規則を述べる。
- CycL文の真実または虚偽は、コンテキストに関連しています。これらのコンテキストは、CycLではマイクロ理論として表されます。
定数
Cycの概念名は定数として知られています。定数は「#$」で始まり、大文字と小文字が区別されます。次の定数があります。
- #$ BillClintonや#$ Franceなど、 個人として知られる個々のアイテム。
- #$ Tree-ThePlant(すべてのツリーを含む)や#$ EquivalenceRelation(すべての同値関係を含む)などのコレクション 。コレクションのメンバーは、そのコレクションのインスタンスと呼ばれます 。
- 1つ以上の他の概念に適用でき、trueまたはfalseを返す真理関数 。たとえば、#$ siblingsは兄弟関係であり、2つの引数が兄弟である場合はtrueです。慣例により、真理値関数の定数は小文字で始まります。真理値関数は、論理接続詞(#$ and、#$ or、#$ not、#$ impliesなど)、数量詞(#$ forAll、#$ thereExistsなど)および述語に分割できます。
- 指定された用語から新しい用語を生成する関数 。たとえば、#$ FruitFnに植物のタイプ(またはコレクション)を記述する引数を指定すると、そのフルーツのコレクションが返されます。慣例により、関数定数は大文字で始まり、文字列「Fn」で終わります。
専門化と一般化
最も重要な述語は、#$ isaと#$ genlsです。最初の(#$ isa)は、1つのアイテムが何らかのコレクション(つまり、特殊化)のインスタンスであることを示し、2番目(#$ genls)は、1つのコレクションが別のコレクションのサブコレクション(つまり、汎化)であることを示します。概念に関する事実は、特定のCycL 文を使用して主張されます。述部は、引数の前に括弧で囲まれて記述されます。
例えば:
(#$ isa#$ BillClinton#$ UnitedStatesPresident)\;「ビル・クリントンは米国大統領のコレクションに属している」と
(#$ genls#$ Tree-ThePlant#$ Plant)\;「すべての木は植物です」。
(#$ capitalCity#$ France#$ Paris)\;"パリはフランスの首都です。"
ルール
文には変数、「?」で始まる文字列を含めることもできます。 #$ isa述語読み取りについて主張された1つの重要なルール
(#$ implies(#$ and(#$ isa?OBJ?SUBSET)(#$ genls?SUBSET?SUPERSET))(#$ isa?OBJ?SUPERSET))「OBJがコレクションSUBSETのインスタンスであり、SUBSETがSUPERSETのサブコレクションである場合、OBJはコレクションSUPERSETのインスタンスです」と解釈します。
別のより複雑な例は、特定の個人ではなくグループまたはカテゴリに関するルールを表すものです。
(#$ relationAllExists#$ biologicalMother#$ ChordataPhylum#$ FemaleAnimal)つまり、コレクション#$ ChordataPhylumのすべてのインスタンス(つまり、すべての脊索動物)に対して、その母親(述語#$ biologicalMotherで記述)である雌動物(#$ FemaleAnimalのインスタンス)が存在します。
(または、より緩やかな英語では、背骨を持つ特定の動物がある場合、その動物の「生物学的母」の概念を表現するその特定の動物からのリンクがあります。生物学の「空白を埋める」ことまた、母親は雌の動物に分類できる必要があります。)
ミクロ理論
知識ベースは、 ミクロ理論 (Mt)、概念のコレクション、および特定の知識の領域に通常関連する事実に分割されます。知識ベース全体とは異なり、各ミクロ理論には矛盾がないことが要求されます。各ミクロ理論には、通常の定数である名前があります。ミクロ理論定数には、慣例により文字列「Mt」が含まれます。例は、数学的な知識を含むミクロ理論である#$ MathMtです。マイクロ理論は相互に継承でき、階層構造になっています。
#$ MathMtの特殊化の1つは、ジオメトリに関するミクロ理論である#$ GeometryGMtです。