Graph Functions
This chapter describes various functions on a graph .
A lot of these accept a vertex (or edge) example as parameter as defined in the next section.
Examples will explain the API on the the city graph :
Definition of examplesPermalink
For many of the following functions examples can be passed in as a parameter.
Examples are used to filter the result set for objects that match the conditions.
These examples can have the following values:
null , there is no matching executed all found results are valid.
A string , only results are returned, which _id equal the value of the string
An example object , defining a set of attributes.
Only results having these attributes are matched.
A list containing example objects and/or strings .
All results matching at least one of the elements in the list are returned.
Get vertices from edges.Permalink
Get vertex from of an edgePermalink
Get the source vertex of an edge
graph._fromVertex(edgeId)
Returns the vertex defined with the attribute _from of the edge with edgeId as its _id .
Parameters
edgeId (required) _id attribute of the edge
Examples
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("social" );
arangosh> var any = require ("@arangodb" ).db.relation.any();
arangosh> graph._fromVertex("relation/" + any._key);
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0n9S--_" ,
"name" : "Bob"
}
Get vertex to of an edgePermalink
Get the target vertex of an edge
graph._toVertex(edgeId)
Returns the vertex defined with the attribute _to of the edge with edgeId as its _id .
Parameters
edgeId (required) _id attribute of the edge
Examples
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("social" );
arangosh> var any = require ("@arangodb" ).db.relation.any();
arangosh> graph._toVertex("relation/" + any._key);
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0n9q---" ,
"name" : "Bob"
}
Get all neighbors of the vertices defined by the example
graph._neighbors(vertexExample, options)
The function accepts an id, an example, a list of examples or even an empty
example as parameter for vertexExample.
The complexity of this method is O(n*m^x) with n being the vertices defined by the
parameter vertexExamplex, m the average amount of neighbors and x the maximal depths.
Hence the default call would have a complexity of O(n*m) ;
Parameters
vertexExample (optional) See Definition of examples
options (optional) An object defining further options. Can have the following values:
direction : The direction of the edges. Possible values are outbound , inbound and any (default).
edgeExamples : Filter the edges, see Definition of examples
neighborExamples : Filter the neighbor vertices, see Definition of examples
edgeCollectionRestriction : One or a list of edge-collection names that should be
considered to be on the path.
vertexCollectionRestriction : One or a list of vertex-collection names that should be
considered on the intermediate vertex steps.
minDepth : Defines the minimal number of intermediate steps to neighbors (default is 1).
maxDepth : Defines the maximal number of intermediate steps to neighbors (default is 1).
Examples
A route planner example, all neighbors of capitals.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._neighbors({isCapital : true });
[
"frenchCity/Lyon" ,
"germanCity/Berlin" ,
"germanCity/Hamburg" ,
"germanCity/Cologne" ,
"frenchCity/Paris"
]
A route planner example, all outbound neighbors of Hamburg.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._neighbors('germanCity/Hamburg' , {direction : 'outbound' , maxDepth : 2 });
[
"germanCity/Cologne" ,
"frenchCity/Paris" ,
"frenchCity/Lyon"
]
Get all common neighbors of the vertices defined by the examples.
graph._commonNeighbors(vertex1Example, vertex2Examples, optionsVertex1, optionsVertex2)
This function returns the intersection of graph_module._neighbors(vertex1Example, optionsVertex1)
and graph_module._neighbors(vertex2Example, optionsVertex2) .
For parameter documentation see _neighbors .
The complexity of this method is O(n*m^x) with n being the maximal amount of vertices
defined by the parameters vertexExamples, m the average amount of neighbors and x the
maximal depths.
Hence the default call would have a complexity of O(n*m) ;
Examples
A route planner example, all common neighbors of capitals.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._commonNeighbors({isCapital : true }, {isCapital : true });
[
{
"left" : "frenchCity/Paris" ,
"right" : "germanCity/Berlin" ,
"neighbors" : [
"germanCity/Cologne" ,
"germanCity/Hamburg" ,
"frenchCity/Lyon"
]
},
{
"left" : "germanCity/Berlin" ,
"right" : "frenchCity/Paris" ,
"neighbors" : [
"frenchCity/Lyon" ,
"germanCity/Hamburg" ,
"germanCity/Cologne"
]
}
]
A route planner example, all common outbound neighbors of Hamburg with any other location
which have a maximal depth of 2 :
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._commonNeighbors(
........> 'germanCity/Hamburg' ,
........> {},
........> {direction : 'outbound' , maxDepth : 2 },
........> {direction : 'outbound' , maxDepth : 2 });
[
{
"left" : "germanCity/Hamburg" ,
"right" : "frenchCity/Paris" ,
"neighbors" : [
"frenchCity/Lyon"
]
},
{
"left" : "germanCity/Hamburg" ,
"right" : "germanCity/Berlin" ,
"neighbors" : [
"frenchCity/Lyon" ,
"frenchCity/Paris" ,
"germanCity/Cologne"
]
},
{
"left" : "germanCity/Hamburg" ,
"right" : "germanCity/Cologne" ,
"neighbors" : [
"frenchCity/Lyon" ,
"frenchCity/Paris"
]
}
]
_countCommonNeighborsPermalink
Get the amount of common neighbors of the vertices defined by the examples.
graph._countCommonNeighbors(vertex1Example, vertex2Examples, optionsVertex1, optionsVertex2)
Similar to _commonNeighbors but returns count instead of the elements.
Examples
A route planner example, all common neighbors of capitals.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> var example = { isCapital : true };
arangosh> var options = { includeData : true };
arangosh> graph._countCommonNeighbors(example, example, options, options);
[
{
"frenchCity/Paris" : [
{
"germanCity/Berlin" : 3
}
]
},
{
"germanCity/Berlin" : [
{
"frenchCity/Paris" : 3
}
]
}
]
A route planner example, all common outbound neighbors of Hamburg with any other location
which have a maximal depth of 2 :
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> var options = { direction : 'outbound' , maxDepth : 2 , includeData : true };
arangosh> graph._countCommonNeighbors('germanCity/Hamburg' , {}, options, options);
[
{
"germanCity/Hamburg" : [
{
"frenchCity/Paris" : 1
},
{
"germanCity/Berlin" : 3
},
{
"germanCity/Cologne" : 2
}
]
}
]
Get the vertices of the graph that share common properties.
graph._commonProperties(vertex1Example, vertex2Examples, options)
The function accepts an id, an example, a list of examples or even an empty
example as parameter for vertex1Example and vertex2Example.
The complexity of this method is O(n) with n being the maximal amount of vertices
defined by the parameters vertexExamples.
Parameters
Examples
A route planner example, all locations with the same properties:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._commonProperties({}, {});
[
{
"frenchCity/Lyon" : [
{
"_id" : "germanCity/Cologne" ,
"isCapital" : false
},
{
"_id" : "germanCity/Hamburg" ,
"isCapital" : false
}
]
},
{
"frenchCity/Paris" : [
{
"_id" : "germanCity/Berlin" ,
"isCapital" : true
}
]
},
{
"germanCity/Berlin" : [
{
"_id" : "frenchCity/Paris" ,
"isCapital" : true
}
]
},
{
"germanCity/Cologne" : [
{
"_id" : "frenchCity/Lyon" ,
"isCapital" : false
},
{
"_id" : "germanCity/Hamburg" ,
"isCapital" : false ,
"population" : 1000000
}
]
},
{
"germanCity/Hamburg" : [
{
"_id" : "frenchCity/Lyon" ,
"isCapital" : false
},
{
"_id" : "germanCity/Cologne" ,
"isCapital" : false ,
"population" : 1000000
}
]
}
]
A route planner example, all cities which share same properties except for population.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._commonProperties({}, {}, {ignoreProperties : 'population' });
[
{
"frenchCity/Lyon" : [
{
"_id" : "germanCity/Cologne" ,
"isCapital" : false
},
{
"_id" : "germanCity/Hamburg" ,
"isCapital" : false
}
]
},
{
"frenchCity/Paris" : [
{
"_id" : "germanCity/Berlin" ,
"isCapital" : true
}
]
},
{
"germanCity/Berlin" : [
{
"_id" : "frenchCity/Paris" ,
"isCapital" : true
}
]
},
{
"germanCity/Cologne" : [
{
"_id" : "frenchCity/Lyon" ,
"isCapital" : false
},
{
"_id" : "germanCity/Hamburg" ,
"isCapital" : false
}
]
},
{
"germanCity/Hamburg" : [
{
"_id" : "frenchCity/Lyon" ,
"isCapital" : false
},
{
"_id" : "germanCity/Cologne" ,
"isCapital" : false
}
]
}
]
_countCommonPropertiesPermalink
Get the amount of vertices of the graph that share common properties.
graph._countCommonProperties(vertex1Example, vertex2Examples, options)
Similar to _commonProperties but returns count instead of
the objects.
Examples
A route planner example, all locations with the same properties:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._countCommonProperties({}, {});
[
{
"frenchCity/Lyon" : 2
},
{
"frenchCity/Paris" : 1
},
{
"germanCity/Berlin" : 1
},
{
"germanCity/Cologne" : 2
},
{
"germanCity/Hamburg" : 2
}
]
A route planner example, all German cities which share same properties except for population.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._countCommonProperties({}, {}, {vertex1CollectionRestriction : 'germanCity' ,
........> vertex2CollectionRestriction : 'germanCity' ,ignoreProperties : 'population' });
[
{
"frenchCity/Lyon" : 2
},
{
"frenchCity/Paris" : 1
},
{
"germanCity/Berlin" : 1
},
{
"germanCity/Cologne" : 2
},
{
"germanCity/Hamburg" : 2
}
]
The _paths function returns all paths of a graph.
graph._paths(options)
This function determines all available paths in a graph.
The complexity of this method is O(n*n*m) with n being the amount of vertices in
the graph and m the average amount of connected edges;
Parameters
options (optional) An object containing options, see below:
direction : The direction of the edges. Possible values are any ,
inbound and outbound (default).
followCycles (optional): If set to true the query follows cycles in the graph,
default is false.
minLength (optional): Defines the minimal length a path must
have to be returned (default is 0).
maxLength (optional): Defines the maximal length a path must
have to be returned (default is 10).
Examples
Return all paths of the graph “social”:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var g = examples.loadGraph("social" );
arangosh> g._paths();
[
{
"source" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
"destination" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
"edges" : [ ],
"vertice" : [
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
}
]
},
{
"source" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
"destination" : {
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
},
"edges" : [
{
"_key" : "76598" ,
"_id" : "relation/76598" ,
"_from" : "female/alice" ,
"_to" : "male/charly" ,
"_rev" : "_eLY0oOi--D" ,
"type" : "friend" ,
"vertex" : "alice"
}
],
"vertice" : [
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
{
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
}
]
},
{
"source" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
"destination" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
},
"edges" : [
{
"_key" : "76598" ,
"_id" : "relation/76598" ,
"_from" : "female/alice" ,
"_to" : "male/charly" ,
"_rev" : "_eLY0oOi--D" ,
"type" : "friend" ,
"vertex" : "alice"
},
{
"_key" : "76600" ,
"_id" : "relation/76600" ,
"_from" : "male/charly" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oOi--E" ,
"type" : "married" ,
"vertex" : "charly"
}
],
"vertice" : [
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
{
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
},
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
}
]
},
{
"source" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
"destination" : {
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
},
"edges" : [
{
"_key" : "76596" ,
"_id" : "relation/76596" ,
"_from" : "female/alice" ,
"_to" : "male/bob" ,
"_rev" : "_eLY0oOi--C" ,
"type" : "married" ,
"vertex" : "alice"
}
],
"vertice" : [
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
}
]
},
{
"source" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
"destination" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
},
"edges" : [
{
"_key" : "76596" ,
"_id" : "relation/76596" ,
"_from" : "female/alice" ,
"_to" : "male/bob" ,
"_rev" : "_eLY0oOi--C" ,
"type" : "married" ,
"vertex" : "alice"
},
{
"_key" : "76602" ,
"_id" : "relation/76602" ,
"_from" : "male/bob" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oOi--F" ,
"type" : "friend" ,
"vertex" : "bob"
}
],
"vertice" : [
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oOi---" ,
"name" : "Alice"
},
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
},
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
}
]
},
{
"source" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
},
"destination" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
},
"edges" : [ ],
"vertice" : [
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
}
]
},
{
"source" : {
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
},
"destination" : {
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
},
"edges" : [ ],
"vertice" : [
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
}
]
},
{
"source" : {
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
},
"destination" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
},
"edges" : [
{
"_key" : "76602" ,
"_id" : "relation/76602" ,
"_from" : "male/bob" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oOi--F" ,
"type" : "friend" ,
"vertex" : "bob"
}
],
"vertice" : [
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oOi--_" ,
"name" : "Bob"
},
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
}
]
},
{
"source" : {
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
},
"destination" : {
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
},
"edges" : [ ],
"vertice" : [
{
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
}
]
},
{
"source" : {
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
},
"destination" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
},
"edges" : [
{
"_key" : "76600" ,
"_id" : "relation/76600" ,
"_from" : "male/charly" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oOi--E" ,
"type" : "married" ,
"vertex" : "charly"
}
],
"vertice" : [
{
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oOi--A" ,
"name" : "Charly"
},
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oOi--B" ,
"name" : "Diana"
}
]
}
]
Return all inbound paths of the graph “social” with a maximal
length of 1 and a minimal length of 2:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var g = examples.loadGraph("social" );
arangosh> g._paths({direction : 'inbound' , minLength : 1 , maxLength : 2 });
[
{
"source" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
"destination" : {
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oPG--A" ,
"name" : "Bob"
},
"edges" : [
{
"_key" : "76664" ,
"_id" : "relation/76664" ,
"_from" : "male/bob" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oPK--C" ,
"type" : "friend" ,
"vertex" : "bob"
}
],
"vertice" : [
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oPG--A" ,
"name" : "Bob"
}
]
},
{
"source" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
"destination" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
},
"edges" : [
{
"_key" : "76664" ,
"_id" : "relation/76664" ,
"_from" : "male/bob" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oPK--C" ,
"type" : "friend" ,
"vertex" : "bob"
},
{
"_key" : "76658" ,
"_id" : "relation/76658" ,
"_from" : "female/alice" ,
"_to" : "male/bob" ,
"_rev" : "_eLY0oPK--_" ,
"type" : "married" ,
"vertex" : "alice"
}
],
"vertice" : [
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oPG--A" ,
"name" : "Bob"
},
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
}
]
},
{
"source" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
"destination" : {
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oPG--B" ,
"name" : "Charly"
},
"edges" : [
{
"_key" : "76662" ,
"_id" : "relation/76662" ,
"_from" : "male/charly" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oPK--B" ,
"type" : "married" ,
"vertex" : "charly"
}
],
"vertice" : [
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
{
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oPG--B" ,
"name" : "Charly"
}
]
},
{
"source" : {
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
"destination" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
},
"edges" : [
{
"_key" : "76662" ,
"_id" : "relation/76662" ,
"_from" : "male/charly" ,
"_to" : "female/diana" ,
"_rev" : "_eLY0oPK--B" ,
"type" : "married" ,
"vertex" : "charly"
},
{
"_key" : "76660" ,
"_id" : "relation/76660" ,
"_from" : "female/alice" ,
"_to" : "male/charly" ,
"_rev" : "_eLY0oPK--A" ,
"type" : "friend" ,
"vertex" : "alice"
}
],
"vertice" : [
{
"_key" : "diana" ,
"_id" : "female/diana" ,
"_rev" : "_eLY0oPK---" ,
"name" : "Diana"
},
{
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oPG--B" ,
"name" : "Charly"
},
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
}
]
},
{
"source" : {
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oPG--A" ,
"name" : "Bob"
},
"destination" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
},
"edges" : [
{
"_key" : "76658" ,
"_id" : "relation/76658" ,
"_from" : "female/alice" ,
"_to" : "male/bob" ,
"_rev" : "_eLY0oPK--_" ,
"type" : "married" ,
"vertex" : "alice"
}
],
"vertice" : [
{
"_key" : "bob" ,
"_id" : "male/bob" ,
"_rev" : "_eLY0oPG--A" ,
"name" : "Bob"
},
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
}
]
},
{
"source" : {
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oPG--B" ,
"name" : "Charly"
},
"destination" : {
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
},
"edges" : [
{
"_key" : "76660" ,
"_id" : "relation/76660" ,
"_from" : "female/alice" ,
"_to" : "male/charly" ,
"_rev" : "_eLY0oPK--A" ,
"type" : "friend" ,
"vertex" : "alice"
}
],
"vertice" : [
{
"_key" : "charly" ,
"_id" : "male/charly" ,
"_rev" : "_eLY0oPG--B" ,
"name" : "Charly"
},
{
"_key" : "alice" ,
"_id" : "female/alice" ,
"_rev" : "_eLY0oPG--_" ,
"name" : "Alice"
}
]
}
]
The _shortestPath function returns all shortest paths of a graph.
graph._shortestPath(startVertexExample, endVertexExample, options)
This function determines all shortest paths in a graph.
The function accepts an id, an example, a list of examples
or even an empty example as parameter for
start and end vertex.
The length of a path is by default the amount of edges from one start vertex to
an end vertex. The option weight allows the user to define an edge attribute
representing the length.
Parameters
startVertexExample (optional) An example for the desired start Vertices (see Definition of examples ).
endVertexExample (optional) An example for the desired end Vertices (see Definition of examples ).
options (optional) An object containing options, see below:
direction : The direction of the edges as a string.
Possible values are outbound , inbound and any (default).
edgeCollectionRestriction : One or multiple edge
collection names. Only edges from these collections will be considered for the path.
startVertexCollectionRestriction : One or multiple vertex
collection names. Only vertices from these collections will be considered as
start vertex of a path.
endVertexCollectionRestriction : One or multiple vertex
collection names. Only vertices from these collections will be considered as
end vertex of a path.
weight : The name of the attribute of
the edges containing the length as a string.
defaultWeight : Only used with the option weight .
If an edge does not have the attribute named as defined in option weight this default
is used as length.
If no default is supplied the default would be positive Infinity so the path could
not be calculated.
Examples
A route planner example, shortest path from all german to all french cities:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var g = examples.loadGraph("routeplanner" );
arangosh> g._shortestPath({}, {}, {weight : 'distance' , endVertexCollectionRestriction : 'frenchCity' ,
........> startVertexCollectionRestriction : 'germanCity' });
[
{
"vertices" : [
"frenchCity/Lyon" ,
"frenchCity/Paris"
],
"edges" : [
{
"_key" : "77234" ,
"_id" : "frenchHighway/77234" ,
"_from" : "frenchCity/Paris" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTK--C" ,
"distance" : 550
}
],
"distance" : 1
},
{
"vertices" : [
"frenchCity/Lyon" ,
"germanCity/Berlin"
],
"edges" : [
{
"_key" : "77236" ,
"_id" : "internationalHighway/77236" ,
"_from" : "germanCity/Berlin" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTO---" ,
"distance" : 1100
}
],
"distance" : 1
},
{
"vertices" : [
"frenchCity/Lyon" ,
"germanCity/Cologne"
],
"edges" : [
{
"_key" : "77244" ,
"_id" : "internationalHighway/77244" ,
"_from" : "germanCity/Cologne" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTO--C" ,
"distance" : 700
}
],
"distance" : 1
},
{
"vertices" : [
"frenchCity/Lyon" ,
"germanCity/Hamburg"
],
"edges" : [
{
"_key" : "77242" ,
"_id" : "internationalHighway/77242" ,
"_from" : "germanCity/Hamburg" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTO--B" ,
"distance" : 1300
}
],
"distance" : 1
},
{
"vertices" : [
"frenchCity/Paris" ,
"frenchCity/Lyon"
],
"edges" : [
{
"_key" : "77234" ,
"_id" : "frenchHighway/77234" ,
"_from" : "frenchCity/Paris" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTK--C" ,
"distance" : 550
}
],
"distance" : 1
},
{
"vertices" : [
"frenchCity/Paris" ,
"germanCity/Berlin"
],
"edges" : [
{
"_key" : "77238" ,
"_id" : "internationalHighway/77238" ,
"_from" : "germanCity/Berlin" ,
"_to" : "frenchCity/Paris" ,
"_rev" : "_eLY0oTO--_" ,
"distance" : 1200
}
],
"distance" : 1
},
{
"vertices" : [
"frenchCity/Paris" ,
"germanCity/Cologne"
],
"edges" : [
{
"_key" : "77246" ,
"_id" : "internationalHighway/77246" ,
"_from" : "germanCity/Cologne" ,
"_to" : "frenchCity/Paris" ,
"_rev" : "_eLY0oTO--D" ,
"distance" : 550
}
],
"distance" : 1
},
{
"vertices" : [
"frenchCity/Paris" ,
"germanCity/Hamburg"
],
"edges" : [
{
"_key" : "77240" ,
"_id" : "internationalHighway/77240" ,
"_from" : "germanCity/Hamburg" ,
"_to" : "frenchCity/Paris" ,
"_rev" : "_eLY0oTO--A" ,
"distance" : 900
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Berlin" ,
"frenchCity/Lyon"
],
"edges" : [
{
"_key" : "77236" ,
"_id" : "internationalHighway/77236" ,
"_from" : "germanCity/Berlin" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTO---" ,
"distance" : 1100
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Berlin" ,
"frenchCity/Paris"
],
"edges" : [
{
"_key" : "77238" ,
"_id" : "internationalHighway/77238" ,
"_from" : "germanCity/Berlin" ,
"_to" : "frenchCity/Paris" ,
"_rev" : "_eLY0oTO--_" ,
"distance" : 1200
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Berlin" ,
"germanCity/Cologne"
],
"edges" : [
{
"_key" : "77228" ,
"_id" : "germanHighway/77228" ,
"_from" : "germanCity/Berlin" ,
"_to" : "germanCity/Cologne" ,
"_rev" : "_eLY0oTK--_" ,
"distance" : 850
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Berlin" ,
"germanCity/Hamburg"
],
"edges" : [
{
"_key" : "77230" ,
"_id" : "germanHighway/77230" ,
"_from" : "germanCity/Berlin" ,
"_to" : "germanCity/Hamburg" ,
"_rev" : "_eLY0oTK--A" ,
"distance" : 400
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Cologne" ,
"frenchCity/Lyon"
],
"edges" : [
{
"_key" : "77244" ,
"_id" : "internationalHighway/77244" ,
"_from" : "germanCity/Cologne" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTO--C" ,
"distance" : 700
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Cologne" ,
"frenchCity/Paris"
],
"edges" : [
{
"_key" : "77246" ,
"_id" : "internationalHighway/77246" ,
"_from" : "germanCity/Cologne" ,
"_to" : "frenchCity/Paris" ,
"_rev" : "_eLY0oTO--D" ,
"distance" : 550
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Cologne" ,
"germanCity/Berlin"
],
"edges" : [
{
"_key" : "77228" ,
"_id" : "germanHighway/77228" ,
"_from" : "germanCity/Berlin" ,
"_to" : "germanCity/Cologne" ,
"_rev" : "_eLY0oTK--_" ,
"distance" : 850
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Cologne" ,
"germanCity/Hamburg"
],
"edges" : [
{
"_key" : "77232" ,
"_id" : "germanHighway/77232" ,
"_from" : "germanCity/Hamburg" ,
"_to" : "germanCity/Cologne" ,
"_rev" : "_eLY0oTK--B" ,
"distance" : 500
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Hamburg" ,
"frenchCity/Lyon"
],
"edges" : [
{
"_key" : "77242" ,
"_id" : "internationalHighway/77242" ,
"_from" : "germanCity/Hamburg" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oTO--B" ,
"distance" : 1300
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Hamburg" ,
"frenchCity/Paris"
],
"edges" : [
{
"_key" : "77240" ,
"_id" : "internationalHighway/77240" ,
"_from" : "germanCity/Hamburg" ,
"_to" : "frenchCity/Paris" ,
"_rev" : "_eLY0oTO--A" ,
"distance" : 900
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Hamburg" ,
"germanCity/Berlin"
],
"edges" : [
{
"_key" : "77230" ,
"_id" : "germanHighway/77230" ,
"_from" : "germanCity/Berlin" ,
"_to" : "germanCity/Hamburg" ,
"_rev" : "_eLY0oTK--A" ,
"distance" : 400
}
],
"distance" : 1
},
{
"vertices" : [
"germanCity/Hamburg" ,
"germanCity/Cologne"
],
"edges" : [
{
"_key" : "77232" ,
"_id" : "germanHighway/77232" ,
"_from" : "germanCity/Hamburg" ,
"_to" : "germanCity/Cologne" ,
"_rev" : "_eLY0oTK--B" ,
"distance" : 500
}
],
"distance" : 1
}
]
A route planner example, shortest path from Hamburg and Cologne to Lyon:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var g = examples.loadGraph("routeplanner" );
arangosh> g._shortestPath([{_id : 'germanCity/Cologne' },{_id : 'germanCity/Munich' }], 'frenchCity/Lyon' ,
........> {weight : 'distance' });
[
{
"vertices" : [
"germanCity/Cologne" ,
"frenchCity/Lyon"
],
"edges" : [
{
"_key" : "77343" ,
"_id" : "internationalHighway/77343" ,
"_from" : "germanCity/Cologne" ,
"_to" : "frenchCity/Lyon" ,
"_rev" : "_eLY0oUG--F" ,
"distance" : 700
}
],
"distance" : 1
}
]
The _distanceTo function returns all paths and there distance within a graph.
graph._distanceTo(startVertexExample, endVertexExample, options)
This function is a wrapper of graph._shortestPath .
It does not return the actual path but only the distance between two vertices.
Examples
A route planner example, shortest distance from all german to all french cities:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var g = examples.loadGraph("routeplanner" );
arangosh> g._distanceTo({}, {}, {weight : 'distance' , endVertexCollectionRestriction : 'frenchCity' ,
........> startVertexCollectionRestriction : 'germanCity' });
[
{
"startVertex" : "frenchCity/Lyon" ,
"vertex" : "frenchCity/Paris" ,
"distance" : 1
},
{
"startVertex" : "frenchCity/Lyon" ,
"vertex" : "germanCity/Berlin" ,
"distance" : 1
},
{
"startVertex" : "frenchCity/Lyon" ,
"vertex" : "germanCity/Cologne" ,
"distance" : 1
},
{
"startVertex" : "frenchCity/Lyon" ,
"vertex" : "germanCity/Hamburg" ,
"distance" : 1
},
{
"startVertex" : "frenchCity/Paris" ,
"vertex" : "frenchCity/Lyon" ,
"distance" : 1
},
{
"startVertex" : "frenchCity/Paris" ,
"vertex" : "germanCity/Berlin" ,
"distance" : 1
},
{
"startVertex" : "frenchCity/Paris" ,
"vertex" : "germanCity/Cologne" ,
"distance" : 1
},
{
"startVertex" : "frenchCity/Paris" ,
"vertex" : "germanCity/Hamburg" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Berlin" ,
"vertex" : "frenchCity/Lyon" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Berlin" ,
"vertex" : "frenchCity/Paris" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Berlin" ,
"vertex" : "germanCity/Cologne" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Berlin" ,
"vertex" : "germanCity/Hamburg" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Cologne" ,
"vertex" : "frenchCity/Lyon" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Cologne" ,
"vertex" : "frenchCity/Paris" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Cologne" ,
"vertex" : "germanCity/Berlin" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Cologne" ,
"vertex" : "germanCity/Hamburg" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Hamburg" ,
"vertex" : "frenchCity/Lyon" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Hamburg" ,
"vertex" : "frenchCity/Paris" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Hamburg" ,
"vertex" : "germanCity/Berlin" ,
"distance" : 1
},
{
"startVertex" : "germanCity/Hamburg" ,
"vertex" : "germanCity/Cologne" ,
"distance" : 1
}
]
A route planner example, shortest distance from Hamburg and Cologne to Lyon:
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var g = examples.loadGraph("routeplanner" );
arangosh> g._distanceTo([{_id : 'germanCity/Cologne' },{_id : 'germanCity/Munich' }], 'frenchCity/Lyon' ,
........> {weight : 'distance' });
[
{
"startVertex" : "germanCity/Cologne" ,
"vertex" : "frenchCity/Lyon" ,
"distance" : 1
}
]
_absoluteEccentricityPermalink
Get the
eccentricity
of the vertices defined by the examples.
graph._absoluteEccentricity(vertexExample, options)
The function accepts an id, an example, a list of examples or even an empty
example as parameter for vertexExample.
Parameters
vertexExample (optional) Filter the vertices, see Definition of examples
options (optional) An object defining further options. Can have the following values:
direction : The direction of the edges. Possible values are outbound , inbound and any (default).
edgeCollectionRestriction : One or a list of edge-collection names that should be
considered to be on the path.
startVertexCollectionRestriction : One or a list of vertex-collection names that should be
considered for source vertices.
endVertexCollectionRestriction : One or a list of vertex-collection names that should be
considered for target vertices.
weight : The name of the attribute of the edges containing the weight.
defaultWeight : Only used with the option weight .
If an edge does not have the attribute named as defined in option weight this default
is used as weight.
If no default is supplied the default would be positive infinity so the path and
hence the eccentricity can not be calculated.
Examples
A route planner example, the absolute eccentricity of all locations.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteEccentricity({});
{
"frenchCity/Lyon" : 1 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 1 ,
"germanCity/Cologne" : 1 ,
"germanCity/Hamburg" : 1
}
A route planner example, the absolute eccentricity of all locations.
This considers the actual distances.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteEccentricity({}, {weight : 'distance' });
{
"frenchCity/Lyon" : 1 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 1 ,
"germanCity/Cologne" : 1 ,
"germanCity/Hamburg" : 1
}
A route planner example, the absolute eccentricity of all cities regarding only
outbound paths.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteEccentricity({}, {startVertexCollectionRestriction : 'germanCity' ,
........> direction : 'outbound' , weight : 'distance' });
{
"frenchCity/Lyon" : 0 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 1 ,
"germanCity/Cologne" : 1 ,
"germanCity/Hamburg" : 1
}
Get the normalized
eccentricity
of the vertices defined by the examples.
graph._eccentricity(vertexExample, options)
Similar to _absoluteEccentricity but returns a normalized result.
Examples
A route planner example, the eccentricity of all locations.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._eccentricity();
{
"frenchCity/Lyon" : 1 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 1 ,
"germanCity/Cologne" : 1 ,
"germanCity/Hamburg" : 1
}
A route planner example, the weighted eccentricity.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._eccentricity({weight : 'distance' });
{
"frenchCity/Lyon" : 1 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 1 ,
"germanCity/Cologne" : 1 ,
"germanCity/Hamburg" : 1
}
Get the
closeness
of the vertices defined by the examples.
graph._absoluteCloseness(vertexExample, options)
The function accepts an id, an example, a list of examples or even an empty
example as parameter for vertexExample .
Parameters
vertexExample (optional) Filter the vertices, see Definition of examples
options (optional) An object defining further options. Can have the following values:
direction : The direction of the edges. Possible values are outbound , inbound and any (default).
edgeCollectionRestriction : One or a list of edge-collection names that should be
considered to be on the path.
startVertexCollectionRestriction : One or a list of vertex-collection names that should be
considered for source vertices.
endVertexCollectionRestriction : One or a list of vertex-collection names that should be
considered for target vertices.
weight : The name of the attribute of the edges containing the weight.
defaultWeight : Only used with the option weight .
If an edge does not have the attribute named as defined in option weight this default
is used as weight.
If no default is supplied the default would be positive infinity so the path and
hence the closeness can not be calculated.
Examples
A route planner example, the absolute closeness of all locations.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteCloseness({});
{
"frenchCity/Lyon" : 4 ,
"frenchCity/Paris" : 4 ,
"germanCity/Berlin" : 4 ,
"germanCity/Cologne" : 4 ,
"germanCity/Hamburg" : 4
}
A route planner example, the absolute closeness of all locations.
This considers the actual distances.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteCloseness({}, {weight : 'distance' });
{
"frenchCity/Lyon" : 4 ,
"frenchCity/Paris" : 4 ,
"germanCity/Berlin" : 4 ,
"germanCity/Cologne" : 4 ,
"germanCity/Hamburg" : 4
}
A route planner example, the absolute closeness of all German Cities regarding only
outbound paths.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteCloseness({}, {startVertexCollectionRestriction : 'germanCity' ,
........> direction : 'outbound' , weight : 'distance' });
{
"frenchCity/Lyon" : 0 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 4 ,
"germanCity/Cologne" : 2 ,
"germanCity/Hamburg" : 3
}
Get the normalized
closeness
of graphs vertices.
graph._closeness(options)
Similar to _absoluteCloseness but returns a normalized value.
Examples
A route planner example, the normalized closeness of all locations.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._closeness();
{
"frenchCity/Lyon" : 1 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 1 ,
"germanCity/Cologne" : 1 ,
"germanCity/Hamburg" : 1
}
A route planner example, the closeness of all locations.
This considers the actual distances.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._closeness({weight : 'distance' });
{
"frenchCity/Lyon" : 1 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 1 ,
"germanCity/Cologne" : 1 ,
"germanCity/Hamburg" : 1
}
A route planner example, the closeness of all cities regarding only
outbound paths.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._closeness({direction : 'outbound' , weight : 'distance' });
{
"frenchCity/Lyon" : 0 ,
"frenchCity/Paris" : 1 ,
"germanCity/Berlin" : 0.25 ,
"germanCity/Cologne" : 0.5 ,
"germanCity/Hamburg" : 0.3333333333333333
}
_absoluteBetweennessPermalink
Get the
betweenness
of all vertices in the graph.
graph._absoluteBetweenness(vertexExample, options)
Parameters
vertexExample (optional) Filter the vertices, see Definition of examples
options (optional) An object defining further options. Can have the following values:
direction : The direction of the edges. Possible values are outbound , inbound and any (default).
weight : The name of the attribute of the edges containing the weight.
defaultWeight : Only used with the option weight .
If an edge does not have the attribute named as defined in option weight this default
is used as weight.
If no default is supplied the default would be positive infinity so the path and
hence the betweenness can not be calculated.
Examples
A route planner example, the absolute betweenness of all locations.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteBetweenness({});
{
"frenchCity/Lyon" : 0 ,
"frenchCity/Paris" : 0 ,
"germanCity/Berlin" : 0 ,
"germanCity/Cologne" : 0 ,
"germanCity/Hamburg" : 0
}
A route planner example, the absolute betweenness of all locations.
This considers the actual distances.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteBetweenness({weight : 'distance' });
A route planner example, the absolute betweenness of all cities regarding only
outbound paths.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._absoluteBetweenness({direction : 'outbound' , weight : 'distance' });
Get the normalized
betweenness
of graphs vertices.
graph_module._betweenness(options)
Similar to _absoluteBetweenness but returns normalized values.
Examples
A route planner example, the betweenness of all locations.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._betweenness();
{
"frenchCity/Lyon" : 0 ,
"frenchCity/Paris" : 0 ,
"germanCity/Berlin" : 0 ,
"germanCity/Cologne" : 0 ,
"germanCity/Hamburg" : 0
}
A route planner example, the betweenness of all locations.
This considers the actual distances.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._betweenness({weight : 'distance' });
{
"frenchCity/Lyon" : 0 ,
"frenchCity/Paris" : 0 ,
"germanCity/Berlin" : 0 ,
"germanCity/Cologne" : 0 ,
"germanCity/Hamburg" : 0
}
A route planner example, the betweenness of all cities regarding only
outbound paths.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._betweenness({direction : 'outbound' , weight : 'distance' });
{
"frenchCity/Lyon" : 0 ,
"frenchCity/Paris" : 0 ,
"germanCity/Berlin" : 0 ,
"germanCity/Cologne" : 0 ,
"germanCity/Hamburg" : 0
}
Get the
radius
of a graph.
`
Parameters
options (optional) An object defining further options. Can have the following values:
direction : The direction of the edges. Possible values are outbound , inbound and any (default).
weight : The name of the attribute of the edges containing the weight.
defaultWeight : Only used with the option weight .
If an edge does not have the attribute named as defined in option weight this default
is used as weight.
If no default is supplied the default would be positive infinity so the path and
hence the radius can not be calculated.
Examples
A route planner example, the radius of the graph.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._radius();
A route planner example, the radius of the graph.
This considers the actual distances.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._radius({weight : 'distance' });
A route planner example, the radius of the graph regarding only
outbound paths.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._radius({direction : 'outbound' , weight : 'distance' });
Get the
diameter
of a graph.
graph._diameter(graphName, options)
Parameters
options (optional) An object defining further options. Can have the following values:
direction : The direction of the edges. Possible values are outbound , inbound and any (default).
weight : The name of the attribute of the edges containing the weight.
defaultWeight : Only used with the option weight .
If an edge does not have the attribute named as defined in option weight this default
is used as weight.
If no default is supplied the default would be positive infinity so the path and
hence the radius can not be calculated.
Examples
A route planner example, the diameter of the graph.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._diameter();
A route planner example, the diameter of the graph.
This considers the actual distances.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._diameter({weight : 'distance' });
A route planner example, the diameter of the graph regarding only
outbound paths.
Permalink
arangosh> var examples = require ("@arangodb/graph-examples/example-graph.js" );
arangosh> var graph = examples.loadGraph("routeplanner" );
arangosh> graph._diameter({direction : 'outbound' , weight : 'distance' });