{"action":"opened","issue":{"url":"https://api.github.com/repos/tinkerpop/tinkerpop3/issues/465","labels_url":"https://api.github.com/repos/tinkerpop/tinkerpop3/issues/465/labels{/name}","comments_url":"https://api.github.com/repos/tinkerpop/tinkerpop3/issues/465/comments","events_url":"https://api.github.com/repos/tinkerpop/tinkerpop3/issues/465/events","html_url":"https://github.com/tinkerpop/tinkerpop3/issues/465","id":53803216,"number":465,"title":"Retain strategy application lineage","user":{"login":"mbroecheler","id":758061,"avatar_url":"https://avatars.githubusercontent.com/u/758061?v=3","gravatar_id":"","url":"https://api.github.com/users/mbroecheler","html_url":"https://github.com/mbroecheler","followers_url":"https://api.github.com/users/mbroecheler/followers","following_url":"https://api.github.com/users/mbroecheler/following{/other_user}","gists_url":"https://api.github.com/users/mbroecheler/gists{/gist_id}","starred_url":"https://api.github.com/users/mbroecheler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbroecheler/subscriptions","organizations_url":"https://api.github.com/users/mbroecheler/orgs","repos_url":"https://api.github.com/users/mbroecheler/repos","events_url":"https://api.github.com/users/mbroecheler/events{/privacy}","received_events_url":"https://api.github.com/users/mbroecheler/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tinkerpop/tinkerpop3/labels/enhancement","name":"enhancement","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-01-08T21:27:31Z","updated_at":"2015-01-08T21:27:31Z","closed_at":null,"body":"For profiling purposes, it would be great if there were a way to retain the lineage from the original query to the one after applying the strategies.\r\n\r\nFor instance, suppose a user issues the query:\r\n\r\n```groovy\r\ng.V.has('name','Marko').out('knows').name\r\n```\r\n\r\nthen, after applying the strategies on TinkerGraph, ```g.V.has('name','Marko')``` will be compressed into a single step (index call). After that we apply the profiling and so we record how much time that index call took, but we won't be able to relate that information back to the original query to say ```g.V.has('name','Marko')``` took X milliseconds."}}