Skip to content
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

CIP-0120? | Constitution specification #796

Open
wants to merge 31 commits into
base: master
Choose a base branch
from

Conversation

Ryun1
Copy link
Collaborator

@Ryun1 Ryun1 commented Apr 19, 2024

This proposal aims to describe a standardized technical form for the Cardano constitution.
Hoping to enhance the accessibility and safety of the document.


📄 Rendered proposal

@Ryun1 Ryun1 changed the title CIP-???? | Constitution technical form CIP CIP-???? | Constitution technical form Apr 19, 2024
@Ryun1 Ryun1 added the Category: Metadata Proposals belonging to the 'Metadata' category. label Apr 19, 2024
Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks comprehensive & standardisation of form... with some rules like those already used to standardise manuscripts for comparison... will really help Constitution based tools.

One thing diffs and checksums will always notice is capitalisation. What standard is Intersect (and any other part of the community prolific in Cardano governance) developing around how Constitution is capitalised? English grammar rules for common & proper nouns would indicate (on which I based a recent cardano-foundation/developer-portal#1252 (comment) which also includes Ada spelling corrections like some below):

  • "Cardano Constitution" is obviously a very specific proper noun phrase & so each word would be capitalised.
  • the Constitution in effect... either the "initial" one or any updated version... would also be singular & therefore also capitalised "Constitution" as a common noun.
  • draft or proposed constitutions are not unique & therefore are not capitalised.
  • the phrase "the Constitution", unless talking non-specifically (e.g. "the constitution that voters prefer"), would generally be assumed to be THE Constitution and capitalised as a proper noun.

If you think these rules are true & helpful, it could likewise make sense to code them into the CIP so that capitalisation corrections don't cause appearance or the document checksum to vary over insignificant changes. If you want I will prepare that as a code diff.

Conversely, if governance major stake holders don't think this is an issue then let's establish that here... i.e. that the uncapitalised spelling "constitution" can also refer to THE "Constitution" itself... and I'll consider the matter concluded for this CIP & the Cardano community in general.

As with Ada vs. ADA vs. ada, using the term capitalised differently will make some think there are typos and inconsistencies everywhere: especially when appearing differently in the same sentence. We have seen this issue on the Dev Portal which has been an editorial headache even when documents didn't have to be checksummed.

  • This all the more reason why I think the capitalisation issue might need to be addressed in the CIP itself... and maybe that of Ada as well since constitutions are likely to use this term frequently and in all 3 contexts.

N.B. I am someone with a long standing interest in these matters but by no means the "last word" on grammar, so please I would be open to other editorial guidelines.

cc @Quantumplation @kevinhammond @stevenj @michaelpj @katomm @KtorZ

cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
cip-constitution-tech/README.md Outdated Show resolved Hide resolved
Ryun1 and others added 10 commits April 21, 2024 22:08
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
Co-authored-by: Robert Phair <rphair@cosd.com>
@Ryun1 Ryun1 changed the title CIP-???? | Constitution technical form CIP-???? | Constitution specification Apr 30, 2024
@rphair rphair changed the title CIP-???? | Constitution specification CIP-0120? | Constitution specification May 1, 2024
Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From launch at CIP meeting yesterday it seems like everybody will be happy with the CIP number 120 🎉

cip-constitution-tech/README.md Outdated Show resolved Hide resolved
Ryun1 and others added 2 commits May 1, 2024 12:34
@Thomas-Upfield
Copy link
Contributor

@Thomas-Upfield

When I reach the 80 character limit for a line, and the next character is punctuation, should I put the punctuation and whatever follows on a new line, or should I also include the word proceeding it in the newline also?

a maximum of 80 characters per line so it should be on the following line

ok cool, that's the common sense approach, just making sure.

@stevenj
Copy link
Contributor

stevenj commented May 29, 2024

My 2 lovelace.

80 characters is a limit, but you don't have to try and always hit it right at 80.
Legibility should also be in one's mind. So from your example, I would have written it like so:

This is a long sentence and I have valid reasons for it being so long, 
super big, as being an example of a long sentence.

I.e., step back from 80 to the cleanest break (in this case the preceding comma) and break there.
It should also be considered that the 80-character limit also helps one find run-on sentences.
If your sentence is much longer than 80, it might need breaking down.
And you should never want to see a sentence that's over two lines long in normal text.

One sentence max per line and character limits also help to make it easier to identify revisions in the document.
The theory here being, breaking on the earlier comma is likely to be breaking on an "idea".
So it's less likely a future edit needs to spill into the next line.
You have also left a little space in case you need to add something to the statement later.

@Ryun1
Copy link
Collaborator Author

Ryun1 commented May 29, 2024

With 5c2143f I have included your suggestions @Thomas-Upfield @stevenj 💪

Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Ryun1 looks good so far & I feel ready to approve once Open Questions and TODO are addressed (please point out anything further that you feel is "in progress").

CIP-0120/README.md Outdated Show resolved Hide resolved
CIP-0120/README.md Outdated Show resolved Hide resolved
CIP-0120/README.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

following up on #796 (comment) (resubmitted to change the editing scope):

CIP-0120/README.md Outdated Show resolved Hide resolved
@Ryun1
Copy link
Collaborator Author

Ryun1 commented May 30, 2024

@rphair

I have tided up all loose ends/comments, and added some fun test vectors.
I have forwarded this proposal to a few stakeholders for a final review.

@getnood
Copy link

getnood commented May 31, 2024

Just popping in to suggest the entire document could (and should be) stored onChain as well.

If the text gets longer than 16kb as an array, just continue it on another token and link from the asset to the subsequent one.

For example, here is an onChain reading of the Ergo Manifesto, whose full text is preserved on the network

https://pool.pm/asset13wmugsz896ah40r7kmsr8r8d9e8z0yzfj0pw9y

Will be fun to make this for the Constitution. And I assume some fun book-io versions as well 🥳

@Ryun1
Copy link
Collaborator Author

Ryun1 commented May 31, 2024

@getnood

This is super cool, I didn't know about this.

is this method of chaining all the metadata together through multiple tokens, standardised at all?
I would fear that this could add a decent chunk of complexity in reading and writing the constitution, as well as doing a correctness check.

Although I do agree keeping it onchain is a really nice thing, to be able to do.

@getnood
Copy link

getnood commented May 31, 2024

Sweet! Yeah it's super fun to make tokens connected to other tokens. There's no set standard for how to compose those connections, and I would assume a different approach from different creators depending on what they're doing. But here's some more examples:

This is a "collection token" that references all of the NFTs from a single collection (policy ID): https://pool.pm/asset1vdg65fezc5crtyhvt47n0gwvul94u2r74dhasa

Here's another fun example where a fungible token is made like a link tree to a bunch of different NFTs, and each of those NFTs are an index of other NFTs inside of a wallet: https://pool.pm/asset1xzw2algyy50t8x7f4mpg20tem33xemvm6rystq

( I still need to finish all the links/contents on the second example, but you can get the idea)

I think there's lots of creative ways to use connected networks of native assets on Cardano like this. Using CIP68 approaches also further expand the creative possibilities for what an individual, project, or organization might do

@Ryun1
Copy link
Collaborator Author

Ryun1 commented Jun 4, 2024

@getnood

Id love to collaborate on a competing proposal to CIP-120, which focuses on chaining metadata across tokens (may or may not have to be constitution specific).

How such documents can be written and read from chain would be super useful.

@getnood
Copy link

getnood commented Jun 4, 2024

Heck yea can't wait to hear those ideas! Have been making tokens that reference tokens for like 3 years, and with exception to CIP69, is the first time the topic got interest. Stoked!


`Constitution` vs. `constitution`

- The Constitution in effect — either the "initial" one or any updated version — is unique and therefore capitalised ("Constitution") as a proper noun.
Copy link
Collaborator

@rphair rphair Jun 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- The Constitution in effect — either the "initial" one or any updated version — is unique and therefore capitalised ("Constitution") as a proper noun.
- The Constitution in effect — either the "initial" one or any new constitution — is unique and therefore capitalised ("Constitution") as a proper noun.

The changes @Hornan7 proposed today in #847 would make sense to update here as well: since, especially if any constitution updates are hashed completely (rather than storing or hashing their difference), every "updated" constitution is more properly a new constitution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Metadata Proposals belonging to the 'Metadata' category.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants