2016-03-28 8 views
2

GAS APIを学習して使用して、データベース上のランダムウォークを実装し、訪問された各頂点を開始頂点に関連付けようとしています。GAS APIの実装と使用

私はこれをどうやって管理できるか理解しているいくつかの問題があります。私は、PATHS、BFS、PR、および他のGASクラスを例としてレビューしてきましたが、私はどのように起動するかについてはあまりよく分かりません。

私の実装はBaseGASProgramに拡張し、必要なメソッドを実装する必要があります。また、繰り返しとして、フロンティアには現在の反復のすべての頂点が含まれます。前身のという概念はでもわかります。

しかし、私はGather、Apply、Scatterの哲学と、これらの3つの概念にランダムウォークを配布する方法をよく理解しているとは思いません。

また、コードを実装したら、どうすればいいですか?私のコードの中ですでに実装されているアルゴリズム(PR、SSSP、BFSなど)を呼び出すにはどうしたらいいですか? SSSPオブジェクトをインスタンス化する必要がありますか?またはGASContextGASRunnerBase

答えて

1

bigdataガスパッケージにTestBFSクラスを見てみましょう:

final IGASEngine gasEngine = getGraphFixture() 
     .newGASEngine(1/* nthreads */); 

try { 

    final SailConnection cxn = getGraphFixture().getSail() 
      .getConnection(); 

    try { 

     final IGraphAccessor graphAccessor = getGraphFixture() 
       .newGraphAccessor(cxn); 

     final IGASContext<BFS.VS, BFS.ES, Void> gasContext = gasEngine 
       .newGASContext(graphAccessor, new BFS()); 

     final IGASState<BFS.VS, BFS.ES, Void> gasState = gasContext 
       .getGASState(); 

     // Initialize the froniter. 
     gasState.setFrontier(gasContext, p.getMike()); 

     // Converge. 
     gasContext.call(); 

[snip] 

テストケースのコンテキストの外でそれを使用するには、いくつかの並べ替えのSailConnectionを作成する必要があります。例については、blazegraph-samples GitHubプロジェクトを参照してください。次にSAILGASEngineを作成する必要があります。これにより、GASEngineをJavaレイヤーに直接呼び出すという観点から始められます。

+0

ありがとうブラッド、私はこれらのクラスをチェックしていました。私はそれを試して、あなたに知らせるつもりです。わかったときに、あなたの答えに印をつけます。ありがとう! – antorqs

+0

こんにちはブラッド、ごめんなさい。私はローカルのサンプルファイルを使用してTestBFSプログラムを実行することができました。しかし、私が実際にやろうとしているのは、私のBlazegraphリモートサーバーに対してGASプログラムを実行することです(BFSをテストすることができます)。私はすでに自分のサーバーに接続し、RemoteRepositoryを使って(選択と挿入の両方のために)クエリを実行しています。しかし、GAS APIを使用してGASProgramを実行するには、SailConnectionを使用する必要がありますか?または、オンザフライで読み込まれたrdfデータセットの「メモリ内」で作業するためのものですか? もう一度お世話になります。 – antorqs

+0

@aquiros:この回答が多少役立つ場合は、受諾および/またはupvotingを検討してください。十分なフォローアップの質問がある場合は、新しい質問をしてください。あなたがコメントに多くの質問を続けているなら、あなたは質問を続けるヘルプ吸血鬼として認識されるかもしれませんが、答えを受け入れるか、アップアップしません。 – honk

関連する問題