GAS API 实现和使用
GAS API implementation and usage
我正在尝试学习和使用 GAS API 在我的数据库上实施随机游走,将每个访问的顶点与起始顶点相关联。
我在理解如何设法做到这一点时遇到了一些问题;我一直在审查 PATHS、BFS、PR 和其他 GAS 类 作为示例,但我不太确定如何开始。
我认为我的实现应该扩展 BaseGASProgram
并实现所需的方法。此外,作为迭代,边界包含当前迭代的所有顶点。 predecessor的概念我也很清楚
但我认为我不太了解收集、应用、分散哲学以及如何在这三个概念上分布随机游走。
此外,一旦我实现了我的代码,我该如何调用它?我什至如何在我的代码中调用已经实现的算法(PR、SSSP、BFS 等)?我应该实例化一个 SSSP
对象然后怎么办?还是GASContext
? GASRunnerBase
?
看看bigdata-gas包中的TestBFS class:
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
。这应该让您开始直接在 Java 层调用 GASEngine
。
我正在尝试学习和使用 GAS API 在我的数据库上实施随机游走,将每个访问的顶点与起始顶点相关联。
我在理解如何设法做到这一点时遇到了一些问题;我一直在审查 PATHS、BFS、PR 和其他 GAS 类 作为示例,但我不太确定如何开始。
我认为我的实现应该扩展 BaseGASProgram
并实现所需的方法。此外,作为迭代,边界包含当前迭代的所有顶点。 predecessor的概念我也很清楚
但我认为我不太了解收集、应用、分散哲学以及如何在这三个概念上分布随机游走。
此外,一旦我实现了我的代码,我该如何调用它?我什至如何在我的代码中调用已经实现的算法(PR、SSSP、BFS 等)?我应该实例化一个 SSSP
对象然后怎么办?还是GASContext
? GASRunnerBase
?
看看bigdata-gas包中的TestBFS class:
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
。这应该让您开始直接在 Java 层调用 GASEngine
。