Session: Linked Data content in ActivityPub (and anything else semantic)
/2023-09/session/6-e/
Convener: Jim White (@jimwhite@mas.to)
Participants who chose to record their names here:
-
Bob Wyman (@bobwyman@mastodon.social)
-
Les Orchard (@lmorchard@mozilla.social)
-
Jeremiah Lee (@Jeremiah@alpaca.gold)
-
Stéphan Kochen (@kosinus@hachyderm.io)
-
Ronen Tamari (@ronent@mastodon.social)
-
Lisa D
Notes
What is Linked Data:
-
TimBL 2006: https://www.w3.org/DesignIssues/LinkedData.html
-
W3C Linked Data Platform: https://www.w3.org/TR/ldp/
-
Kaliya video explainers:
-
Embedding Linked Data in HTML https://www.w3.org/TR/annotation-html/
Applications of Linked Data
-
Identity
-
ActitivtyPub optionally (and controversially) supports Linked Data in its metadata
-
Nerds love sharing the hobbies and the related content.
-
See for example YouTube game and puzzler channels
-
Raveller for knitting
-
Is their a Mastodon server where hobbyists can use Linked Data (or semantic hashtags)?
-
Instagram hobby hashtags
-
-
Filtering ActivtyPub ActivityStreams based on content linked data selectors.
-
https://forum.solidproject.org/t/mixing-linked-data-and-text/6481/7
-
Linked Data in HTML Editors:
-
dokieli is a clientside editor for decentralised article publishing, annotations and social interactions.
-
Can run as single page web app (injected into HTML) or Chrome Extension. dokieli implements the W3C Web Annotation specifications. Wherever your article is published, readers can leave annotations and replies if they have their own personal datastore to save them to. If your article is published on a personal storage space, you can offer to store annotations and replies on their behalf, and enable anonymous responses too. All annotations and replies can be saved with a Creative Commons license. dokieli is also able to send and consume information from a profile’s outbox as per W3C ActivityPub.
-
author: https://csarven.ca/
-
-
Running SOLID Pods
-
https://github.com/CommunitySolidServer/CommunitySolidServer
-
https://github.com/assemblee-virtuelle/activitypods - ActivityPub meets SOLID Pods
Alternatives
-
WASM - running third-party models on your data with your own compute (similarly Docker) https://forum.solidproject.org/t/why-backend-for-frontend-for-solid-is-categorically-wrong/6673
-
fastly is one provider doing WASM: https://www.fastly.com/products/edge-compute
-
shopify is using WASM for extensions: https://shopify.engineering/shopify-webassembly
-
-
Vocata - https://codeberg.org/Vocata/vocata. +1 Vocata is a headless ActivtyPub server
Extra notes
By accident I took all these notes in the Session 1 notepad for Space E, rather than the Session 6 notepad, and didn’t notice until the session was over. – Lisa D
What is LinkedData, where is it used:
-
Yes LinkedData is used outside of the fediverse. It’s used in bio and other fields presumably with their own schemas.
-
It’s also deeply part of ActivityPub already
-
JSON-LD is hard to read, has lots of errata
-
Because LinkedData is part of AP, the approach to extending semanticly marked data is very straightforward
-
Castling (demo this morning) takes this approach but of course using a schema that’s unilateral
Where do people go to agree on new semantics?
- W3C is not always the right place
How do we get people using it /slash/ get it usable for people?
-
Applications for things like events, RSVPs, are interesting applications for activity streams
-
There’s a lot more than votes and polls
-
Places, events, – lots of objects ignored by Mastodon, so everybody else tends to ignore too
-
Users use the tools provided to them by the developer. So the tools need to have the affordances to add more structured content.
-
Are there any clients that would just let me add new things to LinkedData within the ActivityPub streams?
-
Reasoning for this question: because communities of hobbyists could start building their own extensions and sharing over the fediverse, if they could only add their own semantic terms
-
This might be partly solved by Dokeli - it’s just a client so it might not do the thing you want
-
It’s also partly addressed by Vocata - an activityPub server that implements an RDF store, so you can build anything you like on top of Vocater to do domain specific things
-
Somebody also pointed to hypothis.is - a 3rd party system that can sit completely outside the content and federation, and annotate stuff among a community that agrees to do so
Are there any servers that would preserve and transmit new semantic data? If my group of hobbyists around the Web agreed on a couple new tags, would the servers even allow us to share that?
-
No - most servers strip out the extensions they do not understand
-
Solid does support annotations ? However it’s pivoting from personal needs to corporate needs due to funding
-
“Backend for frontend for solid is a misnomer " -
-
Look at WASM-based approach - as the server already has your data, you can pump that into a WASM module and provide an API to insert items into a feed
-
This is the model Shopify used -
Is the user demand there?
-
We won’t build any of this (the developer community) if people don’t ask for it
-
“Nobody is asking for this” – Bob Wyman
-
Some things are really basic like events
-
The demand IS there! It’s shown in thousands of vertical silos. There are so many hobbyists and enthusiasts in niche communities, sharing semantic data about knitting patterns, art projects, writing projects,
-
Those who have the demand don’t know to ask for “semantic data in my activityPub feed”.
How do I get an activity pub personal server to work on this?
-
pointers to Solid/Inrupt were given
-
However, Since Solid is a triple store and uses Turtle, it fundamentally cannot be a quad store.
-
ALso everything in the pod needs to be addressable in some way, so you can’t host a pod on any system with a variable IP address.
-
ActivityPods may solve some of the problems that ActivityPub people have experienced with Solid
Do we need a component model for this?
- Components in the 80s and 90s allowed you to compose your experience from multiple options. In many ways the Web is a step backwards, where the clients are dumb and put the server in control of what shows, where, and to whom.
(the note taker does not understand why we’re talking about needing extensions, components, or extending Vocata when the semantic data could just BE in there.)
-
We can look at the server as a dumb agent that shuttles things around, and doesn’t understand all the data it is shuttling
-
We look to the client to build a chess application, or other specific domain , and include that information in the
-
We’re probably all in agreement that we don’t like the existing model where vertical silos in private enterprise are the caretakers of all the semantic data.