VO-DML subsetting metamodel.

Gerard Lemson gerard.lemson at gmail.com
Thu Apr 20 18:07:53 CEST 2017


Hi Paul

On Thu, Apr 20, 2017 at 11:38 AM, Paul Harrison <
paul.harrison at manchester.ac.uk> wrote:

> Hi,
>
> I was just looking at the subsetting feature of VO-DML with a view to
> implementing properly within VODSL and have noticed an inconsistency
> between the VO-DML document and the schema. From the document I can see
> that the intention is that SubsettedRole is a kind of Constraint - however,
> the schema also has a ‘subsets' attribute (as an ElementRef) on Role -
> should this now be deleted?
>
> I think that I understand what the subsetting feature of the language is
> (though I might not have fully grasped the full scope intended)  - in very
> rough terms - to be able to specify that one of the “contained" elements
> within a sub-type has a specific sub-type of the equivalent element within
> the parent-type. In this case I can see that it has most (exclusive?) use
> within Roles and so it is perhaps odd that the SubsettedRole is a kind of
> Constraint... as a Constraint can be set on any Type, and I am not sure
> that I can see that there is any place for the subsetting concept to be
> associated with Types that cannot contain Roles, so perhaps the vestigial
> “subsets” element on a Role is a better meta model….
>
> I know that the VO-DML spec is deep into RFC and I apologise for not
> bringing this up earlier, but the subsetting feature and the extent to
> which it can be used needs to be nailed down, as it is powerful and will
> probably have a rather strong influence on how detailed models are (I see
> that STC wants to make extensive use of it)
>
>
> Nice question.
'subsets' on Roole should be removed if it is there. SubsettedRole is the
replacement for that concept.
The original implementation, having 'subsets' on Role, would require us to
redefine the inherited Role on the subtype.
Question then would be how to refer to the role in a serialization, i.e.
would it get its own vodml-id, or a new one?
The latter would be confusing for people who are looking for instances of
the role

Nice question.
'subsets' on Role should be removed if it is there. SubsettedRole is the
replacement for that concept.

The original implementation, having 'subsets' on Role, would require us to
redefine the inherited Role on the subtype.
Apart from then also being forced to add name, datatype, description etc,
we need to decide whether it would it get its own vodml-id, or a new one.
The latter would be confusing for people who are looking for instances of
the role as defined on the super type, using the vodml-id defined there.
So to avoid those issues, and also because we really think of 'subsetting'
as a constraint we defined SubsettedRole as a subclass of Constraint. It is
a constraint because it constrains the instances of the inherited Role
(most often a Composition).
It is a constraint defined on Type, because it is only for certain Types
that the constraint exists.

Hope this is clear?

Cheers

Gerard




> Regards,
>         Paul.
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ivoa.net/pipermail/dm/attachments/20170420/3851321a/attachment-0001.html>


More information about the dm mailing list