0

Jena ルールの作成方法を教えてください。私のSWRLルールがあります

    1-System(?x) ∧ hasNbAbsence(?x, ?y) ∧ swrlb:greaterThan(?y, 10) →  BadBehaviorOperators(?x)
2-System(?x) ∧ hasNbAbsence(?x, ?y) ∧ swrlb:lessThanOrEqual(?y, 10) →  GoodBehaviorOperators(?x)
3-System(?x) ∧ hasNbStations(?x, ?y) ∧ swrlb:greaterThan(?y, 50) ∧ hasTimeBetweenSuccTravel(?x, ?z) ∧  swrlb:lessThanOrEqual(?z, 15) →  HighAvailableSystem(?x)
4-System(?x) ∧ hasNbAccident(?x, ?y) ∧ swrlb:greaterThan(?y, 30) →  InsecureSystem(?x)
5-System(?x) ∧ hasNbStations(?x, ?y) ∧ swrlb:lessThanOrEqual(?y, 25) ∧ hasTimeBetweenSuccTravel(?x, ?z) ∧  swrlb:greaterThan(?z, 30) →  LowAvailableSystem(?x)
6-System(?x) ∧ hasNbStations(?x, ?y) ∧ swrlb:lessThanOrEqual(?y, 50) ∧ swrlb:greaterThan(?y, 25) ∧  hasTimeBetweenSuccTravel(?x, ?z) ∧ swrlb:greaterThan(?z, 15) ∧ swrlb:lessThanOrEqual(?z, 30) →  MiddleAvailableSystem(?x)
7-System(?x) ∧ hasDelayDuration(?x, ?y) ∧ swrlb:greaterThan(?y, 5) ∧ swrlb:lessThanOrEqual(?y, 10) ∧ hasNbDelays(?x, ?z) ∧  swrlb:greaterThan(?z, 10) ∧ swrlb:lessThanOrEqual(?z, 30) →  MiddleRespectTimeSystem(?x)
8-System(?x) ∧ hasNbAccident(?x, ?y) ∧ swrlb:greaterThanOrEqual(?y, 10) ∧ swrlb:lessThanOrEqual(?y, 30) →  MiddleSecureSystem(?x)
9-System(?x) ∧ hasNbDelays(?x, ?y) ∧ swrlb:lessThanOrEqual(?y, 5) ∧ hasDelayDuration(?x, ?z) ∧  swrlb:lessThanOrEqual(?z, 10) →  RespectTimeSystem(?x)
10-System(?x) ∧ hasNbAccident(?x, ?y) ∧ swrlb:lessThan(?y, 10) →  SecureSystem(?x)
11-System(?x) ∧ hasNbDelays(?x, ?y) ∧ swrlb:greaterThan(?y, 10) ∧ hasDelayDuration(?x, ?z) ∧ swrlb:greaterThan(?z, 30) →  UnrespectTimeSystem(?x)

ありがとうございます

4

2 に答える 2

0

このタスク用の API を知りません (存在するとは思いません)。しかし、あなたは自分で簡単にそれを行うことができます.

U は、 http://jena.apache.org/documentation/inference/で見つけることができる構文で単純にトリプル パターンを使用できます。

最初の例は次のように変換されます (SWRL を使用したことはありません)。

[RuleExample: (?X rdf:type NS:System), (?X NS:hasNbAbsence ?Y), greaterThan(?Y, 10)
-> (?X rdf:type NS:BadBehaviorOperators)]

NS はオントロジーの Uri です。

完全な構文と説明については、公式サイト (上のリンク) をチェックしてください。

于 2014-02-21T14:06:14.080 に答える
0

このタイプの変換をすぐに実行できるコードはありませんが (もちろん自分で作成しない限り)、実際には必要ありません。Jena ルールのように外部ルール ファイルを指定しなくても、SWRL ルールをオントロジーに直接配置できます。したがって、ここにはいくつかのオプションがあります:
1) ルールをオントロジーの SWRL ルールとしてエンコードします。これはプロテジを通じて行うことができますが、自信がある場合は swrl xml 構文を使用して自分で行うこともできます:)
参照: http://www.w3.org/Submission/SWRL/#5

2) Jena で同等のルールを記述します。つまり、Jena ルールの構文を使用してテキスト ファイルに記述します。Jena ルール ノード (場合によってはアトム) は rdf トリプルに似ているため、この形式で複雑なルールを指定するのは少し難しい場合があります。
参照: https://jena.apache.org/documentation/inference/#RULEsyntax

于 2015-08-27T11:26:17.450 に答える