Re: (Lost in the noise perhaps - so asking again) - Is a trailing slash 'better' than a trailing hash for vocabs namespace IRIs?

Hi,

> On 11 Oct 2022, at 09:49, Pat McBennett <patm@inrupt.com> wrote:
> 
> Hiya Pierre-Antoine,
> 
> I'm going to try and reply in-line this time - hopefully GMail won't garble the formatting this time (and I've prefixed my responses with [PMcB] too):
> 
> On Mon, Oct 10, 2022 at 11:21 AM Pierre-Antoine Champin <pierre-antoine@w3.org> wrote:
> Dear Pat,
> 
> I just wanted to make sure we were on the same page regarding the "best of both worlds" situation, but clearly we are.
> 
> To answer your question about my points c) and d) below:
> when the client retrieves something from http://ex.co/x/, it contains some triples about http://ex.co/x/Z. But when the client wants to know exactly what http://ex.co/x/Z is, how does it determine that it does not need to retrieve http://ex.co/x/Z, because it already retrieved everything there is to know about http://ex.co/x/Z when it retrieved http://ex.co/x/ ?
> 
> [PMcB] - I'd say it simply queries (i.e., locally, in-memory) the response it got from the server when it de-referenced http://ex.co/x/ (i.e., the "large" representation), to see if that response already contains triples for http://ex.co/x/Z. In other words, I'd expect the Best Practice guidance to state that all vocab term metadata for all vocab terms be returned in that "large" representation, and not just a subset of term metadata, or only the `rdfs:isDefinedBy` triples for vocab terms.
> 
> And yes, to perform such a query does need a client-side library (like RDF4J or Jena for Java, or RDF-JS for JavaScript, or rdflib for Python, etc.) - but given we're talking about RDF here in the first place, I don't see that as a huge ask. (Caveat: I do know and recognize of course that the current mainstream RDF libraries are very low-level and therefore 'complex', which is why we at Inrupt (and others, such as Ghent University) are actively trying to produce open-source, higher-level, easier-to-use SDKs to make doing such things much, much easier, especially for devs not familiar with RDF at all).
> But without getting into that whole client-side library debate(!), I think the fundamental, inevitable answer to your perfectly valid question of "how does it determine...?" has to be "it checks/asks/looks-inside/queries/looks-up the response from the server", and therefore a minimal level of 'client understanding' of server responses will always be necessary.
I like slash URIs, but sorry, I can’t like this.
The basis of Linked Data is that you find the triples of authority for an entity by resolving the URI, and munching what you get back.
Simply looking in your triplestore to see if you have triples about that entity is not enough.
What happens if some other source has triples with that URI in?
rdfs:isDefinedBy might mitigate this to some extent, but even then, why should I think that is any more authoritative than anything else.

Of course, if you give vocabs/onotoliges special status, then you can do this sort of thing.
But if you are just treating them as the RDF/Linked Data that they are, then you are in trouble saying this.
My standard system with caching triplestore etc. would always want to know it had got the resolved URI at some time.

This is why I think use cases are needed - slash is great for pre-loaded/engineered systems, but for proper dynamics aims Semantic Web, will incur extra fetching costs for the terms.

Best
Hugh
> 
> One way to achieve this would be to include, in the content of http://ex.co/x/, the triple
>     <http://ex.co/x/Z> rdfs:isDefinedBy <http://ex.co/x/>.
> 
> but again, that is a convention that both the server and the client have to share.
> 
> [PMcB] - Yep, exactly! I already make doing that a strongly recommended Best Practice for all vocabs I produce or work with, and so I'd love to see that become a more universally shared convention. But yes, it would just be a Best Practice guidance, one that I'd hope would become more and more widespread over time. For sure, we can't enforce it, but we can point at good examples from major, highly successful vocabs out there today, like QUDT and gist and Schema.org and DPV and ...!
> 

Received on Tuesday, 11 October 2022 09:23:53 UTC