Hello Bryce,
Le 16-déc.-08 à 03:12, Bryce L Nordgren a écrit :
I posted to OM3 mostly because it seemed that MathML3 was tooling up
to directly reference OM3 content dictionaries. Also, I may have
missed something, but from what I can tell, the only way to define
new symbols for use with either MathML or OM is to define it within
an OM content dictionary.
OM3 is a fine discussion for that, it is indeed slightly more followed
by the W3C-math-wG but much less from OpenMath veterans. I'll allow
myself to cross-post even though it's not really elegant.
Asking here seemed the appropriate place, especially if discussion
risked articulating a new requirement of the system.
This is true indeed.
A new requirement of the "standard" and not "system", right?
The below mail seems indeed to express a wish to specify symbols with
a single way to interprete them. I feel it is a bad practice but
still, it can be achieved today, with zero DEFMP or extra
implementation element: your symbol declaration should contain a
single FMP, that specifying the implementation.
The only freedom you leave to receivers of such a symbol declaration
is to take the freedom to consider an own interpretation of that
symbol to be equivalent to that symbol satisfying the prescribed
function equality.
Do you want to even avoid that freedom?
I really don't see a reason and it shows a global mistrust to
mathematics.
As far as I know, a system "implements FMPs" by just having their
developers "knowing" that their implementations satisfy the FMP in a
theoretical way. That knowledge may be wrong but that would be a bug
of them.
(please note: there's more than evaluating to a "implementing" a
function, inverting or solving equations with it are examples of it).
paul
My concern with the <FMP> element is that is a tool used to describe
the properties of a black box, where the symbol is any object
satisfying all of the <FMP>s. As I understand it, additional <FMP>s
are not equivilent to "alternative implementations"; in my
understanding, they are additional constraints on the symbol, and
ALL constraints must be jointly satisfied. I want to directly
define what the black box contains, without necessarily describing
any of its properties.
For instance, I want a function called Planck_bb_freq(nu, T), to
compute an object's blackbody radiance at the given frequency and
temp. Given SI units, there is only one correct implementing
expression. I don't want to describe the properties of this
function (peak described by the frequency form of the Wien
displacement law, falls off exponentially at higher freqs and
polynomially at lower; integral over all wavelengths is the Stephan-
Boltzmann law). I have the one and only defining equation of the
symbol, so I want to associate it with the name. What's more, I
want to ensure that whenever I reference the symbol in a context
where it is evaluated, it always computes the expression I've
specified (example OMA given at end of email). I want to
explicitly forbid any mathematical system from taking liberties with
the expression, inferring anything extra, or fiddling with the
units. :)
The processing system is allowed to supply implementations for
times, divide, minus, power, exp, speed_of_light, Planck_constant,
and Boltzmann_constant (unless I get paranoid about these last three
and just type in values in the correct unit system). It may
precompute constant terms if it desires or perform any other
computational optimization which does not affect the result.
How does one express this sentiment in a content dictionary? And if
there is no means of doing it, could such a facility possibly be
added to OM3?
Thanks,
Bryce
<om2:OMA>
<om2:OMS name="times" cd="arith1"/>
<!-- First term (2 h nu^3)/(c^2) -->
<om2:OMA>
<om2:OMS name="divide" cd="arith1"/>
<!-- 2 h nu^3 -->
<om2:OMA>
<om2:OMS name="times" cd="arith1"/>
<om2:OMI>2</om2:OMI>
<om2:OMS name="Planck_constant"
cd="physical_consts1"/>
<!-- nu cubed -->
<om2:OMA>
<om2:OMS name="power" cd="arith1"/>
<om2:OMV name="ʋ"/>
<om2:OMF dec="3"/>
</om2:OMA>
</om2:OMA>
<!-- c^2 -->
<om2:OMA>
<om2:OMS name="power" cd="arith1"/>
<om2:OMS name="speed_of_light" cd="physical_consts1"/>
<om2:OMI>2</om2:OMI>
</om2:OMA>
</om2:OMA>
<!-- Second Term: 1 / (e^((h nu)/(k T)) -1 )-->
<om2:OMA>
<om2:OMS name="divide" cd="arith1"/>
<om2:OMF dec="1"/>
<!-- e^((h nu)/(k T)) -1 -->
<om2:OMA>
<om2:OMS name="minus" cd="arith1"/>
<!-- e^((h nu)/(k T)) -->
<om2:OMA>
<om2:OMS name="exp" cd="transc1"/>
<om2:OMA>
<om2:OMS name="divide" cd="arith1"/>
<!-- h nu -->
<om2:OMA>
<om2:OMS name="times" cd="arith1"/>
<om2:OMS name="Planck_constant"
cd="physical_consts1"/>
<om2:OMV name="ʋ"/>
</om2:OMA>
<!-- k T -->
<om2:OMA>
<om2:OMS name="times" cd="arith1"/>
<om2:OMS name="Boltzmann_constant"
cd="physical_consts1"/>
<om2:OMV name="T"/>
</om2:OMA>
</om2:OMA>
</om2:OMA>
<om2:OMF dec="1"/>
</om2:OMA>
</om2:OMA>
</om2:OMA>
_______________________________________________
Om mailing list
[email protected]
http://openmath.org/mailman/listinfo/om