Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use of "reference" with inbox and outbox #289

Open
cjslep opened this issue Jan 17, 2018 · 5 comments
Open

Use of "reference" with inbox and outbox #289

cjslep opened this issue Jan 17, 2018 · 5 comments
Assignees
Labels
Needs Group Input/Decision Needs Primer Page Needs a page in the ActivityPub primer

Comments

@cjslep
Copy link

cjslep commented Jan 17, 2018

For inbox and outbox the specification says:

Actor objects MUST have, in addition to the properties mandated by 3.1 Object Identifiers, the following properties:

inbox
A reference to an [ActivityStreams] OrderedCollection comprised of all the messages received by the actor; see 5.2 Inbox.
outbox
An [ActivityStreams] OrderedCollection comprised of all the messages produced by the actor; see 5.1 Outbox.

A reference is implicitly understood to mean a URI that, when resolved as stated in ActivityPub, will yield an OrderedCollection. Thus, this says that the inbox must be a URI.

However, for the outbox it specifically omits the word reference, which heavily implies the actual OrderedCollection must be embedded within the actor.

This kind of imprecise use of language, coupled with the permissiveness of ActivityStreams, implies that Example 9 is incorrect:

{
  "@context": ["https://www.w3.org/ns/activitystreams",
               {"@language": "ja"}],
  "type": "Person",
  "id": "https://kenzoishii.example.com/",
  "following": "https://kenzoishii.example.com/following.json",
  "followers": "https://kenzoishii.example.com/followers.json",
  "liked": "https://kenzoishii.example.com/liked.json",
  "inbox": "https://kenzoishii.example.com/inbox.json",
  "outbox": "https://kenzoishii.example.com/feed.json",
  "preferredUsername": "kenzoishii",
  "name": "石井健蔵",
  "summary": "この方はただの例です",
  "icon": [
    "https://kenzoishii.example.com/image/165987aklre4"
  ]
}

Please either omit "reference" when describing the inbox, permitting implementors to inline the OrderedCollections or not, or standardize "reference" to mean inlining the actual ActivityStream data is not permitted.

@chronologicaldot
Copy link

I think it may be an omission from the description of "outbox". Both should probably say "reference", but perhaps the author thought it might be implied? If both are a reference (URI), then the example would make sense.

@aschrijver
Copy link

I was just as confused as @cjslep by this text.

Furthermore for followers, following and liked the specification mentions that these represent 'A link to an [ActivityStreams] collection' which implies it can contain either a URI or a Link entity.

And a bit further it mentions stream with only the text 'A list of supplementary Collections which may be of interest.'. Is this meant to be an array of URI's?

IMHO the specification would be much clearer if the new properties of ActivityPub were more clearly explained, such as the entities and properties in ActivityStreams Vocabulary (i.e. in tabular format).

@evanp
Copy link
Collaborator

evanp commented May 3, 2023

The correct type for all of these properties, inbox, outbox, etc. is either in-line or an URI. I agree that the language is confusing.

I think this should be documented in the Errata, with an example of inline and URI versions of inbox and outbox.

@evanp evanp self-assigned this May 3, 2023
@gobengo
Copy link

gobengo commented May 3, 2023

+1 making the language consistent between inbox/outbox

@evanp evanp added Needs Primer Page Needs a page in the ActivityPub primer Needs errata We need to add errata for this labels Mar 14, 2025
@evanp evanp added Needs Group Input/Decision and removed Needs errata We need to add errata for this labels Mar 28, 2025
@evanp
Copy link
Collaborator

evanp commented Mar 28, 2025

I added an erratum for this:

In section 4.1 "Actor objects", the definition of "inbox" should read, "An OrderedCollection comprised of all the messages received by the actor; see 5.2 Inbox."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs Group Input/Decision Needs Primer Page Needs a page in the ActivityPub primer
Projects
None yet
Development

No branches or pull requests

5 participants