Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple edges with same name and same source, destination pairs #90

Open
parteekcoder opened this issue Feb 20, 2023 · 14 comments
Open
Assignees
Labels
bug Something isn't working

Comments

@parteekcoder
Copy link

Are Multiple edges with same names are allowed?

Screenshot_20230220_203905

@pradeeban
Copy link
Member

Are Multiple edges with same names are allowed?
Yes, when that is a hyperedge. An edge that connects the same source with multiple destinations.

You won't be able to make an edge with the same name (CU) from XZ to PZ, though, as that is not a hyperedge.

DHGWorkflow (the parent of concore editor) is a directed hypergraph editor. https://github.com/NISYSLAB/DHGWorkflow/

It's a feature!

In concore, we allow connecting two nodes with multiple edges and multiple destination nodes with the same hyperedge from the same source.

But, in your example, you are connecting the same source-destination pair with multiple identical edges. Is that needed? That is more of a research question on the use cases of concore. I keep the question open for a while.

@pradeeban pradeeban added the question Further information is requested label Feb 20, 2023
@parteekcoder
Copy link
Author

Are Multiple edges with same names are allowed? Yes, when that is a hyperedge. An edge that connects the same source with multiple destinations.

You won't be able to make an edge with the same name (CU) from XZ to PZ, though, as that is not a hyperedge.

DHGWorkflow (the parent of concore editor) is a directed hypergraph editor. https://github.com/NISYSLAB/DHGWorkflow/

It's a feature!

In concore, we allow connecting two nodes with multiple edges and multiple destination nodes with the same hyperedge from the same source.

But, in your example, you are connecting the same source-destination pair with multiple identical edges. Is that needed? That is more of a research question on the use cases of concore. I keep the question open for a while.

ok @pradeeban thanks for clarification , In my perspective identical edges between same nodes are not required

But Once it is confirmed please tell me

@pradeeban
Copy link
Member

Yes.

In concore, the representation goes:
edge = (source, [destination]).

So, these two cases are actual use cases.
case 1 (a hyperedge):
abc = (A, [B, C])

case 2 (two edges between a pair of nodes):
ab1 = (A, B)
ab2 = (A, B)

But the case you have shown is,
case 3:
ab = (A, [B, B])

I will confirm and either close this question (if the above case 3 is valid) or convert this into a bug (if the case 3 is invalid and should be prevented).

@parteekcoder
Copy link
Author

hi @pradeeban have you confirmed this Question

@pradeeban pradeeban changed the title Multiple edge with same name (Question) Multiple edges with same name and same source, destination pairs Feb 22, 2023
@pradeeban pradeeban added bug Something isn't working and removed question Further information is requested labels Feb 22, 2023
@pradeeban
Copy link
Member

The above scenario as depicted in the screenshot should not exist.
ab = (A, [B, B])

@parteekcoder
Copy link
Author

The above scenario as depicted in the screenshot should not exist. ab = (A, [B, B])

so can you please assign me, I will make an PR shortly to solve this

Thanks @pradeeban for clarification

@parteekcoder
Copy link
Author

@pradeeban can this be the case

A and B nodes

A to B with edge parteek
B to A with edge parteek

@pradeeban
Copy link
Member

No, that is a simple loop with the same name for the edges. Not supported in concore. If you try it now, it will throw the message, "Edge with same label exists." (That is the correct behavior).

@pradeeban
Copy link
Member

Please make sure the PR should not mistakenly open up to allow more cases. We support a subset of hyperedges and avoid the rest.

edge = (source, [destination]) is allowed.
edge = ([source], destination) is not allowed.
edge = ([source], [destination]) is not allowed.
edge = source -> mid-node -> destination is not allowed.

The above cases are implemented correctly.

@parteekcoder
Copy link
Author

Please make sure the PR should not mistakenly open up to allow more cases. We support a subset of hyperedges and avoid the rest.

edge = (source, [destination]) is allowed. edge = ([source], destination) is not allowed. edge = ([source], [destination]) is not allowed. edge = source -> mid-node -> destination is not allowed.

The above cases are implemented correctly.

OK please give some time , as i was working in issue #92
I will solve it as early as possible

@pradeeban
Copy link
Member

No worries. Take your time.

These are good to fix. But not as urgent.

@parteekcoder parteekcoder mentioned this issue Feb 23, 2023
@parteekcoder
Copy link
Author

parteekcoder commented Mar 18, 2023

Please make sure the PR should not mistakenly open up to allow more cases. We support a subset of hyperedges and avoid the rest.

edge = (source, [destination]) is allowed. edge = ([source], destination) is not allowed. edge = ([source], [destination]) is not allowed. edge = source -> mid-node -> destination is not allowed.

The above cases are implemented correctly.

hey @pradeeban can you please give me some clearity betweeb case 1 and 3

Please tell me if I am right:
Case 1:
There can be edges with same label from a single source node to multiple nodes
Case 3:
It means there can't be duplicate(same label) edges

How these 2 can occur simultaneously ,please correct me if I am wrong

@pradeeban
Copy link
Member

Case 1 is a typical hyperedge (you can Google it). One edge connecting more than 2 nodes.

Case 3 is just creating identical edges twice with the same label. It is meaningless/duplicate and should not be allowed.

@pradeeban
Copy link
Member

Your screenshot is case 3 and shouldn't be allowed. (Not a critical issue. You can leave it as is, if in doubt, for now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants