1

Protege 4 で構築された次のオントロジーがあります。

ここに画像の説明を入力

このオントロジーでは: メイン クラスには、ドメイン 'Frame' と range をFrame持つ datatypePropertyがあります。Classであり、次の制限付きでクラスから推論されますhasDurationUnsignedShortShortFrameLongFrameSizedFrame

ShortFrame クラスの制限事項

SizedFrame that hasDuration some unsignedLong[<=20]

LongFrame クラスの制限事項

SizedFrame that hasDuration some unsignedLong[>=200]

プロパティが に設定されているframeという名前のクラスのインスタンスを手動で作成しました。frame0hasDuration12

all を取得するために必要な SPARQL クエリは何ですかshortFrameframe0のように推測されることを願っていshortFrameます。

返信ありがとうございます。

エディション: サンプル クエリ

PREFIX frame: <http://www.semantic.org/sample.owl#>
SELECT ?y WHERE {?y rdf:type frame:Frame}

しかし、それは機能していません! たぶんそれは正しくありません!

4

2 に答える 2

1

SPARQL 言語で OWL 制限情報に対するいくつかのクエリを作成することになると思います。SPARQL は RDF クエリ言語であり、OWL の概念を理解していません。制限を設ける代わりに、データ プロパティを使用して期間値を定義し、そこから SPARQL を使用してすべての shortFrame を取得できます。私がお勧めする他のオプションは、SPARQL の代わりに SWRL ルールを使用することです。お役に立てれば !!

于 2012-06-25T13:29:26.207 に答える
0

指定したクエリは、 type のすべてのインスタンスを要求しますframe:Frame。短いフレームだけが必要なので、次のように調整する必要があります。

SELECT ?y WHERE {?y a frame:ShortFrame}

frame0...しかし、上記は推論者があなたの制限を理解し、 のインスタンスとして正しく分類できる場合にのみ機能しますShortFrame。私はフクロウの制限に関する Protege の構文にあまり精通していないので、あなたの制限が表現したいことを表現していると 100% 確信できるわけではありません。

別の方法として、SPARQL で必要な制限を実際に表現することもできます。デュレーションが 20 未満のすべてのフレームを照会するには:

SELECT ?y 
WHERE {
   ?y a frame:Frame; 
      frame:hasDuration ?d . 
   FILTER (?d <= 20) 
}
于 2012-06-26T21:29:13.210 に答える