Ok no I think the simpler way to do #ZenodoSocial is actually to just like generalize the types of messages you can send using #LinkedData / #JSONLD. I think one might call these #UserSchemas.
re: https://neuromatch.social/@jonny/110001265968620084
Make a schema that defines a type of message, eg with JSON Schema in RDF
Make an API endpoint that lets logged in accounts submit schema, as well as an {id}
to use for a URL. if it is not already taken, that schema now can be found at instance.domain/schema/{id}
and used in JSON-LD as a @context
Add a field to the API endpoints for posting statuses and fetching the home timeline that allows you to specify the schema that you're using when you post (ideally either local or by any resolvable URI, tho dealing with generalizable RDF parsing makes me gulp so maybe just start with JSON-LD schema). Don't deliver user schema messages to instances that don't support them or base masto accounts that have not specifically subscribed to them - see below. Alternatively just post JSON-LD from a base masto account and specify the type within the object.
Add a field to the instance metadata that specifies that you support user schema.
Backwards compatibility: generally, from a base masto instance one would make a designated alt that posts/receives user schema messages. Base masto accounts can specify an alt with profile metadata fields. User schema instances and other clients that use user schema know to resolve those fields and follow/query them. To follow user schema posts from a base masto account, one sends a structured DM to indicate that user schema posts should be DMed to it. clients know to expand threads to capture JSON-LD split across multiple posts
Make integrations with arbitrary other software that lets you swap structured data on your existing social infrastructure????? my first trivial example being to swap highlights and annotations in Zenodo, but that might be enough to pry more generalized linked data handling into masto without making a true plugin interface or completely rewriting it?????
#zenodosocial #linkeddata #jsonld #userschemas #mastohacks #mastodev
I wonder if you could hack masto so you have either multiple outboxes, or be able to handle multiple types of messages in the outbox - eg. I want to make a #ZenodoSocial highlighting extension that lets you post and subscribe to other people's highlights, but I wouldn't want those to show up as posts in the feed.....
#MastoHacks #MastoDev
#zenodosocial #mastohacks #mastodev