Dear all, I made an STS to RelaxNG compiler a couple of years back, I will see if I can dig that out.
Michael On 26.2.14 12:01, Alberto González Palomo wrote: > Konrad Hinsen wrote: (25/02/14 10:07) >> [...] >> For the particular case of "sum", I find the definition in arith1 a >> bit vague: >> >> An operator taking two arguments, the first being the range of >> summation, e.g. an integral interval, ... >> >> There is no definition of "range of summation", just an example. You >> use a >> set in your example, which is fine, but there's nothing in the >> definition >> of "sum" that tells me that sets are a valid specification for a >> "range of >> summation". >> >> Which leads to another question: is there any validation tool for >> OpenMath that checks the semantics? The XML schemas and the XSLT >> stylesheet from the OpenMath Web site only check syntactical aspects, >> they won't stop me from using transc1/sin as a summation range, for >> example. > > I'm not aware of any validation tool, but you can check the Simple > Type System (STS) used for symbol signatures in the OM CDs. > http://www.openmath.org/cd/sts.xhtml > > For instance, arith1:sum has: > > http://www.openmath.org/sts/arith1.xhtml#sum > > I always used integer intervals for it in all the OM software I wrote. > For instance in Yacas, $\sigma_{i=1}^3 i^2$ is: > > http://yacas.sourceforge.net/refchapter6.html#Sum > > In> OMForm(Sum(i, 1, 3, i^2)); > <OMOBJ> > <OMA> > <OMS cd="arith1" name="sum"/> > <OMA> > <OMS cd="interval1" name="integer_interval"/> > <OMI>1</OMI> > <OMI>3</OMI> > </OMA> > <OMBIND> > <OMS cd="fns1" name="lambda"/> > <OMBVAR> > <OMV name="i"/> > </OMBVAR> > <OMA> > <OMS cd="arith1" name="power"/> > <OMV name="i"/> > <OMI>2</OMI> > </OMA> > </OMBIND> > </OMA> > </OMOBJ> > Out> True > In> N(Sum(i, 1, 3, i^2)); > Out> 14 > > For the double sum you mentioned, that would be nested: > > In> OMForm(Sum(j, -2, 5, Sum(i, 1, 3, j+i^2))); > <OMOBJ> > <OMA> > <OMS cd="arith1" name="sum"/> > <OMA> > <OMS cd="interval1" name="integer_interval"/> > <OMA> > <OMS cd="arith1" name="minus"/> > <OMI>2</OMI> > </OMA> > <OMI>5</OMI> > </OMA> > <OMBIND> > <OMS cd="fns1" name="lambda"/> > <OMBVAR> > <OMV name="j"/> > </OMBVAR> > <OMA> > <OMS cd="arith1" name="sum"/> > <OMA> > <OMS cd="interval1" name="integer_interval"/> > <OMI>1</OMI> > <OMI>3</OMI> > </OMA> > <OMBIND> > <OMS cd="fns1" name="lambda"/> > <OMBVAR> > <OMV name="i"/> > </OMBVAR> > <OMA> > <OMS cd="arith1" name="plus"/> > <OMV name="j"/> > <OMA> > <OMS cd="arith1" name="power"/> > <OMV name="i"/> > <OMI>2</OMI> > </OMA> > </OMA> > </OMBIND> > </OMA> > </OMBIND> > </OMA> > </OMOBJ> > Out> True > In> N(Sum(j, -2, 5, Sum(i, 1, 3, j+i^2))); > Out> 148 > > In my editor that would be as follows: > http://matracas.org/sentido/demo/index.xhtml#%E2%88%91%28-2..5,%CE%BBj.%E2%88%91%281..3,%CE%BBi.j+i^2%29%29 > > > You can click twice on the sum button (the palettes will scroll > down because of the variables added to the expression) to get a > nested sum, then rename the variables by hand. > > It is possible to enter it in the form described by Lars, > using a set, but my MathML stylesheets don't support it so far: > http://matracas.org/sentido/demo/index.xhtml#%E2%88%91%28cartesian_product%28X,Y%29,%CE%BB[i,j].i*j%29 > > > Cheers,
<<attachment: m_kohlhase.vcf>>
_______________________________________________ Om mailing list Om@openmath.org http://openmath.org/mailman/listinfo/om