SiRumCz / CSC501

CSC501 assignments
0 stars 1 forks source link

neo4jd3 #77

Closed jonhealy1 closed 4 years ago

jonhealy1 commented 4 years ago

https://github.com/eisman/neo4jd3

Would something like this make things a little easier?

jonhealy1 commented 4 years ago

@soroushysfi There's 3 and a half days left until this assignment is due and I am not really sure about what you are doing? Could you help me figure this out so I can help you?

soroushysfi commented 4 years ago

Thanks but I'm waiting for Kevin to setup the endpoints for frontend. The link you sent for the library seems interesting but I think it would take time for me to study it. I would probably stick we the plan we had. @SiRumCz said he has no problem sending me the data in the format I wanted, so I will probably use d3 with react components as we did before. If this doesn't sound good to you let me know so we can talk about it. I am setting up the graphs with dummy data, so whenever Kevin is done I can use them same as before. I think I'll be done by Sunday noon so we can see it and go for some iterations until we're totally done by Saturday afternoon.

SiRumCz commented 4 years ago

Yeah, I am still learning how to write the cypher query.

soroushysfi commented 4 years ago

Yeah, I am still learning how to write the cypher query.

That's ok. By the time you find your way I'll be setting up the graphs with dummy data.

jonhealy1 commented 4 years ago

I personally think it would be a lot easier to use a frontend library that interacts directly with neo4j like Neovis.js, neo4jd3 or even Jupyter. I think that you should be helping me and Kevin to try to figure out how to do cypher queries in order to get the data in the format you want. I don't think the Flask -> React thing is going to work for this very well (it's 100% the most difficult route at this point). If you were helping with neo4j you would maybe realize this and think about using an alternative so we have at least some visualizations.

If we really want to do Flask -> React then we probably shouldn't have used Neo4j. I know a professional team might do it this way but they have a lot more time. You guys are doing a frontend/ backend thing where one guy only does one thing and the other guy only does the other. I've never worked like this before - I've always worked with people where you are helping each other out. What do you guys think?

soroushysfi commented 4 years ago

I personally think it would be a lot easier to use a frontend library that interacts directly with neo4j like Neovis.js, neo4jd3 or even Jupyter. I think that you should be helping me and Kevin to try to figure out how to do cypher queries in order to get the data in the format you want. I don't think the Flask -> React thing is going to work for this very well (it's 100% the most difficult route at this point). If you were helping with neo4j you would maybe realize this and think about using an alternative so we have at least some visualizations.

If we really want to do Flask -> React then we probably shouldn't have used Neo4j. I know a professional team might do it this way but they have a lot more time. You guys are doing a frontend/ backend thing where one guy only does one thing and the other guy only does the other. I've never worked like this before - I've always worked with people where you are helping each other out. What do you guys think?

Since we did the first two assignments like this, I thought we are following the same process. I also thought that the structure that we are using for our assignments are database, backend, frontend. Since nobody suggested any other way of doing the assignments, I assumed that everyone are ok with it. If you think cypher is more complicated than we thought surely I will help with it. I just thought Kevin was ok doing the queries and I talked with him and he said it wouldn't be that much of a problem. Using Neo4j with Flask wouldn't be useless in my opinion because Neo4j is really optimized for graph data and for the algorithmic part of the rubrics we can mention that using graph database will reduce the cost. I read the library you sent. That one is only used for node-link diagrams. In our case we want to explore more meanings with more graphs. So using these kinds of libraries will only leave us with one visualization. Flask would be really useful here because we have to have a middle ware between the visualization and database. So the middle ware would filter out data for our visualization. Connecting frontend straight to database would cause some problems. Maybe there are some libraries for this that we could use as you mentioned but probably they won't give us good insights as I mentioned. This is what I got from the work we did through the assignments. But if you think we can change it to a better way I'm down for it. I will also help with cypher or other parts that need help. Just let me know.

SiRumCz commented 4 years ago

Personally I am fine with using flask as back-end, I also wrote a function that is capable of executing cypher queries. The problem I have right now is I am having trouble converting my SQL experience into Cypher. Which is why I didn't make progress today...

Kevin

On Thu., Oct. 31, 2019, 6:10 p.m. Soroush notifications@github.com wrote:

