DIP Proposal: CollectionssteemCreated with Sketch.

sew-1232723_1280.jpg
(image from Pixabay)

This is a community proposal for the Development Incentive Program.

What are Collections?

Partway through Google+'s brief life cycle they introduced the idea of Collections. The basic concept is that people sometimes post on disparate topic areas but not everybody is interested in every topic, so Collections allow you to follow some of the things people post about without following everything. So, for example, imagine that someone has two main hobbies: bird watching and baking. They like to make posts about both of them. But now think about the people who might follow them: some people might be interested in everything the hobbyist posts, but some people might only be interested in bird posts but not recipes while others might care about recipes but not birds. But if the hobbyist can establish that they have two collections, "bird watching" and "baking", then people can pick and choose which topics to follow.

Basically, Collections are like high-level mutually-exclusive tags that people expect to use regularly, and the platform separates them out into separately followable or unfollowable streams. So you can follow everything a person posts but add exceptions for Collections you don't care about, or not fully follow a person but just individual Collections. Collections help solve the problem of "audience capture": if you think your followers started following you because you post a lot about Topic X then that can make you reluctant to post about Topic Y because you're not sure if the people that follow you would care about it. With Collections you can split off a new topic into it's own Collection and trust that if your followers aren't interested they can just unsubscribe from that particular Collection. It frees you up to post about topics that interest you without having to be as weighed-down by the expectations of "your audience". With the Steem platform this can be especially useful since things like DAPPS often post into their own categories (for example, I tend to post a daily microblog with my stepcount via the Actifit app, it wouldn't surprise me if some people saw those as annoying distractions if they followed me for updates about my coding projects or my thoughts about game design).

Isn't this just tags?

Yes and no. Tags are useful for identifying topic areas, but there's also a "social" aspect to them because different people can have different ideas about the best words to use. For example, I am interested in tabletop roleplaying games, and there are lots of ways you can say that. Some people might think "rpg" is the best tag, others might pluralize it to "rpgs". And some people might recognize that nowadays most people think of RPG as a type of video game and that we have to specify if we're talking about tabletop (even though tabletop RPGs came first), so they might say TTRPG or TTRPGs, or (as some of us settled on awhile back) tabletop-rpg. Since Collections are just about organizing your posts you don't have to worry about what tags other people think would be the best for them. It's also a way of intentionally putting particular posts in a topic silo, to differentiate them from generalized social media activity.

I think the implementation should be based off of "tag math"

Since Steem already has the idea of tags pretty deeply embedded, I think it would make the most sense for Collections to be implemented as a sort of "tag math": ANDs, ORs, and NOTs applied to tags. For example, I might have a Games collection that includes my posts with the tabletop-rpg and gamedesign tags but excludes my let's play videos with dtube tags. So the platform would have a way for me to specify the formula (which would presumably be posted to the blockchain with a custom_json operation), and for each formula I specify the platform can present as its own feed, like it currently does with "blog". There would need to be support added to the API code to do this kind of lookup (as well as in the logic that generates your feed on the platform), but "give me this but not that" logic is the sort of thing that databases are good at, so I think it ought to be possible. There would also need to be some sort of user-friendly UI for putting these together, since logical expressions might be familiar to people from a technical background but can seem strange or complicated to people who aren't familiar with them.

Probably don't need blockchain-level support

Even though the current "follow" functionality is done with a specific blockchain transaction, I suspect this feature could be implemented via custom_json operations and frontend conventions. As long as the frontend knows how to interpret the information we probably don't need new blockchain transactions or data fields on existing ones, so a hardfork probably wouldn't be necessary.

Helps the platform fit into the broader internet

The Steemit.com website can present each Collection to the world as a feed of posts (including via RSS feeds, as @remlaps talked about). Outsiders to the platform wouldn't need to understand the nuances of the various Communities here or the tag naming conventions that have evolved, you can just point them to a link to one of your Collections and say "Check out my posts about [Topic X] here". Making it psychologically easier to share content you've posted here on the broader internet can help with organic growth, and that's easier to do when you have something that doesn't need the extra baggage of caveats like "just ignore the posts about Y" or "the posting conventions changed when they added Communities, so...", you can just hand people a link that looks like a clean blog feed.

Sort:  

Good point! I had forgotten about Google+ collections, but now that you remind me, this makes sense. I like the idea of using boolean tag logic and custom_json to implement it. Especially if coupled with RSS distribution.

This post has been featured in the latest edition of Steem News...

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 65265.67
ETH 3326.63
USDT 1.00
SBD 2.63