ActivityPods: adding intelligence to Solid PODs with ActivityPub

Thanks @melvincarvalho , it’s very nice to share these background information on the history of Solid and ActivityPub ! :slight_smile:

In ActivityPods the WebID is the AS Actor. The resource is both a foaf:Person and a as:Person. And this URI is used for all WAC permissions.

(Side note: The WebID/ActivityPub actor is viewable by everyone, because that’s needed for ActivityPub to work correctly. However the contacts app creates the user’s profile on another ressource (with the class as:Profile and vcard:Individual), so that the user can choose with whom he wants to share private data like his real name, his picture, his address, etc.)

I agree both formats have advantages. Turtle is more readable by humans, but JSON-LD is way easier to process by machines (I’ve never used anything but JSON-LD on the frontend !). ActivityPods (and SemApps) handles both formats, except for ActivityPub collections which are currently only in JSON-LD. We can do that because we store the data in a triplestore (Jena Fuseki).

That’s exactly what the first frontend (to be released soon) does. When signing up or logging in, you choose your POD provider in a list. You can then:

  • View and modify your own POD’s data (events, contacts, etc)
  • View the data shared by other users (which have been cached on your own POD or that you can GET through a proxy)
  • Communicate with other users by sending messages through your ActivityPub outbox

In the end, the frontend only exchange with the user’s POD provider.
This first frontend handles only private events, but it’s indeed easy to imagine other frontends which could handle classifieds, photos sharing, all in a private-by-default perspective.

5 Likes