Hi list,
Short version:
I want real-world concepts to be able to have a URI without a "http://".
You cannot transfer any real-world concept over an Internet protocol
anyway. Why I would consider changing this can be
* If you don't agree, why?
* If you do agree, should we change the definition of a URI? Will this
break existing Linked Data infrastructure?
Long version:
I'm overlooking the development of a hypermedia application* at a server
which redirects all http://{foobar} URIs towards https://{foobar}.
Furthermore, in order to make a distinction between real-world objects
and their representation, I have added "#object" at the end of the URIs
for the real-world objects in the store behind it.
Now I have to explain these developers that each time a request is done
on the website, they will have to look up what the requested URI was,
then substitute https:// with http:// and then concatenate "#object" to
the URI, in order to be able to find statements which will be useful in
the application. The reason behind this is of course the real-world
objects which cannot be retrieved over HTTP, yet the representation has
a different URI, which is automatically generated as everything starting
at "#" gets deleted anyway.
Now I also have to convince another reuser of the data, a native
application builder, that he should use these URIs with http:// and
"#object". Inside his application, he does have his own style of
identifiers, which looks very close to URIs, the only thing that lacks
is the protocol. So I've asked him to add the protocol to the URIs for
real-world objects and add "#object" at the end. He ended up giving me
something with "https://" in the beginnen. Which makes a lot of sense:
that's what works on the Web, but sadly not in my store.
This process could have been a lot simpler with a tiny change: allowing
URIs identifying real-world objects not to have a protocol. Why would
you add http:// to something you cannot GET anyway? What if we would
allow our real-world URI to be just {foobar} and the URI of the
representation being http://{foobar} or https://{foobar}? Now the
developers just have to remove the protocol in order to find useful
triples about what the client requested in the store.
This would make sense in a lot of cases: e.g., my organization is
ugent.be, and its Web representation can be found at http://ugent.be.
Filling out ugent.be in a browser will automatically refer you to its
representation.
Your thoughts?
Kind regards,
Pieter
* This application I'm working on: http://iRail.be