2016-03-20 6 views
0

私はオントロジとOWLの新機能ですので、いくつかの助けが必要です。OWL文で<=を使用して2つのデータ型プロパティを比較できますか?

私はのデータ型プロパティ(VARminとVARmax)の2つのデータ型を持っています。どちらも> = 0で、< = 1でなければなりません。この制限は、私は作成することができ、それは大丈夫です。

(VARminいくつかのフロート[< = 1、> = 0])及び(VARMAXいくつかのフロート[= 1 <、> = 0])

問題は、私は必要ということです:私はこれをしませんでしたこれらの変数をと比較すると、次のようになります。VARmin < = VARmax

VARminは、いくつかのフロート[< = " 'VARMAX'" ^^フロート]

が、私はこのエラーを得た:私はこれを試してみました "にUnsupportedOperationException:値nullは、ファセット32のために有効ではありません"

私はこのエラーのためのいくつかの可能な解決策を研究し、ここで整数を比較する年と型のような特定のデータ型についての説明を得ました:https://mailman.stanford.edu/pipermail/p4-feedback/2007-October/000414.html しかし、これは私のケースではありません。

もう一度調査しましたが、解決策が私の問題と一致しません。誰も助けてくれませんか?

PS:私はSWRLを使用して、この問題を解決するためにプロテジェバージョン4.0およびペレット推論1.5

+0

OWLオントロジーは、変数の概念がありません。事実(トリプル)とプロパティの定義と定数。時には、分離したエンティティの不一致を分類することによって、計算を実行するための推論エンジンを得ることができます。しかし、ほとんどの場合、計算上の比較にSPARQLを使用する方が適しています。時には唯一の解決策です。 – scotthenninger

+0

変数によってSWRL変数を参照している場合は、変数の比較のための組み込み関数があります。 SWRLの仕様を参照してください:https://www.w3.org/Submission/SWRL/#8 – Ignazio

+0

一般に、OWLの公理は「ツリー型」である必要があります。何を求めているのですかX値がY値以下である個体)は、 "has X value"ブランチのリーフと "has Y value"ブランチのリーフを比較したいので、 "tree-shaped"ではありません。これを行うには、SWRLルールを使用する必要があります。 –

答えて

0

を使用しています、私は、次のルールを作成しました:

工ass(?工ass)を、VARmin(工ass、? (VARMax、0.0)、lessThanOrEqual(?varmax、1.0)、、lessThanOrEqual(?varmin)、greaterThanOrEqual(?varmin、1.0)、greaterThanOrEqual(?varmin、1.0)、VARmax(?someclass、? 、?varmax) - > ComparisonOK(?someclass)

中毒では、私はこの回答[1]を発見した例えば、上記のルールで指定された各ケースを拒否する選言を作成するために多くの:

工ass(?工ass)、VARmin(?工ass、varmin)を、lessThan(varmin、0.0?) - > ComparisonNotOK( ?工ass)

[1] Disjunction inside SWRL rule

関連する問題