I personally think it would be a lot easier to use a frontend library that interacts directly with neo4j like Neovis.js, neo4jd3 or even Jupyter. I think that you should be helping me and Kevin to try to figure out how to do cypher queries in order to get the data in the format you want. I don't think the Flask -> React thing is going to work for this very well (it's 100% the most difficult route at this point). If you were helping with neo4j you would maybe realize this and think about using an alternative so we have at least some visualizations.

If we really want to do Flask -> React then we probably shouldn't have used Neo4j. I know a professional team might do it this way but they have a lot more time. You guys are doing a frontend/ backend thing where one guy only does one thing and the other guy only does the other. I've never worked like this before - I've always worked with people where you are helping each other out. What do you guys think?

Since we did the first two assignments like this, I thought we are following the same process. I also thought that the structure that we are using for our assignments are database, backend, frontend. Since nobody suggested any other way of doing the assignments, I assumed that everyone are ok with it. If you think cypher is more complicated than we thought surely I will help with it. I just thought Kevin was ok doing the queries and I talked with him and he said it wouldn't be that much of a problem. Using Neo4j with Flask wouldn't be useless in my opinion because Neo4j is really optimized for graph data and for the algorithmic part of the rubrics we can mention that using graph database will reduce the cost. I read the library you sent. That one is only used for node-link diagrams. In our case we want to explore more meanings with more graphs. So using these kinds of libraries will only leave us with one visualization. Flask would be really useful here because we have to have a middle ware between the visualization and database. So the middle ware would filter out data for our visualization. Connecting frontend straight to database would cause some problems. Maybe there are some libraries for this that we could use as you mentioned but probably they won't give us good insights as I mentioned. This is what I got from the work we did through the assignments. But if you think we can change it to a better way I'm down for it. I will also help with cypher or other parts that need help. Just let me know.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/SiRumCz/CSC501/issues/77?email_source=notifications&email_token=AEWWYWQKY6AC3IT6DUKACJLQRN6XXA5CNFSM4JHRQGWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECZWJ3Q#issuecomment-548627694, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEWWYWWCLT5BUJ7F6SEXE33QRN6XXANCNFSM4JHRQGWA .

jonhealy1 commented 4 years ago

Isn't it a d3 wrapper that could work for other types of graphs too? That's what I was hoping. I'm not trying to put down what worked before but I do feel like it's a lot more complicated this time around. The stuff you gave us that showed how we should have data organized wasn't super helpful. I feel like you should probably get started with cypher and trying to help have things organized. The last two assignments were done using relational databases. The first one was pretty basic and the last one with maps was also a lot easier I think.

If you had a graph created with dummy data it may be easier to figure out what you need. I don't know how Kevin is doing but I'm struggling a little with neo4j. Maybe if you got the graphs done with other data tomorrow then that would give us time to figure out how to organize what you need.

You're right - neo4j -> flask -> react/ d3 would work well. I'm just worried about time. Maybe if you start with one type of graph and try to figure out how to do a cypher query to organize it and then we can help? There's also Neovis.js which is written by Neo4j.

jonhealy1 commented 4 years ago

That's all I'm trying to say. I've never used cypher before either. That's why I feel like we need to team up on it and think about using a more neo4j friendly library than d3.

SiRumCz commented 4 years ago

That's all I'm trying to say. I've never used cypher before either. That's why I feel like we need to team up on it and think about using a more neo4j friendly library than d3.

I agree with you that this is challenging. I think the problem is on the neo4j side, all of us don't have experience before. I think since @soroushysfi is very familiar with d3.js, we should keep using it, I don't see this is holding our back, the unfamiliar cypher is imo. Perhaps Soroush, you should finish some viz with dummy data and let us see how the data looks like, and how we can convert the Reddit data into the viz data.

I know Soroush has commented the data format somewhere, I would suggest you to open a new issue and tells us a little bit more on the details.

jonhealy1 commented 4 years ago

Sounds like a good idea if Soroush has used d3 before. We definitely need more details on how everything will work which would definitely involve Soroush making dummy graphs. Me and you could probably figure out the cypher stuff but we definitely need to start. I think he said we need some sort of adjacency matrix. I'm not sure how to do that.

soroushysfi commented 4 years ago

Yeah I agree with you guys. I will try to end the dummy graphs by noon tomorrow and start with the cypher commands. For the adjacency matrix I can build it in front end if you give me a list of edges with the weight of each edge. I can convert that to adjacency matrix in frontend and use it with d3.

jonhealy1 commented 4 years ago

Sounds great! You know if there's something we can't convert into the right format with neo4j we can do some processing with dataframes or SQL as well.