知識ベース

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です。