... and we want the clustering algorithm to take all of these relationships into account when assigning these nodes to communities. (Would this be an example of a "multigraph"?)
Can we pass all of these relationships into a GDS community detection algorithm, either through wildcards or the pipe operator? I'm guessing yes, but wanted to confirm. And will the algorithm be more likely to assign a pair of nodes to the same community if they have more relationships (and possibly higher relationship weights) between them?
Or do we need to first combine this multigraph into a single graph via some aggregation scheme, and then pass the resulting single graph into the GDS algorithm?
Do (n1) and (n2) have a same node label? If so, I am pretty sure you can project all the relationship types between the same node type in memory and run the clustering algorithm. If (n1) and (n2) have different labels, you may want to think of a label that's common to them first. Clustering algorithms typically need to access the similarity between nodes first and so it makes sense to have the nodes of the same label.
The GDS library does support multigraphs, so you should see different results when you use many relationships between a pair of nodes instead of just a single one.
You could use either the wildcard or an array of relationships to project more relationship types:
Try out different versions and see what works best for you. In any case, the number of relationships between a pair of nodes should influence the results of community detection. I haven't played around a lot to tell you exactly what will happen, but you can get a quick idea by running the stats mode of community detection algorithms like for example:
CALL gds.louvain.stats()
To get a rough feeling of how different configurations affect the results. If you could share your findings with us, that would be also awesome!