Problems/Debates under Positions
Hypertext-infused philosophy personal database software
Brought to you by:
jasonwinning
Maybe I'm missing something but it seems like I should be allowed to nest Problems/Debates under Positions. One Problem/Debate is "What is well-being?" One position under this Problem/Debate is "Desire satisfaction." But there are lots of problems/debates about desire satisfaction theories of well-being, like "Do all satisfied desires contribute to well-being?" which is a debate with two main positions (yes and no). The natural way to capture this seems to be to nest that debate under the desire satisfactoin position which is presently impossible. I'm not sure there's any reason not to allow nesting Problems/Debates under Positions.
I appreciate the sentiment behind your comment and I've definitely pondered this before. But not having positions as parents of problem/debates records is actually by design. Here's what I would normally do in my database in this situation. I would have a Problem/Debate record for "Do all satisfied desires contribute to well-being?" and have the Problem/Debate record "What is well-being" as its parent. The position "Desire satisfaction" would also have "What is well-being" as its parent. And the positions under "Do all satisfied desires contribute to well-being" would also have "Desire satisfaction" as their parents. This way, you can still tell pretty easily at a glance in the tree view how things are organized. In my opinion, I think this is a much better way to do things (even if it requires more connections between records) than having Positions be the parent of a Problem/Debate record. If debates always only have debates as their parents, it makes the tree structure easier to understand at a glance. I think having positions as parents of debates has a greater potential to lend itself to an organizational structure that is messy, hard to follow, and more difficult to modify later on. Sometimes I've limited the user from being able to do things in order to impose constraints that will likely lead to greater large-scale organization of the database as a whole in the long run. I could possibly be convinced that position records should have problem/debate records as children but I'm not convinced yet that there is a good overriding reason.
I think the reason I want the possibility of Problems/Debates under Positions is twofold:
Since the Problems/Debates I have in mind are most relevant to the Position they'd be the child of, it's easier at a glance to see this if the Problem/Debate is the child of that Position only, rather than also the child of that Position plus the Position that relates to the broader debate. So, to take the example of "Do all satisfied desires contribute to well-being?" - it's technically true this relates not just to the "Desire Satisfaction" Position but also the "What is well-being?" Problem/Debate, but its only relation to the "What is well-being?" Problem/Debate is that it's about the "Desire Satisfaction" Position which itself is a child of the "What is well-being?" Problem/Debate. If I see the "Do all satisfied desires contribute to well-being?" Problem/Debate immediately under the "What is well-being?" Problem/Debate on the tree, I can't tell at a glance that "Do all satisfied desires contribute to well-being?" is about the "Desire Satisfaction" position unless I also see the "Desire Satisfaction" position on the tree when I'm looking at it. But if I already need to see that "Do all satisfied desires contribute to well-being?" is under "Desire Satisfaction" on the tree to know what's up with it, then I don't also need to see that it's under "What is well-being?" - that gives me no extra information. It's redundant information. So it makes it harder to see at a glance how things are organized, rather than easier.
It also takes up space, since now "Do all satisfied desires contribute to well-being?" will show up twice on the tree: once under the "What is well-being?" parent and once under the "Desire Satisfaction" parent. But very quickly that's going to fill up the tree, since I can't collapse (for instance) all the debates that are just relevant to desire satisfaction in order to look at all the debates about Objective List (another Position under "What is well-being?"). So for instance here is what my "What is well-being?" problem/debate looks like after I've entered about three articles' worth of information (assuming I understand the Sourceforge image embedding technique):
That's going to have to get at least twice as long if I add all the Problems/Debates I want to add (I haven't added them yet because I haven't decided what to do if they can't get nested under, e.g. "Desire Satisfaction"). (It will get especially long if every Position has to be listed twice, once under the Problem/Debate and once under the parent Position, rather than being able to have the Problem/Debate as the sole parent to some of the Positions). And right now the "What is well-being?" Problem/Debate is just a skeleton, since I've only added a couple articles. Once I add in the various other views, it's going to look like this at a minimum:
That takes up almost the entire screen already. To take up less of the screen I can start collapsing things. So for instance I can collapse everything except the "Desire satisfaction" position to look just at the desire satisfaction stuff. But I won't be able to do that if every single Problem/Debate about not just desire satisfaction but also hedonism, objective list theories, additivism, atomism, pluralism, the experience requirement, etc. are all children to the main "What is well-being?" parent. I'll have to look at every single one of those Problems/Debates (and there will be a lot of them) even if I only want to look at the things relevant to desire satisfaction. Meanwhile if I could nest the Problems/Debates under desire satisfaction, atomism, etc. I could ignore the debates unless I wanted to look at them. And once I actually add all the relevant arguments and articles I doubt all of (say) desire satisfaction could fit on my screen unless I start collapsing some of the children of desire satisfaction, which means I'll want to be able to hide those Problems/Debates in the collapsed sections of desire satisfaction, which is not doable right now.
I'm also not sure how forcing Problems/Debates only to be children of other Problems/Debates rather than allowing them to be children of anything makes the tree easier to understand. I'm not sure I would have more trouble understanding that a Problem/Debate is a child of a Position than I currently have understanding that a Position is a child of a Position. I don't see how the former would confuse me any more than the latter. Insofar as there's any confusion reduction on the table, it seems like being able to make Problems/Debates children of Positions helps reduce confusion, because that's how I think about them in my head. The "Do all satisfied desires contribute to well-being?" Problem/Debate, in my head, is a subset of the "Desire satisfaction" position. So the least confusing way for me to see this in the tree would be to have the former a child of the latter.
As for ease of modification, since everything can be dragged and dropped, right now it seems like the tree is extremely easy to modify and that it would be tough to make it hard to modify. It feels pretty much effortless to move stuff around with no problem. I'm especially not seeing how allowing Problems/Debates to be children of Positions, etc. would make the tree harder to modify.
That at least is how stuff looks to me. I've only been using the program a bit for a few days so obviously I have no experience with a fully fleshed out database, a large tree, etc. It just struck me that the way things are in my head could rather easily be the way the tree is laid out if Problems/Debates could be children of Positions, and I guess I still don't see exactly what would be the downsides. (That's doubly the case because of course nobody would have to make any Problems/Debates the children of Positions, so if anyone found themselves confused by this they could just refrain from organizing their database like that.)
Followup question: if someone (me!) wanted to make this change, would it be a relatively quick modification? I forked the code a while ago and looked at it a bit but I couldn't really tell. If this is something I could relatively easily change myself to make a custom forked version of Hypernomicon, I'd probably put in the time to figuring out how to do it. But if it would be a relatively involved rewrite, there's no way I'd bother learning that much Java.
More than tweaks to the UI would have to be made: this would involve making a change to the internal structure of the database, because right now it can only internally register a position as being a child of a debate record, not the other way around. If you're looking at the code, this means changes would have to be made in places like the RelationSet.java and HyperDB.java source files, which is where some of the most complex code is (complex for all kinds of boring reasons that have to do with making it work more efficiently and safely that you would learn about in a book or course on database design). The difficulty is less in knowing the Java programming language and more in knowing how the code itself works in those places. But it shouldn't be too hard for me to do as far as the code goes.
I'm open but still a little hesitant about the idea of debates being "under" positions; it would help to understand it better. When a debate is under a position, how exactly would you semantically interpret that? Does it mean that the problem/debate in question is one that adherents to the position have the burden of solving? Or does it merely mean that it is a problem adherents to the position are likely to be interested in (to me this is the wrong kind of reason for making this change)? Or a problem that arises only in that context?
Maybe my problem is that I envision the hierarchy as going from the general to the specific, and I think of problems and debates as often less specific than the position from which they arise. For example, suppose I have a problem/debate record for "What is the nature of desires?" and under that I have a position record for "Desires are behavioral dispositions". Well once I tell someone that, they are of course going to ask me what a disposition is. Do I then make the problem/debate record for "What are dispositions?" a grandchild of "What are desires?"? That doesn't seem right to me because dispositions are a much more basic metaphysical issue than desires; the scheme ceases to be hierarchical, and the tree graph could quickly become huge and prone to cycles (because of some basic debates being relevant to a large number of positions). On the other hand I could see multiple different positions based on understanding 'disposition' or 'behavior' in different ways (desires understood in terms of counterfactuals versus intrinsic causal powers will have different counterexamples).
Do you think this issue is best solved by just relying on the user to just not do it that way? Or do you think this isn't really a problem for some other reason? Like I said I'm open to it and interested in getting your thoughts and thinking strategically before pulling the trigger (a change like this obviously cannot be undone later for existing users) and mostly just playing devil's advocate at this point.
Another example. Suppose I have a debate record for "What is the relationship between the mind and the body?" and one of the positions under it is "Occasionalism". But different conceptions of occasionalism are probably going to depend on how you understand the concept of God. Should the question "What is God?" be a grandchild of the debate record for the mind/body problem? Again, it seems like it would no longer really be a tree structure at that point. Or another position under the mind/body problem could be "Substance Dualism". But that raises the question of what a substance is. It seems like the debate record for "What is a substance?" should be if anything closer to the root than the mind/body problem, not a descendent of it. Again, maybe we can just rely on the user to not do it that way but in software design it is better to try to limit the user's ability to shoot themselves in the foot. Anyway, this has been my thinking when deciding not to have debates under positions in the past. But you could be right, and it might be worth it in this case to give the user the ability to do things badly in order to gain the benefits you argued for above.
First I'll give a top-down answer by describing again why I think I want to be able to nest things like this, then I'll reply to your particular questions.
A toy example: say I have one debate, "does God exist?" with two positions, atheism and theism. I also have the debate "how many fingers does God have?" The debate has two positions: one arguing 10, the other 11.
I want to nest that finger debate under the position "Theism." The position "God has 10 fingers" and the position "God has 11 fingers" really ought not to be in any place on my tree that is not nested under theism, because only theists are going to hold either of these positions. Atheists will not hold either position.
Right now, in Hypernomicon, there is no way for me to do this. I could make a large debate called "everything having to do with God," and put the "does God exist" debate and "how many fingers does God have" debate at the same level under that large debate. But that large debate is going to get very large, so much so that it will quickly grow useless.
I could instead just have two separate debates: "does God exist" and "how many fingers does God have," and they will be unrelated to each other on the tree. That just makes the problem worse, because now every single debate will be a top-level debate, and the tree's trunk will be so large it will be useless.
The third option is to nest "how many fingers does God have" under "does God exist." But then that misrepresents how the two ideas are related. "How many fingers does God have" is related to "does God exist" in one way only: it presupposes one of the positions in the "does God exist" debate. There is no other relation between the two debates. So why not arrange things like that - by nesting the fingers debate under theism? What is lost by this nesting? What confusion does this add? To me it subtracts confusion. On the surface if I look at "how many fingers does God have" nested immediately under "does God exist," at the same level as "atheism," I can't see how "how many fingers does God have" is related to the "does God exist" debate. That information is missing. If I see it nested under "theism" (and not connected at all to "atheism") I can see at a glance that the fingers debate is a subset of the theism position (and not related to atheism).
An actual example: say you have a debate "what is the nature of the relation between the mind and the body?" and one of the positions is eliminative materialism. Say you have another debate about when completed neuroscience will exist and solve every question we have about the mind. Where do you put that debate? I would put it under the eliminative materialism position. I'm curious where it would go in your tree, and what your tree looks like, since I've been trying that approach for just one sort of thing (the various debates about desire satisfaction theories of well-being - see my original post in this thread) and already the main branch of my tree is almost unreadable, and I can't imagine what it's going to look like if I go through and do that for all the other debates relating to all the other theories of well-being.
Now, replying to your questions:
I would say the problem/debate is relevant only to that position, because it presupposes the position, occurs only in the context of the position, etc. So, "a problem that arises only in that context" would capture it, I think. But the other options you list might work too - I could maybe imagine someone arranging their tree like that if they wanted to. I don't see any reason to stop them, at least.
I think the examples I gave above (both toy and actual) show that this is not the case: some debates are more specific than the position from which they arise. "How many fingers does God have" is more specific than Theism - Theism merely says there exists a God, whereas "How many fingers does God have" includes not just the existence of God but also the proposition that he's got some fingers. "God exists and has fingers" is more specific than "God exists."
Ditto for the eliminative materialism thing. "When will completed neuroscience figure it all out?" is more specific than "completed neuroscience will figure it all out" (i.e. eliminative materialism).
Ditto for my well-being stuff. "When do satisfied desires contribute to well-being?" (debate) is more specific than "the desire satisfaction theory of well-being" (position) because the former already implies the latter. If you're not a desire satisfaction theorist you won't even care about the debate in the first place: you will say "they don't even contribute to well-being at all, so why are we asking what time they contribute to well-being?"
I agree with the examples you give that those more general things should not be nested under the positions you list. But that's fine: if someone accidentally does that, they can later realize they went wrong and click and drag the more general thing into some other part of the tree.
(A small point: you worry that with the possibility of nesting things in the way I've described, "the tree graph could quickly become huge and prone to cycles (because of some basic debates being relevant to a large number of positions). " I don't see how you can keep the graph from becoming huge either way, and my way at least lets you collapse huge chunks of it. I don't see how your way ever lets me collapse "When do satisfied desires contribute to well-being" unless I collapse the entire well-being category. And I think cycles are a good thing, because not all philosophical debates are hierarchically organized, but if you're intent on acyclicity you can secure this merely by not organizing your tree such that it cycles. You can make it cycle with the present setup too if you want. The only question is how high the cycle can take you.)
Both: people can just not do it if it's bad, and also I don't see the problem because my tree is already growing into a monster and this would let me prune it. Plus the third option, which is that if it's a problem and the user manages to screw it up, it's a very easy fix for them, since they just click and drag the offending problem/debate up the hierarchy to a point where it no longer causes problems.
If you're very worried about it, maybe you can add it into the settings menu. By default Hypernomicon behaves as it currently does, but if you click a button in the settings that says "allow Problems/Debates to nest under Positions and Arguments" (or just Positions - I don't care about Argument nesting, although maybe that's just because I haven't run across one I want to nest yet) then it behaves the way I'd like.
I think my issue is actually pretty clear so it might help to see my tree in real time or something so I can explain it more clearly than my posts are doing - if you want to meet on Zoom at some point let me know.
Okay you've pretty much convinced me to do it. I understand (and see the merits of) your reasoning already but meeting on Zoom to have a more general discussion sounds like a good idea anyway. If that sounds good, please get in touch by jason.winning@gmail.com
Development is complete for this feature and it will be included in the next release.