曲の歌詞から rdf トリプルを作成する Java パイプラインを構築しました。オントロジーを使用して、さまざまな種類の曲を分類したいと考えています。
また、曲の中で各用語が何回出現するかを数えたいと思いました (曲のクラスを定義するために使用した組み込みのカーディナリティは別として)。最後に、Protege の graphDB や graphViz のような視覚補助を使用して、どのタグ付き単語が曲でより一般的であるかを比較できるようにしたいと考えました (これが、TaggedWordRelation クラスを使用して個人を具体的に比較するためです)。
Protege のドキュメントに、Fact、Hermit、Pellet などで推論すると、無限ループ風の方法でコンピューターをロックする次のステートメントがあります。推論者にそれがどのような歌であるかを教えてもらうことはできません:
オブジェクト プロパティ: hasTaggedWordRelation
-domain:Song
-range:TaggedWord
オブジェクト プロパティ: taggedWord -
ドメイン: TaggedWordRelation -
範囲: Word
クラス: 単語が定義されている
クラス: TaggedWordRelation が定義されています
クラス: LoveWordRelation が定義されている
-TaggedWordRelation のサブクラス
-taggedWord 一部の LoveWord
クラス: LoveSong が定義されている -Song の
サブクラス -hasTaggedWordRelation 一部の LoveWordRelation
-hasTaggedWordRelation 正確に 0 HateWordRelation
-hasTaggedWordRelation min 0 SexWordRelation
-hasTaggedWordRelation min 0 GodWordRelation
クラス: ReligiousSong が定義されている
-Song の
サブクラス -hasTaggedWordRelation 一部の LoveWordRelation
-hasTaggedWordRelation 正確に 0 HateWordRelation
-hasTaggedWordRelation 正確に 0 SexWordRelation
-hasTaggedWordRelation 一部の GodWordRelation
基本的に、私は約 6 種類の Song を持っています。(オブジェクト プロパティを介して) 個々の taggedWordRelations に基づいて Song インスタンスのサブクラスを (推論と制約を使用して) 推論したいと思います。パイプラインは Song インスタンスを出力しますが、subClassOf 定義で定義したカーディナリティ制約に基づいて推論器にクラスを推測させたいと考えています。Protege のエラーの説明は、私のオブジェクト プロパティがカーディナリティを満たしていないことについて何か言っています...