box464, to threads
@box464@mastodon.social avatar

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.

https://activitybadges.org

bdrell, to random

People sharing with the Fediverse, reply here and tag Fediverse Threads please!

mjgardner,

@chris @chrismessina ’ current sharing does not yet translate a post’s hashtags into tag properties: https://www.w3.org/TR/activitystreams-vocabulary/#dfn-tag

hrefna, to random
@hrefna@hachyderm.io avatar

I'm not going to talk about the specifics of this request (https://fosstodon.org/@mo8it/112056453394255413) but just note a few things as they relate to protocols like ActivityPub:

  1. When we talk about "semantic meaning" this is exactly the sort of problem that we need to think about how we solve it. If I am searching for, or post, using "poly" it should be clear whether I am looking for "Polynesian" or "Polyamory". If I talk about rust it should be clear whether I am talking "Rust the movie" xor "rust lang"

1/

smallcircles,
@smallcircles@social.coop avatar

@hrefna

I gave a look into the spec, as I thought it was set up specifically mentioning subprotocols. I misremembered that, but it sorta kinda boils down to the same thing.

Reading the primer was interesting though. E.g. the layered architecture model of:

  • Base specification
  • Extensions
  • Format encodings
  • Protocol bindings

And also funny to find that Adobe once used in their event format (think now they use CloudEvents):

https://github.com/cloudevents/spec/blob/main/cloudevents/primer.md#adobe---io-events

devnull, to fediverse
@devnull@crag.social avatar

At the end of the day, if an implementor chooses to send everything as as:Note, that's their call, but more "correct" types should be used. Even as:Page is a step in the right direction as it is sufficient generic to encompass a lot.

Perhaps will send topics as as:OrderedCollection, because at its core, what is a topic but an ordered collection of posts/notes?

https://social.wake.st/@liaizon/111952041898129470

devnull,
@devnull@crag.social avatar

Obviously, every implementor supporting every type differently is a tall ask, but moving away from "everything as as:Note" to "as:Note, as:Article, and as:Page" is a small but important evolution in protocol interpretation.

devnull, to fediverse
@devnull@crag.social avatar

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 or 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 ...

devnull, to fediverse
@devnull@crag.social avatar

Finally figured out why posts weren't queryable via Mastodon, turns out it does Content-Type checking, and I was inadvertently breaking spec by sending in application/json when I should've been sending in "application/activity+json" or 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'

Latter doesn't play nicely with express, so using the former and all's well!

Full credit to @bouncepaw who gave me key to figuring it out! 🏅

Re: https://crag.social/@devnull/111858296718131764

devnull,
@devnull@crag.social avatar

@AltCode It's tough because there's no direct object type for a collection of Notes.

"as:Article" is like a longer note, and "as:Page" is a generic web page.

"OrderedCollection" would fit but is a stricter sub-type of as:Object and I'm honestly not certain what other implementors would do if I served that up.

Its omission in FEP 1b12 might be unintentional, or it may be purposeful. Starting a separate thread about this...

Edent, to fediverse
@Edent@mastodon.social avatar

🆕 blog! “Rebuilding FourSquare for ActivityPub using OpenStreetMap”

I used to like the original FourSquare. The "mayor" stuff was a bit silly, and my friends never left that many reviews, but I loved being able to signal to my friends "I am at this cool museum" or "We're at this pub if you want to meet" or "Spendi…

👀 Read more: https://shkspr.mobi/blog/2024/01/rebuilding-foursquare-for-activitypub-using-openstreetmap/

Edent, (edited )
@Edent@mastodon.social avatar

Hmmm. Either I don't understand the spec, or Mastodon doesn't.

According to:
https://www.w3.org/TR/activitystreams-core/#defaultlangcontext

I should be able to specify the language in the @ context. Might have to go for the slightly more verbose contentMap instead.

antolius, to fediverse

