- From: Holger Knublauch <holger@topquadrant.com>
- Date: Fri, 5 Feb 2016 08:26:45 +1000
- To: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
On 5/02/2016 2:10 AM, Arthur Ryman wrote: > Holger, > > 1. The HTML file is a simple translation of the Turtle file. This > keeps them consistent. The Best Practices doc recommends that we make > the vocabulary available in multiple formats via HTTP Content > Negotiation. If we auto-generate the HTML and RDF/XML from Turtle then > there is no authoring burden. Sure. > > 2. As I said, we should move towards Javascript and ReSpec for this > purpose. Furthermore, the source code for any generator must be > checked in to the w3c repo so that any present or future editor can > regenerate. Using Javascript and ReSpec simplifies the process. Why is this a MUST? As long as we have some workable process to produce the new HTML file until the end of the WG, we should be fine. As I said in another email, I think the current XSLT doesn't make use of extra information from the shape definitions, which would be a wasted opportunity. > > 3. There are actually two URIs involved here, namely the namespace URI > which acts as the prefix for terms, and the vocabulary URI which names > the vocabulary and is conventionally used as the object of > rdfs:isDefinedBy triples. These two URIs are conceptually distinct but > in practice they are the same, or differ only by the addition of a # > on the namespace URI. > > I believe we all agree that the namespace URI ends in a #. > > You want to drop the # for the vocabulary URI. Personally, I think it > is simpler to make these two URIs the same, which means they end in #. > > However, we are producing a W3C spec so we should be consistent for > W3C practices. However, there is variation within W3C. I suggest we > ask Eric to give us guidance. > > RDF and RDFS name the vocabulary with an ending # and terms refer to that, e.g. > > RDF > > <http://www.w3.org/1999/02/22-rdf-syntax-ns#> a owl:Ontology ; > dc:title "The RDF Concepts Vocabulary (RDF)" ; > dc:description "This is the RDF Schema for the RDF vocabulary terms in > the RDF Namespace, defined in RDF 1.1 Concepts." . > > rdf:HTML a rdfs:Datatype ; > rdfs:subClassOf rdfs:Literal ; > rdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ; > > > RDFS > > <http://www.w3.org/2000/01/rdf-schema#> a owl:Ontology ; > dc:title "The RDF Schema vocabulary (RDFS)" . > > rdfs:Resource a rdfs:Class ; > rdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ; > > OWL drops the # from the vocalulary URI, but includes it when > referring to it from terms. This strikes me as inconsistent. > > OWL > > <http://www.w3.org/2002/07/owl> a owl:Ontology ; > dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; > > owl:AllDifferent a rdfs:Class ; > rdfs:label "AllDifferent" ; > rdfs:comment "The class of collections of pairwise different > individuals." ; > rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ; To track the #-or-not decision, I have opened a ticket https://www.w3.org/2014/data-shapes/track/issues/121 Thanks, Holger > > -- Arthur > > On Thu, Jan 28, 2016 at 11:45 PM, Holger Knublauch > <holger@topquadrant.com> wrote: >> On 29/01/2016 3:34 AM, Arthur Ryman wrote: >> >> Holger & WG, >> >> One of the principles of good RDF design is to treat URIs as opaque. >> That means applications should not assume that a URI conforms to any >> given pattern. In principle the URI of an ontology could be completely >> unrelated to the URIs of its terms. We all probably think that is a >> terrible thing to do, but RDF seems to strive towards accommodating >> any conceivable way of working. Therefore we should always be explicit >> about the relation between a term and its defining ontology, hence the >> presence of the explicit rdfs:isDefinedBy triples. >> >> The use of explicit rdfs:isDefinedBy triples also allows you to easily >> split up a large vocabulary into multiple graphs. This decouples the >> vocabulary from how it is stored in graphs. Furthermore, it >> distinguishes vocabulary terms from other resources that might be >> present in a given graph. In effect, we are treating all subjects of >> rdfs:isDefinedBy as vocabulary terms. This is handy for individual >> terms defined by a vocabulary, i.e. terms that are neither classes nor >> properties. >> >> >> The latter paragraph has convinced me :) We will have at least two files on >> the web: the RDFS vocabulary and a SHACL file extending the vocabulary with >> a more detailed "schema" to validate SHACL files. I suggest that each >> resource gets two rdfs:isDefinedBy triples, pointing to both files so that >> tools can discover the SHACL definitions too. >> >> >> The use of hash URIs is one of the W3C recommended best practices for >> publishing RDF [1]. It is therefore convenient to make the URI of the >> ontology end with a hash. This is simply a convention that several >> prominent W3C vocabularies use. >> >> [1] https://www.w3.org/TR/swbp-vocab-pub/ >> >> >> The reference [1] above points at SKOS as the flagship example: >> >> https://www.w3.org/TR/swbp-vocab-pub/#hash >> >> But SKOS uses the pattern that I also promote: >> >> The URI for the SKOS Core Vocabulary itself is: >> >> http://www.w3.org/2004/02/skos/core >> >> and if you look at the Turtle from >> >> http://www.w3.org/TR/skos-reference/skos.rdf >> >> <owl:Ontology rdf:about="http://www.w3.org/2004/02/skos/core"> >> <dct:title xml:lang="en">SKOS Vocabulary</dct:title> >> ... >> >> No # at the end. All owl:imports to SKOS also point at the URI without #. >> >> Do you have a (normative) reference that owl:Ontologies should end with #? I >> otherwise suggest removing the # because that practice seems to be more >> widely used (the RDF namespace itself being the main exception). >> >> Thanks, >> Holger >>
Received on Thursday, 4 February 2016 22:27:22 UTC