私は非常に単純なオントロジーを構築して、弟子とフクロウの RPG ゲームを表現しようとしています。
私はオントロジーにかなり慣れていないので、おそらく多くのことを理解していないでしょう (たとえば、私が想定しているオープン ワールドの仮定など)。
こちらからダウンロードできます -> LINK
ユニットクラスには、エンチャンターと近接戦闘機の 2 種類があります。
エンチャンターは秘術魔法と神聖魔法に分けられます。
呪文は 4 つの流派 (召喚、治癒、エレメンタル、保護) に分けられます。
アーケイン マジック エンチャンターはエレメンタル スペルとエヴォケーション スペルのみを使用でき、ディヴァイン マジック エンチャンターは他の 2 つしか使用できません。
ユニットは単一のクラスを持つことができます。
ユニット、呪文、ユニット クラスは個別です。
実行したいが何も返さないクエリがいくつかあります。次に例を示します。
canCast some ArcaneMagicSpell
予想: 秘術呪文を唱えることができるユニット クラスのリスト。
戻り値: ユニット クラスですが、ユニット (個体) も必要です。canCast 値 SpellFireball
期待値: ファイアボールをキャストできるユニット クラスのリスト。
戻り値: なし。canBeCastedBy some ArcaneMagicClass
予想される: すべての呪文は秘術魔道士によって発動可能。
戻り値:: なし。canBeCastedBy 値 UnitClassBlackMage
期待値: 黒魔道士が唱えることができるすべての呪文。
戻り値: なし。hasClass some (canCast some Spell) 想定: 特定の呪文を唱えることができるすべてのユニット。
戻り値: なし。
私は明らかにここで何か間違ったことをしていますが、本当にわかりません。これらのクエリをサポートするようにオントロジーを改善するにはどうすればよいでしょうか (または、より良い形式のクエリを使用して、同じ期待される結果を得ることができますか?)