- From: Arthur Ryman <arthur.ryman@gmail.com>
- Date: Thu, 12 Nov 2015 13:18:29 -0500
- To: Holger Knublauch <holger@topquadrant.com>
- Cc: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
Holger, My proposal is not addressed to you personally. It is addressed to the WG. Most members of the WG want to understand the high-level reasons behind a proposal before delving into the details. There are always many solutions to any design problem. You are applying your personal, unagreed-to criteria as justification for your design. Let's get agreement from the WG first. -- Arthur On Wed, Nov 11, 2015 at 11:53 PM, Holger Knublauch <holger@topquadrant.com> wrote: > Look, I think I've been there and got the t-shirt. The devil is in the > detail. Of course I would also like to see a simple solution, but coming up > with something that is consistent and practically useful is not easy. We > really need to look at the details. > > Holger > > > On 11/12/15 2:48 PM, Arthur Ryman wrote: >> >> Holger, >> >> Yes, we need a concrete vocabulary syntax for this. But first I wanted >> to lay out the concept in general terms for the WG to discuss. >> >> -- Arthur >> >> On Wed, Nov 11, 2015 at 11:37 PM, Holger Knublauch >> <holger@topquadrant.com> wrote: >>> >>> On 11/12/15 2:24 PM, Arthur Ryman wrote: >>>> >>>> The current draft uses the following design: >>>> >>>> 1. sh:Template is the meta-class of all templates. >>>> 2. a resource of type sh:Template is a template. Each template is >>>> itself a class. The template itself introduces a new set of properties >>>> that parameterize the template. These are referred to as the >>>> sh:Arguments of the template. >>>> 3. a resource of type template is a constraint. i.e. constraints are >>>> viewed as instances of templates using the property rdf:type to >>>> indicate the action of instantiating a template. >>>> >>>> I feel that the relation between a template and the thing produced by >>>> inserting actual values for the formal arguments of the template is >>>> not correctly modelled by rdf:type. For example, an OO language like >>>> Java has no difficulty implementing templates, but there are no >>>> meta-classes in Java. An instance of a template class simply produces >>>> instances of some other class. >>>> >>>> I feel that people have an easier time understanding models in which >>>> meta-classes are absent. This is the idea behind OWL and description >>>> logic in which things are either classes, properties, or individuals. >>>> >>>> I propose a flattened model in which there are no meta-classes. >>>> >>>> 1. sh:Template is the class of all templates. >>>> 2. a resource of type template is not a class. Instead, it has a >>>> property that gives the type of constraint that the template produces, >>>> e.g. sh:produces. >>>> 3. when the properties introduced by a template are used in a >>>> constraint, that constraint acquires the additional type specified by >>>> the sh:produces property of the template. >>> >>> >>> I believe with that design we would lose the ability to use SHACL to >>> describe its own documents, e.g. to validate shapes graphs and to drive >>> user >>> interfaces. The comparison to Java is not a strong argument - even OWL >>> and >>> RDFS use metaclasses. >>> >>> I also believe that the complexity of this topic means that it is not >>> sufficient to just give some high-level design suggestions. Unless I am >>> mistaken, you had said you would work on a specific data model, i.e. a >>> specific turtle file. If that's the case, then I would appreciate seeing >>> such a file. If not, I'd suggest we decide on a time frame so that we can >>> eventually move on. >>> >>> Thanks, >>> Holger >>> >>> > >
Received on Thursday, 12 November 2015 18:18:58 UTC