Group Abstract Group Abstract

Message Boards Message Boards

9
|
12.6K Views
|
6 Replies
|
23 Total Likes
View groups...
Share
Share this post:

Why is some Graph functionality underdocumented to the point of unusabiliy?

Posted 6 years ago

There are several pieces of functionality related to Graph which are unsatisfactorily documented, to the point that they are simply unusable for real work. Even after repeated requests to support, the responsible developers simply refused to clarify these points. "There is no information available." This is a common response I receive when asking about functionality in the domain of graphs and networks.

How can Mathematica be taken seriously as a tool for network analysis or graph theory, if we don't even know what some of the functions do?

The last response I received suggested that for support, I might consider Wolfram Community, so I am posting here.

DegreeGraphDistribution

What is DegreeGraphDistribution? There is basically no information about it.

DegreeGraphDistribution[dlist] represents a degree graph distribution with vertex degree dlist.

"Degree graph distribution" is not a commonly used term. In fact, a google search only returns hits to the Mathematica documentation (or forums). So it's no exaggeration to say that the documentation says nothing at all—the description is a tautology.

Of course, I can make guesses about what DegreeGraphDistribution is supposed to be, but who among the readers of this site would be willing to publish a paper based on results from a tool whose function they are just guessing about? And when I make those guesses and try to verify them, I find many inconsistencies.

I won't repeat the comments I made about this function over the years. Here's one example: https://mathematica.stackexchange.com/questions/167450/does-degreegraphdistribution-sample-uniformly Be aware that the sampling may not even be close to uniform, depending on the input.

RandomGraph[DegreeGraphDistribution[{5, 5, 2, 2, 1, 1}], 10000] // 
   CountsBy[AdjacencyMatrix] // KeySort // Values

FindGraphCommunities

There is basically zero documentation about the methods used by this function. The only problem is that with community detection, "what the function does" and "how it does it" are basically the same question. Thus the function is literally useless—we don't know what it does.

It's not like computing eigenvalues where I can define what an "eigenvalue" is without detailing a procedure to compute it, and even verify that an eigenvalue/eigenvector result is correct without knowing how it was obtained. With community detection, the precise definition of the problem is the method itself (the rest is just an intuitive but far from precise statement).

When I ask about the methods of FindGraphCommunities, there is usually no satisfactory answer. I did receive references to general papers such as https://arxiv.org/abs/0906.0612 but it was without specific statements on what is being used from this paper. I was no more knowledgeable after receiving this link than before I asked ...

Other users have the same experience (e.g. link1, link2).

Did you receive a response from support? – Szabolcs May 24 '18 at 7:42

@Szabolcs Nope :( – becko May 24 '18 at 8:31

 


These are the experiences that make me consider again and again if using Mathematica for working with graphs is a good idea at all, and a safe investment for the future. I wrote about this before and @Charles Pooh responded:

We are looking forward to dramatic expansions in Graphs & Networks functionality. We are even more excited about its many applications across different domains and the graph related functions in the pipeline.

Indeed, a class of important bugs were fixed in M12.0: now we can use EdgeDelete/EdgeAdd and VertexDelete/VertexAdd without breaking the graphs. But then consider how long that took (from version 8.0 to 11.3 this is broken), and how fundamental these operations are... These were overdue fixes, not dramatic improvements.

Additionally, several functions now (finally!) preserve graph properties, a critical functionality. Yet none of this was documented for Mathematica 12.0, and it's still unclear how properties get combined by functions such as VertexContract. I could only learn about this change from one of the live-streamed meetings on Twitch. (They were also mentioned in the Graphs Twitch talk aired a week or so ago, which makes it even stranger that there's no documentation.)

What I am looking for is not for claims that issues will be dealt with, but for actual actions that show that our concerns are not dismissed. I find the responses relayed by support to be very discouraging. They definitely do not inspire confidence in the product. I understand that developers are busy sometimes, but the responses have been like this throughout the years (see e.g. the links above), not just in a busy period.

POSTED BY: Szabolcs Horvát
6 Replies
Anonymous User
Anonymous User
Posted 6 years ago
POSTED BY: Anonymous User

Update

I admit that the above was an impulse post stemming from frustration due to responses (or lack of) relayed by support. Now that it's out it can't be removed. I hope it did not antagonize anyone, as that wouldn't improve anything.

In fact, I think what could improve the situation would be more public interaction between the Graph developers and users. I think many of us feel like our feedback about this functionality area is often falling on deaf ears. By interaction, I do not mean generic statements that work is being done, but concrete comments on the specific issues that we bring up.

To be fair to the developers of the Graph functionality, I should note that the bug fixes that went into Mathematica 12.0 were well chosen. I really do wish that more issues had been fixed, but if WRI's resources only allowed for fixing this much, the prioritization was correct in my opinion. (Data corruption by [Edge|Vertex][Delete|Add] was indeed the most pressing issue.)

I also think that a big opportunity to gain goodwill was missed by not documenting the biggest Graph changes (property inheritance) for M12.0.

POSTED BY: Szabolcs Horvát
POSTED BY: Szabolcs Horvát

I should mention that despite stepping up the Graph bugfixes a bit for M12.0, there are still multiple bugs of the sort that should never survive for longer than a single release if they are known ...

For those who are unaware, don't ever trust any result from FindMaximumFlow or FindVertexCut ...

POSTED BY: Szabolcs Horvát

Szabolcs, please answer me frankly: is there any serious reason why to use Mathematica 12 for any kind of networks or graphs research?

From my point of view the Mathematica is going to be a more and more the magic black box tool, which is able to solve nearly everything, but surprisingly often not enough effectively and/or precisely.

Underdocumented functions are only one tip of problems iceberg.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard