問題タブ [jena-rules]
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.
java - Jena のカスタムビルトイン
これは私が書いたコードですが、新しいビルトインが機能していないようです。エラーが発生します:
スレッド「メイン」の例外 com.hp.hpl.jena.reasoner.rulesys.impl.LPRuleSyntaxException: 後方規則の構文エラー: matematica 未知の組み込み操作 mysum
エラーの場所を教えてもらえますか? これが私のコードです:
java - Jenaビルトインへのパラメータとして配列を与える
Jena 用の新しいビルトインを作成する必要があります。これで、最小の日付をそこから抽出できるようにしたいと思います。1 つのパラメーターだけでなく、ビルトインにデータのクラスを与えることが可能かどうか疑問に思っています。
これが私の関数の bodyCall です:
これは私の簡単なルールです:
組み込みの 3 つのパラメーターに与えます。入力用に 2 つ、出力用に 1 つ。私のアイデアは、?c と ?d の 2 つの変数を使用することです。どちらにも誕生日があります。?c から最初のレコードを取得し、?d から次のレコードを取得したいと考えています。しかし、イエナは毎回最初のレコードを取るようです。
Javaで、2番目のレコードが必要で、結果をスクロールすることは可能ですか?
たとえば、私のオントロジーは 2 つの日付で構成されています: 1)1992-04-13T00:00:00.0; 2)1988-04-25T00:00:00.0
?c に 1) と ?d に 2) を入れてから、それらの間の最小値を取得するアルゴリズムを作成します。
ps : 上記の「bodyCall」では、ルールに指定した日付間の最大値を取得しようとしています。この目的のためにはうまく機能します。
皆さん、ありがとうございました。
java - 新しいビルトイン Jena 用のライブラリを作成する
Jena 用の新しいビルトインをいくつか作成しました。それらすべてを入れることができるライブラリを作成したいと思います。
どうやってやるの ?この場合、どうすればルールを作成できますか? ルール ファイルにいくつかのファイルをインポートする必要がありますか?
java - イエナのルール推論で以前にアサートされたトリプルの導出を記録していますか?
ドキュメントのように Jena Rule Reasoner を作成しました
すべてが正常に機能し、推論されたモデルでトリプルの導出を確認できますが、すでに存在するトリプルはrawData
、たとえ可能であっても推論者によって再推論されません。つまり、導出の記録はありません。そのようなトリプルの。生データにすでに存在するトリプルの派生を再推論して記録するように推論者に強制する方法はありますか?
java - ルールの結果をモデル (Jena) に書き込む方法は?
私は、Jena freamwork を使用していくつかのルールを作成する必要があるプロジェクトに取り組んでいます。
ルールを作成しましたが、正常に機能します。画面に出力が表示されますが、私がやりたいのは、結果を私が持っているオントロジーのモデルに保存することです。
私はこのコードを持っています:
この例では、以前に作成したカスタム ビルトインを使用しています。2 つの日付の差の年数を返します。次のコードのおかげで、画面に出力が表示されます。
データ プロパティ「anni_persona」の結果をモデル内に (出力としてだけでなく) 書き込むにはどうすればよいですか?
ありがとうございました。
jena - GenericRuleReasoner の Datalog ルールで空白ノードを使用するには?
GenericRuleReasoner を使用して、オントロジーの仮想事実を推測しています。GenericRuleReasoner は、 jena inference supportで説明するように、推論ルールを入力の Datalog ルールとして受け取ります。一般的な推論にアタッチされた DatalogRule の例を次に示します。
このコードを自分のデータでテストしたところ、問題なく機能し、2000 の仮想事実が推測されました。ただし、このような空のノードを作成するために Datalog ルールを変更すると、
推測された仮想事実のみを取得します。
GenericRuleReasoner のデータログ ルールの空白ノード表現に問題はありますか?
java - Jena ルール: リテラル プロパティを文字列にテストする
私はイエナの推論に取り組んでいます。プロパティが特定の文字列であることをテストします。サーバーに関するオントロジーがあります。個人は次のようになります。
プロパティを持つサーバーに新しい情報(新しいプロパティ)を追加します
したがって、このために、次のような Jena ルールを作成しました。
しかし、明らかに、テスト(?S data:identifiant-reseau "POLO")
は機能しません。これを行うためのアイデアはありますか?
ありがとうございました。
jena - Jena の Pellet reasoner に Datalog ルールを追加するにはどうすればよいですか?
Datalog Form に個人的な推論ルールが複数あります。GenericRuleReasoner
推論ステップでそれらを考慮に入れるために、Jena を拡張できます。これを行うコードの例を次に示します。
Pellet
実は、 Jena に接続しやすいので reasonerを使いたいと思っています。Pellet
として拡張可能かどうか疑問に思いGenericRuleReasoner
ますか?もしそうなら、私のDatalogルールをそれに追加する方法は?
java - Apache Jena フレームワークからの推論例の問題
私は推論を起動して実行するのに深刻な問題を抱えています。また、ドキュメントの例: https://jena.apache.org/documentation/inference/ はここでは機能しません。問題をより簡単に再現できるように、例を単体テストに移しました。
推論は、空間 JDK などの特定の環境に限定されていますか、それとも何か間違っていますか?
ありがとう
ここにサンプルコード(Java単体テストとして):