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.
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?
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.
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.
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.
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
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.
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.
As long as I can block specific subgroups from bubbling up, I'm okay with this.
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.
Nope. It's a good idea, but I can't take the credit for this.
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:
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.
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 fromrec.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.
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.
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.
The number of subgroups matters much less than the traffic within them.
I think the simplest approach is best, with a few small modifications:
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.
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
(strictly speaking, the first and the last option are special cases of the second one).
In addition, the following fine-tuning might be available
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)
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.
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.
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.
Don't sell yourself short! Considering how Picasso painted people, I think he'd be proud of your attempt here. ;)
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.
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.
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.
@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.
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).
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
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.
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?
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.
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:
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.
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?
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?
Nothing in particular, just figuring it would be more intuitive if things behave cohesively. Easier to reason about as a user.