28 votes

Suggestion: DAG Groups

Instead of a tree hierachy, perhaps groups would be better off based on a DAG - a Directed Acyclic Graph. This would allow groups to have multiple parents as well as multiple children. For example, ~mazda might have ~cars and ~japan as parents, and ~tolkein might have ~fantasy and ~linguistics as parents. I think this could maintain the benefits of the hierachical system while making it easier to find a group that suits the post.

While potentially complex, a good UI which effectively visualised the DAG to allow a content submitter to hone in on the correct group-node, and potentially create a new one on the fly if none was appropriate, could make this concept reasonably intuitive. This problem has already been tackled by creators of git GUIs, so perhaps some ideas could be adapted from that space.

One issue is that a node in a DAG is much harder to identify with a text string than a node in a tree-based hierachy. One solution would be that the submitter could choose a 'primary path' which would be displayed to readers, which, upon being clicked, would display the full DAG, including all the potentially numerous paths which would lead to that group-node. For example, I might choose ~linguistics.tolkein.quenya as the primary path, but upon clicking, the reader can discover that ~fantasy.tolkein.quenya and ~linguistics.conlangs.quenya and ~writing.worldbuilding.quenya all lead to the same group-node [edit: ugly illustration]. I feel that this solution could potentially be powerful enough to remove the need for tags entirely. Viewing the homepage of any particular group-node on the DAG would aggregate posts to all child groups, meaning that the effects of community fragmentation are mitigated. Even a post to a really specific group-node, like ~cars.mazda.mx5.na, will still enjoy the same status and priority to the readers of the ~cars homepage as a post made directly to the ~cars group-node.

