title: Build queries based on the properties of edges, NOT the existence of edges in Cypher
body: <p>Correct me if I'm wrong, but this type of Cypher statement checks for the <em>existence</em> of a relationship:  </p>
  
  <pre><code>start n=node(*)
  match (n)-[:SOME_RELATIONSHIP]-()
  return distinct n
  </code></pre>
  
  <p>To quickly reiterate, if <code>[:SOME_RELATIONSHIP]</code> is simply present, then we will get a match and a result.  </p>
  
  <p>But what happens if your graph is set up in such a manner, that <strong>all</strong> your nodes have <code>[:SOME_RELATIONSHIP]</code>. And the distinguishing factor between these relationships is contained <em>in</em> the relationship?  </p>
  
  <p>In other words, say I have an edge that is packed with properties. In fact, the edges in my graph have more properties than the nodes they connect do. </p>
  
  <p>I'm finding it difficult to query such a graph, since the Cypher syntax only allows me to check if a relationship exists. I want to build queries based on the properties of the edges! Is this allowed in Cypher?</p>