{"comment":{"url":"https://api.github.com/repos/lukedirtwalker/Envision/comments/12394576","html_url":"https://github.com/lukedirtwalker/Envision/commit/dd4d19d235c4439691f30e4013110422656b0e87#commitcomment-12394576","id":12394576,"user":{"login":"lukedirtwalker","id":3530769,"avatar_url":"https://avatars.githubusercontent.com/u/3530769?v=3","gravatar_id":"","url":"https://api.github.com/users/lukedirtwalker","html_url":"https://github.com/lukedirtwalker","followers_url":"https://api.github.com/users/lukedirtwalker/followers","following_url":"https://api.github.com/users/lukedirtwalker/following{/other_user}","gists_url":"https://api.github.com/users/lukedirtwalker/gists{/gist_id}","starred_url":"https://api.github.com/users/lukedirtwalker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukedirtwalker/subscriptions","organizations_url":"https://api.github.com/users/lukedirtwalker/orgs","repos_url":"https://api.github.com/users/lukedirtwalker/repos","events_url":"https://api.github.com/users/lukedirtwalker/events{/privacy}","received_events_url":"https://api.github.com/users/lukedirtwalker/received_events","type":"User","site_admin":false},"position":39,"line":39,"path":"InformationScripting/src/graph/Graph.cpp","commit_id":"dd4d19d235c4439691f30e4013110422656b0e87","created_at":"2015-07-28T12:24:05Z","updated_at":"2015-07-28T12:24:05Z","body":"No I don't think we need that actually. At creation we could assume that the datasource doesn't insert duplicates. But at a later stage we would either have to check it or create a separate graph and then merge the two graph, but it both means more or less checking all the nodes. So I think the hash idea might be a good solution. \r\n\r\nSo instead of equal checkers we could register hash functions which work on the properties of the node , e.g. AstSource hash functions works on ast property, etc. And the total hash is a combination of all hashes. Maybe using something like that: https://www.youtube.com/watch?v=Njjp_MJsgt8 but applied on properties instead of members. "}}