RDF 303 redirect clarification

2020-02-13 06:12发布

问题:

I'd like to confirm something about the 303 redirect protocol implication.

If one does follow the convention of building RDF (resources/instances file as opposed to vocabularies) using slash URI instead of hash URI for flexibility purpose, does it mean that each resource instance must have a redirect defined (if we want them dereferencable)? Meaning we must define with purl a 303 redirect for each resource to either the same or different file as we see fit?

Also, along the way can someone tell me what is the difference between an information resource and a non-information resource (also called real world object)? More specifically, does not Resource Description Framework stand for Information Resource Description Framework? Maybe a better explanation of what is a resource on the web would help.

Can someone help clarify those concepts?

回答1:

You could think of information resource as Web document, and of non-information resource as thing. (Not a definition, just so you get a rough idea.)

I tried to explain the difference in this answer:

a HTTP URI could identify the page itself OR the thing the page is about. You can't tell if an URI identifies the page or the thing by simply looking at it.

Example (in Turtle syntax):

<http://en.wikipedia.org/wiki/The_Lord_of_the_Rings> ex:author "John Doe"

This could mean that the HTML page with the URI http://en.wikipedia.org/wiki/The_Lord_of_the_Rings is authored by "John Doe". Or it could mean that the thing described by that HTML page (→ the novel) is authored by "John Doe".

It’s a good practice to make it possible that others can differentiate this when re-using your URIs or your data. However, this is not required; some think that this is a non-issue or not worth the effort.

The discussion about this differentiation is known as the httpRange-14 issue ("What is the range of the HTTP dereference function?").

Some possible solutions are:

  • Hash URIs (see example in this answer)
  • 303 URIs (see DBpedia example in this answer)
  • Property categories (rather new and probably not well-known; see my question with a brief explanation)

So when you use "slash URIs", and you care about the differentiation (and I think you should!), then yes, you would have to use a 303 redirect.

Otherwise (if you’d send 200), all user agents that follow TAG’s resolution would think that your URI identifies an information resource.



回答2:

More specifically, does not Resource Description Framework stand for Information Resource Description Framework?

No. Because you can describe things that are not information resources, for instance: a person. A lump of cheese. A specific shade of blue.

A URI is the name of a resource - a thing-in-itself that you are actually interested in. Many times that thing-in-itself is actually something available on the web: an image or other media file, a human-readable document. These types of things are called information resources.

So to make it clear whether you are fetching the actual thing, or a document about the thing, linked data issues the 303 redirect.