34 votes

Daily Tildes discussion - figuring out some early details of the group hierarchy

This week, I'm trying to focus on the last few pieces needed to finally get the site's code open-sourced (really, I am!). One of those pieces is that we'll need a group on Tildes for discussing development, answering related questions, and so on. The obvious location for this is something like ~tildes.dev, but adding it opens up a few questions related to the group hierarchy in general, so that's what I want to talk about today.

Currently, we only have one subgroup on the site, this one (~tildes.official). The way it works right now, if you visit or subscribe to ~tildes, you will also see the content from ~tildes.official. You also have the option of going to ~tildes.official directly, so that you see only the content from that group without the posts from its parent group. However, there's no way to see only the content from ~tildes without ~tildes.official. This will become more significant when ~tildes.dev is added, because that group will probably only be interesting to a small group of the site's users—people that are involved in (or interested in) the actual code/development behind the site.

So now we have a more interesting case, a subgroup that most people looking at the parent probably won't want to see. How should this work in practice? Some more specific questions that might help thinking through it:

  • When someone visits ~tildes, do they see ~tildes.dev posts in there?
  • When someone subscribes to ~tildes, are they automatically subscribed (implicitly or not) to both ~tildes.official and ~tildes.dev?
  • If someone only wants to see the content from ~tildes and ~tildes.official, what sort of process should they need to go through to make that happen?
  • How might these ideas work once the hierarchy gets much larger (for example, imagine a ~games with hundreds of subgroups inside many branches)?

Any input about the topic is appreciated—try not to worry too much about whether a plan is "perfect", we can always adjust it as the hierarchy actually starts becoming more extensive.

