4 ms·
While not essential to the argument, it uses software development as an analogy for scientific publications. Unfortunately, that analogy isn't correct. > Just
by dalke 12y ago
While not essential to the argument, it uses software development as an analogy for scientific publications. Unfortunately, that analogy isn't correct.
> Just as the software industry has moved from a "waterfall" process to an "agile" process—from monolithic releases shipped from warehouses of mass-produced disks to over-the-air differential updates—so must academic publishing move from its current read-only model and embrace a process as dynamic, up-to-date, and collaborative as science itself.
"Agile" is one name for a long line of software processes, which includes XP, RAD, and Unified Process. Iterative development stretches back to the dawn of software engineering. In modern practice, "agile" seems used for anything which is even a touch more flexible than the strictest of waterfall. Take your process, add a standup meeting or story cards, and poof, you're agile.
Nor is "agile" development tied so closely to 'over-the-air differential updates'. The development methodology has very little to do with deployment. Perhaps the easiest example is to look at the various language implementations (Python, Ruby, gcc, etc.). They don't have auto-update. So I guess the question is, are they agile?
> But academic literature makes no distinction between citations merely considered significant and ones additionally considered true. What academic literature needs goes deeper than the view of citations as kudos and shout-outs. It needs what software engineers have used for decades: dependency management.
> A dependency graph would tell us, at a click, which of the pillars of scientific theory are truly load-bearing.
I have no idea of how to make this work. I give as an example the Kabsch algorithm algorithm for RMSD minimization of two molecular structures (see http://en.wikipedia.org/wiki/Kabsch_algorithm http://en.wikipedia.org/wiki/Kabsch_algorithm ). The original paper contained an error that sometimes resulted in a sign error. This was fixed in a subsequent paper.
Most cite the first paper, because it introduced the core concepts. Some cite the first paper but actually implement the correct solution from the second paper without even realizing there was a problem, because they combined the principles with their own mathematical understanding rather than duplicating the exact steps in the paper. Still others cite both papers.
How does this hypothetical dependency graph incorporate those details?
That paper is a simple one, because it really is a single algorithm for a single goal. Many papers introduce multiple concepts, solutions, or observations. It can well be that one of them was wrong while the others were correct, interesting, and influential. For example, in one paper I read the authors did not include a test case because, they said, the source material was invalid. I investigated, and discovered that it was due to a transcription error by the authors of the paper, and not a problem in the source material.
The addition of that one data point would have no material impact on the overall paper. But it's still wrong.
How does his hypothetical dependency graph capture the multitude of disprovable points in the average paper? How does it capture what the "pillars" are?
Bear in mind that there's been over 50 years of attempts to do this, so I think there's no easy answer.
- jordigh 12y agoYou make some very good points. I was hoping HN would pick up the story, but it didn't. It reminded me a lot of http://marciovm.com/i-want-a-github-of-science/ http://marciovm.com/i-want-a-github-of-science/ edit: Oh, never mind. The story did pick up! I don't get HN's rankings at all. Usually if you don't pick up within the first 30 minutes, the story is forgotten forever.
- jordigh 12y ago> How does his hypothetical dependency graph capture the multitude of disprovable points in the average paper? How does it capture what the "pillars" are? How about bug trackers? Papers that are continuously revised as they're published? Scientific prestige based on how often your papers are cited and how active their bug trackers are? That's how we do it in programming. I think the analogies could be stretched to scientific publishing.
- dalke 12y agoCould you be a bit more concrete as I am having a difficult time trying to understand how this would work? To start with, if there is no activity in the bug tracker, doesn't that indicate success in the paper, because it contained no problems? Or should I put in a few silly errors (misplaced commas, typos in the citation list, etc.) in order to increase the bug activity? You suggest that programming prestige is based on the activity of the bug tracker. Can you give some examples? As an admittedly extreme case, TeX has has very few bugs, and has no bug tracker, but is a well known project. Bug trackers only work for active projects. If the main author writes a paper in solid state physics, is awarded a PhD, and gets a job working for Seagate on high density magnetic compounds for storage tapes, then why should the author care about maintaining the paper's bug tracker? But getting back to the topic, the dependency graph for programming is extremely coarse grained. For example, here is a recent bug for Python - "integer overflow in itertools.permutations" - http://bugs.python.org/issue23363 http://bugs.python.org/issue23363 . Given your software dependency graph, can you tell me which programs that depend on Python are affected by that bug? Because that's the sort of thing that Brian Christian (the author of this piece) wants for scientific publications: > A dependency graph would tell us, at a click, which of the pillars of scientific theory are truly load-bearing. And it would tell us, at a click, which other ideas are likely to get swept away with the rubble of a particular theory. An academic publisher worth their salt would, for instance, not only be able to flag articles that have been retracted—that this is not currently standard practice is, again, inexcusable—but would be able to flag articles that depend in some meaningful way on the results of retracted work. How do I indicate "in some meaningful" that my program depends on itertools.permutations() not having an integer overflow?