Gremlin-Python: Switch traversal from edges to vertices
I want to perform a centrality calculation:
g.V().repeat(groupCount('m').by('name').out()).times(5).cap('m')
using only a subset of edges:
g.E().has('some-property', 'some-value')
Unfortunately, the .subgraph() step returns a dict in gremlin-python, so I can't use it to perform further traversals.
Is there another way to combine an edge-oriented traversal with a vertex-oriented one?
gremlin tinkerpop
add a comment |
I want to perform a centrality calculation:
g.V().repeat(groupCount('m').by('name').out()).times(5).cap('m')
using only a subset of edges:
g.E().has('some-property', 'some-value')
Unfortunately, the .subgraph() step returns a dict in gremlin-python, so I can't use it to perform further traversals.
Is there another way to combine an edge-oriented traversal with a vertex-oriented one?
gremlin tinkerpop
add a comment |
I want to perform a centrality calculation:
g.V().repeat(groupCount('m').by('name').out()).times(5).cap('m')
using only a subset of edges:
g.E().has('some-property', 'some-value')
Unfortunately, the .subgraph() step returns a dict in gremlin-python, so I can't use it to perform further traversals.
Is there another way to combine an edge-oriented traversal with a vertex-oriented one?
gremlin tinkerpop
I want to perform a centrality calculation:
g.V().repeat(groupCount('m').by('name').out()).times(5).cap('m')
using only a subset of edges:
g.E().has('some-property', 'some-value')
Unfortunately, the .subgraph() step returns a dict in gremlin-python, so I can't use it to perform further traversals.
Is there another way to combine an edge-oriented traversal with a vertex-oriented one?
gremlin tinkerpop
gremlin tinkerpop
edited Nov 14 '18 at 12:49
scribu
asked Nov 14 '18 at 12:45
scribuscribu
1,91321938
1,91321938
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Just apply some filter to your edges:
g.V().
repeat(groupCount('m').
by('name').
outE().has(....).inV()).
times(5).
cap('m')
It seems like.outE().has(...).inV()will merely restrict the vertices, not alter which edges will be taken into account by.groupCount().
– scribu
Nov 14 '18 at 13:28
1
i can't say i follow what you're suggesting.groupCount()is incrementing the vertex count each time the same vertex traverser passes through it. thehas()is filtering edges and thus the adjacent vertices which will be considered on future rounds ofgroupCount(). so, thehas()is limiting what is taken into account bygroupCount(). if that doesn't explain the mechanics properly, then could you please add some more specifics to what you are aiming to achieve?
– stephen mallette
Nov 14 '18 at 13:59
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300562%2fgremlin-python-switch-traversal-from-edges-to-vertices%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Just apply some filter to your edges:
g.V().
repeat(groupCount('m').
by('name').
outE().has(....).inV()).
times(5).
cap('m')
It seems like.outE().has(...).inV()will merely restrict the vertices, not alter which edges will be taken into account by.groupCount().
– scribu
Nov 14 '18 at 13:28
1
i can't say i follow what you're suggesting.groupCount()is incrementing the vertex count each time the same vertex traverser passes through it. thehas()is filtering edges and thus the adjacent vertices which will be considered on future rounds ofgroupCount(). so, thehas()is limiting what is taken into account bygroupCount(). if that doesn't explain the mechanics properly, then could you please add some more specifics to what you are aiming to achieve?
– stephen mallette
Nov 14 '18 at 13:59
add a comment |
Just apply some filter to your edges:
g.V().
repeat(groupCount('m').
by('name').
outE().has(....).inV()).
times(5).
cap('m')
It seems like.outE().has(...).inV()will merely restrict the vertices, not alter which edges will be taken into account by.groupCount().
– scribu
Nov 14 '18 at 13:28
1
i can't say i follow what you're suggesting.groupCount()is incrementing the vertex count each time the same vertex traverser passes through it. thehas()is filtering edges and thus the adjacent vertices which will be considered on future rounds ofgroupCount(). so, thehas()is limiting what is taken into account bygroupCount(). if that doesn't explain the mechanics properly, then could you please add some more specifics to what you are aiming to achieve?
– stephen mallette
Nov 14 '18 at 13:59
add a comment |
Just apply some filter to your edges:
g.V().
repeat(groupCount('m').
by('name').
outE().has(....).inV()).
times(5).
cap('m')
Just apply some filter to your edges:
g.V().
repeat(groupCount('m').
by('name').
outE().has(....).inV()).
times(5).
cap('m')
answered Nov 14 '18 at 12:49
stephen mallettestephen mallette
25.7k32877
25.7k32877
It seems like.outE().has(...).inV()will merely restrict the vertices, not alter which edges will be taken into account by.groupCount().
– scribu
Nov 14 '18 at 13:28
1
i can't say i follow what you're suggesting.groupCount()is incrementing the vertex count each time the same vertex traverser passes through it. thehas()is filtering edges and thus the adjacent vertices which will be considered on future rounds ofgroupCount(). so, thehas()is limiting what is taken into account bygroupCount(). if that doesn't explain the mechanics properly, then could you please add some more specifics to what you are aiming to achieve?
– stephen mallette
Nov 14 '18 at 13:59
add a comment |
It seems like.outE().has(...).inV()will merely restrict the vertices, not alter which edges will be taken into account by.groupCount().
– scribu
Nov 14 '18 at 13:28
1
i can't say i follow what you're suggesting.groupCount()is incrementing the vertex count each time the same vertex traverser passes through it. thehas()is filtering edges and thus the adjacent vertices which will be considered on future rounds ofgroupCount(). so, thehas()is limiting what is taken into account bygroupCount(). if that doesn't explain the mechanics properly, then could you please add some more specifics to what you are aiming to achieve?
– stephen mallette
Nov 14 '18 at 13:59
It seems like
.outE().has(...).inV() will merely restrict the vertices, not alter which edges will be taken into account by .groupCount().– scribu
Nov 14 '18 at 13:28
It seems like
.outE().has(...).inV() will merely restrict the vertices, not alter which edges will be taken into account by .groupCount().– scribu
Nov 14 '18 at 13:28
1
1
i can't say i follow what you're suggesting.
groupCount() is incrementing the vertex count each time the same vertex traverser passes through it. the has() is filtering edges and thus the adjacent vertices which will be considered on future rounds of groupCount(). so, the has() is limiting what is taken into account by groupCount(). if that doesn't explain the mechanics properly, then could you please add some more specifics to what you are aiming to achieve?– stephen mallette
Nov 14 '18 at 13:59
i can't say i follow what you're suggesting.
groupCount() is incrementing the vertex count each time the same vertex traverser passes through it. the has() is filtering edges and thus the adjacent vertices which will be considered on future rounds of groupCount(). so, the has() is limiting what is taken into account by groupCount(). if that doesn't explain the mechanics properly, then could you please add some more specifics to what you are aiming to achieve?– stephen mallette
Nov 14 '18 at 13:59
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300562%2fgremlin-python-switch-traversal-from-edges-to-vertices%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown