From 4cb3b95b4184f208608436309e543f13a35cdf47 Mon Sep 17 00:00:00 2001 From: Ivan Herman Date: Tue, 19 Mar 2024 17:05:23 +0100 Subject: [PATCH 1/5] New version of the vocabulary files --- vocab/security/template.html | 63 +-- vocab/security/vocabulary.drawio | 369 +++++++++------- vocab/security/vocabulary.svg | 722 +++++++++++++++++++------------ vocab/security/vocabulary.yml | 33 +- 4 files changed, 724 insertions(+), 463 deletions(-) diff --git a/vocab/security/template.html b/vocab/security/template.html index 82ad1e4..317ccfa 100644 --- a/vocab/security/template.html +++ b/vocab/security/template.html @@ -155,10 +155,6 @@

Specification of terms

is used to include them in the RDFS representations).

-
Overview diagram of the vocabulary (without the reserved and deprecated items, error codes, and `xsd` datatypes).
A separate, stand-alone SVG version of the diagram, as well as a Diagram description The diagram uses boxes, ellipses, and connecting lines with different "styles" (border color, end marker, line type) to differentiate their semantic meaning; these styles identify Property, Class, or Datatype, via the shapes used for the - graph nodes, and Superclass, Domain Of, Range, or Contains, via the styles of the connecting lines. + graph nodes, and Superclass, Domain Of, Range, Type, or Contains, via the styles of the connecting lines. These style names are used in the explanation text that follows, below.

- The diagram is roughly divided into left and right sections - (although there are some common nodes; see later). - To make this description easier to understand, these will be referred to as the - "Proof Section" and the "Verification Section". + The diagram is roughly divided into (lower) left and (lower) right sections, and a top section. + These sections are connected by connecting lines of different types, and there is also one + box, labeled as "multibase" and of a shape Datatype, that is shared by the two lower sections. + To make this description easier to understand, these sections will be referred to as the + "Proof Section", "Verification Section", and "Verification Relationship Section", respectively. +

+

Each of these sections has an ellipse at the top, styled as Class, - and respectively labeled as "Proof" and "VerificationMethod". + and respectively labeled as "Proof", "VerificationMethod", and "VerificationRelationship".

Proof Section

@@ -298,7 +297,7 @@

Proof Section

The right side of the Section contains a column of labeled boxes, all styled as Property. The labels, from top to - bottom, are "previousProof", "domain", "challenge", "proofPurpose", + bottom, are "previousProof", "domain", "challenge", "nonce", "created", "proofValue". The ellipse labeled as "Proof" is connected to all of these with connecting lines styled as Domain Of. @@ -312,17 +311,8 @@

Proof Section

-

VerificationMethod Section

+

Verification Section

-

- The right side of this Section contains a column of labeled boxes, - all styled as Property. The labels, from top to bottom, are - "verificationMethod", "authentication", "assertionMethod", - "capabilityDelegation", "capabilityInvocation", and "keyAgreement". - Each of these boxes is connected to - the ellipse labeled "VerificationMethod", - with a connecting line styled as Range. -

The left side of this Section contains a column of three labeled boxes, all styled as Property. The labels, from top to bottom, are @@ -335,7 +325,13 @@

VerificationMethod Section

- The middle of this section contains three ellipses, + There is also a separate box, styled as Property and labeled as "verificationMethod". + This box is connected to the ellipse labeled as "VerificationMethod" with a + connecting line styled as Range. +

+ +

+ The middle of this section contains three more ellipses, styled as Class, and labeled as "Multikey, "Ed25519VerificationKey2020", and "JsonWebKey". Each of these is connected to @@ -362,11 +358,28 @@

VerificationMethod Section

+
+

Verification Relationship Section

+

+ The left side of the section contains a single box, styled as Property + and labeled as "proofPurpose". This box is connected to the ellipse + "VerificationRelationship" with a connecting line styled as Range, + and is also connected to the ellipse labeled "Proof" in the Proof Section, + with a connecting line styled as Domain Of. +

- +

+ The right side of this Section contains a column of labeled boxes, + all styled as Property. The labels, from top to bottom, are + "verificationMethod", "authentication", "assertionMethod", + "capabilityDelegation", "capabilityInvocation", and "keyAgreement". + Each of these boxes is connected to the ellipse labeled "VerificationMethod" in the + Verification section, with a connecting line styled as Range, + and to the ellipse labeled "VerificationRelationship" + with a connecting line styled as Type. +

+
- - diff --git a/vocab/security/vocabulary.drawio b/vocab/security/vocabulary.drawio index dfb2ef3..eb903b3 100644 --- a/vocab/security/vocabulary.drawio +++ b/vocab/security/vocabulary.drawio @@ -1,20 +1,17 @@ - + - + - - + + - - + + - - - - - + + @@ -25,8 +22,8 @@ - - + + @@ -34,8 +31,8 @@ - - + + @@ -43,8 +40,8 @@ - - + + @@ -55,8 +52,8 @@ - - + + @@ -71,8 +68,8 @@ - - + + @@ -83,8 +80,8 @@ - - + + @@ -94,11 +91,18 @@ - - - - - + + + + + + + + + + + + @@ -109,66 +113,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -210,11 +160,6 @@ - - - - - @@ -223,7 +168,7 @@ - + @@ -239,22 +184,22 @@ - + - + - + - + @@ -269,21 +214,19 @@ - + - + - - - + @@ -291,7 +234,7 @@ - + @@ -299,17 +242,15 @@ - - - + - + - + @@ -322,12 +263,12 @@ - + - + @@ -336,7 +277,7 @@ - + @@ -345,7 +286,7 @@ - + @@ -399,42 +340,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -452,7 +357,7 @@ - + @@ -483,11 +388,11 @@ - + - + @@ -543,7 +448,7 @@ - + @@ -557,10 +462,176 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vocab/security/vocabulary.svg b/vocab/security/vocabulary.svg index 76eab1f..a44211e 100644 --- a/vocab/security/vocabulary.svg +++ b/vocab/security/vocabulary.svg @@ -1,11 +1,13 @@ - - - - - + + + + + + + -
+
@@ -15,13 +17,13 @@
- Graph con... + Graph con... - - + + -
+
Class @@ -29,13 +31,13 @@
- Class + Class - - + + -
+
Property @@ -43,14 +45,16 @@
- Property + Property - - - + + + + + -
+
Superclass @@ -58,14 +62,16 @@
- Superclass + Superclass - - - + + + + + -
+
Domain @@ -73,14 +79,16 @@
- Domain + Domain - - - + + + + + -
+
Range @@ -88,13 +96,13 @@
- Range + Range - - + + -
+
@@ -104,30 +112,30 @@
- Datatype + Datatype - - - - -
-
-
- - VerificationMethod - -
+ + + + + + + +
+ + Type + - + -
+
@@ -137,14 +145,14 @@
- controller + controller
- + -
+
@@ -154,30 +162,22 @@
- revoked + revoked
- - - - - - - - - - - - - - - - + + + + + + + + - + -
+
@@ -187,37 +187,26 @@
- Ed25519VerificationKey2020 - -
- - - - - - - - - - -
-
-
- - Proof - -
-
-
-
- Proof + Ed25519VerificationKey2020
+ + + + + + + + + + + + - + -
+
@@ -227,16 +216,18 @@
- ProofGraph + ProofGraph
- - + + + + - + -
+
@@ -246,16 +237,18 @@
- proof + proof
- - + + + + - + -
+
@@ -265,14 +258,14 @@
- domain + domain
- + -
+
@@ -282,14 +275,14 @@
- challenge + challenge
- + -
+
@@ -299,14 +292,14 @@
- previousProof + previousProof
- + -
+
@@ -317,15 +310,15 @@
- proofPurpose + proofPurpose
- + -
+
@@ -335,14 +328,14 @@
- proofValue + proofValue
- + -
+
@@ -352,14 +345,14 @@
- expiration + expiration
- + -
+
@@ -369,14 +362,14 @@
- nonce + nonce
- + -
+
@@ -386,30 +379,46 @@
- created - -
- - - - - - - - - - - - - - - - + created + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + -
+
@@ -419,14 +428,14 @@
- DataIntegrityProof + DataIntegrityProof
- + -
+
@@ -436,18 +445,22 @@
- Ed25519Signature2020 + Ed25519Signature2020
- - - - + + + + + + + + - + -
+
@@ -457,14 +470,14 @@
- cryptosuite + cryptosuite
- + -
+
cryptosuiteString @@ -472,288 +485,441 @@
- cryptosuiteString + cryptosuiteString
- - - - - - - - + + + + + + + + + + + + +
+
+
+ multibase +
+
+
+
+ multibase +
+
+ + + + + + -
+
- verificationMethod + Multikey
- verificationMethod + Multikey
- - + + + -
+
- authentication + publicKeyMultibase
- authentication + publicKeyMultibase
- - + + -
+
- assertionMethod + secretKeyMultibase
- assertionMethod + secretKeyMultibase
- - + + + + + + + + + + -
+
- capabilityDelegationMethod + JsonWebKey
- capabilityDelegationMethod + JsonWebKey
- - + + + +
+
+
+ rdf:JSON +
+
+
+
+ rdf:JSON +
+ +
+ -
+
- capabilityInvocationMethod -
+ secretKeyJwk
- capabilityInvocationMethod - + secretKeyJwk
- - + + -
+
- keyAgreementMethod + publicKeyJwk + +
+
+
+ + publicKeyJwk + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + digestMultibase
- keyAgreementMethod + digestMultibase
- - + + + + + + + + + + -
+
- multibase + + VerificationRelationship + +
+
+
+ + VerificationRelationship + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + verificationMethod +
- multibase + verificationMethod
- - - - + + -
+
- Multikey + authentication
- Multikey + authentication
- - - + + -
+
- publicKeyMultibase + assertionMethod
- publicKeyMultibase + assertionMethod
- - + + -
+
- secretKeyMultibase + capabilityDelegationMethod
- secretKeyMultibase + capabilityDelegationMethod
- - - - - - + + -
+
- JsonWebKey + capabilityInvocationMethod +
- JsonWebKey + capabilityInvocationMethod +
- - - -
-
- - - rdf:JSON - - - - + + keyAgreementMethod + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
+
- secretKeyJwk + VerificationMethod
- secretKeyJwk + VerificationMethod
- - + + -
+
- publicKeyJwk + Proof
- publicKeyJwk + Proof
- - - - - - - - - - - - - - + + -
+
- digestMultibase + verificationMethod
- digestMultibase + verificationMethod
- - - - + + + + diff --git a/vocab/security/vocabulary.yml b/vocab/security/vocabulary.yml index 545a229..5cd3271 100644 --- a/vocab/security/vocabulary.yml +++ b/vocab/security/vocabulary.yml @@ -33,6 +33,12 @@ class: label: Verification method defined_by: https://www.w3.org/TR/vc-data-integrity/#verification-methods + - id: VerificationRelationship + comment: Instances of this class are verification relationships like, for example, authentication or assertionMethod. These resources can also appear as the values of the proofPurpose property. + defined_by: https://www.w3.org/TR/vc-data-integrity/#verification-relationships + upper_value: rdf:Property + context: none + - id: DataIntegrityProof label: A Data Integrity Proof upper_value: sec:Proof @@ -219,7 +225,7 @@ property: - id: proofPurpose label: Proof purpose domain: sec:Proof - range: xsd:string + range: sec:VerificationRelationship defined_by: https://www.w3.org/TR/vc-data-integrity/#dfn-proofpurpose context: [vocab, https://www.w3.org/ns/credentials/v2] @@ -256,18 +262,21 @@ property: - id: authentication label: Authentication method range: sec:VerificationMethod + type: sec:VerificationRelationship defined_by: https://www.w3.org/TR/vc-data-integrity/#dfn-authentication context: [vocab, https://www.w3.org/ns/credentials/v2, https://www.w3.org/ns/did/v1] - id: assertionMethod label: Assertion method range: sec:VerificationMethod + type: sec:VerificationRelationship defined_by: https://www.w3.org/TR/vc-data-integrity/#dfn-assertionmethod context: [vocab, https://www.w3.org/ns/credentials/v2, https://www.w3.org/ns/did/v1] - id: capabilityDelegationMethod label: Capability delegation method range: sec:VerificationMethod + type: sec:VerificationRelationship comment: Historically, this property has often been expressed using `capabilityDelegation` as a shortened term in JSON-LD. Since this shortened term and its mapping to this property are in significant use in the ecosystem, the inconsistency between the short term name (`capabilityDelegation`) and the property identifier (`...#capabilityDelegationMethod`) is expected and should not trigger an error. defined_by: https://www.w3.org/TR/vc-data-integrity/#dfn-capabilitydelegation context: [vocab, https://www.w3.org/ns/credentials/v2, https://www.w3.org/ns/did/v1] @@ -275,12 +284,14 @@ property: - id: capabilityInvocationMethod label: Capability invocation method range: sec:VerificationMethod + type: sec:VerificationRelationship comment: Historically, this property has often been expressed using `capabilityInvocation` as a shortened term in JSON-LD. Since this shortened term and its mapping to this property are in significant use in the ecosystem, the inconsistency between the short term name (`capabilityInvocation`) and the property identifier (`...#capabilityInvocationMethod`) is expected and should not trigger an error. defined_by: https://www.w3.org/TR/vc-data-integrity/#dfn-capabilityinvocation context: [vocab, https://www.w3.org/ns/credentials/v2, https://www.w3.org/ns/did/v1] - id: keyAgreementMethod label: Key agreement protocols + type: sec:VerificationRelationship range: sec:VerificationMethod comment: Historically, this property has often been expressed using `keyAgreement` as a shortened term in JSON-LD. Since this shortened term and its mapping to this property are in significant use in the ecosystem, the inconsistency between the short term name (`keyAgreement`) and the property identifier (`...#keyAgreementMethod`) is expected and should not trigger an error. defined_by: https://www.w3.org/TR/vc-data-integrity/#dfn-keyagreement @@ -462,61 +473,61 @@ property: individual: - id: PROOF_GENERATION_ERROR - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Proof generation error defined_by: https://www.w3.org/TR/vc-data-integrity/#PROOF_GENERATION_ERROR context: none - id: MALFORMED_PROOF_ERROR - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Malformed proof defined_by: https://www.w3.org/TR/vc-data-integrity/#MALFORMED_PROOF_ERROR context: none - id: MISMATCHED_PROOF_PURPOSE_ERROR - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Mismatched proof purpose defined_by: https://www.w3.org/TR/vc-data-integrity/#MISMATCHED_PROOF_PURPOSE_ERROR context: none - id: INVALID_DOMAIN_ERROR - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Invalid proof domain defined_by: https://www.w3.org/TR/vc-data-integrity/#INVALID_DOMAIN_ERROR context: none - id: INVALID_CHALLENGE_ERROR - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Invalid challenge defined_by: https://www.w3.org/TR/vc-data-integrity/#INVALID_CHALLENGE_ERROR context: none - id: INVALID_VERIFICATION_METHOD_URL - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Invalid verification method URL defined_by: https://www.w3.org/TR/vc-data-integrity/#INVALID_VERIFICATION_METHOD_URL context: none - id: INVALID_CONTROLLER_DOCUMENT_ID - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Invalid controller document id defined_by: https://www.w3.org/TR/vc-data-integrity/#INVALID_CONTROLLER_DOCUMENT_ID context: none - id: INVALID_CONTROLLER_DOCUMENT - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Invalid controller document defined_by: https://www.w3.org/TR/vc-data-integrity/#INVALID_CONTROLLER_DOCUMENT context: none - id: INVALID_VERIFICATION_METHOD - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Invalid verification method defined_by: https://www.w3.org/TR/vc-data-integrity/#INVALID_VERIFICATION_METHOD context: none - id: INVALID_PROOF_PURPOSE_FOR_VERIFICATION_METHOD - upper_value: sec:ProcessingError + type: sec:ProcessingError label: Invalid proof purpose for verification method defined_by: https://www.w3.org/TR/vc-data-integrity/#INVALID_PROOF_PURPOSE_FOR_VERIFICATION_METHOD context: none From 4d0771dc293172791160086e60cec621820f473d Mon Sep 17 00:00:00 2001 From: Ivan Herman Date: Tue, 19 Mar 2024 19:08:46 +0100 Subject: [PATCH 2/5] Apply suggestions from code review Co-authored-by: Ted Thibodeau Jr --- vocab/security/template.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vocab/security/template.html b/vocab/security/template.html index 317ccfa..a342f88 100644 --- a/vocab/security/template.html +++ b/vocab/security/template.html @@ -260,11 +260,11 @@

Diagram description

These style names are used in the explanation text that follows, below.

- The diagram is roughly divided into (lower) left and (lower) right sections, and a top section. - These sections are connected by connecting lines of different types, and there is also one - box, labeled as "multibase" and of a shape Datatype, that is shared by the two lower sections. - To make this description easier to understand, these sections will be referred to as the - "Proof Section", "Verification Section", and "Verification Relationship Section", respectively. + The diagram is roughly divided into three sections — lower left, lower right, and upper. + To make this description easier to understand, these sections will be respectively referred to + as the "Proof Section", "Verification Section", and "Verification Relationship Section". + The three sections are connected by lines of different types; additionally, one box, + labeled as "multibase" and having shape "Datatype", is shared by the two lower sections ("Proof" and "Verification").

Each of these sections has an ellipse at the top, styled as Class, @@ -298,9 +298,9 @@

Proof Section

The right side of the Section contains a column of labeled boxes, all styled as Property. The labels, from top to bottom, are "previousProof", "domain", "challenge", - "nonce", "created", "proofValue". + "nonce", "created", and "proofValue". The ellipse labeled as "Proof" is connected to all of these with - connecting lines styled as Domain Of. + connecting lines styled as "Domain Of". The box labeled as "previousProof" is also connected to the ellipse labeled as "Proof" with a connecting line styled as Range. The box labeled as "proofValue" is connected to a shape styled as Datatype @@ -325,7 +325,7 @@

Verification Section

- There is also a separate box, styled as Property and labeled as "verificationMethod". + There is also a distinct box, styled as Property and labeled as "verificationMethod". This box is connected to the ellipse labeled as "VerificationMethod" with a connecting line styled as Range.

From aa6999ef9547b83aa228885f4b1be48ed25b45e8 Mon Sep 17 00:00:00 2001 From: Ivan Herman Date: Tue, 19 Mar 2024 19:11:58 +0100 Subject: [PATCH 3/5] Update vocab/security/vocabulary.yml Co-authored-by: Ted Thibodeau Jr --- vocab/security/vocabulary.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vocab/security/vocabulary.yml b/vocab/security/vocabulary.yml index 5cd3271..5879ae6 100644 --- a/vocab/security/vocabulary.yml +++ b/vocab/security/vocabulary.yml @@ -34,7 +34,7 @@ class: defined_by: https://www.w3.org/TR/vc-data-integrity/#verification-methods - id: VerificationRelationship - comment: Instances of this class are verification relationships like, for example, authentication or assertionMethod. These resources can also appear as the values of the proofPurpose property. + comment: Instances of this class are verification relationships like, for example, authentication or assertionMethod. These resources can also appear as values of the proofPurpose property. defined_by: https://www.w3.org/TR/vc-data-integrity/#verification-relationships upper_value: rdf:Property context: none From bb0f7d616905a43b8e682ec1b9e381109a86796b Mon Sep 17 00:00:00 2001 From: Ivan Herman Date: Wed, 20 Mar 2024 08:35:05 +0100 Subject: [PATCH 4/5] Update template's diagram alt text --- vocab/security/template.html | 141 +++++++++++++++-------------------- 1 file changed, 60 insertions(+), 81 deletions(-) diff --git a/vocab/security/template.html b/vocab/security/template.html index a342f88..fa728b7 100644 --- a/vocab/security/template.html +++ b/vocab/security/template.html @@ -255,128 +255,107 @@

Diagram description

The diagram uses boxes, ellipses, and connecting lines with different "styles" (border color, end marker, line type) to differentiate their semantic meaning; - these styles identify Property, Class, or Datatype, via the shapes used for the - graph nodes, and Superclass, Domain Of, Range, Type, or Contains, via the styles of the connecting lines. + these styles identify "Property", "Class", or "Datatype" via the shapes used for the + graph nodes, and "Superclass", "Domain Of", "Range", "Type", or "Contains", + via the styles of the connecting lines. In particular, all ellipses are styled as "Class". These style names are used in the explanation text that follows, below.

- The diagram is roughly divided into three sections — lower left, lower right, and upper. + The diagram is roughly divided into three sections — lower left, lower right, and upper. To make this description easier to understand, these sections will be respectively referred to - as the "Proof Section", "Verification Section", and "Verification Relationship Section". + as the "Proof", "Verification Method", and "Verification Relationship" sections. The three sections are connected by lines of different types; additionally, one box, - labeled as "multibase" and having shape "Datatype", is shared by the two lower sections ("Proof" and "Verification"). + labeled as "multibase", and having shape "Datatype", is shared by the two lower sections + ("Proof" and "Verification Method").

- Each of these sections has an ellipse at the top, styled as Class, - and respectively labeled as "Proof", "VerificationMethod", and "VerificationRelationship". + Each of these sections has an ellipse at the top, labeled as "Proof", "VerificationMethod", + and "VerificationRelationship", respectively.

Proof Section

- The left side of the Proof Section contains another ellipse, - styled as Class and labeled as "ProofGraph", and connected - to the ellipse labeled as "Proof" with a connecting line styled as Contains. - There is also a box, styled as Property and labeled as "proof", - connected to the ellipse labeled as "ProofGraph" - with a connecting line styled as Range. + The left side of the section contains another ellipse, + labeled as "ProofGraph", and connected to the ellipse labeled as "Proof" with a connecting line, + styled as "Contains". + A separate box, styled as "Property" and labeled as "proof", is connected to the ellipse labeled as "ProofGraph", + with a connecting line styled as "Range".

- There are two more ellipses in this section, styled as Class - and labeled as "Ed25519Signature2020" and "DataIntegrityProof", - each connected to the ellipse labeled as "Proof" - with connecting lines styled as Superclass. - The ellipse labeled as "DataIntegrityProof" is - also connected to a box styled as Property, - and labeled as "cryptosuite", with a connecting - line styled as Domain Of. The "cryptosuite" Property box - is connected to a shape - styled as Datatype and labeled as - "cryptosuiteString", with a connecting - line styled as Range. + There are two more ellipses in this section, + labeled as "Ed25519Signature2020" and "DataIntegrityProof", respectively, + each connected to the ellipse labeled as "Proof" through connecting lines styled as "Superclass". + The ellipse labeled as "DataIntegrityProof" is also connected to a box, styled as "Property" and labeled as + "cryptosuite", with a connecting line styled as "Domain Of". + The "cryptosuite" Property box is connected to a shape, styled as "Datatype" and labeled as "cryptosuiteString", + with a connecting line styled as "Range".

- The right side of the Section contains a column of labeled boxes, - all styled as Property. The labels, from top to - bottom, are "previousProof", "domain", "challenge", - "nonce", "created", and "proofValue". - The ellipse labeled as "Proof" is connected to all of these with - connecting lines styled as "Domain Of". - The box labeled as "previousProof" is also connected to the ellipse - labeled as "Proof" with a connecting line styled as Range. - The box labeled as "proofValue" is connected to a shape styled as Datatype - and labeled as "multibase", with a connecting line styled as Range. - Finally, another box, styled as Property and labeled as "digestMultibase", - is connected to the same "multibase" Datatype shape with - a connecting line styled as Range. + The right side of the section contains a column of labeled boxes, all styled as "Property". + The labels, from top to bottom, are "previousProof", "domain", "challenge", "nonce", "created", and "proofValue". + The ellipse, labeled as "Proof", is connected to all of these with connecting lines styled as "Domain Of". + The box labeled as "previousProof" is also connected to the ellipse, labeled as "Proof", with a connecting line styled as "Range". + The box labeled as "proofValue" is connected to a shape, styled as "Datatype" and labeled as "multibase", with a connecting line styled as "Range". + Finally, another box, styled as "Property" and labeled as "digestMultibase", is connected to the same "multibase" shape, styled as "Datatype", with a connecting line styled as "Range".

-

Verification Section

+

Verification Method Section

- The left side of this Section contains a column of three labeled - boxes, all styled as Property. The labels, from top to bottom, are - "expires", "controller", and "revoked". Each of these is connected - to the ellipse labeled "VerificationMethod", - with connecting lines styled as Domain Of. - The "expires" Property box is also connected to the ellipse - labeled "Proof" in the Proof Section, with a connecting line - styled as Domain Of. + The left side of this section contains a column of three labeled boxes, all styled as "Property". + The labels, from top to bottom, are "expires", "controller", and "revoked". + Each of these is connected to the ellipse, labeled "VerificationMethod", with connecting lines styled as "Domain Of". + The "expires" "Property" box is also connected to the ellipse labeled "Proof" in the Proof section, + with a connecting line styled as "Domain Of".

- There is also a distinct box, styled as Property and labeled as "verificationMethod". - This box is connected to the ellipse labeled as "VerificationMethod" with a - connecting line styled as Range. + There is also a distinct box, styled as "Property" and labeled as "verificationMethod". + This box is connected to the ellipse, labeled as "VerificationMethod", with a connecting line styled as "Range".

- The middle of this section contains three more ellipses, - styled as Class, and labeled as - "Multikey, "Ed25519VerificationKey2020", and "JsonWebKey". - Each of these is connected to - the ellipse labeled as "VerificationMethod" - with a connecting line styled as Superclass. + The middle of this section contains three more ellipses, labeled as "Multikey, "Ed25519VerificationKey2020", + and "JsonWebKey", respectively. + Each of these is connected to the ellipse, labeled as "VerificationMethod", with a connecting line styled as "Superclass".

- Two boxes, styled as Property and labeled as "secretKeyMultibase" - and "publicKeyMultibase", are connected to the ellipse - labeled as "Multikey" with a connecting line styled as Domain Of. - Each of these boxes is also connected to the shape in the Proof - section styled as Datatype and labeled as "multibase", - with connecting lines styled as Range. + Two boxes, styled as "Property" and labeled as "secretKeyMultibase" and "publicKeyMultibase", + respectively, are connected to the ellipse labeled as "Multikey" with a connecting line styled as "Domain Of". + Each of these boxes is also connected to the shape in the Proof section, styled as "Datatype" + and labeled as "multibase", with connecting lines styled as "Range".

- Finally, two boxes, styled as Property and labeled "secretKeyJwk" - and "publicKeyJwk", are connected to the ellipse labeled "JsonWebKey" - with a connecting line styled as Domain Of. - Each of these boxes is also connected to - a shape styled as Datatype and labeled as "rdf:JSON", - with connecting lines styled as Range. + Finally, two boxes, styled as "Property" and labeled as "secretKeyJwk" + and "publicKeyJwk", respectively, are connected to the ellipse labeled "JsonWebKey", + with a connecting line styled as "Domain Of". + Both boxes are also connected to a shape, styled as "Datatype" and labeled as "rdf:JSON", with connecting + lines styled as "Range".

Verification Relationship Section

- The left side of the section contains a single box, styled as Property - and labeled as "proofPurpose". This box is connected to the ellipse - "VerificationRelationship" with a connecting line styled as Range, - and is also connected to the ellipse labeled "Proof" in the Proof Section, - with a connecting line styled as Domain Of. + The left side of the section contains a single box, styled as "Property" + and labeled as "proofPurpose". + This box is connected to the ellipse, labeled as "VerificationRelationship", + with a connecting line styled as "Range". + It is also connected to the ellipse in the Proof section, labeled "Proof", + with a connecting line styled as "Domain Of".

- The right side of this Section contains a column of labeled boxes, - all styled as Property. The labels, from top to bottom, are - "verificationMethod", "authentication", "assertionMethod", - "capabilityDelegation", "capabilityInvocation", and "keyAgreement". - Each of these boxes is connected to the ellipse labeled "VerificationMethod" in the - Verification section, with a connecting line styled as Range, - and to the ellipse labeled "VerificationRelationship" - with a connecting line styled as Type. + The right side of the section contains a column of labeled boxes, + all styled as "Property". + The labels, from top to bottom, are "verificationMethod", "authentication", "assertionMethod", "capabilityDelegation", "capabilityInvocation", and "keyAgreement". + Each of these boxes is connected to the ellipse in the Verification Method section, labeled "VerificationMethod", + with a connecting line styled as "Range". + Finally, each of these boxes is also connected to the ellipse, labeled "VerificationRelationship", + with a connecting line styled as "Type".

From be4d69dc12463ccf1d8f9c7485fb4d1f824a2959 Mon Sep 17 00:00:00 2001 From: Ivan Herman Date: Wed, 20 Mar 2024 17:28:47 +0100 Subject: [PATCH 5/5] Apply suggestions from code review Co-authored-by: Ted Thibodeau Jr --- vocab/security/template.html | 79 ++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/vocab/security/template.html b/vocab/security/template.html index fa728b7..d678e9f 100644 --- a/vocab/security/template.html +++ b/vocab/security/template.html @@ -254,18 +254,18 @@

Diagram description

Overview diagram of the vocabulary (without the reserved and deprecated items, error codes, and `xsd` datatypes).

The diagram uses boxes, ellipses, and connecting lines with different "styles" - (border color, end marker, line type) to differentiate their semantic meaning; - these styles identify "Property", "Class", or "Datatype" via the shapes used for the - graph nodes, and "Superclass", "Domain Of", "Range", "Type", or "Contains", - via the styles of the connecting lines. In particular, all ellipses are styled as "Class". + (border color, end marker, line type) to differentiate their semantic meaning: + "Property", "Class", and "Datatype" are identified by the shape of the + graph node (e.g., an ellipse signifies a "Class"); "Superclass", "Domain Of", "Range", + "Type", and "Contains" relationships are identified by the style of the connecting line. These style names are used in the explanation text that follows, below.

The diagram is roughly divided into three sections — lower left, lower right, and upper. To make this description easier to understand, these sections will be respectively referred to as the "Proof", "Verification Method", and "Verification Relationship" sections. - The three sections are connected by lines of different types; additionally, one box, - labeled as "multibase", and having shape "Datatype", is shared by the two lower sections + Shapes in the three sections are connected by lines of different styles; additionally, one box, + labeled as "multibase" and shaped as "Datatype", bridges the two lower sections ("Proof" and "Verification Method").

@@ -276,27 +276,27 @@

Diagram description

Proof Section

The left side of the section contains another ellipse, - labeled as "ProofGraph", and connected to the ellipse labeled as "Proof" with a connecting line, - styled as "Contains". - A separate box, styled as "Property" and labeled as "proof", is connected to the ellipse labeled as "ProofGraph", - with a connecting line styled as "Range". + labeled as "ProofGraph", and connected with a line + styled as "Contains" to the "Proof" ellipse. + A separate box, styled as "Property" and labeled as "proof", is connected + with a line styled as "Range" to the "ProofGraph" ellipse.

There are two more ellipses in this section, - labeled as "Ed25519Signature2020" and "DataIntegrityProof", respectively, - each connected to the ellipse labeled as "Proof" through connecting lines styled as "Superclass". - The ellipse labeled as "DataIntegrityProof" is also connected to a box, styled as "Property" and labeled as - "cryptosuite", with a connecting line styled as "Domain Of". + labeled as "Ed25519Signature2020" and "DataIntegrityProof", and + each connected to the "Proof" ellipse with lines styled as "Superclass". + The "DataIntegrityProof" ellipse is also connected to a box, styled as "Property" and labeled as + "cryptosuite", with a line styled as "Domain Of". The "cryptosuite" Property box is connected to a shape, styled as "Datatype" and labeled as "cryptosuiteString", - with a connecting line styled as "Range". + with a line styled as "Range".

The right side of the section contains a column of labeled boxes, all styled as "Property". The labels, from top to bottom, are "previousProof", "domain", "challenge", "nonce", "created", and "proofValue". - The ellipse, labeled as "Proof", is connected to all of these with connecting lines styled as "Domain Of". - The box labeled as "previousProof" is also connected to the ellipse, labeled as "Proof", with a connecting line styled as "Range". - The box labeled as "proofValue" is connected to a shape, styled as "Datatype" and labeled as "multibase", with a connecting line styled as "Range". - Finally, another box, styled as "Property" and labeled as "digestMultibase", is connected to the same "multibase" shape, styled as "Datatype", with a connecting line styled as "Range". + The "Proof" ellipse is connected to all of these boxes with lines styled as "Domain Of". + The "previousProof" box is also connected to the "Proof" ellipse, with a line styled as "Range". + The "proofValue" box is connected to a shape, styled as "Datatype" and labeled as "multibase", with a line styled as "Range". + Finally, the same "multibase" "Datatype" shape is connected to another box, styled as "Property" and labeled as "digestMultibase", with a line styled as "Range".

@@ -305,34 +305,35 @@

Verification Method Section

The left side of this section contains a column of three labeled boxes, all styled as "Property". The labels, from top to bottom, are "expires", "controller", and "revoked". - Each of these is connected to the ellipse, labeled "VerificationMethod", with connecting lines styled as "Domain Of". - The "expires" "Property" box is also connected to the ellipse labeled "Proof" in the Proof section, - with a connecting line styled as "Domain Of". + Each of these is connected to the "VerificationMethod" ellipse, with a line styled as "Domain Of". + The "expires" "Property" box is also connected to the "Proof" ellipse (in the Proof section), + with a line styled as "Domain Of".

There is also a distinct box, styled as "Property" and labeled as "verificationMethod". - This box is connected to the ellipse, labeled as "VerificationMethod", with a connecting line styled as "Range". + This "verificationMethod" box is connected to the "VerificationMethod" +ellipse, with a connecting line styled as "Range".

The middle of this section contains three more ellipses, labeled as "Multikey, "Ed25519VerificationKey2020", - and "JsonWebKey", respectively. - Each of these is connected to the ellipse, labeled as "VerificationMethod", with a connecting line styled as "Superclass". + and "JsonWebKey". + Each of these is connected to the "VerificationMethod" ellipse, with a line styled as "Superclass".

Two boxes, styled as "Property" and labeled as "secretKeyMultibase" and "publicKeyMultibase", - respectively, are connected to the ellipse labeled as "Multikey" with a connecting line styled as "Domain Of". - Each of these boxes is also connected to the shape in the Proof section, styled as "Datatype" - and labeled as "multibase", with connecting lines styled as "Range". + are connected to the ellipse labeled as "Multikey" with a line styled as "Domain Of". + Each of these boxes is also connected to the "multibase" "Datatype" shape in the Proof section, + with lines styled as "Range".

Finally, two boxes, styled as "Property" and labeled as "secretKeyJwk" - and "publicKeyJwk", respectively, are connected to the ellipse labeled "JsonWebKey", - with a connecting line styled as "Domain Of". - Both boxes are also connected to a shape, styled as "Datatype" and labeled as "rdf:JSON", with connecting + and "publicKeyJwk", are connected to the "JsonWebKey" ellipse, + with a line styled as "Domain Of". + Both boxes are also connected to a shape, styled as "Datatype" and labeled as "rdf:JSON", with lines styled as "Range".

@@ -342,20 +343,20 @@

Verification Relationship Section

The left side of the section contains a single box, styled as "Property" and labeled as "proofPurpose". - This box is connected to the ellipse, labeled as "VerificationRelationship", - with a connecting line styled as "Range". - It is also connected to the ellipse in the Proof section, labeled "Proof", - with a connecting line styled as "Domain Of". + This box is connected to the "VerificationRelationship" ellipse, + with a line styled as "Range". + It is also connected to the "Proof" ellipse in the Proof section, + with a line styled as "Domain Of".

The right side of the section contains a column of labeled boxes, all styled as "Property". The labels, from top to bottom, are "verificationMethod", "authentication", "assertionMethod", "capabilityDelegation", "capabilityInvocation", and "keyAgreement". - Each of these boxes is connected to the ellipse in the Verification Method section, labeled "VerificationMethod", - with a connecting line styled as "Range". - Finally, each of these boxes is also connected to the ellipse, labeled "VerificationRelationship", - with a connecting line styled as "Type". + Each of these boxes is connected to the "VerificationMethod" ellipse in the Verification Method section, + with a line styled as "Range". + Finally, each of these boxes is also connected to the "VerificationRelationship" ellipse, + with a line styled as "Type".