0

Protege で SPARQL/SPIN 制約とコンストラクターを作成および編集するためのプラグインまたはその他の手段はありますか?

私が理解しているように、RDF で SPIN 制約を取得するには、ASK または CONSTRUCT クエリの SPARQL コードを解析してエンコードする必要があります。不透明な文字列として保存されません。したがって、SPARQL と SPIN の知識を持つプラグインが必要になるようです。

SPIN 制約を含む Topbraid Composer から RDF を Protege 4.3.0 にロードしました。制約が注釈として認識されているようですが、基礎となる SPARQL コードのすべてを批判的に含めて、すべての詳細を見つけることができないようです。RDF ファイルをテキスト編集するときに表示されます。

広い意味では、SPIN 制約とコンストラクターを作成/編集し、それらを Sesame にロードして、クラスからインスタンス化された個人を操作する方法を見つけようとしています。TopBraid Composer から Sesame へのパスに関する別の質問を投稿しました。私はスタックオーバーフローの初心者なので、質問をより具体的にしようとしています。

ところで、いいえ、代わりに SWRL を使用したくありません。SWRL を使用して必要な制約を表現するのに苦労しました。SPARQL を使用して成功しました。

ありがとう。

4

1 に答える 1

0

一部のバージョンでは、TopBraid Composer はデフォルトで SPIN 制約を RDF に格納します。クエリが RDF トリプルとして保存されることを考えると、それらを RDF データ ストアに保存しても問題はないはずです。システムはさまざまな SPIN プロパティのクエリを解釈する方法を知る必要があるため、SPIN 制約の適用は別の問題です。

Protégé や Sesame でそれらを「見る」ことができないと確信していますか? 制約は、プロパティspin:constraintを使用してクラスで定義され、bnode として表示されます。http://spinrdf.org/spinもインポートするか、少なくとも という名前のプロパティを定義してくださいspin:constraint。少なくとも、以下は常に制約を見つけるために機能するはずです。

SELECT ?constraint ?class
WHERE {
   ?class <http://spinrdf.org/spin#constraint> ?constraint
}

... where?constraintは RDF の制約を表す bnode にバインドされ、?classは制約が定義されているクラスです。

また、制約を SPARQL 文字列として保存する場合は、[設定] > [TopBraid Composer] > [SPIN] を参照し、[Generate sp:text...] のボックスの 1 つをオンにします。次に、次のクエリを使用してクエリ テキストを取得できます。

SELECT ?query ?class
WHERE {
   ?class <http://spinrdf.org/spin#constraint> ?constraint .
   ?constraint <http://spinrdf.org/sp#text> ?query
}
于 2016-06-24T22:53:32.467 に答える