DV_URI vs DV_IDENTIFIER for non-locator URIs

According to RFC 3986, a URI can be an identifier without having to also be a locator. Is this also the intent for the DV_URI data type? If so, how does this mesh with DV_IDENTIFIER?

The main difference is that:

  • a URI can (assuming it is correct) be resolved to some machine obtainable resource, e.g. an online document, a site, etc
  • a DV_IDENTIFIER captures the identifier of some real world object such as a human, a driving license, a prescription etc. which is issued by some issuer. There is no implication of whether it can be ā€˜resolved’ by anything other than the issuing organisation (e.g. US Social Security, etc), and no implication of anything being available online (even though such things mostly are today, but you’d be surprised in the US …)

But does that include a uri that does not actually resolve to a location?

@siljelb can you give an example of what you are trying to identify/connect?

I do think we may have to do something to make it easier to express typed references as per FHIR. OBJECT_REF would do the job but it has no equivalent DV_ for archetype use. or can we modify DV_URI to support this? Ignore if this not your requirement - I’ll re-ask the question elsewhere!!

That was what I was wondering about too, thanks Ian!

The starting point for my question was this change request: Cluster Archetype: Laboratory analyte result [openEHR Clinical Knowledge Manager]

The CR is suggesting using both the DV_IDENTIFIER and the DV_URI as data types, which led to the question of how these two should be used in relation to one another. Do we by ā€œURIā€ really mean ā€œURLā€, even though the class description clearly mentions RFC-3986, which explicitly allows URIs that are not also URLs?

A URI can be incorrect, like anything else. RFC 3986 doesn’t state anything about resolution, only about URI syntax. A URI supplied to a resolving server may result in a 404 (if it’s an HTTP server), or any other failure equivalent.

Also URIs don’t resolve (for the ones that do resolve) to locations, only to resources, e.g. a document, a SNOMED code, whatever it may be.

The intent of a URI is that it resolves to something in the online world, nearly always via HTTP protocol; that’s the difference with DV_IDENTIFIER, which has no assumption about any online anything; it is assumed to be resolvable by whatever means are available, e.g presenting at the reception of the state DVLA, Social Security office; making phone calls, and possibly specific online systems, but there is no general expectation that an SSN or a veterans number can be just put into a browser and get a sensible result.

@siljelb to confuse things a bit more :wink: I guess you might have noted that URNs are also URIs (but not necessarily resolvable). Feel free to help me/us think about how they are best used in openEHR, see:

P.s. also somewhat related: Usage of OID, URI (URL/URN) in DV_IDENTIFIER fields?

2 Likes