Skip to content

Commit 77c142e

Browse files
authored
core diagram, terminology and conformance requirements
1 parent 0b8f32c commit 77c142e

File tree

1 file changed

+46
-27
lines changed

1 file changed

+46
-27
lines changed

spec/spec.md

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -57,50 +57,69 @@ The specification will be updated to incorporate feedback, from DIF members and
5757

5858
## Terminology
5959

60+
[[def:DID]] ~ A Decentralized Identifier as defined in https://www.w3.org/TR/did-core/
61+
6062
[[def:Linked Claim]] ~ A structured, cryptographically signed document with a URI subject that is itself addressable at a URI, following at least the MUST requirements detailed below.
6163

64+
[[def:Signer]] ~ The entity that cryptographically signs a claim (known as the "issuer" in Verifiable Credentials)
65+
6266
[[def:URI]] ~ a Uniform Resource Identifier as defined in https://datatracker.ietf.org/doc/html/rfc3986
6367

64-
## Architecture
68+
## Core Pattern
6569

6670
```mermaid
6771
6872
graph LR
69-
subgraph Claim A
70-
A_id["id: URI_A"]
71-
A_subject["subject: URI_B"]
72-
A_content["content: {...}"]
73-
A_sig["signature: xyz"]
74-
end
75-
76-
subgraph Claim B
73+
subgraph Claim-B
7774
B_id["id: URI_B"]
78-
B_subject["subject: URI_X"]
75+
B_subject["subject: URI_A"]
7976
B_content["content: {...}"]
8077
B_sig["signature: xyz"]
8178
end
8279
83-
subgraph Claim C
84-
C_id["id: URI_C"]
85-
C_subject["subject: URI_B"]
86-
C_content["content: {...}"]
87-
C_sig["signature: xyz"]
80+
subgraph Claim-A
81+
A_id["id: URI_A"]
82+
A_subject["subject: URL_X"]
83+
A_content["content: {...}"]
84+
A_sig["signature: xyz"]
85+
end
86+
87+
subgraph Resource
88+
X["URL_X"]
8889
end
8990
90-
%% Claims point to target claim's ID URI
91-
A_subject -.-> B_id
92-
C_subject -.-> B_id
91+
%% Claims point to their subjects
92+
B_subject -.-> A_id
93+
A_subject -.-> X
9394
94-
classDef claim fill:#e6e6fa,stroke:#333,stroke-width:2px;
95-
classDef claimPart fill:#f0f0f0,stroke:#666,stroke-width:1px;
96-
class A_id,B_id,C_id,A_subject,B_subject,C_subject,A_content,B_content,C_content,A_sig,B_sig,C_sig claimPart;
95+
classDef claim fill:#f8f8ff,stroke:#333,stroke-width:2px
96+
classDef claimPart fill:#ffffff,stroke:#666,stroke-width:1px
97+
classDef resource fill:#e8f4f8,stroke:#333,stroke-width:2px
9798
98-
style Claim A fill:#e6e6fa,stroke:#333,stroke-width:2px;
99-
style Claim B fill:#e6e6fa,stroke:#333,stroke-width:2px;
100-
style Claim C fill:#e6e6fa,stroke:#333,stroke-width:2px;
101-
102-
linkStyle 0,1 stroke:#666,stroke-width:2px,stroke-dasharray: 5;
99+
class B_id,B_subject,B_content,B_sig,A_id,A_subject,A_content,A_sig claimPart
100+
style Claim-A fill:#f8f8ff,stroke:#333,stroke-width:2px
101+
style Claim-B fill:#f8f8ff,stroke:#333,stroke-width:2px
102+
style Resource fill:#e8f4f8,stroke:#333,stroke-width:2px
103+
style X fill:#ffffff
104+
105+
linkStyle 0,1 stroke:#666,stroke-width:2px,stroke-dasharray: 5
103106
```
104107

105-
108+
## LinkedClaim Conformance Requirements
109+
110+
A LinkedClaim:
111+
112+
* **MUST** have a subject that can be any valid URI
113+
* **MUST** itself have an identifier that is a well-formed URI (URN is acceptable)
114+
* **MUST** be cryptographically signed, such as with a DID
115+
* **SHOULD** provide a mechanism to retrieve deterministic machine-readable content from its URI
116+
* **SHOULD** include a date that is in the signed data
117+
* **SHOULD** contain evidence such as links to a source or attachments, optionally hashlinked
118+
* **SHOULD** have a URI-addressable cryptographic signer
119+
* **MAY** have a narrative statement
120+
* **MAY** be a W3C Verifiable Credential or similar digital credential specification
121+
* **MAY** provide a way for the signer to mutate or revoke the claim
122+
* **MAY** have a subject that itself is a claim
123+
* **MAY** have a separate published date and effective date
124+
* **MAY** be public or access controlled
106125

0 commit comments

Comments
 (0)