title: When should inferred relationships and nodes be used over explicit ones?
body: <p>I was looking up how to utilise temporary relationships in Neo4j when I came across this question: <a href="https://stackoverflow.com/questions/23645257/cypher-temp-relationship">Cypher temp relationship</a>
  and the comment underneath it made me wonder when they should be used and since no one argued against him, I thought I would bring it up here.</p>
  <p>I come from a mainly SQL background and my main reason for using virtual relationships was to eliminate duplicated data and do traversals to get properties of something instead.</p>
  <p>For a more specific example, let's say we have a robust cake recipe, which has sugar as an ingredient. The sugar is what makes the cake sweet.</p>
  <p>Now imagine a use case where I don't like sweet cakes so I want to get all the ingredients of the recipe that make the cake sweet and possibly remove them or find alternatives.</p>
  <p>Then there's another use case where I just want foods that are sweet. I could work backwards from the sweet ingredients to get to the food or just store that a cake is sweet in general, which saves time from traversal and makes a query easier. However, as I mentioned before, this duplicates known data that can be inferred.</p>
  <p>Sorry if the example is too strange, I suck at making them. I hope the main question comes across, though.</p>