VS
- The generic type for the per-vertex state. This is scoped to the
computation of the IGASProgram
.ES
- The generic type for the per-edge state. This is scoped to the
computation of the IGASProgram
.ST
- The generic type for the SUM. This is often directly related to
the generic type for the per-edge state, but that is not always
true. The SUM type is scoped to the GATHER + SUM operation (NOT
the computation).
TODO Add option to order the vertices to provide a serializable
execution plan (like GraphChi). I believe that this reduces to
computing a DAG over the frontier before executing the GATHER and
then executing the frontier such that the parallel execution is
constrained by arcs in the DAG that do not have mutual
dependencies. This would have to place a partial ordering over the
vertices in the frontier and then process the frontier with
limited parallelism based on that partial ordering.public interface IGASContext<VS,ES,ST> extends Callable<IGASStats>
IGASProgram
. This is distinct from the
IGASEngine
so we can support distributed evaluation and concurrent
evaluation of multiple IGASProgram
s.Modifier and Type | Method and Description |
---|---|
IGASStats |
call()
Execute the associated
IGASProgram . |
boolean |
doRound(IGASStats stats)
Execute one iteration.
|
IGASProgram<VS,ES,ST> |
getGASProgram()
Return the program that is being evaluated.
|
IGASState<VS,ES,ST> |
getGASState()
The computation state.
|
IGraphAccessor |
getGraphAccessor()
The graph access object.
|
org.openrdf.model.URI |
getLinkAttributeType()
Return non-
null iff there is a single link attribute type to
be visited. |
org.openrdf.model.URI |
getLinkType()
Return non-
null iff there is a single link type to be
visited. |
int |
getMaxIterations()
Return the maximum number iterations for the algorithm.
|
int |
getMaxIterationsAfterTargets()
Return the maximum number iterations for the algorithm to continue
once all the target vertices have been reached.
|
int |
getMaxVisited()
Return the maximum number of vertices that may be visited.
|
<T> IReducer<VS,ES,ST,T> |
getRunAfterOp()
Return an optional
IReducer that will run after the
IGASProgram is terminated. |
Set<org.openrdf.model.Value> |
getTargetVertices()
Get the target vertices for the program (if any).
|
TraversalDirectionEnum |
getTraversalDirection()
Return a type safe value indicating the traversal direction for the
IGASProgram . |
void |
setLinkAttributeType(org.openrdf.model.URI linkType)
Imposes an optional restriction on which link attributes are considered
by the algorithm.
|
void |
setLinkType(org.openrdf.model.URI linkType)
Set an optional restriction on the type of the visited links.
|
void |
setMaxIterations(int newValue)
Specify the maximum number of iterations for the algorithm.
|
void |
setMaxIterationsAfterTargets(int newValue)
Specify the maximum number of iterations for the algorithm to continue
once all the target vertices have been reached.
|
void |
setMaxVisited(int newValue)
Specify the maximum number of vertices that may be visited.
|
<T> void |
setRunAfterOp(IReducer<VS,ES,ST,T> afterOp)
Set an optional
IReducer that will run after the
IGASProgram is terminated. |
void |
setTargetVertices(org.openrdf.model.Value[] targetVertices)
Set the target vertices for the program (if any).
|
void |
setTraversalDirection(TraversalDirectionEnum newVal)
Specify the traversal direction for the
IGASProgram . |
IGASProgram<VS,ES,ST> getGASProgram()
IGraphAccessor getGraphAccessor()
void setTraversalDirection(TraversalDirectionEnum newVal)
IGASProgram
.
The value specified here is used to determine how the EdgesEnum
will be interpreted for the GATHER and SCATTER phases. The default is
TraversalDirectionEnum.Forward
.
TraversalDirectionEnum getTraversalDirection()
IGASProgram
.void setMaxIterations(int newValue)
newValue
- The maximum number of iterations.IllegalArgumentException
- if the new value is non-positive.int getMaxIterations()
void setMaxVisited(int newValue)
newValue
- The maximum number of vertices in the frontier.IllegalArgumentException
- if the new value is non-positive.int getMaxVisited()
org.openrdf.model.URI getLinkType()
null
iff there is a single link type to be
visited. This corresponds to a view of the graph as sparse connectivity
matrix. The IGASEngine
can optimize traversal patterns using the
POS
index.
Note: When this option is used, the scatter and gather will not visit the property set for the vertex. Instead, the graph is treated as if it were an unattributed graph and only mined for the connectivity data.
Value
for the predicate that identifies the desired
link type (there can be many types of links - the return value
specifies which attribute is of interest).void setLinkType(org.openrdf.model.URI linkType)
Note: When this option is used, the scatter and gather will not visit the property set for the vertex. Instead, the graph is treated as if it were an unattributed graph and only mined for the connectivity data (which may include a link weight).
linkType
- The link type to visit (optional). When null
, all
link types are visited.org.openrdf.model.URI getLinkAttributeType()
null
iff there is a single link attribute type to
be visited. This imposes a restriction on which link attributes are
considered by the algorithm. The link attribute type restriction may be
(and often is) paired with a link type restriction.Value
for the predicate that identifies the desired
link attribute type.setLinkType(URI)
void setLinkAttributeType(org.openrdf.model.URI linkType)
linkAttributeType
- The link attribute type to visit (optional). When
null
, the link attributes for the visited links
are NOT visited (the topology of the graph is visited, but not
the attributes for the edges).<T> void setRunAfterOp(IReducer<VS,ES,ST,T> afterOp)
IReducer
that will run after the
IGASProgram
is terminated. This may be used to extract results
from the visited vertices.afterOp
- The IReducer
.<T> IReducer<VS,ES,ST,T> getRunAfterOp()
IReducer
that will run after the
IGASProgram
is terminated. This may be used to extract results
from the visited vertices.boolean doRound(IGASStats stats) throws Exception, ExecutionException, InterruptedException
stats
- Used to report statistics about the execution of the
algorithm.Exception
ExecutionException
InterruptedException
IGASStats call() throws Exception
IGASProgram
.void setTargetVertices(org.openrdf.model.Value[] targetVertices)
Set<org.openrdf.model.Value> getTargetVertices()
void setMaxIterationsAfterTargets(int newValue)
newValue
- The maximum number of iterations past the target vertices.int getMaxIterationsAfterTargets()
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.