diff --git a/index.html b/index.html index 53d42641..3647d4e2 100644 --- a/index.html +++ b/index.html @@ -2684,16 +2684,97 @@
-This section defines the inputs and outputs of the DID resolution and -DID URL dereferencing processes. The exact implementation of these -functions is out of scope for this specification, but some considerations for -implementors are available in [[?DID-RESOLUTION]]. +This section defines the inputs and outputs of DID resolution and +DID URL dereferencing. These functions are defined in an abstract way. +Their exact implementation is out of scope for this specification, but some considerations for +implementors are discussed in [[?DID-RESOLUTION]]. +
+ ++All conformant DID resolvers MUST implement the DID resolution function +for at least one DID method and MUST be able to return a DID document in +at least one conformant representation.
+The DID resolution function resolves a DID into a DID document +by using the "Read" operation of the applicable DID method. (See .) +The details of how this process is accomplished are outside the scope of this +specification, but all conformant implementations MUST implement a function which has the following abstract form: +
+ +
+resolve ( did, did-resolution-input-metadata )
+ -> ( did-resolution-metadata, did-document-stream, did-document-metadata )
+
+The input variables of this function MUST be as follows: +
+ +resolve
+function in addition to the did
itself.
+This input is REQUIRED, but the structure MAY be empty.
+ +The output variables of this function MUST be as follows: +
+ +resolve
function as it represents data about the resolution process itself.
+ resolve
function into a DID document abstract data model, which
+can in turn be validated and processed.
+If the resolution is unsuccessful, this value MUST be an empty stream.
+ did-document-stream
.
+This metadata typically does not change between invocations of the resolve
function unless
+the DID document changes, as it represents data about the DID document.
+If the resolution is unsuccessful, this output MUST be an empty metadata structure.
+
+DID resolver implementations MUST NOT alter the signature of this function in any way. DID resolver
+implementations MAY map the resolve
function to a method-specific internal function to perform the
+actual DID resolution process. DID resolver implementations DID resolver implementations MAY implement
+and expose additional functions with different signatures in addition to the resolve
function specified here.
+