- | ## Identifier resolution The schema may designate one or more fields as identifier fields to identify specific objects. Processing must resolve relative identifiers to absolute identifiers using the following rules: * If an identifier URI begins with `#` it is a current document fragment identifier. It is resolved relative to the base URI by setting or replacing the fragment portion of the base URI. * If an identifier URI contains `#` in some other position is a relative URI with fragment identifier. It is resolved relative to the base URI by stripping the last path segment from the base URI and adding the identifier followed by the fragment. * If an identifier URI does not contain a scheme and does not contain `#` it is a parent relative fragment identifier. * If an identifier URI is a parent relative fragment identifier and the base URI does not contain a document fragment, set the document fragment on the base URI. * If an identifier URI is a parent relative fragment identifier and the object containing this identifier is assigned to a parent object field defined with `subscope` in `jsonldPredicate`, append a slash `/` to the base URI fragment followed by the value of the parent field `subscope`. Then append the identifier as described in the next rule. * If an identifier URI is a parent relative fragment identifier and the base URI contains a document fragment, append a slash `/` to the fragment followed by the identifier field to the fragment portion of the base URI. * If an identifier URI begins with a namespace prefix declared in `$namespaces` followed by a colon `:`, the prefix and colon must be replaced by the namespace declared in `$namespaces`. * If an identifier URI is an absolute URI consisting of a scheme and path, no processing occurs. When preprocessing visits a node containing an identifier, that identifier must be used as the base URI to process child nodes. It is an error for more than one object in a document to have the same absolute URI. ### Identifier resolution example Given the following schema: ``` - $include: ident_res_schema.yml - | ``` Process the following example: ``` - $include: ident_res_src.yml - | ``` This becomes: ``` - $include: ident_res_proc.yml - | ```