VO-DML subsetting
CresitelloDittmar, Mark
mdittmar at cfa.harvard.edu
Fri Jun 14 14:41:27 CEST 2019
On the technical side, if you use Subset, you need to provide valid vo-dml
ids to the stereotype in the UML.
Subset:
Name = vo-dml id of the element being constrained (e.g.
meas:GenericPosition.coord )
Body = vo-dml id of the type constraint (e.g. coords:CoordValue[1])
I don't recall if both are verified or not, but this is the expectation on
the UML for the xslt scripts.
Constraint: is easier
It applies to the object it is associated with, so no need to specify
the vo-dml id in Name
Body = free text
Mark
On Fri, Jun 14, 2019 at 6:32 AM Gerard Lemson <glemson1 at jhu.edu> wrote:
> 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<=self.latitude.value<=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
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ivoa.net/pipermail/dm/attachments/20190614/c71e4dcb/attachment.html>
More information about the dm
mailing list