問題タブ [topbraid-composer]
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.
sparql - SPARQL クエリのおかげで、オントロジーに新しいクラスを追加するにはどうすればよいですか?
オントロジーがあり、SELECT クエリのような SPARQL クエリを実行できます。しかし、オントロジーに新しいクラスを追加/作成する方法が見つかりません。私はオンラインで解決策を探していますが、私が見た情報はすべてオントロジーの修正です。つまり、存在する 2 つのリソース間で既存の ObjectProperty を変換または追加します。
TopBraid Composer Free Edition を使用しています
私が試してみました :
どこ myprefix => http://myapplication/
しかし、それは機能せず、オントロジーにマージする方法がわかりません..(写真を投稿するのに十分な評判がありません..)
sparql - TopBraid Composer を使用して異種のデータ ソースを接続する
さまざまなデータ ソースから SPARQL データを接続する方法を探るために、概念実証に取り組んでいます。2 つの OWL クラスがあり、それぞれ独自のデータ モデルからのもので、2 つの異なるシステムから抽出した情報を表しています。データ モデルは次のようになります。
私がやりたいのは、Order.itemName フィールドと Item.name フィールドを使用してこれら 2 つのタイプを結合し、Order クラスに新しいフィールドを作成して、注文の合計価格 (order.quantity * item.unitPrice) を格納することです。
これは SPARQL で行うのは非常に簡単ですが、グラフィカル マッピング機能を備えた TopBraid Composer を検討しています。私の理解では、SPINMap を使用すると、上記のプロパティを簡単に (そしてグラフィカルに) 定義できるはずですが、接続する際に問題が発生します。
TBC ヘルプの「アプリケーション開発ツール/SPIN/SPINMap によるオントロジー マッピング」のチュートリアルに従っていますが、単純な属性をマッピングしようとすると問題が発生します。そのヘルプ ドキュメントに基づいて、[ダイアグラム] タブで、Item クラスから Order クラスに線を引き、適切な値で changeNamespace 関数を選択しています。次に、Item クラスから Order クラスの新しいプロパティ totalPrice に線を引き、関数を equals に設定して、プロパティが表示されるかどうかを確認しました。推論を実行した後、SPARQL クエリを実行すると、すべての Order クラスで totalPrice フィールドが空になります。この説明が紛らわしいことは承知しています。これを機能させるために何をすべきか考えていますか?
sparql - SPIN 関数 (SPARQL) の条件付きサブクエリ
変数がバインドされているかどうかに基づいてクエリ式を変更するにはどうすればよいですか?
次のように魔法のプロパティを呼び出しています。
魔法のプロパティ内で、結合を行います。
:someProp
つまり、この値または :someProp
定義されていないすべての結果を取得します。
ここがトリッキーな部分です。がバインドされていない場合?subj
(つまり、ブロックUNDEF
内のように設定した場合VALUES
)、上記のクエリは暴走し、すべてを返します。
?subj
代わりに、バインドされていないかどうかを確認したいと思います。?subj
バインドされていない場合は、次の結果のみ:myMagicProperty
を返す必要があります。
FILTER
関数を使用して実験しBOUND
ましたが、正しい動作を取得する方法がわかりません。がバインドされていないUNION
場合、クエリから句の 1 つを削除するにはどうすればよいですか??subj
アップデート
VALUES
ブロックを追加するために最初のクエリを修正しました。
不足している?result a :Rule .
ステートメントを追加しました。に
訂正。?someProp
:someProp
sparql - TopBraid Composerでコメントの算術結果を取得するには?
TopBraid Composer では、すべての SPARQL クエリをコメントとして個別のインスタンスに保存します。それらの値を計算したいのですが、その値を別のインスタンスに入れたいのです。たとえば、私の SPARQL クエリは 2 * 3 で、実行すると結果は 6 になります。ここで私のコメントには「2 * 3」が含まれています。
私が欲しいのは、結果「6」を別のインスタンスに表示することです。そのインスタンスの値を別の計算で使用します。たとえば、「6 (これの) * 4」= 24 とします。対処方法があれば教えてください。
非常に多くの内部クエリを作成して配置する必要がなくなります。簡単なクエリを作成し、このメソッドを介してそれらを接続するだけで、最終的なクエリで結果が得られます。どうもありがとう。
sparql - SPARQL でクエリ結果を転置する方法
SPARQL クエリの作成に TopBraid Composer を使用しています。次の結果を照会しました。
ここで私の謙虚な質問は、結果を次のように転置できるかどうかです。
javascript - Mozilla Rhino を使用した HTTP リクエスト
URL からテキスト文字列を取得する単純な HTTP GET 要求を実行できる Mozilla Rhino で処理される JavaScript コードを書きたいと思います。問題は、Rhino であらゆる種類の HTTP リクエストを実行するためのサポートが見つからなかったことです。その上、Rhino インスタンス自体にアクセスすることはできません。オントロジー モデリングのために TopBraid Composer IDE を介して実行されています。JavaScript ファイル内にインポートできる単純なライブラリについてのアイデアは、おそらく良い解決策だと思います。
何か助けはありますか?ありがとう。
sparql - TopBraid Composer で作成された SPARQL/SPIN 制約とコンストラクタを、SPIN 対応リポジトリ内の Sesame で使用するためにロードするにはどうすればよいですか?
ASK
TopBraid Composer Maestro Edition バージョン 5.1.1 を使用して、OWL/RDF オントロジー内で(SPARQL クエリを使用して) SPIN 制約を正常に生成およびテストしました。これらの SPIN 制約を Sesame でテストしたいと思います。TopBraid COmposer Maestro Edition で作成された OWL オントロジーに含まれる SPIN 制約、クラス定義、プロパティ定義、およびテスト個体を Sesame に取得するにはどうすればよいですか?
私はセサミOpenRDFワークベンチを使用しています:
私の制約、クラス、プロパティ、および個体の例は、TopBraid Composer Maestro Edition の下の 1 つの RDF ファイルに含まれています。
Sesame Open RDF ワークベンチModify/Add
コマンドを使用して、TopBraid Maestro Edition によって生成された RDF ファイルを取り込もうとしましたが、空白のノードに関連しているように見えるエラーが発生します。
javax.servlet.ServletException: org.openrdf.repository.RepositoryException: org.openrdf.repository.RepositoryException: org.openrdf.sail.SailException: org.openrdf.query.QueryEvaluationException: Multiple statements for pattern: _:node1alqlr2eix590 http://spinrdf.org/sp#where null
TopBraid Composer Maestro Edition から正しくエクスポートしていないのでしょうか? TopBraid Composer Maestro Edition のファイル システムに RDF ファイルの一般的なエクスポートを使用し、Sesame OpenRDF ワークベンチの add RDF File / RDF Data File コマンドを使用した結果、上記のエラー メッセージが表示されました。
私の特定のケースでは役に立たない可能性のある回答の指示を先取りするには:
- 特に、SWRL やその他のルール言語ではなく、SPIN コンストラクターと制約を使用したいと考えています。
- 私は TopBraid Composer Maestro Edition で成功し、TopQuadrant から得た支援に感謝していますが、他のコンピューターと対話しながら SPIN コンストラクターと制約を使用するために必要な TopBraid Live ライセンスを購入する余裕はありません。(TopBraid Composer Maestro Edition には SPARQL エンドポイントがありますが、そのエンドポイントにはホスト マシンから localhost 経由でのみアクセスできます。)また、Sesame の実装が、TopBraid ツールが行う SPIN 制約とコンストラクターに同じ制限のいくつかを課しているかどうかも判断したいと思います。
sparql - TopBraid Composer FE が複数の OR 条件を SPIN ルール フィルタで再グループ化したのはなぜですか?
TopBraid Composer Free Edition (TBC FE) バージョン 5.1.3 を使用しています。SPIN ルール / CONSTRUCT クエリを作成しています。私のクエリの一部には、複数の OR 条件を持つ FILTER ステートメントがあります。次のように TBC FE に入力します。
しかし、SPIN ルールを TBC FE に保存すると、OR 条件が再グループ化されてバイナリ OR のセットになります。
私の質問は、なぜ再編成するのですか? この再グループ化を行わなかった他の SPARQL エディターとエンドポイントを使用しました。これにより、コードが読みにくくなる(コストがかかる)と主張しているので、どのような利点があるのでしょうか。
また、これが再編成する必要がない場合、TBC FE でそれをオフにする方法はありますか?
ありがとう。
PS: はい、リテラル文字列の部分文字列を取得するのはばかげているように思えます。私は、TBD FE から保存した RDF ファイルを Sesame にロードするときに、リテラル文字列をトリミングする Sesame のバグを回避するためにこれを行っています。このバグは報告されており、対処中です。修正されたら、Sesame のバージョンをアップグレードして、これらの醜い部分文字列を削除します。