2/
A Fediverse Labeler would output a separate ActivityStreams "Profile" Object for each thing it wants to label.
Each of these should be at a separate URL.
1/
This is how a Fediverse Labeler could work.
In particular, This is how a Fediverse Labeler could be represented as ActivityPub / ActivityStreams / JSON-LD data.
I'm looking for your opinions from the developers of the fediverse.
A common HTML web page can contain related links via the <link>
tag. I would like to do the same for Activity Streams objects, for example:
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://writings.hongminhee.org/ap/2024/12/a-year-with-the-fediverse.json",
"type": "Article",
"name": "A year with the fediverse",
"content": "2024 was truly a year where I was deeply immersed in the fediverse. …",
"url": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/",
"attachment": [
{
"type": "Link",
"rel": "alternate",
"hreflang": "ko",
"href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ko-hang-kr.html",
"mediaType": "text/html"
},
{
"type": "Link",
"rel": "alternate",
"hreflang": "ja",
"href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ja.html",
"mediaType": "text/html"
}
]
}
Do you think this makes sense, and would it be appropriate to put Link
objects in the attachment
?
is this the weirdest code I've ever written?
(spoiler alert: no)
It's an inverted-tree disinheritance scheme to implement the object-oriented #ActivityStreams in #rustLang!
(or since computer scientists are very confused about how trees work, this is just a tree)
https://codeberg.org/Astatide/satyr/src/branch/main/crates/activity-streams
independent from any language, the checklist is
read the specifications in the correct order :)
This means you can read the protocol spec. first to get an overview https://www.w3.org/TR/activitypub/
but all of these W3C recommendations have "Normative References" and you need to understand them from the bottom up first, roughly the stack is
1) https (you can use other transport mechanisms but this is common)
2) Linked Data
3) JSON-LD (the underlying Linked Data format)
https://www.w3.org/TR/json-ld/
4) The definition of the Vocabulary
https://www.w3.org/TR/activitystreams-core/
5) The Vocabulary
https://www.w3.org/TR/activitystreams-vocabulary
6) The protocol
https://www.w3.org/TR/activitypub/
[and apart from it natural language values for multilanguage and rel links and e.g. webfinger for mastodon]
Then you can go on with nedjos checklist
https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479
#activitypub #activitystreams #dev
PS
my language is JS / deno
On that note, I think the need for a community owned, distributed search engine is higher than ever. Generative AI is going to continue filling Google, Bing, etc, with trash and it's pretty much a goal of any fascist or authoritarian regime to control information. One way you can do that is just totally sending the signal to noise ratio down to 0.
I believe we can use #activityPub and #activityStreams as a basis for a distributed search engine. Human curation of data, strict integrity measures, opt-in federation and auditing can help keep relevant, genuine information in and bad actors out. I really think we need to do this.
I am working on it and have various pieces in place but it is admittedly slow going since I am also working on other things.
#search #searchEngines #knowledgePreservation #tech
Now that #ActivityPub #ActivityStreams starts to get real traction, the infighting and ad hominem attacks start. Le sigh. Why, people? Why?
#activitypub #activitystreams are open standards. Loads of code to implement and interoperate is readily available as open source. If they really want to implement #activitypub they can just do it.