33 comments

  1. [6]
    Comment deleted by author
    Link
    1. [4]
      Abel
      Link Parent
      Maybe I've misunderstood your response, but to me this seems to raise another issue. In the future when subgroups have subgroups, is it ever possible that we end up with ~music.rock.thebeatles ?...

      Maybe I've misunderstood your response, but to me this seems to raise another issue. In the future when subgroups have subgroups, is it ever possible that we end up with ~music.rock.thebeatles ? If so, what would I do if I had no desire to see any content from ~music.rock exept thebeatles? Is there a way to stay subscribed to ~music.rock.thebeatles but not ~music.rock ? Should there be a way?

      6 votes
      1. [3]
        Comment deleted by author
        Link Parent
        1. [2]
          Eylrid
          Link Parent
          I like it, but I would reframe it as the setting for the most specific subgroup out weighs the settings for the general parent groups. Using your example, the muting of ~music.rock outweighs the...

          I like it, but I would reframe it as the setting for the most specific subgroup out weighs the settings for the general parent groups. Using your example, the muting of ~music.rock outweighs the subscription to ~music, so you won't see ~music.rock posts in ~music (except for ~music.rock.thebeatles).

          Basically the same thing but a different way to say it.

          4 votes
          1. [2]
            Comment deleted by author
            Link Parent
            1. Eylrid
              Link Parent
              I was thinking about the idea that's been floating around of posts bubbling up from a subgroup to a parent group. (I thought it was mentioned in the docs, but it turns out it's not.) If that was...

              I was thinking about the idea that's been floating around of posts bubbling up from a subgroup to a parent group. (I thought it was mentioned in the docs, but it turns out it's not.) If that was in play, then someone who is subscribed to ~music but not ~music.rock would see the top posts from ~music.rock in ~music. If they muted ~music.rock they wouldn't see anything from ~music.rock in ~music.

              I'd say subscriptions should always outweigh mutes. So say you're subscribed to ~health and accidentally muted it, you'll still see the posts. The subscription outweighs the mute here directly.

              Subscribing to a group and muting it should be mutually exclusive. It doesn't make any sense to mute a group you are subscribed to, especially if muting doesn't do anything in that case.

              2 votes
      2. lol
        Link Parent
        Sorry for the late response, but if it's still of any interest to anyone I think the most intuitive solution would be to mute all subgroups of ~music.rock except for ~music.rock.thebeatles, and...

        Sorry for the late response, but if it's still of any interest to anyone I think the most intuitive solution would be to mute all subgroups of ~music.rock except for ~music.rock.thebeatles, and have the mutes carry up the chain. Maybe have a button to do that for you ('Only show posts from this subgroup'). Weird cases where you ignore a parent but not its child should be avoided imo

    2. [2]
      Comment deleted by author
      Link Parent
      1. MetArtScroll
        Link Parent
        One may be legitimately interested in a subgroup but not in the general group, e.g., ~tildes.official (official announcements) but not ~tildes (general meta discussion), though this would be a...

        which would, in effect or practice, unsubscribe me from all child groups of "parent"

        One may be legitimately interested in a subgroup but not in the general group, e.g., ~tildes.official (official announcements) but not ~tildes (general meta discussion), though this would be a nice option for subscription/unsubscription.

        6 votes
  2. [4]
    Algernon_Asimov
    Link
    I've already shared my thoughts on this. In summary: a user should have to actively subscribe to a group or sub-group to see its posts. Subscribing to a parent group should not automatically...

    I've already shared my thoughts on this.

    In summary: a user should have to actively subscribe to a group or sub-group to see its posts. Subscribing to a parent group should not automatically include subscriptions to all its children groups.

    I've seen you and others discuss/suggest the idea that the best or most popular posts from a sub-group should bubble up to the parent group and be displayed there. So, the feed for ~news would include the current top post from ~news.usa and from ~news.australia and from ~news.unitedkingdom - and when I subscribe to ~news, I'll see these in my feed as well. I like this idea.

    14 votes
    1. merick
      Link Parent
      As long as I can block specific subgroups from bubbling up, I'm okay with this.

      As long as I can block specific subgroups from bubbling up, I'm okay with this.

      9 votes
    2. [2]
      crius
      Link Parent
      I'm not sure it was your idea (it's late, zero will to open they link and check) but one of the additional option was to be able to specify, for every group, if the user wanted to see the top...

      I'm not sure it was your idea (it's late, zero will to open they link and check) but one of the additional option was to be able to specify, for every group, if the user wanted to see the top topics of the subgroups sometimes (basically only see the most voted) or don't see anything at all.

      I found it to be a simple (to implement) and effective idea.

      4 votes
      1. Algernon_Asimov
        Link Parent
        Nope. It's a good idea, but I can't take the credit for this.

        I'm not sure it was your idea

        Nope. It's a good idea, but I can't take the credit for this.

  3. [5]
    PapaNachos
    (edited )
    Link
    What might be interesting is if you got to see some of the content related to your subscriptions. For instance, if you subscribed to ~games.overwatch and ~games.stardewvalley you might...

    What might be interesting is if you got to see some of the content related to your subscriptions.

    For instance, if you subscribed to ~games.overwatch and ~games.stardewvalley you might occasionally see content from ~games.destiny or whatever. Maybe include an opt-out option to see groups of similar interests from yours.

    That might be a way of improving viewership of posts and informing people of what's available.

    Edit:

    How might these ideas work once the hierarchy gets much larger (for example, imagine a ~games with hundreds of subgroups inside many branches)?

    IMO this is the most important question of all. To me when a group has a lot of subgroups, opt-in makes more sense than opt-out. It's less annoying that way.

    What if we had keywords like ~games.all, ~games.subs, ~games.popular to offer different experiences. ~games.all could show you everything happening. ~games.subs could show you traffic from what you specifically opted into and ~games.popular could be like all, but focusing on posts with a lot of activity.

    12 votes
    1. [3]
      Sunward
      Link Parent
      My initial reaction was "the group hierarchy is similar in spirit to Usenet, right? If you subscribe to rec.games you don't also see content from rec.games.video, rec.games.video.ps4,...

      My initial reaction was "the group hierarchy is similar in spirit to Usenet, right? If you subscribe to rec.games you don't also see content from rec.games.video, rec.games.video.ps4, rec.games.video.ps4.uncharted, rec.games.computer, rec.games.computer.windows, rec.games.computer.windows.steam, rec.games.tabletop, rec.games.tabletop.dnd, rec.games.tabletop.dnd.5th-edition and so on" but then I thought about it for an additional five seconds and realized that though the hierarchy is Usenet-inspired, it's not necessarily directly imitating Usenet.

      I like your idea of special keywords but at the same time the idea of having reserved words in group names rubs me slightly the wrong way (~games.subs could equally be used for games about submarines!), although the idea I had (special characters that can't normally be part of group names, e.g. ~games.* to subscribe to all subgroups of ~games) isn't particularly user-friendly.

      6 votes
      1. [2]
        PapaNachos
        (edited )
        Link Parent
        I thought about the submarine example, and I think keywords should be easy enough to work around. If ~games.subs is taken, you could use ~games.submarines or whatever. Unless there are a lot of...

        I thought about the submarine example, and I think keywords should be easy enough to work around. If ~games.subs is taken, you could use ~games.submarines or whatever.

        Unless there are a lot of keywords to worry about

        Another idea I just has was to have the side bar randomly select some tags 'similar to this' for perusal whenever you load a page. Maybe with your current subscription status and an option to subscribe or unsubscribe directly from there.

        2 votes
        1. dredmorbius
          Link Parent
          Somesort of Assigned Names Authority could deal with this. It's also an advantage of going with an extant classification such as LoCCS. Debian has policies for dealing with package name conflicts,...

          Somesort of Assigned Names Authority could deal with this. It's also an advantage of going with an extant classification such as LoCCS.

          Debian has policies for dealing with package name conflicts, scaling to 70k+ packages.

          1 vote
    2. dredmorbius
      Link Parent
      The number of subgroups matters much less than the traffic within them.

      The number of subgroups matters much less than the traffic within them.

      3 votes
  4. Gaywallet
    Link
    I think the simplest approach is best, with a few small modifications: Subscribing to ~tildes (or any other group) should offer you two options - subscribe to "general content" or subscribe to...

    I think the simplest approach is best, with a few small modifications:

    1. Subscribing to ~tildes (or any other group) should offer you two options - subscribe to "general content" or subscribe to "all content" within the group.
    2. There needs to be a mute or unsubscribe button, if you wish to never see content from ~tildes.dev (or any other subgroup).
    3. When a subgroup is created, there should be a choice for it to be a "general" subgroup or not. If the subgroup is something that the group it belongs to would likely not want to see, it should not be set up as a general subgroup.

    This allows for control on both sides - the user can override and say "no, I want to see everything" when they subscribe to the group if they so desire, or they can take the default option of showing all general content and the subgroup can decide whether it wants to show up to everyone, or just a select group of individuals. Finally, users can remove/mute "general" groups that they are not interested in.

    7 votes
  5. MetArtScroll
    Link
    Two things come to my mind: user-side settings and group-side settings. User-side settings A user's subscription to a group might have basic options subscribe to the group only (i.e., show only...

    Two things come to my mind: user-side settings and group-side settings.

    User-side settings

    A user's subscription to a group might have basic options

    • subscribe to the group only (i.e., show only the proper group's topics even if the user also subscribes to some subgroups)
    • show topics from the group and subgroups up to level n (I would suggest this with n = 1 plus some meaningful threshold—see below—as the default for a group the user is not subscribed to unless the group has different default settings)
    • show topics from the group and all subgroups thereof

    (strictly speaking, the first and the last option are special cases of the second one).

    In addition, the following fine-tuning might be available

    • only show topics from the subgroups the user is subscribed to
    • only show topics from subgroups with more than [threshold] topic votes

    Group-side settings

    A group might have default settings (in addition to things like the default topic and comment sort orders or the default time period) corresponding to the user-side settings above.

    In addition, subgroups might have weighting parameters assigned to each group-subgroup link (assuming the DAG structure, for a tree structure the parameters can be assigned to subgroups directly)

    • general weight (a number): the number of topic votes is multiplied by this weight before being compared with [threshold]
    • subscription only: the subgroup may propagate to the group only for the subscribed users
    • zero weight: the subgroup never propagates to its supergroup(s) [that very Free Talk idea]

    Then there is a question which of user-side and group-side settings, and when, takes precedence.

    Edit: P.S. This, of course, can be applied to top-level groups as subgroups of the front page.

    5 votes
  6. dredmorbius
    Link
    I'd like to flip the discussion a bit: What objectives do people want to see groups serve, and why? What's the goal? That might help sortt the mechanism.

    I'd like to flip the discussion a bit: What objectives do people want to see groups serve, and why?

    What's the goal? That might help sortt the mechanism.

    5 votes
  7. [2]
    rib
    Link
    Adapting off other ideas here: Subscribing to a group gives you the option to either: subscribe to only the main group subscribing to the main group and all sub-groups(blacklist omission)...

    Adapting off other ideas here:

    Subscribing to a group gives you the option to either:

    • subscribe to only the main group

    • subscribing to the main group and all sub-groups(blacklist omission)

    • subscribing to the main group and some sub-groups(whitelist omission)

    • subscribing to the main group and the top-posts of the subgroups(possibly with customizable settings)

    It's clear that once you start getting a large hierarchy that it's going to get confusing if you are subscribed to ~games, and ~games.rpg.skyrim but not ~games.rpg. and so on.. The only way I can think of to make this clear and intuitive is to have an interactive tree which lets you keep track and alter your subscriptions, see diagram:

    https://i.imgur.com/ET68Rc2.png (it's no picasso)
    Visiting a group gives you the option of /~tildes-all or /tildes-main, depending which view becomes default. Perhaps users can change settings to determine which is the default view for their account.

    5 votes
  8. pragma
    Link
    This is an interesting topic. I'm thinking that we should keep things as simple as possible. Here's my take on it. Users should view the content from subgroups that they have explicitly subscribed...

    This is an interesting topic. I'm thinking that we should keep things as simple as possible. Here's my take on it.

    Users should view the content from subgroups that they have explicitly subscribed to. In order to make exploration a bit more intuitive, all groups should have a list of their subgroups in the sidebar, but only one level down. In a way like navigating folders in a filesystem.

    For example, if I browse ~movies I would see the posts from this group plus any posts from subgroups I have subscribed to, like ~movies.action or ~movies.comedy. Now, in the sidebar I would be able to see a list of all the subgroups that are under ~movies. From there I could click and browse ~movies.horror and subscribe if I want to. In ~movies.horror I would also see all the other subgroups that fall under that, like ~movies.horror.splatter, etc.

    So in essence the front page and each group respectively will aggregate posts from all of the subgroups that the user has subscribed to in a tree-like hierarchy.

    5 votes
  9. seb
    Link
    For each node in the topic tree, each user has an opinion - subscribed, neutral, or muted. A new user starts out with defaults defined recursively by the moderators of each topic. So the...

    For each node in the topic tree, each user has an opinion - subscribed, neutral, or muted. A new user starts out with defaults defined recursively by the moderators of each topic. So the moderators of books will probably just leave you neutral on all subtopics. The moderators of ~tildes will have you subscribed to ~tildes.official, while ~tildes.dev will be muted.

    The posts that you see listed when viewing a given topic must have been posted to that top-level topic or one of its children. When you look at a given topic, you are asking tildes to show you a view of the hottest posts at this level or lower. You can always drill down to show a narrower and narrower scope of postings.

    For a given view, a list of posts with scores is returned recursively from each of the subtopics. Each topic has an implicit subtopic, call it "top", that contains all of the posts made directly to the view-level topic. All of these postings are arranged into a flat pool, and their scores are scaled based on the total number of subscribers to the subtopic they were posted to. (Thus, if something gets 300 votes in ~books.scifi.asimov which has 1000 subscribers, this is valued more than 300 votes in ~books.scifi.top which has 10,000. It may be desirable for this to be a non-linear effect). The posts with the highest weighted score make up what you see when you visit a certain topic.

    Your subscriptions are saying "I am interested in this topic - if there is something hot going on in here, bubble it up to its parent views more readily." This doesn't mean you always want to see posts from this topic, but you are disproportionately interested in it compared to its neighbor topics. If you subscribe to ~books.scifi, you are explicitly favoring content from ~books.scifi.top and ~books.scifi.asimov, (in equal measure) when you visit ~books. If you are looking at your front page ~, then the ~books content that you see there will be preferentially scifi.

    Your mutes are saying "Don't show me this topic unless something truly extraordinary is happening there". I don't want to hear about politics news, but if World War 3 is literally starting, I'll make an exception. A muted topic and its subtopics get a large negative weight added to them. If you mute ~books.scifi, then neither visiting ~books nor visiting ~ will show you scifi. If you explicitly visit ~books.scifi, of course, then you will see the posts as any other user would because there's nothing for them to lose out over, highly negative though they are.

    Neutral topics inherit negative weighting if their closest parent is also negative. If their closest parent is positive or also neutral, then they are neither upweighted nor downweighted.

    The result should be that you can shape the experience of each topic in a fine-grained way, with sane and intuitive defaults for how these preferences propagate down the topic tree. You can encourage certain types of content within a particular genre, you can silence particular content you don't care for, and you can whitelist particular content you do like inside of a topic you generally don't. Moderators can tailor the default experience at a topic / subtopic level so that obviously undesirable content is filtered out from day 0, while users can always twiddle with this as befits them.

    4 votes
  10. [5]
    dredmorbius
    Link
    I've made the case earlier for extant cataloguing schemes such as the Library of Congress Classification. There's another possible path. Libraries need cataloging schemes because books are...

    I've made the case earlier for extant cataloguing schemes such as the Library of Congress Classification. There's another possible path.

    Libraries need cataloging schemes because books are physical: they can exist in only one place, and no two items can share that space. Abstract digital information, or at least the pointers we utilise to access it, is different.

    Combining several of my interests, one view of identity is that it is a search returning a single item. That is, identity is search.

    From a classification and groups perspective, this might allow us to have, rather than a hierarchical group index, one with a more loosely-structured nature. There are, for example, numerous elements which might have some specific localisation; ~news.us and ~news.au, say, but also ~history.us, or ~biology.au, or ~football.fr.2018. Should the order of specification even matter? Why not ~2018.football.fr? Or ~sport.fr.2018.football.

    There's the question of how flexible to make this, and at what point @Deimos throws up his hands and asks "what have I got myself into?" What's meaningful flexibility, what's excessively complicated, and what arbitrary lines are drawn for pragmatic, utilitarian, and usability reasons. All classifications tend toward some level of controlled vocabulary and judgementcalls. The map is a guide to the territory, not the terrain itself.

    3 votes
    1. [4]
      Deimos
      Link Parent
      @Amarok has been advocating the "any order of the group 'elements' is the same" handling as well. I'm not fully convinced of it (or sure how feasible it is to implement), but I think it's really...

      @Amarok has been advocating the "any order of the group 'elements' is the same" handling as well. I'm not fully convinced of it (or sure how feasible it is to implement), but I think it's really interesting in some cases. For example, some people have pointed out that it doesn't seem ideal to have groups like ~tv.scifi, ~movies.scifi, and ~books.scifi because then you're kind of splitting up "the sci-fi community" by medium. But if those are actually all the same as ~scifi.[tv/movies/books], and you could get to them all from ~scifi, well... that's definitely interesting, anyway.

      6 votes
      1. [2]
        MetArtScroll
        Link Parent
        This would basically mean that there is little, if any, difference between groups and tags. Then there is the ownership/moderation problem (who will ultimately set and enforce the rules of a...

        This would basically mean that there is little, if any, difference between groups and tags.

        Then there is the ownership/moderation problem (who will ultimately set and enforce the rules of a books+sci-fi group?) DAG solves the “element order does not matter” quite well where required as in this sci-fi example, but there are cases where it is not required (~tildes.official vs *~official.tildes vs any other future ‘official’ subgroups).

        IMHO, the main difference between a tag and a group is that groups (may) have specific identity (including their own moderators and styles).

        5 votes
        1. dredmorbius
          Link Parent
          That somewhat depends. If the groups belong to a limited vocabulary, and there is a finite set of top-level groups to which a post must belong, there's a significant reduction. My notion of...

          That somewhat depends. If the groups belong to a limited vocabulary, and there is a finite set of top-level groups to which a post must belong, there's a significant reduction.

          My notion of search-as-identity comes from a system I'm working out I call DocFS, effectively providing filesystem semantics for document resources. A key realisation was that there need not be a single path tto any one resource, but that there could instead be multiple, and those might have specific components: author, title, date, subject, publisher, dates (writing, publishing, printing, translation, acquisition, access...), index code (LCCN, OCLC, ISBN, DOI, ...), etc.

          Any search which ressults in a single entity is an identity. Searches resulting in small sets (say, 1-10 items) are useful. As that count increases (100, 1,000, 1,000,000, ...), less so.

          A key concept in privacy is that you can identify any human on Earth (one of 7 and some billions) unambiguously with 33 distinct bits of informaton. For the 140 million books ever published, that becomes 28 bits.

          Online fora see ... more activity. Reddit has 2.8 million comments posted daily. Approaching 1 billion/yr.

          Related: See the Dublin Core metadata proposal: http://dublincore.org

          3 votes
      2. dredmorbius
        Link Parent
        I don't (necessarily) believe in or agree with everything I say. It's an intriguing notion, though. A mess figuring out the top-level presentation though.

        I don't (necessarily) believe in or agree with everything I say.

        It's an intriguing notion, though. A mess figuring out the top-level presentation though.

        4 votes
  11. [2]
    acr
    Link
    Out of curiosity, why aren't you just going to keep posting this kind of stuff in ~tildes.official and just tag it dev or development?

    Out of curiosity, why aren't you just going to keep posting this kind of stuff in ~tildes.official and just tag it dev or development?

    1 vote
    1. DrStone
      Link Parent
      I get the impression that ~tildes.dev will be a two-way (new posts by both users and admins) group for development discussion once Tildes is open sourced. The ~tildes.official would remain as it...

      I get the impression that ~tildes.dev will be a two-way (new posts by both users and admins) group for development discussion once Tildes is open sourced. The ~tildes.official would remain as it currently is, a one way (new posts by admins only) group for general Tildes announcements, official requests for feedback from the community at large, etc.

      7 votes
  12. SourceContribute
    Link
    If you go down the route of groups and hierarchies, you'll start to go in the direction of the old web directories and USENET groups... So: how many layers of groups are possible? why not provide...

    If you go down the route of groups and hierarchies, you'll start to go in the direction of the old web directories and USENET groups...

    So:

    1. how many layers of groups are possible?
    2. why not provide custom group messages or links to other groups? ~tildes-dev can thus have a link to ~tildes somewhere in the group description and with tagging, any filtering can be taken care of already?
    1 vote
  13. JustABanana
    Link
    I just wanted to mention that there a search function for groups is necessary. If I want to see tildes group for let's say overwatch do I go to ~games.overwatch, ~games.fps.overwatch or just to...

    I just wanted to mention that there a search function for groups is necessary. If I want to see tildes group for let's say overwatch do I go to ~games.overwatch, ~games.fps.overwatch or just to ~overwatch? A simple search function would solve this issue.

    I think that it should be manual tagged whether sub groups show up in the main group. Also if ~tildes.dev is set not to show up on ~tildes but I'm subscribed to ~tildes.dev I should see posts from ~tildes.dev on ~tildes.

    1 vote
  14. [3]
    vektor
    Link
    Tangentially related question and a semi-necro on top, but do you plan to consider the set of top-level tildes as children of all, logically? I.e. can I expect my front page to behave the same way...

    Tangentially related question and a semi-necro on top, but do you plan to consider the set of top-level tildes as children of all, logically? I.e. can I expect my front page to behave the same way wrt ~parent as ~parent behaves wrt. ~parent.child?

    1 vote
    1. [2]
      Deimos
      Link Parent
      I'm not specifically doing that, but I think it should end up working the same way. Is there some behavior in particular that you're wondering about?

      I'm not specifically doing that, but I think it should end up working the same way. Is there some behavior in particular that you're wondering about?

      2 votes
      1. vektor
        Link Parent
        Nothing in particular, just figuring it would be more intuitive if things behave cohesively. Easier to reason about as a user.

        Nothing in particular, just figuring it would be more intuitive if things behave cohesively. Easier to reason about as a user.

        2 votes