//NMEC: 104063 //a. //User -> num, svn_id, real_name, organization //Project -> project_name //PARTICIPATED_IN -> role_on_project // (u:User)-[:PARTICIPATED_IN]->(p:Project) //c. //1. Liste a informação de cada utilizador. MATCH (u:User) RETURN u; //2. Liste o nome de cada utilizador. MATCH (u:User) RETURN u.real_name; //3. Liste a informação de cada projeto, no qual tenha participado pelo menos um utilizador. MATCH (p:Project)<-[:PARTICIPATED_IN]-(u:User) RETURN DISTINCT p; //4. Liste os utilizadores e total de projetos em que cada um colabora MATCH (u:User)-[:PARTICIPATED_IN]->(p:Project) RETURN u.real_name AS user, COUNT(p) AS totalProjects; //5. Liste os utilizadores e do total de projetos em que cada colabora ordenados por ordem decrescente do total. MATCH (u:User)-[:PARTICIPATED_IN]->(p:Project) RETURN u.real_name AS user, COUNT(p) AS totalProjects ORDER BY totalProjects DESC; //6. Liste projetos e total de membros em cada projeto. MATCH (p:Project)<-[:PARTICIPATED_IN]-(u:User) RETURN p.project_name AS project, COUNT(u) AS totalMembers; //7. Liste projetos e total de membros com a role "Committer" em cada projeto. MATCH (p:Project)<-[r:PARTICIPATED_IN {role: "Committer"}]-(u:User) RETURN p.project_name AS project, COUNT(u) AS totalCommitters; //8. Liste todos os utilizadores que participaram nos mesmo projetos do que o utilizador "atm" (id). Mostre os atributos: nome de "atm", nome utilizador 2, nome do projeto. MATCH (u1:User {svn_id: "atm"})-[:PARTICIPATED_IN]->(p:Project)<-[:PARTICIPATED_IN]-(u2:User) WHERE u1 <> u2 RETURN u1.real_name AS user1, u2.real_name AS user2, p.project_name AS project; //9. Liste todos os utilizadores que participaram com a role "Committer" em projetos em que o utilizador "atm" (id1) participou com a role "PMC" MATCH (u1:User {svn_id: "atm"})-[r1:PARTICIPATED_IN {role: "PMC"}]->(p:Project)<-[r2:PARTICIPATED_IN {role: "Committer"}]-(u2:User) RETURN u1.real_name AS userPMC, u2.real_name AS userCommitter, p.project_name AS project;