zazukoians / trifid-ld

This repository is DEPRECATED please goto:
https://github.com/zazuko/trifid
Apache License 2.0
18 stars 9 forks source link

Content-negotiation & rapper #25

Open ktk opened 8 years ago

ktk commented 8 years ago

Currently one does not get any triples back from Trifid-LD when using rapper from Redland RDF Libraries. I filed an issue for rapper: http://bugs.librdf.org/mantis/view.php?id=590 (text taken from there):

Rapper currently (2.0.14) seems to send the following Accept header:

accept: 'application/rdf+xml, text/rdf;q=0.6, application/n-triples, text/plain;q=0.1, text/turtle, application/x-turtle, application/turtle, text/n3;q=0.3, text/rdf+n3;q=0.3, application/rdf+n3;q=0.3, application/x-trig, application/rss;q=0.8, application/rss+xml;q=0.8, text/rss;q=0.8, application/xml;q=0.3, text/xml;q=0.3, application/atom+xml;q=0.3, text/html;q=0.2, application/xhtml+xml;q=0.4, text/html;q=0.6, application/xhtml+xml;q=0.8, text/x-nquads, */*;q=0.1'

This works fine as long as RDF/XML is supported by the server. However, if the server only serves Turtle or NTriples, the server will answer to that with HTML before a RDF serialization.

RDF/XML is no longer supported by all servers out there so I would propose to give Turtle and NTriples a higher priority than HTML to make sure we get RDF back if it is supported by the server.

Dave answered with a question:

Can you be more specific.

Turtle / N3 family 0.1 to 1.0

application/n-triples, text/plain;q=0.1, text/turtle, application/x-turtle, application/turtle, text/n3;q=0.3, text/rdf+n3;q=0.3, application/rdf+n3;q=0.3, application/x-trig

HTML range 0.2-0.8

text/html;q=0.2, application/xhtml+xml;q=0.4, text/html;q=0.6, application/xhtml+xml;q=0.8

What would I raise and what lower?

Redland is still quite popular so I would like to know if we do something wrong or if Redland needs to adjust its request. I'm a bit lost here, maybe @retog could have a look at that and compare it with content-negotiation specs?

ktk commented 8 years ago

Possible solutions:

Easy solution (efficient but requires config):

Other solution: