VO-DML subsetting

Gerard Lemson glemson1 at jhu.edu
Fri Jun 14 14:36:03 CEST 2019


Hi Laurent
It would be interesting (I think) to have a computer readable constraint language, that can be translated to some common languages.
The spec mentions OCL, but maybe something simpler could be sufficient. Gathering use cases like yours would be useful.
Cheers
Gerard

> -----Original Message-----
> From: Laurent Michel <laurent.michel at astro.unistra.fr>
> Sent: Friday, June 14, 2019 8:31
> To: Gerard Lemson <glemson1 at jhu.edu>; dm at ivoa.net
> Subject: Re: VO-DML subsetting
> 
> 
> Thanks Gerard,
> 
> This helps a lot.
> 
> Laurent
> 
> Le 14/06/2019 à 12:32, Gerard Lemson a écrit :
> > Hi Laurent
> > SubsettedRole is a special form of Constraint, one that merely indicates that on
> a subtype, the datatype of an inherited Role is a more specific version (subtype)
> of the datatype of that Role as defined on the supertype.
> > You can actually define free form Constraint-s, see section 4.20 of the VO-DML
> spec.
> > These are defined using "free" text in the description element of the
> Constraint, and is defined at the level of the type, not a Role.
> > The modeler is free to make up their own computer readable constraint
> language if they wish.
> > E.g.  as in the VO-DML/XML sample in that section :
> > <constraint>
> >      <description>-90&lt;=self.latitude.value&lt;=90 </description>
> > </constraint>
> >
> > Does this help?
> > Cheers
> > Gerard
> >
> >> -----Original Message-----
> >> From: dm-bounces at ivoa.net <dm-bounces at ivoa.net> On Behalf Of Laurent
> >> Michel
> >> Sent: Friday, June 14, 2019 5:25
> >> To: dm at ivoa.net
> >> Subject: VO-DML subsetting
> >>
> >>
> >> Hello,
> >>
> >> In my model, I would like to put a constraint (SubsettedRole) on an
> >> attribute value in the context of a specific class:
> >>
> >> Example:
> >>     - SuperClass A(attribute: a:string)
> >>     - SubClass B extends A (constraint: a='ImB')
> >>
> >> This is legal in UML since constraints are free text but the VO-DML
> >> validator
> >> (schematron) disallow this.
> >> The Schematron validates constraints by applying a regular expression
> >> on the SubsettedRole which reject any sort of expression:
> >>
> >>     [a-zA-Z][a-zA-Z0-9\._\-]+:[a-zA-Z][a-zA-Z0-9\._]*
> >>
> >> This is fine to put a constraint on class name (Class B extends A
> >> (constraint: a is instance of X)) , but nothing in the spec disallows
> >> to write an expression like (Class B extends A (a is not null))
> >>
> >> How can I do this?
> >>
> >> Laurent
> >> --
> >> jesuischarlie/Tunis/Paris/Bruxelles/Berlin
> >>
> >> Laurent Michel
> >> SSC XMM-Newton
> >> Tél : +33 (0)3 68 85 24 37
> >> Fax : +33 (0)3 )3 68 85 24 32
> >> Université de Strasbourg <http://www.unistra.fr> Observatoire
> >> Astronomique
> >> 11 Rue de l'Université
> >> F - 67200 Strasbourg
> >>
> >
> 
> --
> jesuischarlie/Tunis/Paris/Bruxelles/Berlin
> 
> Laurent Michel
> SSC XMM-Newton
> Tél : +33 (0)3 68 85 24 37
> Fax : +33 (0)3 )3 68 85 24 32
> Université de Strasbourg <http://www.unistra.fr> Observatoire Astronomique
> 11 Rue de l'Université
> F - 67200 Strasbourg
> 



More information about the dm mailing list