How to search in properties of a relationship which has an array of values?

Here's a twisted question....

What if the movie is Kind Hearts and Coronets where Alec Guinness plays nine different roles at once?

Here, a person creating the ACTED_IN relationship might decide (badly?) that the roles property should be in a list instead of creating multiple relationships with a single string for each role. (They might decide have nine relationships of the same type with different properties clutters things up.)

CREATE (p:Person {name:'Alec Guinness', born : 1914})


CREATE (m:Movie {title: 'Kind Hearts and Coronets', released: 1949, tagline:'He chopped down the family tree'})


MATCH (m:Movie), (p:Person)
WHERE p.name = 'Alec Guinness' AND m.title STARTS WITH 'Kind'
CREATE (p)-[r:ACTED_IN {roles: [
 'Ethelred, 8th Duke of Chalfont',
 'The Reverend Lord Henry',
 'General Lord Rufus',
 'Admiral Lord Horatio',
 'Lord Ascoyne',
 'Lady Agatha D\'Ascoyne',
 'Young Ascoyne',
 'Young Henry',
 'Ethelred, 7th Duke of Chalfont'
]}]->(m)
return p,r,m

Then this doesn't return anything (I'm not sure how to make this query work either...):

[Fixed typo: Move => Movie]

MATCH (p:Person)-[a:ACTED_IN]->(m:Movie) WHERE 'Young Henry' IN a.roles RETURN p, a, m

I'm designing a schema, where I'm not sure if where some "tags" should really be entities that person nodes point to, or if the tags should be a list in a person's property. I'm not sure what the trade offs are.

This is vaguely reminiscent of 3rd Normal Form of RDBMS where having a list in a field is a no-no. Are there such recommendations for Graph DBs?

(Also annoying.... when you click on the ACTED_IN relationship, nothing shows up in the properties list except a triangle, which you are supposed to know to click on. It would be nice to show the first line of data.)