w3c / activitypub

http://w3c.github.io/activitypub/
Other
1.2k stars 77 forks source link

Is ActivityStreams an "upstream vocabulary" of ActivityPub? #369

Closed aschrijver closed 1 year ago

aschrijver commented 1 year ago

The repo has an activitypub-context.jsonld that includes some (not all, e.g. missing streams) of the AP properties that aren't mentioned in the ActivityStreams Vocab spec (the text document), such as ProxyURL. The ActivityPub recommendation also in par. Actor Objects refers to AS as an "upstream vocabulary".

Yet, the activitystreams.jsonld does contain all these AP properties as well. This is confusing. There's a sort of mix'n match between specs.

Wouldn't it be more accurate to state that ActivityStreams is THE vocabulary of ActivityPub?

(This is in line with Mastodon PR #1202 that states that "there is no ActivityPub JSON format")

evanp commented 1 year ago

The Actor properties and object properties defined in the ActivityPub standard are an extension of Activity Streams 2.0. They are not part of the Activity Streams core or vocabulary specifications. AS2 serves a number of use cases, and the AP properties are specific for the use cases of server-to-server federation and client-to-server API.

However, Activity Streams 2.0 has a mechanism for including properties from popular extensions. "Some popular extensions are included in the Activity Streams 2.0 namespace document, and can be reviewed at https://www.w3.org/ns/activitystreams#extensions. The Social Web Incubator Community Group maintains a wiki page on Activity Streams extensions."

Currently, the main extensions included this way are AP and DID properties, but others may be added in the future.

This can be confusing, since extension properties are agreed-up and defined elsewhere, but become part of the main "context" document. The advantage of having a single line of "@context" in AS2 JSON objects outweighs the disadvantage of distinguishing popular extensions from the core vocabulary.

I've added this as a FAQ to https://w3c.org/wiki/Activity_Streams/FAQ .

aschrijver commented 1 year ago

@evanp thank you. This answers the question.

However, I see I forgot to add some text to the issue, namely:

activitypub-context.jsonld isn't complete and isn't the location where the context is defined. Having the file in the repo can only confuse. Shouldn't it be rather deleted then?

akuckartz commented 1 year ago

@aschrijver Maybe this needs to be a new issue?

activitypub-context.jsonld isn't complete and isn't the location where the context is defined. Having the file in the repo can only confuse. Shouldn't it be rather deleted then?