Does this project have a plan?
Hi
I've been using this project for a few days. Thanks for your work, it's a great project. Apparently this project is still not powerful. I need to do a lot to meet my need. (eg. coping properties is not supported.)
Do you have a feature todo list which I can refer. I hope to contribute if we have some plans in common.
Hi, You are right, I should make a plan for the development of Graphexp. Let me think about it over the weekend. @jdbranham has already started to add features on his angular version. We can start a list of features to add. Let us write them in this thread. Thanks for the suggestion and your help!
Hi, to simplify usage (and development) I combined your gremline-server and the graphexp as two docker instances in one docker-compose environment here. This seemed like the missing part when starting to use graphexp. Perhaps it can be included in your project/planning?
First TODO list:
-
Structure:
- Reduce the dependency between modules.
- Make a better distinction between the core d3.js based visualization and the surrounding html/CSS framework. The idea is to allow to use and plug easily other, more recent frameworks than just html/css.
- There is missing the possibility of a secure connection with user and password. In a sense it is not something natural here as Graphexp is supposed to be a simple client-side app. One idea could be to use the gremlin-js, which is server-side, to interact securely with the gremlin-server. The protocol and transmission is already coded there. The server-side part would be an optional module, with a tutorial on how to set it up.
-
Features:
- Add the possibility to add new nodes and new edges and to modify their properties.
- Copy/paste nodes and edges
-
better GUI and interaction
- Revise the HTML and CSS code to make the interaction more convenient/ beautiful / interactive. Without complexifying it too much. The HTML/CSS visualization should be a baseline, easy to maintain and to understand.
- Add the possibility to directly change the options from the browser, instead of modifying the configuration file.
I am open to any ideas, please feel free to suggest other items!
@bricaud Sorry for replying late. I've just been back from Chinese new year holiday.
I agree with you about manipulating nodes and edges from browsers. It's useful.
But in my situation, my 10-thousand-node graph is generated by java scripts. Editing individual element does not happen very often. So I'm interested in improving query abilities. eg.
- Show index hints: janus becomes fairly slow when a query does not hit indexes. (This may not work for some engines)
- Multi-conditional query, such as A = 1 and B =2
- Query limit
What do you think?
I like your project and planned goals.
I would like to add the following to feature requests:
- The ability to directly input a gremlin query through the user interface and graphically display the results.
- Given a specific graph traversal in the UI, output the associated gremlin query that supports the traversal (for repeatability).
- Exploration by varying properties for more complex queries. Some of the graphs have many properties and navigating through them can reveal interesting characteristics.
@bricaud I would like to add the features you have suggested.
- Add the possibility to add new nodes and new edges and to modify their properties.
- Copy/paste nodes and edges
Apart from these I would like to add another feature into it for cycle detection. One additional button "Detect Cycle" will be added in the UI, and the cycle will be displayed (if any) for the selected nodes. I have done certain parts of coding. If you accept the feature's either all or in partial as mentioned, I would be glad to open a Pull Request.
Hi @sandecho , If you have coded point 1 (add nodes or edges or change properties, or simply just changing the properties of the existing nodes and edges), I would be happy to include it in Graphexp. What I would like for this part is that the code is well separated from the rest, for example in a separate js file. I do not want to mix reading and writing in the database. Concerning the cycle detection, It can be a useful feature in some cases, but I think it will not be used very often. I have to maintain a good balance between the number of features available and the complexity of the code. At the moment, I want to stick to a simple code (easier to maintain, less risk of bugs, easier to understand for other people who would like to contribute). So unless many people ask for it, I would not include the detection of cycles. We could include it later on, when to project has grown with more contributors.
Thanks for your suggestions.
@bricaud I am working on it and will do a PR shortly
@bricaud We have added the ability to add new vertices and edges edit existing vertices and edges. Could you please merge it? https://github.com/bricaud/graphexp/pull/38