4 Simple durable web resolution

Stian Soiland-Reyes edited this page Mar 12, 2016 · 4 revisions

Rule 4: Opt for simple durable web resolution

Permalink URI: https://w3id.org/id-rules/4

TODO: This page lacks hyperlinks

If you are a database provider, you must implement a resolving namespace (Fig. 1 panel B) for local identifiers to be “resolvable” to a web page. Use best practices to implement content negotiation for different encodings of your data [2], and provide direct access to data, metadata, and persistence statements [13]. If you choose to outsource to a resolver service, use an approach that is JDDCP approved [2] (e.g. DataCite, CrossRef, Identifiers.org, Handle.net, PURL, EPIC, ARK) and be mindful of your constraints regarding cost, metadata ownership, turnaround time, etc. (See Text S5 for a more comprehensive list of considerations.) If you have the resources to support your own persistent URIs, design these to be simple: Omit anything that is likely to change or lapse, including administrative details (e.g. grant name) or implementation details such as file extensions (‘resource.html’), query strings (‘param=value’), and technology choices (‘.php’). The compact URI approach can work with any resolver(s): see for instance examples 4 and 5 in Figure 1. By choosing a single namespace per database, you make it possible for others to resolve your identifiers simply (Fig. 1 panel A). If multiple resolvers are used, each must have a corresponding prefix (e.g. KEGG-path: http://www.kegg.jp/dbget-bin/www_bget?path: vs KEGG-ko: http://www.kegg.jp/dbget-bin/www_bget?ko:) Occasionally, the resolving namespace is the same as the homepage (e.g. http://zfin.org/ in Fig. 1). In all cases, the resolving namespace must be exactly as it appears in the URI: it must include the protocol (e.g. http://) and, if applicable, trailing slash or other delimiters.

Fig. 1. Examples of provisioning resolvable URIs: Compact URIs (CURIEs) (Panel A), URIs (Panel B) and Access URLs (Panel C) with in house examples from (ZFIN, UniProt, and ENSEMBL and 3rd party resolver examples using identifiers.org and DOI. In each case, the URI can be algorithmically derived from the CURIE, and the LRI itself is included (unmodified) within the URI.

TODO: Insert Table/picture