Tim Berners-Lee
Date: 2021, last change: $Date: 2024/02/16 13:03:01 $
Status: personal view only. Editing status: first draft.

Up to Design Issues


Feeds


Feeds of various sorts have been a feature since you could first subscribe to blogs using various forms of RSS. Let's call a feed a sequence of published things such that you can subscribe to, with in some cases a mechanism to inform you when the is more added to it. So a feed by itself is a one-way thing with no feedback.

While blog feeds were the rage at one point, podcasts took over the limelight with the eponymous iPod, and now it seems people happy move in between, and sometimes convert between, text, audio and video blogs, but fitness session and photo streams so not play in the same space.

Here is is a very rough summary of some existing feeds in 2021, and somethings which don't have feeds.

Medium Post format Dominant platform Response actions
Text blog HTML -- Blog comments
Photo JPEG Instagram Like, Comment
Audio podcast MP3 -- --
Video podcast MP4? YouTube Comment
Movie IMDB-RDF Netflix, Green Tomatoes > Media Kraken Rating (GT)
Book LoC RDF? Amazon 5 Star rating
Fitness GPX Strava, Fitbit etc Kudos, comment

Strava and Instagram, as closed platforms, manage the identity of their users and their feeds, in each case one user per feed, with the access control of who can see what, and social actions like likes/kudos and comments on a post. In each case positive feedback can be private or public.

Activity Streams

"Little "a" activity streams : are a UI paradigm for displaying recent activity within a context. Activities are typically displayed in reverse chronological order and consist of relatively simple statements such as "John uploaded a new photo" or "12 people liked Sally's post"."" -- the AS wiki

Activity Steams activities are quite broad, not just publishing something. From the OWL ontology

  as:Activity a owl:Class ;
    rdfs:label "Activity"@en ;
    rdfs:subClassOf as:Object ;
    rdfs:comment "An Object representing some form of Action that has been taken"@en .

And there are 22 subclasses defined: Accept, IntransitiveActivity, Add, Announce, IntransitiveActivity, Create, Delete, Dislike, Flag, Follow, Ignore, Join, Leave, Like, View, Listen, Read, Move, Offer, Reject, Remove, Undo, Update. This reminds one of social Actions which have ben pulled out in scehma.org, with subclasses AchieveAction AssessAction, ConsumeAction, ControlAction, CreateAction, FindAction, InteractAction, MoveAction, OrganizeAction, PlayAction, SearchAction, SeekToAction, SolveMathAction, TradeAction, TransferAction, and UpdateAction

Gihub feed wold maybe have things like requested review, started review, completed review, approved. In general, any collaborative system in which the shared state changes form time to time, like for example an issue tracker or action lst, then those state-based systems cold well be deemed to create Activity Stream events whenever that state changes.

By agreeing on common interoperable representation and workflows for social actions, the Solid world can allow the same smooth user experience no matter what it it they are reactibg to --liking, and so on.

The solid mantra that "you should be able to anything with anything" clearly suggests here that whatever that thing is, a person out to be able to record their reaction, and so on.

Scope of social reaction

Clearly the scope of a social reaction, whether it public or personal and confidential or shared with different groups, different communities, is key. With Instagram and Strava each person has one group of followers, so a choice may be not sharing, sharing with followers, or making something completely public. In a Solid world, where a person has many related groups of different sizes, and can be a member of different communities for different reasons, making sure the reaction has the right scope is very important.

Possible harmful consequences

There is research, and common experience, that suggests that social reaction systems like these can lead to harmful unintended consequences, or harmful processes can be set up, deliberately or subconsciously. Examples are people's unhealthy preoccupation with the public reactions to their posts, or bullying comments, and so on. A Weboundation report discusses, for example the problem of Online Gender-based Voilence. So any new systems we design should involve investigation and modeling of these things, and where it is possible, explicit design to avoid harm. This is beyond level of this article.

Sets of Feeds

If you want to use, in the Solid tradition, many different feed-consuming apps with same set of subscriptions, then you need interop at that level: the set of feeds I subscribe to. The NetNewsWire app will export is list of subscriptions in OPML like:
      <?xml version="1.0" encoding="UTF-8"?>
      <!-- OPML generated by NetNewsWire -->
      <opml version="1.1">
        <head>
                <title>Subscriptions-OnMyMac.opml</title>
        </head>
      <body>
      <outline text="ongoing by Tim Bray"
          title="ongoing by Tim Bray"
          description="" type="rss"
          version="RSS"
          htmlUrl=""
          xmlUrl="http://www.tbray.org/ongoing/ongoing.atom"/>
        </outline>
        </body>
      </opml>
    

Relatively recently --- "NetNewsWire 6 for iOS — which includes new features iCloud syncing, home screen widgets, and a bunch more — was submitted to App Store review today. The team is super-psyched to get this release shipping!"

Self-hosted feed set sync

NetNewsWire uses a number of protocols to sync your set of RSS feeds across devices

FreshRSS looks interesting

FreshRSS can manage +100k articles without complaining. FreshRSS works on mobile Read your RSS feeds on your mobile without requiring any third-party application. Self hostable: Your data is yours! Host your aggregator and do not depend on anyone.

Discovering feeds

You hear often "Get this from X or Y or wherever you get your podcasts". There is an assumption that the various platforms have more or less organized a list of all the podcasts by name. This works maybe for the famous ones but clearly doesn't scale is we encourage everyone to have a feed.

You can find feeds and subscribe to them by following links. Links from other posts in other feeds, links send in email, links in the minutes of a meeting, and so on. The link you get may be to the feed itself, or it may be to a particular post, in which case you can find the feed.

The global system need to provide both serendipity, when you come across new resources as a surprising while not looking for them, but also the ability to track down feed which you have heard about or you imagine might exist. The algorithms we are talking about here are those which in a Solid world, will determine which information people come across. In a present world with much misinformation and much disinformation, they are important.

Protocols vs Apps

"This podcast was generated by Audm. Get the Audm app to follow this, and other things from ..." No, don't get the audm App, or whatever App they have made for each podcast. Use your generic podcast reader, like Overcast, or the default one on your devce. Keep the RSS protocol alive! Allow yourself to cusomize the way you listen to things, and keep track of what you have read or listened to in one place.

This is an important issue with feeds. If the feed providers have made a web site or an app with richer experience than he feed, would it not be great to be able to slip between the different versions while keeping track of what you have read, which place you had read it?

Syncronized feeds

A few years ago I read Neal Stephensons's novel Termination Shock on both audio and written text versions at once, skipping between the formats quite easily. That is really the way we should be consuming media in many cases: switching from sound to text when another person is around, back to sound when we are driving, and so on. it is about efficiency, and about acccessibility.

Feeds and Feedback

Originally that was the title of this post, as I was thinking of talking about protcols like Linkback and Pingback to record when a link is made to a post --typically when somebody makes a reference to it in their oen blog. But that will have to wait for another time.


References

Up to Design Issues

Tim BL