Every time I take a stab at building for the Fediverse, I'm immediately drained for motivation by the ambiguities and contradictions of the AP/AS2 family of specs.
Oh, you want to do some validation of the actor property of activities posted to the Outbox? Good luck. It can have any number of values, and can even (per examples in the AS2 spec) mention actors from different instances.
Threads has added achievement badges during special events. I wondered if the fediverse has similar and sure enough there are ideas around this! I know Sharkey has achievements but not sure they are federated.
As expected, when an instance attempts to respond to a Note with a larger audience than the note replied to, Mastodon will silently drop it from processing.
I don't actually know if this is codified anywhere in #ActivityPub or #ActivityStreams spec, but looking into it now. 💪
Edit: Might be it actually is processed, but doesn't link up to the more-restrictive parent. Also good I think. Not quite sure how I'd handle this in #nodebb ...
@devnull Pro tip: for testing against Mastodon (or really AP in general), you could try to run the activitypub.academy software, which shows the activities it receives (and maybe sends?) in a log. I would have recommended activitypub.academy itself but it seems to be down.
@blake thanks! I do use it actually, although as you say, it's a little fragile at times. I tried using it to send stuff back and forth and the entire thing went down momentarily 🫤
Also activitypub.academy is like Mastodon but isn't quite... might be a fork of an earlier version? There were some minor differences that would've caused headaches if I didn't test it live, so to say... 😅
It is at this point that I noticed a lack of native supported for IRI in JVM languages. "Up the spec chain" situation was spotty; I found a couple of libs implementing parts of it. But lacking a standard representation of basic concept such as links seemed troublesome.
Then I had an epiphany! #Mastodon itself has an official, native Android client. I could check how it's handled there!
I opened the project, looked around, & to my surprise I found nothing. It turns out that Mastodon in fact only implements half of the ActivityPub spec. Client side is an arbitrary HTTP API.
At that point I just gave up. If the most popular app on the network can't implement more than half of the spec it all seemed kinda overwhelming & pointless.
i'll say more about what this is in the morning, but anyway here's a #LinkML transcription of #ActivityStreams that will also get the implicit definition of an Actor in #ActivityPub later, along with all the other fun stuff that brings like generic dataclasses and pydantic models for programming with, sql, graphql, json schema... yno all the formats.
@linkml@jonny I would to see something like bioportal for schemas, it could include both native linkml and imported schemas. Fairsharing has the potential to be this but I don’t think it’s in their plans
@Cmungall with a little cli interface magic one could integrate this s.t. one could publish a linkml schema so that some standard prefix like registry.linkml.io/schemaname dereferenced to eg. the schema in a git repository, so if an absolute prefix url wasn't set in the schema the generators assume that standard one... idk could be fun to experiment with until it's time to have p2p schema world without the constraints of expensive DNS space :). i'll PR into this once this schema is finished, sort of 4 steps removed for me atm, thx for linking!
"There exists at least one potential collection that we do not impose strict ordering based on reverse chronology on."
Good on the spec to clarify that.
I think, from the conversation that led to it being there, that it was supposed to say "OrderedCollections other than inbox outbox etc do not need to adhere to this rule," but… that's not what it says.
What I really want is something more akin to the Wordpress plugin. i.e. a full integration with the protocol. A blog author that can be followed by a Mastodon user etc.
I want a fediverse account/instance that posts my blog posts to its followers and a blog theme that renders the replies and likes in a good looking way that lets people comment (in an easy a fashion as possible) using their fediverse accounts. Bonus points if it acts a proper ActivityPub citizen with "author@blog.org" actors.
Some weeks ago I submitedd a pull request to the https://github.com/w3c/activitystream repository regarding the OWL representation of the ActivityStream vocabulary. As discussed in the last Issue Triage, these changes need reviews from Semantic Web expert. They are just few subclass assertions which aim to capture the activity subclasses definitions reported in
I'm trying to make sense of how audience is supposed to work in #ActivityPub and it feels like something is missing in the specification here both for AP and #ActivityStreams.
The documentation from AP:
Never uses audience targeting even in its audience targeting example.
Uses it almost identically to "to" or "cc"
On the part of AS it gets somewhat alluded to in 5.1.1, but not in the main section actually titled "Audience Targeting" (5.1) and says very little about it, just one example
This is irksome, because a) I already have to/cc b) I don't want the to/cc behavior when I specify an audience c) nothing specifies the behavior I do want, which is the behavior in the aforementioned ticket d) I can't tell how exactly audience is supposed to be used in #ActivityPub or how implementations may have interpreted all of the above.
But it seems like knowing this would be important
When people talk about the challenges of interoperability here, this is the sort of thing they mean
bto, bcc to not exist or be broadly disabled in AP (edit, to clarify: I want to and cc to take the meaning of bto and bcc in general; the functionality is useful, but in a social network it should be the default behavior and we have other mechanisms to tag people in)
I'm developing an increasing suspicion that I have a different definition of what makes a protocol difficult to implement than other people? Along with what partial, incremental progress means here?
A 1.1: Per OWASP API6:2019: There are a lot of things that can go sideways very easily if you just openly accept values from the internet and write them into a database and, even to the extent this isn't a problem with the way it is written today, the extension mechanism means it might always become an issue in the future.