問題タブ [pellet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
owl - Pellet でピザのオントロジーをクエリする
Pellet reasonerを使用してこれらのクエリを実行するにはどうすればよいですか?
- アメリカからのすべてのピザを取得します (
hasCountryOfOrigin
プロパティ経由)。 - ほうれん草をトッピングしたすべてのピザを入手します (
hasTopping
プロパティ経由)。
このテーマに関する例や情報が見つかりません。
protege - Pellet を使用して Protegé 4.3 で SWRL ルールを使用する方法
Protegé でオントロジーの作業を始めたばかりで、SWRL ルールの使用方法を理解しようとしています。出力を生成できないため、概念やそれらを正しく処理する方法がわからないのではないかと心配しています。これをテストするために作成した簡単なケースをもう少し説明します。
A、B、C という名前の 3 つの個体を作成しました。それぞれに、ブール値の範囲を持つテスト プロパティがあります。それぞれのプロパティ アサーション タブで値を初期化したのでtest(A,true)
、test(B,true)
とtest(C,true)
です。ルールがどのように機能するかをテストするために、次のようなルールを作成しましたtest(A,true), test(B,true) -> test(C,false)
。私が理解している方法は、A と B のテスト プロパティが true の場合、C のテスト プロパティが false になるということです。そうするために、推論 (ペレット) を開始しますが、何も起こりません。つまり、Resoner がアクティブで、「矛盾したオントロジー」メッセージは表示されませんが、C のテスト値は変化しません。これは本当に単純な混乱に違いないと思いますが、どこにも見つからないようで、ルールが有効になっているかどうかを確認することもできません。
前もって感謝します。
owl - サブクラスでのフクロウオーバーライドプロパティの制限
私の仕事は、フクロウで 2 つのクラスを構築することです。Base クラスは、p1、p2、p3 などの複数のプロパティを含むリソースを記述します。もう 1 つのクラスである Sub は、Base クラスと同様のリソースを記述しますが、そのプロパティの 1 つ (p1 など) を含まず、p2 と p3 のみを含むという制限があります。たとえば、クラス Car は、いくつかのプロパティを含む車両を記述し、そのうちの 1 つが「hasMotor」です。クラス Bicycle は、モーターを持たないという制限のある車両についても記述します。
カーディナリティ制限を使用して、そのようなクラスを定義します。
しかし、Sub クラスは、Pellet reasoner によって Nothing と同等であると結論付けられます。上記の 2 つのクラスは、フクロウでどのように記述されるべきですか?
owl - SWRL ルールに基づいてプロパティに値を割り当てる (推論としてペレットを使用した Protege 4.3)
私の質問は SWRL ルールに関連しており、実際には別のユーザーからすでに質問されています ( Protégé-OWL / SWRL のオントロジー プロパティ定義を参照)。それでも、それを機能させる方法に関する指示に従った後、私は成功しませんでした.
私のオントロジーでは、いくつかの複雑な時間的事実 (時間間隔などに関連するもの) を扱う必要があるため、Time Ontologyをインポートします。実際の問題に取り組む前に、簡単な例を考えて、SWRL ルールに基づいてデータ プロパティに値を割り当てる方法をテストします。簡単な例では、クラスPersonを扱います。クラスBirthYear (時間オントロジーのInstantクラスのサブクラス) もあります。ドメインPersonと範囲BirthYearを持つオブジェクト プロパティBornInYearは、個人とその誕生年を関連付けます。今年の人の年齢を計算したいので、次の SWRL ルールを作成します。
Person(?p) ∧bornInYear(?p, ?birthYear) ∧subtract(?age, 2014, ?birthYear) → age(?p, ?age)
クラスPersonの個体を作成し、彼/彼女のBirthYearの値がであるとアサートした後、Pellet は"1977"
この人物の年齢が37であると計算することを期待します。これは起こりません。理由はありますか?SWRL ルールは正しいですか? 37
(値がデータ プロパティageにアサートされているかどうかを知るために、個々の p の [プロパティ アサーション] ビューを確認します。また、推論設定で [オブジェクト プロパティ アサーション] チェック ボックスがオンになっていることも確認します。 .) 私のオントロジーの例は次のようになります。
jena - Jena の Pellet reasoner に Datalog ルールを追加するにはどうすればよいですか?
Datalog Form に個人的な推論ルールが複数あります。GenericRuleReasoner
推論ステップでそれらを考慮に入れるために、Jena を拡張できます。これを行うコードの例を次に示します。
Pellet
実は、 Jena に接続しやすいので reasonerを使いたいと思っています。Pellet
として拡張可能かどうか疑問に思いGenericRuleReasoner
ますか?もしそうなら、私のDatalogルールをそれに追加する方法は?