URIs have some structure, but there are constructions of URIs which are valid but probably not what we want people to do. For example, the following are all technically valid URIs:
any_string_with_no_spaces
@
&
==
%00
/@&=
//hello
I would suggest that we at the very least require Absolue URIs, i.e. those that have a scheme component, such as "http:" or "urn:"
Note also that beyond that specific URI forms can have further semantics, and they will be impossible to realistically validate, so there may also be some reason to require either urn:uuid or an HTTP URI and forbid anything else.
URIs have some structure, but there are constructions of URIs which are valid but probably not what we want people to do. For example, the following are all technically valid URIs:
I would suggest that we at the very least require Absolue URIs, i.e. those that have a scheme component, such as "http:" or "urn:"
Note also that beyond that specific URI forms can have further semantics, and they will be impossible to realistically validate, so there may also be some reason to require either
urn:uuid
or an HTTP URI and forbid anything else.