You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Stephen Mallette (Jira)" <ji...@apache.org> on 2020/12/31 18:53:00 UTC

[jira] [Commented] (TINKERPOP-2481) IdentityRemovalStrategy not installed

    [ https://issues.apache.org/jira/browse/TINKERPOP-2481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17257079#comment-17257079 ] 

Stephen Mallette commented on TINKERPOP-2481:
---------------------------------------------

After some research, I came across some old discussion on this strategy here: TINKERPOP-1412 - I think Marko's final comment on that make sense to me. This strategy was never about performance of chained {{identity()}} steps but more about removing an {{identity()}} which might have normalized the Gremlin enough for another strategy to do its work properly. On the other hand this issue is also as much an issue with {{PathRetractionStrategy}}:

{code}
gremlin> g.withoutStrategies(PathRetractionStrategy).V().match(__.as("a").out("knows").as("b")).identity()
==>[a:v[1],b:v[2]]
==>[a:v[1],b:v[4]]
{code}

We really shouldn't have situations where "correctness" or "consistency" of results is upset by a strategy and shouldn't use one strategy (in this case {{IdentityRemovalStrategy}}) to ensure a particular result based on another. So ultimately, I think the fix here is to {{PathRetractionStrategy}} and to install {{IdentityRemovalStrategy}}. Created TINKERPOP-2499 for the former. 

> IdentityRemovalStrategy not installed
> -------------------------------------
>
>                 Key: TINKERPOP-2481
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2481
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.4.8
>            Reporter: Stephen Mallette
>            Priority: Minor
>
> I'm not sure why but {{IdentityRemovalStrategy}} is not in play and almost looks like it never has been, yet I fairly certain we've gone about life thinking it was one of our standard strategies. Perhaps this issue title will shift once this is given more thought but I came to [notice this issue|https://groups.google.com/g/gremlin-users/c/HVtldzV0Xk8/m/saCBYsEQBgAJ] with this example:
> {code}
> gremlin> g.V().match(__.as("a").out("knows").as("b")).identity()
> ==>[]
> ==>[]
> gremlin> g.withStrategies(IdentityRemovalStrategy.instance()).V().match(__.as("a").out("knows").as("b")).identity()
> ==>[a:v[1],b:v[2]]
> ==>[a:v[1],b:v[4]]
> {code}
> So if the strategy had been in play, {{PathRetractionStrategy}} wouldn't have trimmed the history. Or, perhaps {{PathRetractionStrategy}} should have been smarter....



--
This message was sent by Atlassian Jira
(v8.3.4#803005)