Combinar nós com nós comuns com um relacionamento - Neo4j Cypher

Eu tenho vários nós de usuário e nós de habilidades. A relação é entre habilidades e usuários.

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/xyz.csv" AS row FIELDTERMINATOR '|'
WITH row
LIMIT 15

CREATE (u:User {company: row.company, salary: row.salary_float,         designation: row.designation, experience: row.experience_float})

FOREACH (s IN split(row.tag_skill, "@") |
MERGE (skill:SKILL {name: s})
ON CREATE SET skill.name = s
CREATE (u)-[:KNOWS]->(skill))

Eu também preciso de um relacionamento entre nós do usuário, onde, se o Usuário A estiver conectado a um número para os Skill [s1, s2, s3, s4, s5, s6] e se o Usuário B estiver conectado ao [s1, s3, s4, s6]

O usuário A e o usuário B estão em um relacionamento (semelhante) se pelo menos 50% de suas habilidades corresponderem.

neste exemplo, A está em um relacionamento com B, pois eles têm s1, s3, s4, s6 em comum, o que corresponde a mais de 50%

Não consigo entender essa consulta cifrada.

questionAnswers(1)

yourAnswerToTheQuestion