34 comments

  1. [8]
    Lazarus
    Link
    As much as I love this- I worry about how much the average human would understand/navigate things. We have to remember a lot of us (at least currently in Tildes) are rather smart cookies.

    As much as I love this- I worry about how much the average human would understand/navigate things.

    We have to remember a lot of us (at least currently in Tildes) are rather smart cookies.

    20 votes
    1. [5]
      jgb
      Link Parent
      I think, as with many things, it's all about the design and the way it's presented. It's an idea that sounds complex and gratuitiously mathematical when expressed in text, but as a diagram I...

      I think, as with many things, it's all about the design and the way it's presented. It's an idea that sounds complex and gratuitiously mathematical when expressed in text, but as a diagram I believe it could be rather intuitive.

      8 votes
      1. [4]
        Lazarus
        Link Parent
        I had to explain a three-bubble Venn diagram for a 42-year old exec last year. Perhaps I’m coming from a place of relative cynicism because of that...quite possible. Whoever designs this DAG...

        I had to explain a three-bubble Venn diagram for a 42-year old exec last year.

        Perhaps I’m coming from a place of relative cynicism because of that...quite possible.

        Whoever designs this DAG diagram will have their work cut out for them!

        16 votes
        1. [3]
          jgb
          Link Parent
          There's so many places on the web built on terrible, clumsy concepts and mechanisms - just look at the abdomination that is the hashtag! I don't think we should be loath to consider more powerful...

          There's so many places on the web built on terrible, clumsy concepts and mechanisms - just look at the abdomination that is the hashtag! I don't think we should be loath to consider more powerful and elegant systems on the basis of superficial complexity alone.

          9 votes
          1. sqew
            Link Parent
            I think that it would probably be possible to abstract away a decent amount of the complexity for this system with something like the tagging solution that I mentioned (not at all saying it's the...

            I think that it would probably be possible to abstract away a decent amount of the complexity for this system with something like the tagging solution that I mentioned (not at all saying it's the right choice, just using it as an example) and to make it relatively accessible to new users with the graph visualization that you mentioned before.

            4 votes
          2. Lazarus
            Link Parent
            Certainly not, but being aware of the pitfalls is important so that it doesn’t likely fall to the same fate. ...dear god hashtags...such a beautiful idea molested and twisted into the obscenity it...

            Certainly not, but being aware of the pitfalls is important so that it doesn’t likely fall to the same fate.

            ...dear god hashtags...such a beautiful idea molested and twisted into the obscenity it has become today. We used to complain about people saying “lol” out loud. It’s so much worse with hashtags.

            4 votes
    2. Natanael
      Link Parent
      I have a similar idea, but designed for a different purpose: https://roamingaroundatrandom.wordpress.com/2014/06/01/a-decentralized-hash-chained-discussion-system/ You'd still have different...

      I have a similar idea, but designed for a different purpose:

      https://roamingaroundatrandom.wordpress.com/2014/06/01/a-decentralized-hash-chained-discussion-system/

      You'd still have different forums, and different hierarchies within them, but a single post could reference several at once while having its own unique ID.

      A thread spanning across forums could have different rules applied depending on which forum's rules you choose to apply - you could choose which moderators you trust, or what community who's rules you feel are better.

      2 votes
    3. Ten
      Link Parent
      Confirmed: Am average and have don't understand any of this.

      Confirmed: Am average and have don't understand any of this.

      1 vote
  2. [7]
    Deimos
    Link
    I'm a little terrified of the potential complexity, but this kind of thing is probably possible. Even if not something like a full-on DAG, I'm sure it wouldn't be too bad to have basically "path...

    I'm a little terrified of the potential complexity, but this kind of thing is probably possible. Even if not something like a full-on DAG, I'm sure it wouldn't be too bad to have basically "path aliases" where they're just different paths that lead to the same actual group.

    20 votes
    1. jgb
      Link Parent
      Totally fair. But as I said elsewhere - it's surely better to try and fail at making abstractions and mechanisms that are too powerful for their own good, than to settle for clumsy and inelegant ones.

      I'm a little terrified of the potential complexity

      Totally fair. But as I said elsewhere - it's surely better to try and fail at making abstractions and mechanisms that are too powerful for their own good, than to settle for clumsy and inelegant ones.

      6 votes
    2. [3]
      David
      Link Parent
      Would the path aliases you mention also allow for quality posts to bubble up there as well as the actual path?

      Would the path aliases you mention also allow for quality posts to bubble up there as well as the actual path?

      3 votes
      1. [2]
        Deimos
        Link Parent
        I think it could be possible, that whole system is still really just a general concept at this point though, so we'll need to work out a ton of the details any which way.

        I think it could be possible, that whole system is still really just a general concept at this point though, so we'll need to work out a ton of the details any which way.

        5 votes
    3. not
      Link Parent
      I think aliases make the most sense. They could be shown in a similar way to symlinks, a concept most people are probably familiar with, or if not can easily understand. This also allows the...

      I think aliases make the most sense. They could be shown in a similar way to symlinks, a concept most people are probably familiar with, or if not can easily understand. This also allows the structure of tildes to be changed in the future, without needing to loose any history or links.

      ~fantasy
      ~[...].tolkien
      ~[...].games -> ~games.fantasy
      
      ~games
      ~[...].fantasy
      
      1 vote
    4. giesse
      Link Parent
      My opinion is that this kind of thing will attract more people like us, but deter the general population. If it's not something they have seen before, there will be a negative emotional reaction...

      My opinion is that this kind of thing will attract more people like us, but deter the general population. If it's not something they have seen before, there will be a negative emotional reaction to it. Just how humans work.

      So it comes down to, would you rather be popular or be attuned to a specific niche of people? The latter usually promotes quality, the former tends to promote mediocrity (in the sense of "average") simply because of the law of big numbers.

      If you think it would be possible to have multiple UIs, or layers of UIs (where you can enable advanced features that are normally disabled), maybe this could be a win-win. But that has its own challenges (some pretty big ones too IMHO).

      Otherwise, there is merit in deciding that helping society as a whole is preferable to helping a niche. On the other hand, there is merit in taking the stance that more diverse websites each targeting a different niche is better than one big aggregator.

      1 vote
  3. [7]
    sqew
    Link
    Avoiding any issues of practicality that might crop up if an attempt was made at implementing this, it seems like a solid solution to the possibility of community fragmentation while the site is...

    Avoiding any issues of practicality that might crop up if an attempt was made at implementing this, it seems like a solid solution to the possibility of community fragmentation while the site is still small that @Deimos discussed here.

    8 votes
    1. [6]
      sqew
      Link Parent
      Further idea: to solve the issue of it being difficult to identify a node with a text string, maybe the system could be that, instead of a "primary path" or some similar solution, the poster...

      Further idea: to solve the issue of it being difficult to identify a node with a text string, maybe the system could be that, instead of a "primary path" or some similar solution, the poster "tags" the post with whatever they want and nodes are either created for each tag or the post is added to an existing node for a certain tag.

      Complexity and server-side resources for that could be a bit high, but, if it could be made to work efficiently, it seems like something that could be useful.

      4 votes
      1. [5]
        jgb
        Link Parent
        Could you please exemplify what you're suggesting here? I'm not sure I fully understand.

        Further idea: to solve the issue of it being difficult to identify a node with a text string, maybe the system could be that, instead of a "primary path" or some similar solution, the poster "tags" the post with whatever they want and nodes are either created for each tag or the post is added to an existing node for a certain tag.

        Could you please exemplify what you're suggesting here? I'm not sure I fully understand.

        2 votes
        1. [4]
          sqew
          Link Parent
          After thinking about it a bit more, it might not work (or it may need some modification), but I'll try to lay it out in a more readable way. You mentioned that it would be difficult to identify a...

          After thinking about it a bit more, it might not work (or it may need some modification), but I'll try to lay it out in a more readable way.

          You mentioned that it would be difficult to identify a node on the graph to post to, and so users would pick a "primary path" for the post that could be expanded to the full graph. My thought was basically that, instead of a primary path, users could specify a list of tags for the post, which would result in the post either being added to the node for that tag or a new node being added on the fly (in this conception, tags essentially end up as links to group nodes on the DAG).

          To use the illustration from your post as an example, a user could tag their post as writing, fantasy, and english, and the post would then be added to the writing and fantasy nodes while an english node was created on the fly. The post would then be available to all of the parent groups for the "tag" nodes.

          I guess it is a little bit complex, but I think that with some more thinking and a good implementation, it could become a good way to abstract some of the complexity away from typical users as the site grows.

          3 votes
          1. [3]
            jgb
            Link Parent
            Ah, I understand what you're saying. I like the idea, though I can see a couple of potential issues: This is already quite a complex structure, and without significant human curation an...

            Ah, I understand what you're saying. I like the idea, though I can see a couple of potential issues:

            • This is already quite a complex structure, and without significant human curation an autogenerated DAG seems at risk of becoming a sprawling, unbrowsable, nigh-on unintelligable mess. This isn't an insurmountable issue but I think it would be significant.

            • As has been mentioned a couple of times in this post (and excellently exemplified by /u/Flashynuff who raised the issue of ~nature.bugs and ~tildes.bugs) - we need to beware conflating the 'titles' of group-nodes and the underlying structure. I think this becomes a bigger problem when constructing the DAG from tags, but as before I have faith that good UI could mitigate the issue.

            2 votes
            1. [2]
              sqew
              Link Parent
              I definitely agree with both points you make. Speaking to your first point, I think that some sort of auto pruning would probably be required to keep the DAG reasonably intelligible without...

              I definitely agree with both points you make. Speaking to your first point, I think that some sort of auto pruning would probably be required to keep the DAG reasonably intelligible without driving all of us humans insane.

              1 vote
  4. [3]
    Flashynuff
    Link
    Maybe tags could serve as a basis for determining when a new node or link to an existing node needs to be created. I.E., if enough feature tags start showing up in ~tildes, it'll make a...

    Maybe tags could serve as a basis for determining when a new node or link to an existing node needs to be created. I.E., if enough feature tags start showing up in ~tildes, it'll make a ~tildes.features subgroup automatically.

    I'm wondering how you handle the case where two distinct groups converge on the same name but intended for different purposes? Example: ~nature.bugs and ~tildes.bugs

    What's the best way to pick the root nodes? I suppose that's where the administration would exert a curatorial role, picking the best or most popular root nodes similar to reddit's old defaults.

    5 votes
    1. jgb
      Link Parent
      This is one of the problems my proposed system fixes. Group-nodes should not be uniquely identifiable by a text name - that is to say, it should be easily possible to make multiple group-nodes...

      I'm wondering how you handle the case where two distinct groups converge on the same name but intended for different purposes? Example: ~nature.bugs and ~tildes.bugs

      This is one of the problems my proposed system fixes. Group-nodes should not be uniquely identifiable by a text name - that is to say, it should be easily possible to make multiple group-nodes bearing the same title but being wholly seperate in the DAG - just as you can have many people who go by the same name on Facebook. A user elsewhere in the thread suggests:

      The current system allows for things like ~books.scifi and ~movies.scifi to be accessed as ~*.scifi

      Which would suffer from the issue of conflating syntax and structure that you pose.

      3 votes
    2. jgb
      Link Parent
      No different to the system that we have now. Top level node creation would likely be restricted to admins and they would probably look a lot like the current groups.

      What's the best way to pick the root nodes? I suppose that's where the administration would exert a curatorial role, picking the best or most popular root nodes similar to reddit's old defaults.

      No different to the system that we have now. Top level node creation would likely be restricted to admins and they would probably look a lot like the current groups.

      1 vote
  5. sid
    Link
    The current system allows for things like ~books.scifi and ~movies.scifi to be accessed as ~*.scifi as far as I understand, so I feel like fragmentation would be a non-issue. In your example,...

    The current system allows for things like ~books.scifi and ~movies.scifi to be accessed as ~*.scifi as far as I understand, so I feel like fragmentation would be a non-issue. In your example, ~mazda being a child of ~cars makes sense, but not so much ~Japan. Looking at /r/Japan as a reference, it's mainly Japanese news and travel information, which is more or less unrelated.

    5 votes
  6. [2]
    J-Senior
    Link
    If they could get this to work, I think it'd be the best method. It has the spread of large groups, the specifics of small subreddits, and the option to link the small groups to their various...

    If they could get this to work, I think it'd be the best method. It has the spread of large groups, the specifics of small subreddits, and the option to link the small groups to their various characteristics.

    The parent - children links will need heavy moderation though, otherwise it could easily become a convoluted mess.

    4 votes
    1. jgb
      Link Parent
      True, but the neat thing is that because the DAG retains the hierachial elements of a tree system, even if users convolute and fragment the lower levels, it does not result in content being...

      The parent - children links will need heavy moderation though, otherwise it could easily become a convoluted mess.

      True, but the neat thing is that because the DAG retains the hierachial elements of a tree system, even if users convolute and fragment the lower levels, it does not result in content being splintered and dispersed (as Bilbo would say - "like butter scraped over too much bread").

      1 vote
  7. [2]
    est
    Link
    Quora had something similar called ontology. I think a DAG is best used for a tagging system, rather than a sub-group system. Seriously, tagging is a failed pattern because of the alternative...

    Quora had something similar called ontology. I think a DAG is best used for a tagging system, rather than a sub-group system.

    Seriously, tagging is a failed pattern because of the alternative terms and plural form. We need something to link related tags together to make use of.

    3 votes
    1. Natanael
      Link Parent
      I'd like semantic tags, something more descriptive and hierarchical (where relevant). You could practically speaking have something more like a mind-map of tags, with the most low-level detailed...

      I'd like semantic tags, something more descriptive and hierarchical (where relevant). You could practically speaking have something more like a mind-map of tags, with the most low-level detailed nodes highlighted.

      I also like @jgb's approach. https://tildes.net/~tildes/15l/suggestion_dag_groups#comment-a2j

      My own idea on how this could work; https://tildes.net/~tildes/15l/suggestion_dag_groups#comment-dgw

  8. [3]
    jeff
    Link
    It's an interesting idea, but I wonder if you'd lose some useful distinction that way. Consider ~locals/USA/SC/Charleston and ~travel/destinations/SC/Charleston as an example. They're both about...

    It's an interesting idea, but I wonder if you'd lose some useful distinction that way. Consider ~locals/USA/SC/Charleston and ~travel/destinations/SC/Charleston as an example. They're both about Charleston, SC, but the topic of conversation would (and should) be entirely different in each. Perhaps that could be supported with DAGs by keeping those two ../Charleston groups distinctly separate though. But the whole thing may just become too confusing.

    2 votes
    1. [2]
      jgb
      Link Parent
      For me, the logical DAG for this structure would be: ~ travel --> destinations ---------\ --> charleston#visitors / ~ geo --> usa --> sc --> charleston \ --> charleston#locals ~ local...

      For me, the logical DAG for this structure would be:

      ~ travel --> destinations ---------\
                                          --> charleston#visitors
                                         /
      ~ geo --> usa --> sc --> charleston 
                                         \
                                          --> charleston#locals
      ~ local -------------------------- /
      

      Here I introduce a new concept; a sub-group-node which is structurally identical to a normal group-node except its title includes the name of one of its parent nodes for the sake of readability.

      1 vote
      1. jeff
        Link Parent
        Logically, I appreciate what you've done there. But then we're probably getting to the point that the complexity will be too much for many people, and we'd just end up losing the benefit that we...

        Logically, I appreciate what you've done there. But then we're probably getting to the point that the complexity will be too much for many people, and we'd just end up losing the benefit that we were attempting to achieve.

        1 vote
  9. eyybby
    Link
    I think this is an excellent idea. The concept of a DAG is pretty easy for most people to grasp when you put it in understandable terms, so with a decent UI I think it'd be a great solution to...

    I think this is an excellent idea. The concept of a DAG is pretty easy for most people to grasp when you put it in understandable terms, so with a decent UI I think it'd be a great solution to what would become a problem.

    1 vote