Re: ISSUE-95: Proposed simplification and clean up of template mechanism

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