So, I looked into ActivityPub the other day. I wanted to play around with it, maybe make some small project.

It quickly turned into a rabbit hole of specifications with -LD →

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.

jacobydave, to random
@jacobydave@mastodon.xyz avatar

Anyone else wish you could just use markdown in the fediverse?

mjgardner,

@jacobydave What @KevinMarks means is that the spec for content exchanged via across the supports payloads (https://www.w3.org/TR/activitystreams-vocabulary/#dfn-content) and will render them, but the latter only takes strings when posting (https://docs.joinmastodon.org/methods/statuses/#form-data-parameters).

As fedipedants like to point out, fediverse > Mastodon

hrefna, (edited ) to random
@hrefna@hachyderm.io avatar

As I read through the discussions around the creation of and revisions around #RDF three things are clear in my eye.

  1. Usability was not the primary concern. It seems to have been widely believed that Other Tools™ would fill this gap and that RDF should focus first on a kind of expressibility.

  2. Those Other Tools™ never materialized.

  3. Most who use RDF-derived tooling seem to assume either that it gives them those tools or that Others™ will build them on top of their solution as well

hrefna,
@hrefna@hachyderm.io avatar

"But the others are legal / / "

Yes, they are, and I'm not even advocating changing any of them (except AS2, separate debate), what I'm saying instead is that maybe part of your protocol is that it needs to actually constrain the lexical forms, not just be defined in terms of semantics, and also constrain the semantics, not just aim to capture "that which is expressible."

You can only kick these decisions down the road so many times.

jonny, to fediverse
@jonny@neuromatch.social avatar

i'll say more about what this is in the morning, but anyway here's a transcription of that will also get the implicit definition of an Actor in 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.

https://github.com/p2p-ld/linkml-activitypub

jonny, to random
@jonny@neuromatch.social avatar
pieceofthepie, to fediverse
@pieceofthepie@n8e.dev avatar

Is anyone aware of any OSS project that enables Disqus like commenting on static file blogs powered by ActivityPub?

I've found https://github.com/oom-components/mastodon-comments and https://github.com/dpecos/mastodon-comments which are really close to what I envision.

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.

aaronwinstonsmith, to fediverse
@aaronwinstonsmith@mastodon.bida.im avatar

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

https://www.w3.org/TR/activitystreams-vocabulary/#activity-types

So I encourage semantic web folks, such as for example @dagoneye ;), to take a look to my pull request here

https://github.com/w3c/activitystreams/pull/562

and eventually to put comments here

https://github.com/w3c/activitystreams/pull/562

Thanks all and please share and mention other semantic web enthusiast!

hrefna, to random
@hrefna@hachyderm.io avatar

has an Arrive object, but no Depart object. Leave does not specify that it is targeting a location.

I guess you can check in any time you like, but you can never leave?

bad dum tss

hrefna, to fediverse
@hrefna@hachyderm.io avatar

Actually, it might be useful (to me) to talk through part of my problem with the flexibility.

It goes like this. For our purposes here I'll focus on two fields that can be on any object:

  • generator, which is the entity that created the object
  • content, which is the content.

The Server receives a Note object. It would like to store the content in its database.

In the database, without considering the protocol, used the format:

content VARCHAR NOT NULL

UTF-8 encoding

1/

hrefna,
@hrefna@hachyderm.io avatar

But Object#content is not a functional field in .

So there can be multiple values.

99+% of the messages I receive are going to have a single value though

So what do I do?

Well. First, I need a custom deserializer so that I can get a List of strings or a single string. This adds resource consumption and time to parsing

Now, do I change my database schema to have an array there? To require a join?

Oh wait I need to update my user interface as well to allow for multiple…

2/

hrefna, to fediverse
@hrefna@hachyderm.io avatar

I'm trying to make sense of how audience is supposed to work in and it feels like something is missing in the specification here both for AP and .

The documentation from AP:

  1. Never uses audience targeting even in its audience targeting example.
  2. 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

