- From: Christian Chiarcos <christian.chiarcos@web.de>
- Date: Thu, 13 Oct 2022 10:55:06 +0200
- To: Pat McBennett <patm@inrupt.com>
- Cc: Pierre-Antoine Champin <pierre-antoine@w3.org>, SW-forum <semantic-web@w3.org>
- Message-ID: <CAC1YGdg=+X5d_bhPtBmcE6fQTWx9RPpnXmLp=tkn7GPty-MikA@mail.gmail.com>
Dear Pat, dear all, this sprung off from the earlier discussion of Slash URIs in "Re: (Lost in the noise perhaps - so asking again) - Is a trailing slash 'better' than a trailing hash for vocabs namespace IRIs?]". For vocabularies using Slash URIs, there is need for a standard property to point from a (TBox) concept to the URI from where to retrieve a full representation. Pat suggested rdfs:isDefinedBy. I agree on the need and the need for a wider agreement, but think we should use or create a different property for the purpose. > [PMcB] I wouldn't really mind which predicate becomes the Best Practice - > I just like 'rdfs:isDefinedBy' because it feels so intuitive, and it exists > in one of the 'core' RDF vocabs already (and it seems to be the most > commonly used in practice - not that that's a particularly strong > justification!) > > [PMcB] But I'd still suggest that your use of 'rdfs:isDefinedBy' to point > to the URIs of *unstructured documents* might not be strictly correct. I > mean, here's the actual complete definition of that term (complete with > typo in the value of the 'rdfs:comment' triple :) !): ... > [CC] Hm, I always took the *text* of the W3C specification to take priority over the RDF spec (simply because that couldn't capture the full semantics anyway), and https://www.w3.org/TR/rdf-schema/#ch_isdefinedby clearly says *twice* that "the resource O defines S" [as an unstructured text can] and more specifically that while "[i]t may be possible to retrieve representations of O from the Web, (...) *this is not required*. When such representations may be retrieved, *no constraints are placed on the format of those representations*." (emphasis mine) > [PMcB] So that is clearly communicating that the 'rdfs:range' should be > RDF. > [CC] Actually, not really. https://www.w3.org/TR/rdf-schema/#ch_resource: "All things described by RDF are called *resources*, and are instances of the class rdfs:Resource. This is the class of everything." This doesn't mean that the object URI has to resolve to an RDF representation (it's clear that we would want that but this is not part of the RDF(S) spec at all, but of that of Linked Data). This only means that RDF can be used to provide information about that URI (which we do by using this as subject, object or predicate in any triples -- irrespectively of that this URI resolves to, if at all). And as quoted above, the definition underlines this very explicitly for this particular case. > [PMcB] 'prov_o:wasDerivedFrom' (but that has the range 'prov_o:Entity'). > ... 'dcterms:source' ... seems to fit your use case pretty well to me - > i.e., "This property is intended to be used with non-literal values. The > described resource may be derived from the related resource in whole or in > part. Best practice is to identify the related resource by means of a URI > or a string conforming to a formal identification system.". > [CC] My issue with dct:source (and prov_o:wasDerivedFrom) is the notion of "derivation". Derivation involves (and, depending on context, requires) modification (either an interpretative action or a rule-based transformation), and this can be anything up to something as vague as "giving inspiration to". But rdfs:isDefinedBy is much more concrete, because it tells us where to find the definition that holds for S, i.e., that the exact semantics of the subject term are provided by the (information associated with the) object URI, regardless of formalism used for providing that definition (and yes, plain text can do that, as well). [CC] And it is pretty clear why such a property is necessary in the wider context of RDF and the Semantic Web, because we knew from the beginning that formal semantics would never be able to cover everything (by Gödel's incompleteness theorem). In consequence, there must be a standard way to complement RDF semantics with external semantics. This is the primary role of rdfs:isDefinedBy -- and I don't see how this function could be served by anything else. And also, this is why this functionality is needed at the very core of RDF. [CC] Re-purposing rdfs:isDefinedBy for vocabulary resolution is not strictly speaking wrong. In fact, for cases where RDF semantics are sufficient, this is among the intended functions, I guess -- but if we aim for the complete formalization of *anything* with RDF or any technology building on RDF, it *must never* be limited to this function. Yet, if such a best practice would be generally followed, it could amount to exactly that. On the other hand, Prov-O, DCAT and Dublin Core are specifically designed to deal with resource metadata, and by all means, information about technical aspects of the hosting of documentation is not metadata and should be dealt with in that context. [PMcB] Anyways, I'd certainly be open to suggestions for a different/better > predicate to use as Best Practice guidance for linking a vocab term back to > its defining/containing/describing vocab. But that would be a separate > issue/thread though! > I guess so ;) I just gave it a new subject. Best, Christian
Received on Thursday, 13 October 2022 08:55:31 UTC