FEDERATION.md: Write events
property proposal
This commit is contained in:
parent
53cb99877b
commit
0ff5f71626
1 changed files with 42 additions and 0 deletions
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue