Perhaps Frederick or some else involved in irON can offer some insight into this. I haven't explored the connections between BibJSON and irON at all and have very little sense of how the two work together or what the motivation for the irON conventions might be.
Ignoring the possible implications of the irOn connection, here are my thoughts:
The BibJSON spec currently specifies that the full id of each record be a URI, which is not necessarily a URL. URIs are not required to have a domain, so we can't use the above test exactly as proposed.
We may be able to support general URIs and still dispose of "@" signs. What if, instead of checking for the domain in the URI, our test checked for the scheme part of the URI? If it is present we are looking at a global id, if it is absent we are looking at a local id. This wouldn't be a perfect solution as some "relative" URIs contain colons and appear to have a scheme even when this is not the author's intent, but this is an existing problem with many similar systems and can easily be avoided by not using the colon in the path part of URIs. This would certainly result in references that look more familiar, and it might be nice, from a practical perspective, if we could use relative URIs, with all their associated conventions, where the URI scheme allows them.
If, however, we are going to support URIs that aren't URLs and we want to be absolutely free of ambiguity then it may still be necessary to tag the difference between a global and a local reference in some way.
Is it important that we support URIs that aren't URLs? I'm not sure. We already require that the full id of a record be constructible by concatenating the dataset id and the local id, and the suggest a hierarchical structure that is definitely URL-like. But then, URLs are meant to give the location of a resource, even if they aren't always used that way, and some folks have spoken out about the importance of supporting IDs which do not necessarily imply that a resource can be retrieved.
Is it important that we are absolutely free of ambiguity. I don't like ambiguity, but the ambiguity presented by using relative URLs is low, already exists in other systems, and there authors can almost always find work arounds to make sure there references are interpreted correctly. I still don't like ambiguity however.
I'd love to hear what folks have to say about this. I am, by the way, also still interested any proposals as to how the method of resolving ids might be specified within a BibJSON dataset. I'm currently working on some code to resolve BibJSON references, but it only works when the id is a URL with the http, ftp, or file scheme. I'm treating all other ids as unresolvable. This isn't a problem for my own datasets, which always use ids with the file or http scheme, but I'd like to know what those folks who might use other schemes have in mind.
All the best,
- Ben