問題タブ [blazegraph]
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.
import - バルク データ ローダーを使用してトリプルを Blazegraph にロードする
Blazegraph を使用して ConceptNet でグラフ アルゴリズムを実行する実験を行っていますが、まずデータをインポートする必要があります。データはWrite Once, Read Manyになるため、インクリメンタル書き込みは必要ありません。
Blazegraph 2.1.1 を .deb ファイルからインストールしました。blazegraph.jar
また、blazegraph.jar でのコマンドの実行に関する指示に従うことができるようにダウンロードしました。
このファイルassoc.nt
は、約 2500 万のエッジを含む N-Triples 形式です。最初からいくつかを次に示します。
GitHubfastload.properties
の Blazegraph サンプルから取得しましたが、末尾を変更しました。
com.bigdata.journal.AbstractJournal.file=blazegraph.jnl
そうしないと、プロパティが見つからないことがわかります。bufferMode
をからDiskRW
に変更したのはDisk
、誰かのプロパティ ファイルが、これにより Write-Once-Read-Many セマンティクスが得られることを示していたためです。これはまさに私が望んでいるものです。
ここに私の最終的なものがありfastload.properties
ます:
コマンドを実行しました:
数分間 CPU を回転させましたが、最終的には何も追加されていないようです。私が得た出力は次のとおりです。
owl - owl:Restriction inference が Blazegraph で機能しない理由
Blazegraph での OWL 推論に関するこの回答で示されている例に従おうとしていますが、クエリは次のとおりです。
のみを返します:
しかし、予想される推論ではありません:
Blazegraph での私の名前空間構成:
私は何が欠けていますか?
export - Blazegraph からすべての結果をファイルにエクスポートするにはどうすればよいですか?
SPARQL クエリの結果を Blazegraph からファイルにエクスポートしたいと考えています。ただし、結果の最初のページのみをエクスポートします。すべての結果を表示しようとすると、ブラウザがクラッシュします。
どうすればこれを修正できますか?
ローカル クラスターで Blazegraph 2.1.2 を実行しています。
sparql - SPARQL BIND(COUNT(...) AS ...) が機能しない
後でクエリ (SPARQL) で使用するために変数にカウントを割り当てようとしています。
以下を機能させることさえできません。
?resultsCount
単純に86 (結果の数) ではなく、空の結果が何度も繰り返されるため、構文またはセマンティクスに何か問題があります。
ただし、次の操作を行うと、結果の数 (たとえば 86) が得られます。
最初の例のようにBIND
作業する方法はありますか? COUNT
そうでない場合、同じ種類の機能を取得する別の正しい方法はありますか?
Blazegraph 2.1.2 を使用しています。それはバグでしょうか?
java - Blazegraph の `NanoSparqlServer` を使用して、テスト間でグラフをクリアするにはどうすればよいですか?
Blazegraph の 1.5.3 バージョンの Bigdata DB (現在は Blazegraph としてブランド変更されています) を使用しています。一連の永続層メソッドを実装して、ゲートウェイとして機能するサービスがあります。現在、これらのメソッドの単体テストを作成しています。Jetty で組み込みセットアップを使用しています。私のセットアップコードは以下の通りです:
jetty.xml
com.bigdata 1.5.3 jarのデフォルト構成を使用しています。
...そして、同じjarのデフォルトのRWStore.propertiesを使用しています:
これらの構成を使用すると、サーバーは正常に起動し、Web コンソールにアクセスして、クエリを作成しBigdataGraphClient
、Java の API を介して対話できます。今、単体テスト間のデータ漏洩を避けるために、グラフをクリアする方法を見つけようとしています。私は次のことを試しました:
Java API を使用
BigdataGraphClient
して、すべてのエッジと頂点を削除します。理由は不明ですが、これらのエッジと頂点の一部をそのまま残します。graph.getEdges.forEach(Edge::remove) graph.getVertices.forEach(Vertex::remove)
サーバーを停止して破壊します。ジャーナル ファイルをそのまま残します。
sparqlServer.stop(); sparqlServer.destroy();
com.bigdata.journal.AbstractJournal.createTempFile=true
を設定し、コメントアウトして、一時ジャーナル ファイルを使用しますcom.bigdata.journal.AbstractJournal.file=bigdata.jnl
。これにより、ジャーナル ファイルがクリアされますがDatasetNotFoundException
、最初のテストの後にスローされます。ジャーナル ファイルを一時ディレクトリに置き、
/tmp/bigdata-test/bigdata.jnl
テストの間にそのディレクトリを削除/再作成します。これには#2と同じ問題があります。独自の
Journal
オブジェクトを作成し、それをメソッドのIndexManager
パラメーターとして渡そうとしました。これは、古い Lucene の依存関係NanoSparqlServer.newInstance
に関する既知の問題により失敗します。これと競合する Lucene の新しいバージョンに依存しているため、これらをプロジェクトに含めることはできません。スローされるエラーは、参照されている Jira チケットに記載されているものと同じです。
テスト間でグラフをクリアするためのクリーンで信頼できる方法を知っている人はいますtearDown
か (すべてのテストの後に実行されるメソッドで)。
rdf - Blazegraph で NOT EXISTS 制約を使用してルールを作成するにはどうすればよいですか?
この質問は Blazegraph Java サンプルに関連しています。NOT EXISTS
SPARQL句を含むルールを作成したいと考えています。この Blazegraph ルール サンプルは、 をチェックする制約句を提供しますIsLiteral()
。次の機能を提供するルールを実装したいと考えています。
com.bigdata.rdf.internal.constraintsで適切なクラスを確認しましたが、 (および)BOp
をサポート
するクラスが見つかりません。オペレーターを見つけました。EXIST
MINUS
NOT
NotBOp()
ExistsBOp
架空の関数で作成したい制約は次のとおりです。
制約を達成する別の方法はありますか?
neo4j - 評判拡散のためにグラフデータベースを使用するには?
グラフ データベースに適していると思われる問題がありますが、それを適用する最善の方法がわかりません。
最初に、方向リンクを持つことができるオブジェクトのセットがあります (それらの数は数千万で、典型的なリンクのイン/アウト数はオブジェクトごとに数千です)。次に、各オブジェクトは、潜在的に非常に多数のユーザー (数千万人も) から評判 (賛成票、カルマなどを考えてください) を蓄積できます。
注意が必要なのは、ユーザーがオブジェクトの評価を調整するたびに、かなり複雑なルールに基づいて、リンクされたすべてのオブジェクトの評価を (おそらく 1 度を超えて) 更新したいということです。
SQL では、これは次のようになります。
これはグラフを扱っているため、グラフ データベースは自然に適合するように思われますが、Neo4j / OrientDB / Blazegraph / Tinkerpop API をざっと読んだだけでは、この問題をどのようにマッピングできるのかわかりません。全然します。
例として Tinkerpop を使用すると、オブジェクトは Vertex であり、オブジェクト間のリンクは Edge であり (これまでのところすべて良い)、評判は...? おそらくVertexPropetriesですが、頂点ごとにユーザーと同じ数のプロパティが潜在的にある場合、物事がどのようにスケーリングされるかはわかりません。または、評判はユーザー頂点からの加重エッジである可能性があります...これには、別の種類のパフォーマンスの問題があるようです。
この種の問題を一般的なグラフ データベースの 1 つに簡単に変換できますか?
java - グレムリン: ブレイズグラフ リモート
次の設定でパイプラインを稼働させようとしています。
- Blazegraph 2.1.1 (リモート)
- Tinkerpop 2 (bigdata-blueprints 2.0.0、BlazeGraph-Gremlin 1.0.0、bigdata-core 2.0.0)
- 言語: Java
ブループリント API を使用して、頂点とエッジを作成および削除できました。すべてのグラフ操作について、できるだけ Tinkerpop にこだわりたいと思います。次の API が見つかりませんでした。
- を介したスレッド化されたトランザクション
ThreadedTransactionalGraph
。 - を使用したトラバーサル
GremlinPipeline
。
次の質問があります。
- Blazegraph のリモート バージョンの TP3 が利用可能になる予定はありますか?
近い将来、以下をサポートする予定はありますか?
を。設計図
ThreadedTransactionalGraph
b.
GremlinPipeline
API2a と 2b で利用できる代替案は何ですか?
グラフが提供している機能を試してみましたgetFeatures
が、次のリストが表示されます。
ここでの私の主な懸念はGremlinPipeline
、Blazegraph でリモートでクエリを実行している間は操作できないことです。
OrientDB で実行されている既存の API があり、Blazegraph に移行したいと考えています。Blazegraph を使用するには、すべての読み取り内容 (Gremlin クエリ) を変更する必要がありますか? または、Tinkerpop 2 と一緒に使用する方法はありGremlinPipeline
ますか?
graph - グラフ データベースの「組み込みモード」と「シングル サーバー モード」とは何を意味しますか?
グラフ データベースに関する多くの書籍や記事では、「組み込みモード」と「シングル サーバー モード」について説明しています。
たとえば、グラフ データベースに関するウィキペディアの記事では、次のように言及されています。
Blazegraph は、高可用性 (HA) モード、組み込みモード、単一サーバー モードをサポートしています。
「組み込みモード」と「シングルサーバーモード」とは何を意味しますか?