I am currently facing problems of graph projection.
I used the example code of GDS_Retail_Demo from Alicia Frame for my own data set. But after running the louvain community I found out that no property (in my case: person's name) will be shown on the generated community graph. Then I was aware that my original node properties are not projected to my in-memory graph. Therefore, I would like to include them.
My intention was to do person segmentation based on their skills or expertise.
But I then got the error message that the projection doesn't support String.
How should I deal with that? If the GDS Library doesn't support any String type label, how should I know who is assigned to which Louvain community then?
If you want to see who is in each louvain community, you can join that with the results of your algorithm using gds.util.asNode:
CALL gds.louvain.stream('myGraph')
YIELD nodeId, communityId, intermediateCommunityIds
RETURN gds.util.asNode(nodeId).name AS name, communityId, intermediateCommunityIds
ORDER BY name ASC
what that will return is the string property - from the database - of name for each node id in your graph projection.
Does it mean that the properties I used for graph projection are the properties I used as algorithm inputs but not as node or relationship representation?
Is there anyway I can show it like: If the node is customer, then show me the customerID, if the node is item, then show me item description. It seems that the other nodes will show as null. (e.g. if I want to show customer ID for customer nodes, then the customerID for items in the graph will be null; but if I do both, then both customer nodes and item nodes will have the same properties such as customerID and Description). How can I get rid of this?
Thank you for the hints on exporting, since I was just troubling with the node names cannot be displayed in exported graph. But it seemed that I failed to do that.
I first streamed the community with customerID shown: