-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define RDF/JSON-LD metadata standards for gov & groups #11301
Comments
👋 coming here on Sam Hart's recommendation. A group of us are just getting started on a multi-chain standard for DAOs after releasing EIP-4824 at daostar.one/EIP. Maybe relevant for this issue? |
Proposed structure for the JSON referenced by the metadata field (syntax prob not great...it's my first time). Edited to add subfield for vote meanings.
|
Brief comment since I don’t have all the appropriate context here, but in general proposals are going to have lots of different potential options/choices. You may want to define a proposal type for generic yes/no abstain etc. Generically there are different types of proposals re: binding on chain execution, binding off chain execution, and non-binding execution (on-chain signaling), and any variety of off-chain proposals. |
the proposal type should be queryable on-chain so not sure it makes sense to have that data redundantly here if it opens the door to mismatches. |
Some conclusions from the last gov/groups call:
For decision policies we didn't decide whether to include a description or not:
If we do not include a description, the benefit is that we could try to suggest limiting the metadata to the default 255 characters (set as a param) and keep this data on-chain instead of off-chain on IPFS as is currently what we're planning to recommend for gov & group proposals and group metadata. For individual Votes I suggest we keep a very simple schema (if any), and keep this on-chain, again limited to 255 characters.
And lastly, do we need to define the schema like this? https://json-schema.org/learn/getting-started-step-by-step.html |
would make the following changes: vote metadata field from "reason" -> "justification" and this is what I would use for the proposal metadata
|
@nooomski , so you don't want that |
groupURL refers to the group's regular website |
It could be |
I was imagining all these things were json blobs linked by IPFS content addresses |
|
Proposal (both gov and group)off-chain {
"title": "",
"authors": "",
"summary": "",
"details": "",
"proposalForumURL": "",
"voteOptionContext": "",
} Groupoff-chain {
"name": "",
"description": "",
"groupWebsiteURL": "",
"groupForumURL": "",
} Decision policyon-chain 255 character default {
"name": "",
"description": "",
} Vote (both gov and group)on-chain 255 character default {
"justification": "",
} |
ok I think the metadata above is good to go. where's the best place to add to the documentation? I can make a PR for that. |
Maybe in a new .md file in https://github.com/cosmos/cosmos-sdk/tree/main/x/group/spec? This way it will also show up on docs.cosmos.network |
There are items that refer to gov module metadata as well. Should I make 2 files, the other in the equivalent gov module location? |
Yes, that could work. Maybe the gov one can link to the group one (or vice versa, whichever you prefer) for the shared spec. |
The gov and group module have a
metadata
field for proposals (and other elements) that we want to define JSON-LD standards for.The basic idea of how the
metadata
field should be used is that either it should contain a small amount of inline JSON-LD or contain a URL which de-references to some JSON-LD.We should describe some basic standards for this JSON-LD which define the standardized IRIs to describe basic things like:
Likely we should reuse existing IRIs from existing projects like schema.org or Dublin Core where possible.
As artifacts of this work we probably want:
Such documents can be stored in the SDK but should be served from stable URLs, probably under cosmos.network
Note that this can be done after the 0.46 release and is not blocking.
The text was updated successfully, but these errors were encountered: