- From: Arthur Ryman <arthur.ryman@gmail.com>
- Date: Wed, 11 Nov 2015 23:24:18 -0500
- To: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
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. -- Arthur
Received on Thursday, 12 November 2015 04:24:46 UTC