- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1
 
Description
The following entries are marked with "namespaceEmbeddedInLui": true, but I do not think they should not be. None of their sample identifiers actually contain the prefix, and the CURIE that follows https://identifiers.org/{curie} also is completely normal, following the same pattern as all of the other entries with "namespaceEmbeddedInLui": false.
Additionally, all of the provider's format strings seem to only take in the identifier (though some do seem to also contain hard-coded copies of the prefix), so is it that I am misunderstanding the usage of "namespaceEmbeddedInLui"?
This is of general importance because given a prefix/identifier pair, it is still often unclear how to construct a valid URL for identifiers.org. Typically, examples marked with "namespaceEmbeddedInLui": true come from the OBO world where the solution is to uppercase the prefix to make a valid URL for identifiers.org, but beyond this, there don't seem to be any general rules for how to handle true entries.
cc: @bgyori @dhimmel @cgreene this might be of interest to you too
| prefix | pattern | sample | example url | 
|---|---|---|---|
| mge | ^mge:\d+$ | 2 | https://identifiers.org/mge:2 | 
| mzspec | ^mzspec:.+$ | PXD002255::ES_XP_Ubi_97H_HCD_349:scan:9617:LAEIYVNSSFYK/2 | https://identifiers.org/mzspec:PXD002255::ES_XP_Ubi_97H_HCD_349:scan:9617:LAEIYVNSSFYK/2 | 
| swh | ^swh:[1-9]:(cnt|dir|rel|rev|snp):[0-9a-f]+(;(origin|visit|anchor|path|lines)=\S+)*$ | 1:rev:309cf2674ee7a0749978cf8265ab91a60aea0f7d | https://identifiers.org/swh:1:rev:309cf2674ee7a0749978cf8265ab91a60aea0f7d | 
| did | ^did:[a-z0-9]+:[A-Za-z0-9.\-:]+$ | sov:WRfXPg8dantKVubE3HX8pw | https://identifiers.org/did:sov:WRfXPg8dantKVubE3HX8pw | 
| ocid | ocid:[0-9]{12} | 190000021540 | https://identifiers.org/ocid:190000021540 | 
This table was generated with the following code:
import requests
from tabulate import tabulate
#: see https://docs.identifiers.org/articles/api.html#getdataset
URL = 'https://registry.api.identifiers.org/resolutionApi/getResolverDataset'
def main():
    res = requests.get(URL).json()
    rows = []
    for entry in res['payload']['namespaces']:
        prefix = entry['prefix']
        pattern = entry['pattern']
        namespace_in_lui = entry['namespaceEmbeddedInLui']
        sample_id = entry['sampleId']
        url = f'https://identifiers.org/{prefix}:{sample_id}'
        if namespace_in_lui and pattern.lstrip('^').startswith(f'{prefix}:'):
            rows.append((prefix, pattern, sample_id, url))
    print(tabulate(rows, headers=['prefix', 'pattern', 'sample', 'example url'], tablefmt='html'))
if __name__ == '__main__':
    main()