I wrote in detail about “content addressed vocabulary” for vocabulary extensions (ideally for any terms, but we already have ActivityStreams, so this is probably a good fit for extensions going forward, and we can preserve existing URIs for old terms).
The general idea is, take the text for a term, eg the
sensitive property, and hash it:
$ echo "The sensitive property (a boolean) on an object indicates that some users may wish to apply discretion about viewing its content, whether due to nudity, violence, or any other likely aspects that viewers may be sensitive to. This is comparable to what is popularly called \"NSFW\" (Not Safe For Work) or \"trigger warning\" in some systems. Implementations may choose to hide content flagged with this property by default, exposed at user discretion." | sha256sum 81d98cf83fcf733400ad5d2a25495feeea47f287193a53a9722f4cb025da88f1
Now you have your term:
Map that in your json-ld context (or just use it as the property name if you’re advocating the litepub route I suppose) and you’re done. Can avoid the governance quagmire the SocialCG hit, requires no centralization of terms, and there’s no “namespace” to worry about going down.
Thoughts welcome (though reading the post is encouraged).