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

Question: Transitive closure and path following as in kleene algebras #180

Open
boggle opened this issue Mar 25, 2019 · 1 comment
Open

Comments

@boggle
Copy link

boggle commented Mar 25, 2019

Hi, I was looking at kleene algebras recently. They naturally include a transitive closure operator. While it is possible to interpret the graph algebra under transitive closure semantics, is there a particular reason why a transitive closure operator was not included? Also, overlay corresponds to "+" in kleene algebras but "connect" is different. How hard/easy would it be to define kleene algebra "." in terms of graph algebra? "Connecting paths" seems a reasonable operation. What are reasons to have or not have it? Just a little curious about the background, I believe @snowleopard mentioned looking at kleene algebras in a blog post.

@snowleopard
Copy link
Owner

is there a particular reason why a transitive closure operator was not included?

Yes, it is indeed possible to include it, but I haven't had a chance to study the resulting algebraic structure. Note that there is an implementation of the transitive closure for edge-labelled graphs.

How hard/easy would it be to define kleene algebra "." in terms of graph algebra?

Here is one possible implementation for algebraic graphs without labels. It's interesting because it uses biclique to achieve compact representation for the resulting graph. There are a few other interesting implementations, but I haven't yet managed to implement or describe them properly. I hope to do this soon.

"Connecting paths" seems a reasonable operation. What are reasons to have or not have it?

Absolutely, this is a very natural notion, however vertex + overlay + compose are not sufficient for constructing graphs, because there is no way to create any edges. This was my main motivation for using the connect operation: vertex + overlay + connect gives you a minimalistic algebraic structure capable of describing any graph.

Is vertex + overlay + connect + compose an interesting algebra? It surely is! But it's also more complex.

Happy to keep this issue open for discussing relations with various Kleene algebras.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants