-
Notifications
You must be signed in to change notification settings - Fork 36
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
Discussion on reasonable types of implied relationships ➞ FR: fine-tune them #259
Comments
I love this! This request for a more powerful detection of implied relations has been already raised in the Discussions and Issues forums - they're among the latest topics. I only have some questions/considerations:
|
Thank you for the effort here, I really appreciate it! |
@SkepticMystic That one I mad mostly for consistency, since you already have "Note is it's own sibling". Not sure whether it makes sense though 😅 Btw, I made a small edit adding some stuff |
What do you mean by hierarchy types? 😁 |
@SkepticMystic okay, I updated even more 🤣 @scriptor-dga you can add more hierarchies than just up/down/same/next/prev https://github.com/SkepticMystic/breadcrumbs/wiki/Hierarchies |
@chrisgrieser I'm gonna be editing your post to keep track of what I've implemented so far (the changes aren't publicly available yet, but it's a big project to keep track off) |
Do the betas include these changes already? Do you have a link? |
@scriptor-dga you can play around with it by manually installing from here. |
I want to add some thoughts and considerations about the transitivity aspects. I assume and will comment from the POV of taking the idea to the logical conclusion. Meaning that it's not just about increasing the depth of the implied connection generation by one, but about following the graph until the very end, until all the real connections are processed, all the implied connections are built, this is done iteratively until the whole group is stabilized.
Basically, the whole concept just implodes as soon as we start messing with the up/down connections. Mathematically, algorithmically, UI-wise, in convenience, in usefulness. But here is the great news. I think that those features are not even necessary/needed in the real world. One of the core problems is the conceptual/linguistic ambiguity in what we mean by words like "up" or "next". They can mean 2 different things:
If you agree with me about the issue with messing with the up/down connections, that Breadcrumbs should not implement them, then all the unsolvable problems go away. But that still leaves us with the core problem of ambiguity with what "next" and "prev" mean and how they should be processed.
My vision/solutionNow that I unloaded a set of problems on you, let me also provide my vision of the working solution.
I hope my novel made sense (I am too tired to edit it at this 4:30am point of the night). 👍 |
I back what mikkovedru says and I also have a question: did you add the relationship "if A is child of B and C is sibling of A, then C is child of B"? |
I have also been thinking a bit about this FR. I think that toggling these implied relationships by type of relationship does not make much sense. Rather, it should be an attribute of the field/type of relationship. Example: Consider the types Transitivity:
Transitivity clearly holds for the same relation, but this isn't always the case for the partner relation (consider a polygamous relation where this holds). To some degree I agree with @mikkovedru too. I don't much see the value of adding implied transitive connections for up/down relations, and especially not for uncle/cousin relations. The full hierarchy formed from up/down relations can already be inspected by the views Breadcrumbs provides (for instance the down view, code blocks, and the Juggl view in the new beta release). Rendering those views using the implied graph would be very messy with a lot of connections. |
You may recall my earlier comments on the usefulness of leaving the preponderance of most implied relationships as exactly that (rather than forming the link in real mode in both directions).
It is so useful to be able to have both types show up in the matrix - it allows pinpointing the most critical connections out of large groups of matrix entries quite easily.
I’m afraid the proposed changes could prove to be an exercise in “making EVERYTHING LOUDER than everything else” — and so not merely messy, but with everything claiming to be of equal importance, the “cacophony” could be the death mill of efficacy of breadcrumbs (and ultimately make it no more useful than dataview code showing every link in and out of every given node… and yes, I’ve been there, done that and still have it in place for my yet to be breadcrumbed entries!)
Please, please advance with caution on this one!
Bricoleur
…On Jan 17, 2022, 12:50 AM -0800, Emile van Krieken ***@***.***>, wrote:
I have also been thinking a bit about this FR. I think that toggling these implied relationships by type of relationship does not make much sense. Rather, it should be an attribute of the field/type of relationship.
Example: Consider the types partner and same. I'd model both of these as <-> relations (something akin to equivalence). Now consider the new kind of implied relations that can be formed from these:
Transitivity:
• A -> partner -> B && B -> partner -> C
• Then also A -> partner -> C
• A -> same -> B && B -> same -> C
• Then also A -> same -> C
Transitivity clearly holds for the same relation, but this isn't always the case for the partner relation (consider a polygamous relation where this holds).
To some degree I agree with @mikkovedru too. I don't much see the value of adding implied transitive connections for up/down relations, and especially not for uncle/cousin relations. The full hierarchy formed from up/down relations can already be inspected by the views Breadcrumbs provides (for instance the down view, code blocks, and the Juggl view in the new beta release). Rendering those views using the implied graph would be very messy with a lot of connections.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
This has become quite an interesting discussion, indeed. I will say this for now:
Please do continue discussing, I really appreciate the thought that is going into this :) |
Here is another topic that requires (re)thinking. This is an apt place and company to discuss it. Currently, the relationships Breadcrumbs define can be described as
This is a logical and useful way of thinking and organizing notes. But this is not the only possible one. Another one could be The tricky thing is to decide what each current relation type means in this logical-flowchart system, if some of the types should be renamed, removed or added. For example Liger (a hybrid offspring of a male lion and a female tiger). Which relation should be used between those 3:
I guess it depends on the situation and what one wants to achieve with the particular note system? This definitely needs more thought. Understanding what I mean will require some time and brain effort, because of the confusion since the current system can also in some way be described as logical (it is indeed logical that "Chapter 1" is the child of "Book X"). I haven't had enough time to go all the way to the depth to think about this idea, what it entails and to decide on my own logical and publicly defendable position. Or even to decide if it is useful enough to spend energy implementing. I guess my current position is a careful "Might be useful. Implementation-wise, in my workflow I would like to have a per-directory control of which style of Breadcrumbs to use.". Thoughts? Edit: |
Just have learned about this discussion. I'm curious to learn what are the trade-offs if we use namespace to imply the relationship; i.e. parent, parent.child, parent.child.grandChild? Pros:
Cons:
|
All the implied relationships I intend to implement have been added, I believe. |
What could be really useful would be to fine-tune the type of implied relationships to have. I tried to lay out every possibility I could think of, including the one's already implemented in Breadcrumbs for clarity. (Also using some SNA terms, since I know you know them, and since they make it a bit more clear in my view.)
Identity:
Reciprocity:
(cannot be toggled individually, but are affected by the toggle for all implied relationships)
Structural Equivalence:
Transitivity:
(none of this are implemented, often not desirable, but maybe some users find use for this?)
Other Relationships?!:
Multiplex Structural Equivalence:
I have a certain preference on which types I would like to have, but I assume others might have different preferences, so I assume toggles for everything might make sense? 🤔
Bonus Points
Have the types of implied relationships configurable per hierarchy type 😆
wall-o-toggles!!
The text was updated successfully, but these errors were encountered: