@@ -133,3 +133,145 @@ A LinkedClaim:
133
133
* ** MAY** have a separate published date and effective date
134
134
* ** MAY** be public or access controlled
135
135
136
+ ## Advanced Patterns
137
+
138
+ _ enabled by implementing the SHOULD recommendations_
139
+
140
+ ### Signer Attestation and Content Integrity Pattern
141
+ ``` mermaid
142
+
143
+ graph LR
144
+ subgraph Claim-A
145
+ A_id["id: URI_A"]
146
+ A_subject["subject: did:example:456"]
147
+ A_content["content: {...}"]
148
+ A_sig["signature: xyz"]
149
+ end
150
+
151
+ subgraph Claim-B
152
+ B_id["id: URI_B"]
153
+ B_subject["subject: URI_X"]
154
+ B_content["content: {...}"]
155
+ B_sig["signature: xyz"]
156
+ B_signer["signer: did:example:456"]
157
+ B_evidence["evidence: {
158
+ url: https://example.com/doc,
159
+ hash: abc123
160
+ }"]
161
+ end
162
+
163
+ subgraph Evidence
164
+ E["Document"]
165
+ end
166
+
167
+ %% Only Claim B points to evidence, A points to B's signer
168
+ A_subject -.-> B_signer
169
+ B_evidence -.-> E
170
+
171
+ classDef claim fill:#f8f8ff,stroke:#333,stroke-width:2px
172
+ classDef claimPart fill:#ffffff,stroke:#666,stroke-width:1px
173
+ classDef evidence fill:#f0fff0,stroke:#333,stroke-width:2px
174
+
175
+ class A_id,A_subject,A_content,A_sig,B_id,B_subject,B_content,B_sig,B_signer,B_evidence claimPart
176
+ style Claim-A fill:#f8f8ff,stroke:#333,stroke-width:2px
177
+ style Claim-B fill:#f8f8ff,stroke:#333,stroke-width:2px
178
+ style Evidence fill:#f0fff0,stroke:#333,stroke-width:2px
179
+
180
+ linkStyle 0,1 stroke:#666,stroke-width:2px,stroke-dasharray: 5
181
+ ```
182
+ ### Public evidence supporting a Private Claim
183
+
184
+ ``` mermaid
185
+
186
+ graph LR
187
+ subgraph Private-Wallet
188
+ subgraph Private-Claim
189
+ P_id["id: URI_P"]
190
+ P_subject["subject: URI_X"]
191
+ P_content["content: {...}"]
192
+ P_sig["signature: xyz"]
193
+ end
194
+ end
195
+
196
+ subgraph Public-Validations
197
+ subgraph Validation-A
198
+ V1_id["id: URI_V1"]
199
+ V1_subject["subject: URI_P"]
200
+ V1_content["validation data"]
201
+ end
202
+ subgraph Evidence
203
+ E["Public Evidence"]
204
+ end
205
+ end
206
+
207
+ %% Links
208
+ V1_subject -.-> P_id
209
+ V1_content -.-> E
210
+
211
+ classDef claim fill:#f8f8ff,stroke:#333,stroke-width:2px
212
+ classDef claimPart fill:#ffffff,stroke:#666,stroke-width:1px
213
+ classDef private fill:#fff0f5,stroke:#333,stroke-width:2px
214
+ classDef public fill:#f0fff0,stroke:#333,stroke-width:2px
215
+
216
+ class P_id,P_subject,P_content,P_sig,V1_id,V1_subject,V1_content claimPart
217
+ style Private-Wallet fill:#fff0f5,stroke:#333,stroke-width:2px
218
+ style Public-Validations fill:#f0fff0,stroke:#333,stroke-width:2px
219
+ style Private-Claim fill:#f8f8ff,stroke:#333,stroke-width:2px
220
+ style Validation-A fill:#f8f8ff,stroke:#333,stroke-width:2px
221
+ style Evidence fill:#ffffff,stroke:#666,stroke-width:1px
222
+
223
+ linkStyle 0,1 stroke:#666,stroke-width:2px,stroke-dasharray: 5
224
+ ```
225
+
226
+ ## Minimal Example
227
+
228
+ ```
229
+ {
230
+ "id": "https://claims.example.com/claim/123",
231
+ "subject": "https://resource.example.com/entity/456",
232
+ "signature": {
233
+ "type": "Ed25519Signature2020",
234
+ "verificationMethod": "did:example:abc#key-1",
235
+ "signatureValue": "zQeVbY4oey5q66..."
236
+ }
237
+ }
238
+ ```
239
+
240
+ ## Advanced Example
241
+
242
+ ```
243
+ {
244
+ "@context": [
245
+ "http://cooperation.org/credentials/v1/",
246
+ "https://w3id.org/security/v2"
247
+ ],
248
+ "type": "LinkedClaim",
249
+ "id": "https://claims.example.com/claim/123",
250
+ "object": "https://resource.example.com/entity/456",
251
+ "statement": "This resource has been verified as meeting quality standards",
252
+ "effectiveDate": "2024-01-06T13:42:19Z",
253
+ "intendedAudience": {
254
+ "type": "OAuth2Audience",
255
+ "id": "https://api.example.com",
256
+ "scope": ["read:claims"]
257
+ },
258
+ "source": {
259
+ "type": "ClaimSource",
260
+ "id": "https://evidence.example.com/doc/789",
261
+ "digestMultibase": "zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e",
262
+ "dateObserved": "2024-01-06T12:00:00Z",
263
+ "howKnown": "direct observation",
264
+ "retrieveFrom": "https://evidence.example.com/doc/789"
265
+ },
266
+ "respondAt": "https://claims.example.com/claim/123/responses",
267
+ "aspect": "quality verification",
268
+ "confidence": 0.95,
269
+ "proof": {
270
+ "type": "Ed25519Signature2020",
271
+ "created": "2024-01-06T13:42:19Z",
272
+ "verificationMethod": "did:example:abc#key-1",
273
+ "proofPurpose": "assertionMethod",
274
+ "proofValue": "zQeVbY4oey5q66..."
275
+ }
276
+ }
277
+ ```
0 commit comments