FEDERATION.md: Write events property proposal

This commit is contained in:
fr33domlover 2019-06-01 20:39:57 +00:00
parent 53cb99877b
commit 0ff5f71626

View file

@ -549,6 +549,39 @@ independent of any domain-specific vocabulary or extension.
The current working name for this property is `managedBy`. The current working name for this property is `managedBy`.
#### (7) Events collection
Defines a standard property to provide a collection of activities related to a
given object.
Suppose Aviva is writing a story, and publishing its chapters as ActivityPub
activities. Aviva is an actor, with an inbox and with an outbox, but the
chapters aren't actors. She publishes them using Create activities, in which
the objects are of type Chapter or something like that. So, when Aviva
publishes a chapter, it appears in her outbox.
A while later, Luke joins her story writing project, and he writes some
chapters too. When he writes a chapter, he publishes it and delivers to Aviva's
inbox.
From Aviva's point of view, her story's activities exist in 2 places:
- Some of them exist in her outbox (the ones she publishes)
- And some in her inbox (and ones Luke publishes, or any future contributor)
If we wanted to get a list of all the activities and changes to the story, how
would we do that? If the story were an actor, we could deliver everything to
its inbox, and then its inbox would reflect all the events and changes. But
since the story isn't an actor, there's no obvious place for this. We'd have to
somehow get a filtered view of Aviva's outbox and a filtered view of Aviva's
inbox for this. And the latter is especially problematic, because inboxes are
generally private.
This proposal suggests a property named `events`, which maps to an
`OrderedCollection` of the activities related to the object. That way, even
objects that aren't stand-alone and aren't actors can provide a stream of
updates.
### (C) ForgeFed ### (C) ForgeFed
#### (1) Actors #### (1) Actors
@ -721,6 +754,10 @@ TODO:
{ "@id": "ext:dependedBy" { "@id": "ext:dependedBy"
, "@type": "@id" , "@type": "@id"
} }
, "events":
{ "@id": "ext:events"
, "@type": "@id"
}
} }
] ]
, "id": "https://dev.federated.coop/luke/text-adventure/issues/113" , "id": "https://dev.federated.coop/luke/text-adventure/issues/113"
@ -748,9 +785,14 @@ TODO:
, "https://dev.community/jerry/text-game-engine/issues/1219" , "https://dev.community/jerry/text-game-engine/issues/1219"
] ]
, "dependedBy": "https://dev.federated.coop/luke/text-adventure/issues/87" , "dependedBy": "https://dev.federated.coop/luke/text-adventure/issues/87"
, "events":
[ ...
]
} }
``` ```
TODO list actual examples under the "events" property (proposal B.7)
TODO replies and depends (ForgeFed #12) TODO replies and depends (ForgeFed #12)
TODO content/source and media types (ForgeFed #11) TODO content/source and media types (ForgeFed #11)