VO-DML subsetting

Gerard Lemson glemson1 at jhu.edu
Fri Jun 14 12:32:26 CEST 2019


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
> 



More information about the dm mailing list