Does anybody know if Loom is abandoned? seems like no PRs have been merged since early 2019
(sorry to use this channel, but there is no general #graph channel)
Asami-loom, or Loom itself?
Because yes, it appears abandoned.
I started getting into Loom when I did Asami-Loom, but couldn’t raise much response from the owner
As soon as I get a moment I want to get back to Asami-Loom and extend the relevant protocol to the durable store in Asami.
From memory I hit a bug in ClojureScript. I submitted a PR, but I a think someone else submitted one for the same issue and theirs was accepted? Maybe. I forget
@quoll Loom itself. I just made PR for an issue that I circumvented in my code back in 2018 thinking that it would be fixed soon. Now in 2021 seems like not much has happened with Loom since then. It kind of sucks, since Loom and its protocols are used from many different Clojure libraries, but it has some longstanding issues and the author doesn't seem to care about it anymore.
I'm thinking of either forking it or having it transferred to clj-commons.
I too am sad about the current state of Loom, which I do use a little. When exploring alternatives, I found: https://github.com/Engelberg/ubergraph, but I didn't end up trying to use it. so I do not have any opinion or experience with it. Transfering/migrating Loom to clj-commons is an interesting idea, what would it take to do that? I don't currently have the time to take that project on personally, but I'd be willing to chip in on a funding effort, and/or maybe if there was an interested developer, perhaps make a pitch to Clojurians Together....
@dcj Ubergraph is pretty great, but it is “just” a data structure and it also builds on the loom protocols: https://github.com/Engelberg/ubergraph/blob/master/src/ubergraph/core.clj#L16-L56
Loom is at the intersection of a lot of graph-related libraries in Clojure, so that is why it’s a shame that it goes unmaintained. It feels a bit like the Incanter story with a fast uptake and then stagnation and abandonment.
Well… it is still being implemented 😉 It was kinda cool to get it working on Asami.
It’s already moved maintainer once. There’s no reason it can’t move on again. Does anyone know how to get in touch with Aysylu?
I first heard about Loom when she did the https://www.cognitect.com/cognicast/076 interview
• [Aysylu Greenberg] (https://github.com/aysylu), <mailto:aysylu.greenberg@gmail.com|aysylu [dot] greenberg [at] gmail [dot] com>, http://twitter.com/aysylu22
I’m with you on this. I can contribute, if you’re interested?
I think my private fork has a number of changes, like separating the function that generates the content of dot files from the i/o. That way you can use it in ClojureScript and provide a way for a user to download a generated file from a web page
hah, the primary issue I’ve been having is the shoddy http://loom.io/dot-str function
and I actually needed to solve the same issue since CoreNLP comes with its equivalent that I used instead.
I wish I could say that I addressed it, but all I did was tease out the i/o
BTW, I saw that I have a PR from you. Thank you! I haven’t looked at it yet, since I’ve been in the kitchen all day, and am just taking a break to look at my phone
but I also really can't stand that it has these protocols that other libraries implement, but then it doesn't even use them... It's so dumb... And it's been like this for years now.
PR from me? I don't think so.
Ah! I thought it was to Asami-Loom. I was mistaken… it was a PR for aysylu/loom. How did I end up on the email notifications? :thinking_face:
Weird :thinking_face:
But anyway your help is very welcome should I proceed with it.
A lot of people seem to like the Loom API, so I like the idea of supporting it. It’s a bit frustrating though, as I only recognize nodes that have edges, and all edges are labeled and directed. It took a bit of work to fit into that picture
I just like the idea of some common API and a common set of protocols, but loom is a half-hearted attempt
it’s a shame
Are you proposing that we work on a new one? 🙂
not really… just that if I were to fork loom, I would probably change a bunch of stuff that I find poorly implemented, which might break some callers in the process…
mostly the fact that edges have this nice Edge protocol, but in every function where it matters, edges are represented as two args n1
and n2
. Edges should be represented as a single arg IMO. Representing edges as two nodes everywhere precludes certain graph types from existing in loom and complects the meaning of an edge and the 2-tuple vector that loom considers an edge.
I also don’t like the fact that labels aren’t something generic which you can fetch using a label
function (assuming you’ve implemented a protocol for the datatype), but rather a weirdly specific :label
key in a map.
too much of loom is weirdly implementation-specific
it should be entirely based on its own protocols