7.1.1 Outbox Delivery Requirements for Server to Server When objects are received in the outbox (for servers which support both Client to Server interactions and Server to Server Interactions), the server MUST target and deliver to: The to, bto, cc, bcc or audience fields if their values are individuals or Collections owned by the actor. These fields will have been populated appropriately by the client which posted the Activity to the outbox.
Activities are rarely isolated events. Often, multiple individual activities will be performed around a similar context or audience. For instance, a collaborators working on a shared project might perform multiple related activities in the process of achieving some goal. Such activities can be logically grouped together using the context property, and scoped to a particular audience using the audience property.
audience, Notes: Identifies one or more entities that represent the total population of entities for which the object can considered to be relevant.

hrefna,
@hrefna@hachyderm.io avatar

@steve let me know about https://github.com/w3c/activitystreams/issues/300 which shows me the feature I really want:

"The scope indicates that the audience for the note is only members of the Organization."

But it seems likely that something got lost in the shuffle, because the final says that it is the audience it might relevant to (which is not the same thing) and gives only a peripheral example contrasting its use with context, and not mentioning it otherwise, and in AP it is the same as to/cc.

hrefna,
@hrefna@hachyderm.io avatar

In actuality, I'm not even sure how you would use it in the way that it looks in the one example in , where it exists without any sort of attached unique identifier.

The example is descriptive, but not usable as written to infer behavior or meaning. I don't even have a good way to talk about who might be in said group: which actors or objects might be members?

I could use a collection, maybe, but what if I want to scope it to members of a server?

There's no way to define this

hrefna, (edited ) to fediverse
@hrefna@hachyderm.io avatar

I sort of want:

  • To/cc to control where the message gets sent.
  • Audience to control who can see the message.
  • 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)

hrefna, to fediverse
@hrefna@hachyderm.io avatar

A theory on protocols.

A conversation from the other day got me thinking. What I look for in protocols is similar to what I look for in technical writing.

I want the protocol to be clear. I want to be able to understand what is being sent to me and know what I am looking at.

I want the protocol to be concise in that I want it to only have what I need.

I want the protocol to be precise in that I can easily tell what I am not looking at.

1/

hrefna,
@hrefna@hachyderm.io avatar

I think overall a lot of -inspired protocols struggle with (3) in particular.

They are reasonably good at saying "this is that." They are very bad at giving me clues that "this is not that" without pulling them apart element at a time.

For instance, if I take an Article object in AP I can easily see what it is (an article, so a multiparagraph work).

It is a lot harder for me to see what it is not.

Is it also an image? An actor? An icon?

4/

hrefna, to random
@hrefna@hachyderm.io avatar
hrefna, to random
@hrefna@hachyderm.io avatar

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?

https://hachyderm.io/@hrefna/111502056897571315

#ActivityPub #ActivityStreams #JsonLD

hrefna, (edited ) to random
@hrefna@hachyderm.io avatar

Okay, thinking about how to represent a in some more, a few thoughts:

Q1: Why validate incoming values?

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.

1/

hrefna, to random
@hrefna@hachyderm.io avatar

On the note of

I really don't even want to think about what the schema definitions for all of weirdness looks like… -.-

I've seen some stabs at it, but most of them focused on the mastodon API and were incomplete.

That is a problem for Future Hrefna™ to solve, I think.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • kavyap
  • cisconetworking
  • thenastyranch
  • magazineikmin
  • hgfsjryuu7
  • DreamBathrooms
  • InstantRegret
  • Youngstown
  • slotface
  • PowerRangers
  • Durango
  • everett
  • rosin
  • normalnudes
  • vwfavf
  • modclub
  • ethstaker
  • khanakhh
  • tacticalgear
  • ngwrru68w68
  • osvaldo12
  • mdbf
  • tester
  • cubers
  • Leos
  • GTA5RPClips
  • provamag3
  • All magazines