- From: Bob Wyman <bob@wyman.us>
- Date: Sun, 5 Mar 2023 18:49:31 -0500
- To: aaronngray@gmail.com
- Cc: Benjamin Goering <ben@bengo.co>, public-swicg@w3.org
- Message-ID: <CAA1s49U4zFOSx=vy+mo37GsxPpYBoV+vrfrEYfFgHkZsh860Ow@mail.gmail.com>
Aaron, I think it is well understood that adding to the @context is the method that should be used to declare what vocabularies are being relied upon in a chunk of JSON-LD. And, it is understood that an arbitrarily large number of vocabularies could be referenced. However, while the generality of this mechanism is useful, its use can create a mess. Recipients of a message will often want to know more than just the message's syntax. They will want to know what it means. If we rely too heavily on just listing vocabularies in @context, we're likely to discover that several different groups have defined their own vocabularies even though the scope of those vocabularies overlaps, or may even be identical. The result will be potentially avoidable complexity. Given this, it would be good to have a process where at least those vocabularies of common interest can be jointly developed, debated, understood, etc. This is similar to a capabilities model I think we're talking about different kinds of "capabilities." You seem to be talking about "capabilities" as the ability to encode stuff in messages (i.e. Things you can include in a chunk of JSON-LD.). However, another meaning of "capabilities" is "some operation you are capable of doing; because you have permission to do it" (e.g. Create, Update, Delete, etc.) ["https://www.w3.org/ns/activitystreams"] should only be offered up by the > server or agent if and only if it supports the whole normative standard, > otherwise a subset, superset, or intersecting set, OWL turtle spec should > be offered up. If there is an obligation to produce, serve, and use a "subset" vocabulary, that means that we might find that many servers offer distinct subsets, and many servers will have server-specific names for subsets also served by others. Thus, unless there are a small number of servers, it is likely that a message processor will often find it necessary to fetch a copy of a server-specific vocabulary before processing a message. This would properly irritate developers while also slowing down the processing of messages. (There's already quite a lot of anti-LinkedData grumbling...) My personal opinion is that it is best to define a set of vocabularies that comprehensively address distinct application scopes with the hope that any particular message will only use a minimal number of vocabularies. I would prefer an "ActivityPub" vocabulary that addressed only very general needs, basically just the data needed for CRUD (e.g. Create, Read, Update, Delete of objects), and a "Social Vocabulary" that defined stuff like "like," "dislike," "Question," etc. that are common to social apps but don't appear in all other application contexts. bob wyman
Received on Sunday, 5 March 2023 23:49:56 UTC