Is ActivityStreams Collection under-specified?

There are a great many "applications," both Social and otherwise, that
could be entirely represented on the Web as mere Collections. (e.g. GPO's
list of House Bills of the 118th Congress
<https://www.govinfo.gov/bulkdata/json/BILLS/118/1/hr>.) However, while the
Activity Streams Core defines a Collection,
<https://www.w3.org/TR/activitystreams-core/#collections> it says nothing
about the interface for performing even basic CRUD operations on those
Collections. (e.g. CRUD = Create, Read, Update, Delete) To understand how
to perform those operations, in a manner likely to be supported by others'
existing code, I would need to read, and ignore, most of the ActivityPub
specification. I'd end up with a system that used a little bit of
ActivityPub stuff, but would probably fail any ActivityPub conformance test
due to incompleteness.

If I want to sign, or encrypt a Collection, or some or all of its elements,
I get no guidance from any of the existing Activity* specifications. If I
look around hard enough, I might stumble across the Verifiable Credential
Data Integrity <https://w3c.github.io/vc-data-integrity/> and find in it
some guidance on signing chunks of JSON-LD, but I'm not really sure if
anyone else would be able to understand such signed JSON-LD.

If I wanted to grant readers the right to use my list, make derivative
works, etc. I might find W3C ODRL <https://www.w3.org/TR/odrl-model/>, and
decide to use that as a Rights Expression Language, but once again, I
wouldn't be sure if I was doing the right thing. On the other hand, I might
find the Creative Commons API <http://api.creativecommons.org/docs/> and
try to hack up something based on it, but it really seems more intended for
embedding in HTML rather than in JSON.

If items in my collection need to refer to each other, I might support that
by hacking something up with ActivityPub's "inReplyTo," "mention," or
"Link"... Or, I might decide to represent such inter-item references using
the much more expressive W3C Annotations
<https://www.w3.org/TR/annotation-model/> format. But, once again, I'd be
wondering: "What does everyone else do? and, What would they want me to
do?" What is the recommended way to make references which are
intra-Collection, inter-Collection references, etc.?

I'd have many more such questions... None of which are currently addressed
in the Activity* specs, but could be.I'm left wondering: *What standard(s)
should I implement in order to most usefully publish a public-domain,
signed, collection of items that sometimes refer to each other? *Also, how
can I spend more time coding and less time digging through discussion lists
of standards groups?

So, would it make sense to expand the documentation for Collections in the
Activity Streams Core spec? Or, might it make sense to break out
Collections into its own document including examples, discussions of how to
incorporate other related W3C and IETF specifications, and even perhaps a
conformance testing suite of its own?

Your comments will be greatly appreciated.

bob wyman

Received on Monday, 13 March 2023 03:43:10 UTC