RE: Profiles in Linked Data

Kingsley,

On Saturday, May 09, 2015 12:07 AM, Kingsley Idehen wrote:
[...]
> 
>> So to repeat my question in another mail: I have an entity described by a
>> (generic) URI.
> 
> You have an entity identified by a IRI in RDF. If you are adhering to Linked Open
> Data principles, said IRI would take the form of an HTTP URI.
> 
> 
>>  Then I have three groups of documents describing that entity, the first uses
>> schema.org, the second group uses org ontology and the third uses foaf.
> 
> You have an entity identified by an HTTP URI. The dual nature of this kind of
> URI enables it function as a Name. The fundamental quality (attribute,
> property, feature) of a Name is that its interpretable to meaning ie., a Name
> also has a dual (denotation and connotation feature) which is what an HTTP URI
> is all about, the only different is that denotation->connotation (i.e. name
> interpretation) occurs in the hypermedia medium provided by an HTTP network
> (e.g. World Wide Web). Net effect, the HTTP URI resolves to and document at a
> location on the Web (i.e, a document at a location, which is the URL aspect of
> this duality).

OK. I have an http URI that denotes an entity. Depending on the server configuration and what accept-headers I provide, the http dereferencing function returns a document at a location.

>> All documents are available as RDF/XML, Turtle and xhtml+RDFa. How does a
>> client that knows only the generic URI for the resource tell the server that it
>> prefers foaf in turtle and what does the server answer?
> 
> It can do stuff like this:
> 
> curl -L -H "Accept: text/xml;q=0.3,text/html;q=1.0,text/turtle;q=0.5,*/*;q=0.3" -
> H "Negotiate: *" -I http://dbpedia.org/resource/Analytics


OK, I can see how setting the Accept-header negotiates the media type. If I understand correctly, the Negotiate-header gives the server and intermediate proxies a carte blanche to negotiate things any way they prefer. I don't see any header that tells the server what profile/shape/vocabulary the client prefers.

> HTTP/1.1 303 See Other
> Date: Tue, 05 May 2015 16:01:06 GMT
> Content-Type: text/turtle; qs=0.35
> Content-Length: 0
> Connection: keep-alive
> Server: Virtuoso/07.20.3213 (Linux) i686-generic-linux-glibc212-64  VDB
> TCN: choice
> Vary: negotiate,accept
> Alternates: {"/data/Analytics.atom" 0.500000 {type application/atom+xml}},
> {"/data/Analytics.jrdf" 0.600000 {type application/rdf+json}},
> {"/data/Analytics.jsod" 0.500000 {type application/odata+json}},
> {"/data/Analytics.json" 0.600000 {type application/json}},
> {"/data/Analytics.jsonld" 0.500000 {type application/ld+json}},
> {"/data/Analytics.n3" 0.800000 {type text/n3}}, {"/data/Analytics.nt" 0.800000
> {type text/rdf+n3}}, {"/data/Analytics.ttl" 0.700000 {type text/turtle}},
> {"/data/Analytics.xml" 0.950000 {type application/rdf+xml}}

Given this Alternates-header: how can  a client figure out what those representations look like (except for their media type)?

> Link:
> <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/resour

> ce/Analytics>; rel="timegate"
> Location: http://dbpedia.org/data/Analytics.ttl

> Expires: Tue, 12 May 2015 16:01:06 GMT
> Cache-Control: max-age=604800

Best,

Lars

Received on Monday, 11 May 2015 15:54:40 UTC